股票学习网

股票入门基础知识_炒股入门与技巧_怎么买股票 - 股票学习网!

空头技巧(空头换手北京文化)

2023-05-04 16:13分类:短线技巧 阅读:

(本文由公众号越声投研(yslcwh)整理,仅供参考,不构成操作建议。如自行操作,注意仓位控制和风险自负。)

股市上有句名言,新手死于追高,老手死于抄底,高手死于杠杆。抄底不是好玩的,一波牛市的末尾,基本都是大量的抄底盘被套,很多甚至是躲过了高点,躲过了暴跌,躲过了股灾的,但却死在了抄底了路上,那么问题来了,抄底不应该吗?有没有抄底的绝招呢?

抄底口诀

1、连续下跌T线见,马上进场抢反弹。

2、V型反转,涨势不断。

3、连续上涨长上影,抛出筹码不要等。

4、连续下跌遇长十,再不介入后悔迟。

5、上下影,有门道,仔细分析最重要,升势出现要见顶,跌势出现底在抄。

6、出水芙蓉最可爱,穿越三条均线带。后市方向理应涨,杀入收益定不赖。

抄底的原则

1、不要指望抄最低点

大部分股民认为反弹即是底部,担心错过买入时机,次日无法追高,但由于抢反弹是高风险的行为,建议股民千万不要希望能买到一个最低点。因此等待底部型态成熟后再大量买进,以免在跌势中被最低点的低点套牢。

2、不要迷信底部量

价跌量缩,大家都知道,但量缩了还可以缩。所以应等待大盘指数走稳后,六日均量连续三日迅增才能确认。

3、不要认为底部是一日

俗话说“天价三天低价百日”就是这个道理,一般说底有几种形态,W底及园弧底是较为常见的底部,绝不要去抢V型,因为V型底经常就是一个右肩,一买入就有会被套住的可能性。

抄底信号

1、成交量。什么都会骗人,但是成交量不会。有一天各个指数开始放量上涨,这个量是指高于前面下跌过程的成交量,当然是越大越好了。有了成交量,就代表有资金抄底了。那就是你进场的最直接信号。成交量必须是持续性的。

2、头肩底。头肩底一般出现在市场的底部,股价在连续创出新低后,开始向上反弹,反弹结束后,挂机未能继续创新出低,而使在高于前期低点的位置开始上攻,当股价上坡前期高点也就是颈线的时候,抄底的时机就来了。

3、圆弧底。在市场底部,空方的能量在逐步减弱,但多方力量优势不是突然增大,而是缓慢的显露出来。这是常常出现的,但也比较难判断。但有个特点就是,K线实体非常小,但是是逐步向上的。

抄底技巧

1、【大地回春】

所谓大地回春是指低档急跌后尽头阴线,具体表现为股价在低档收出长下影阴线,次日再收一条阴线,但此阴线未能突破前一日阴线下影,一般暗示空头力竭,买方即将展开反攻。本K线组合通常是股价中短期见底的信号,可以考虑在出现长下影的第三天介入。

从上面图示可以看出,金瑞矿业在经过连续大跌后,在5月9日开出两根阴十字星,并且第二根阴线的下影没有打过前面的低点,“大地回春”形态成立,选手在次日果断介入,单只个股收益达到33%。

2、【苦尽甘来】

股 价加速下挫,在低档连续三次跳空收出阴线,这通常是多头即将死绝、股价将要止跌的信号。所谓“多头不死,跌势不止”,因而此时股价反弹的可能性较大。但 是,尽管本K线组合为比较强烈的反弹信号,但由于其最终的下跌幅度深不可测,投资者应慎之又慎,不要轻易介入抢反弹,以免被股价的惯性下挫所伤害。只有当股价放量收阳,并开始回补最后一个跳空缺口(即底部缺口)时,才是比较稳妥的介入时机。

抄底后的策略

抄底后涨了怎么办?抄底后大盘和个股出现上涨,这是所有抄底者希望看到的结果。对中长线投资者来说,无论大涨或小涨,都可以持股不动,耐心持有、静观其变;对于坚持波段操作的投资者来说,可以找高点分批获利了结,变账面盈利为实际收益,待大盘和个股再次回落,再行二次抄底。

跌了怎么办?无论哪种方式介入,抄底后大盘和个股都有继续下跌甚至大跌的可能。对此,每位参与抄底的投资者都要有充分思想准备,制定必要的应对措施并严格执行。比如,高位逃顶后采取正差抄底的投资者可以持股不动,用算账来宽心:若既未逃顶又未抄底,算一下资金有多少;逃顶后又抄底,这一卖一买,资金又是多少。二者一比,抄底对错便见分晓。对分批抄底的投资者而言,跌了就是好事,以便采取越跌越买策略,直到抄底完成。

如何把握底部

在正常行情下,对于底部的把握,我们可以通过以下3个方面进行判断。

(1)股票见底的位置把握,没有只涨不跌的股票,也没有只跌不涨的股票。一般情况下,当股票跌至一定的位置,就会出现触底反弹。而这些位置往往可能出现在前期低点、历史底部、重要均线位(如20日均线)或者成交密集区。

(2)从成交量来看,当成交量极度萎缩之后,于某一日出现了明显的增量情况,往往预示着反弹行情的到来。(如下图:底部放量)

(3)如果突然有一天成交量大增,收出中阳线,即突破盘局,且股价站在10日线之上;突破之后,均线系统开始转为多头排列。这预示着股价即将脱离底部,开始反弹甚至反转行情。(如下图:中阳突破后均线多头排列)

抄底实战图解案例

1、多方炮形选股形态抄底法

走势上呈现两阳夹一阴的K线技术形态。股票价格连续下跌或横盘震荡,第一天多方发力上攻,高开高走,创下近期新高。但第二天出现回调整理的走势,第三天则多方再度放量上攻,形成突破大阳线,再创新高。

2、春寒倒灌形态抄底法

是指股价持续下挫,在低档接连收出四五根中大阴线后出现一根小阳线,但次曰马上被一根中大阴线所吞没,但5曰乖离率出现背离走势,此种走势暗示股价已至底部,第二曰若高开高走则是低吸的良机。

3、双底

它是当价格在某个时段内连续两次下跌至相约地点时而形成的走势图形。当出现双重底时,通常是反映在向下移动的市况由熊市转为牛市。

1.在第二个底部形成时,成交量经常较少,而上破颈线的时候成交量必须迅速放大;

2.突破之后常常有回抽,在颈线附近自然止跌回升,从而确认往上突破有效;

3.第一个低点与第二个低点之间,时间跨度应不少于一个月。

抄底技巧

1,圆弧底:

圆弧底往往是指股价运行轨迹呈圆弧型的底部型态。

这种型态的形成一个原因,往往是由于有部分做多资金正在少量的逐级温和建仓造成,显示股价已经探明出了阶段性底部的支撑。它的理论上的涨幅度一般是最低价到颈线位的涨幅的一倍。一般需要注意的是盘中圆弧底在用于对个股分析时比较有效,但指数出现一个圆弧底往往未必有象样的涨升。

2,舍线腾空:

是指在经过连续的缩量单边下行调整之后,在无重大利好消息的刺激下,股价突然大幅高开,一般当天收盘价情况分为两种,1、高开收阴,不补缺口,则当天的低点或第二天开盘的低点是最佳接入点,2、高开收阳,则冲高后再次回落到舍线位置时为最佳低吸点,随之而来的是调整结束后的冲线上升行情。例如:

3,MACD底背离抄底法:

是一招操作股价探底回升的方法:股价下跌创出近期股价低点时而MACD的绿柱或DIF、DEF两条指标线没有同步创新低,此时股价和指标就出现了底背离的现象,底背离现象是一种股价即将见底的信号。

技术要点

(1)挑选股价经过一波下跌后出现底背离的股票

(2)股价于MACD绿柱或DIF、DEF两指标线之一产生底背离即可

(3)此方法适合不同周期使用

实战案例

该股60分钟走势出现MACD底背离时,以10.38元的价格进行了买入,随后股价就出现了探底回升走势,此波操作的利润达到10%以上。

若您对股市投资经验及选股技巧有所感兴趣,或者想与更多的股民交流的话,不妨关注我们的公众号:越声投研(yslcwh),获取第一时间的投资情报和更多的选股技巧!

声明:本内容由公众号越声投研(yslcwh)提供,不代表投资快报认可其投资观点。

(本文由公众号越声投顾(yslcw927))整理,仅供参考,不构成操作建议。如自行操作,注意仓位控制和风险自负。)

做股票投资,最重要的是要把握好买进时机和卖出时机,把握卖出时机的时候,要遵循一定的卖出原则,下面小编就和大家分享一下股票卖出技巧。

一、顶部尽头线

上涨尽头线出现在股价持续上涨中,阳线实体慢慢缩短,突然某日出现一个实体很小的阳线,并且低于前一日的高点。这时买方动能开始减弱,行情开始有疲软之态,甚至后期股价很可能会下跌,顶部尽头线与底部尽头线形态刚好相反。

形态要点:

1、第一根K线应为带长上影线的大阳线或中阳线。

2、顶部尽头线的上影线的右方,带着的K线越小,则信号越强。

3、顶部尽头线第一根K线的上影线很短时的反转信号不是很强烈,成功率不是很高。

二、右侧破位逃顶法

这个逃顶技术是最基本的,不需要任何指标协助,就是看K线图和均线就行了,这种逃顶方法核心就两条:

一条是大阴线或连续阴线破掉上升趋势。

二条是多周期多指数共振发生。

先看看下图:

上图中,上半部分是上证指数,下半部分是创业板指数,左半部分是30分钟,右半部分是60分钟。这个图中,我用箭头画的位置,就是下跌破位形成,要么是一根大阴线破掉上升趋势,要么就是连续的阴线破掉,一旦向下突破形成,均线就形成了空头排列,这种技术走势出现,下跌趋势就开始了,这个时候逃离肯定是相对高点的。

三、烽火柱的逃顶:凹峰型烽火柱

位于凹峰之上的烽火柱,是上涨乏力的极盛之处,因此它也是由盛转衰、走向背反的拐点。但是,在后市还没走出来之前,它既有向下的可能,也有向上的可能。它是多空双方在凹峰上的一个短暂的平衡。因此,它的本质是示跌的,跌是它的常态,不跌或涨是它的反态。

所以在具体的实战中,我们要给它设置一个多空平衡线。这个多空平衡线,就是烽火柱的实底线。只要有效守住烽火柱的实底并占领其实顶,股价就会往上失衡,而要是它的实底被有效击破,那么,股价就会向下失衡。请看下图:

从上图中我们可以看到,A和B都是凹峰型烽火柱,但A的实底更低,因此就要以A的实底为凹峰型烽火柱的平衡线,B未跌破,可以不出,但C收盘时却连续跌破A和B的实底,这个时候,就必须坚决离场了。

四、长箭射天

“长箭射天”,是指股价处于高位时,出现一条带长上影线的小实体K线,在形态、阴阳、实体长度上都没有特定标准,但长上影线一定要高于前一个交易日的K线,且上影线越长有效性越高。

如同一支射向云端的长箭,故而得名,此形态出现在大涨之后是强烈的见顶信号。表明庄家大部分筹码已经派完,因此投资者应在该形态出现的当天收盘前及时卖出股票,如果当天没有卖出,第二天要坚决卖出,切勿心存侥幸,否则会给你带来惨痛的教训。

五、大鹰灭火

股票的连续涨停凸显了赚钱的效果,投资者的追涨热情似火,突然一个巨大的阴线把投资者火辣的热情浇灭,股价见顶,之后快速回落。

操作要点:

1、股票出现连续的涨停;

2、越上涨,量能却开始萎缩,表现为缩量涨停;

3、巨量阴线,为近一两年来历史天量。

六、双跳空(岛形反转)

如下图。岛形反转代表的股票,股价向上跳空后,在缺口上方盘整数日,股价又向下跳空,开始下跌。

要点:

1、股价上涨50%+,抵达高位。

2、股价向上跳空之后,高位横盘数日时,成交量持续放大。

3、见顶信号发出后,股价向下跳空,开始下跌,同时,均线开始掉头向下。

逃顶口决

涨着涨着加速涨,再来一个跳空涨,还不逃命还等涨?

大阳额头十字星,进去准丢命!

烽火台上扎把枪,此时不跑命不保。

各条均线拧麻花,向下张口吞江山。

开盘涨停急下跌,收盘又被封涨停,落袋为安先走人。

坡顶立根大绿柱,赶快离场。

如果你也是技术控,也在潜心研究股市里的技术操作,不妨关注公众号越声投顾(yslcw927),你会有更多的收获!

昨天在文章《干货:涨停板套利“绝招”!隔夜超短获利3%-5%(限时分享)》里,我详细教大家如何从资金和筹码的角度判断涨停板的买点,然后又以省广集团为例,把操作步骤一步步写了出来。

今天省广集团最高冲到9个多点,现在7个多点,反正不管多少,肯定能赚钱,说明我们昨天找买点的方法是有效的。炒股就是用正确的方法,在不确定性行情里,找到确定性机会,并坚持下去。

 

昨天文章发出去之后,有些股友提出了一些比较好的问题,比如有人问,为什么空头筹码换手完了,股价不涨停?

换手完成不是涨停的充分条件,也不是必要条件,换手没完成就涨停,或者换手完成了还不涨停,都是有可能的。

我打个比方:

A股票,盘中出现了一笔涨停价格委托的10000手买单,这时候10000手全部能成交,而且股票肯定有一波快速冲高。

B股票,也出现一笔涨停价格委托的10000手买单,但是卖一挂了20000手卖单,这时候也成交了10000手,但是买单连卖一挂的20000手都吃不完,股价根本就不涨。

这到底是为什么?

空头筹码是用来帮我们做参考的,而不是判断买点的唯一指标,因为我们并不知道,那些可能好几年都不参与交易的筹码,突然就砸盘了,这时候成交额肯定就超过空头筹码了,所以我才会在换手完成后,再加一个冲击涨停的动作,提高胜率。

还有的股友有疑问,为什么用成交额计算,而不用成交量呢?

其实成交额、成交量、换手率都是可以的,键是要理解的资金和筹码供需关系的理论,明确推动股价涨跌的根本。

在实操过程中,我们也不需要等到空头筹码全部消耗后再去找买点,因为有可能刚涨停的时候只换了80%,等到涨停板上慢慢放量到100%,这时候我们就买不到了。一般来说,当空头筹码的换手达到80%后,就表示大部分抛压都已经被消耗了,我们就可以给关注,看后面有没有买点。

第三个问题:出现买点的时候也涨停了,买不到怎么办?

这种情况根本就不存在, 有这样的疑问,说明根本不会做短线。

就拿我分析的省广集团来说,周四换手完成后,从出现买点到涨停,至少有45秒的时间。如果45秒时间都买不到一只股票,那我觉得基本上也就告别短线了。

下面再附上之前抓住轴研科技时,判断买点的过程,下面的内容很重要,大家一定要认真看了。

股票本质上是多空双方之间的博弈。所谓的多头,也就买股票的人,是导致股价上涨的力量;所谓的空头,也就是卖股票的人,是导致股价下跌的力量。

多头手里拿着资金,空头手里拿着筹码,在资金和筹码交换的过程中,股价出现了上涨或下跌。

到了这一步,我们就把股票涨跌的复杂问题,幻化为一个二元的简单问题,只和多头资金量空头筹码量有关,只要搞懂这两个指标,就抓住了股票涨跌的本质。

先看空头筹码量

A股是T+1交易制度,每一份筹码每天只能交换一次,所以股票单个交易日可以卖出的筹码总量是固定的。9:30达到最大值,之后随着交易的进行,空方不断卖出,这个数字也会不断减小,最终在收盘达到最小值。

大概就是下面这样的:

再看资金需求量:

资金需求量刚好是反过来的,开盘是0(因为还没买),之后随着交易的进行,多头投入的资金量不断增多,最终在收盘达到最大值。

我们思考一下,多头资金量不断变大,空头筹码量不断减小,那么在一天当中的某一个时点,就有可能出现两者相等的情况,多空力量到达拐点,并且在拐点之后,空头砸盘筹码几乎衰竭,股票下跌概率将大大降低。

更进一步,如果在出现拐点之后,股票还有冲击涨停的动作,说明大资金在刻意引导做多,把股票做到涨停板上去,此时由于砸盘力量已经衰竭,封板的难度也会降低,我们顺势进场,抓到涨停板的概率自然大大提高!

炒股好比两军交战,确保打胜仗的最稳妥方法,就是等对方把子弹全部打完!

这里有一个非常重要的数据,那就是敌人手里到底有多少子弹,或者说砸盘的筹码到底有多少 ?

直接用昨天成交的手数行不行?当然不行,没准昨天的砸完了,之前潜伏的筹码还得砸。

为了帮助大家判断砸盘筹码的数量,下面我就用一只股票来举例子,教大家用这套方法来判断买点。

就拿轴研科技(002046)来说吧。

截至周一,这只股票已经连续4个涨停板。当然了,在此之前我们肯定不知道轴研科技会走出4个板,不然我第一个板就进去了。我们来按照上面的思路推理,看一看,如果我们不知道轴研科技后面的走势,应该怎么判断买点。

1、5月6日,轴研科技第一次涨停,收盘6.13元。

这个涨停不多说了,可能是因为出了个利好或者其他原因,反正涨停了,收盘后被收录进了涨停复盘表,成为我们的备选股票池的一部分。

2、5月7日,轴研科技第二次涨停,收盘6.74元。

这一天是大幅高开之后秒板的,而且封的很死,那么,当天是不是买点呢?

按照上面我给大家做的分析,先判断敌人有多少兵力,也就是砸盘筹码有多少?

我们看轴研科技最近两年多的走势:

可以看到,轴研科技的股价波动很大,2019年初最高涨到10.27元,2020年初又跌到5.15元,伴随着股价的波动,每一波行情都有成交量的放大。成交量放大意味着什么?意味着筹码的交换更剧烈啊,那最剧烈的时候能达到什么程度呢?

可以看到,轴研科技在上面标识的四个放量区域里,最大单日成交量分别是20.0万手、25.5万手、11.6万手和15.6万手。

也就是说,过去2年,轴研科技的股价在 5-10元之间反复摩擦,但是单日成交量最大只有25.5万手,也就是单日参与交易的筹码只有 25.5万手 ,那么可能砸盘的最大筹码数量 ,当然也是25.5万手!

因此,25.5万手,就是敌人的总兵力,可能就是砸盘筹码的总量。

这里解释一下,为什么说“可能”呢?因为考虑到可能多出来的一些散户浮筹,以及丧失交易欲望的筹码的存在,不可能说精确是25.5万手筹码。大概在80%-120%这个区间内有冲板动作,封死涨停的概率非常高,也就是20.4万手~30.6万手之间。

剩下的就简单了,只要接下来的某一天的某一个时刻,轴研科技手砸盘筹码的全部或者大部分砸盘之后,如果股价还能继续保持强势,甚至冲击涨停,那么此时就是一个黄金买点,股票大概率能够封死涨停,我们也就能抓到一个涨停板。

我们再回过头看轴研科技5月7日的走势:

9:31直接秒板,只成交了9.01万手,这种肯定不符合要求了,缩量严重,剩下的那十几万手筹码 ,有可能砸盘。

我们继续看第三天。

3、5月8日,轴研科技第三次涨停,收盘价7.41元。

这一天轴研科技先是高开,之后回落,9:41后一根线拉到涨停板上,再也没有开板。那么,这一天有买点吗?

可以看到,从集合竞价到9:40,也就是涨停前1分钟,轴研科技一共成交了20.44万手,刚好达到了我们说的20.4-30.6万手的标准。一共25.5万手的筹码,已经砸掉了80%,压力已经大大减小。

9:41,轴研科技突然密集放量,大单进场扫货,这时候主力的意图已经很明显,该卖的都已经卖了,现在主力发动涨停攻势,已经没有人能够砸盘,此时,买点出现!

之后轴研科技涨停轻轻松松,一根线秒到涨停板上,再也没有开板。

如果再加上9:41的成交量,轴研科技从9:30-9:41一共成交了24.18万手,和之前我们预估的25.5万手,近似度95%,进一步验证了方法的正确性。

9:41之后,轴研科技牢牢封死涨停,再也没有开板。

5月11日,轴研科技第四次涨停,收盘价8.15元。

高开、秒板,一气呵成,这种走势肯定继续持有了,10%利润到手。(备注:这里强调一下,筹码理论是用来找买点的,不是找卖点的,所以别因为第四个涨停板缩量就想着卖,那就做反了。)

在这之后,5月12日、5月13日、5月14日、5月15日连续4天涨停,5月19日继续涨停,距离5月8日我们判断出买点,一共6个板,8个交易日累计涨幅高达79.35%!

以上就是我从成交量的角度来判断股票买点的方法。整个过程中,最难判断的是可能砸盘的最大筹码数量,只要找到了,除非买不到,买到了基本上都不会有错,大肉稳稳到手。

上面我只介绍了买点判断方法,卖点的判断也很重要,时间关系就不说了。如果一只原本能涨30%的股票,你在涨到5%就卖出,即使赚钱,那也是失败的操作。如果大家想继续学习包括选股、买股、持股、卖股在内的一整套操作流程和细节,点击下面的专栏卡片就可以购买。

 

 

 

 

专栏

 

 

从买到卖,7节课教你抓涨停!

作者:金融界股市学院

 

39.9币

1万人已购

 

查看

 

 

 

 

课程不贵,才39元,也就 一笔交易的手续费,权限是永久的,一次付费,永久观看。这套课程包括七节视频课和文字讲义,大家可以看一下课程目录:

七节视频课中,每节课的主要内容是:

一、讲解强势龙头股炒作的基本原理,以及龙头股的形成逻辑;

二、讲解捕捉强势龙头的几个步骤,包括利用涨停复盘表粗选个股;

三、讲解买入方法;

四、讲解持有和卖出的判断标准;

五、讲解当下最常见的两种龙头股的炒作模式,以及通过龙虎榜提高胜率的方法;

六、讲解操作过程中存在的有些错陷阱和避开陷阱的方法;

七、通过实际案例,完整复现上面一整套操作过程。

为了录制这套课程,花费了很大的精力。课程推出一年多,已经有超过10000个股友订阅,从之前用户的评价看,大家还是非常认可的。

今天订阅课程的全部用户,还可以参加为期3-4周的免费培训。点击我的头像,私信回复“培训班”,就可以看到参与方法。

其余就不说太多了,祝大家都赚钱。

【以上内容仅代表个人投资建议,不构成买卖依据,股市有风险,投资需谨慎!】

由于在商品期货市场,CTP协议没有提供订单流数据。所以如果想做一些基于订单流数据的策略则无从下手。好在CTP协议给出的tick行情有足够的数据可以反推出订单流,这里反推出的订单流也只是tick切片之间的成交情况的合并信息。不过有总比没有强。

订单有卖单列表,买单列表。卖单订单无非是:「卖出开空」或者「卖出平多」。买单订单无非是:「买入开多」或者「买入平空」。

 

 

 

盘口订单

下单方向1

下单方向2

..

..

..

卖单

卖出开空

卖出平多

买单

买入开多

买入平空

..

..

..

 

 

 


4种订单类型的成交组合:

 

 

 

方向类别

卖出开空

卖出平多

买入开多

卖出开空、买入开多 => 双开,持仓量增加

卖出平多、买入开多 => 多换,持仓量不变

买入平空

卖出开空、买入平空 => 空换,持仓量不变

卖出平多、买入平空 => 双平,持仓量减少

 

 

 

实际上盘面上交易过程是非常复杂、快速的,可能一次tick切片行情变动中混合了以上多种成交组合,所以还需要根据盘口价格变动做后续判断。

算法解析

FMZ国内站上公开了一个反推算法(javascript语言实现)十分有学习意义,是量化交易入门者必学知识。这里就对这个公开的代码做分析,方便学习到这个算法逻辑,为了方便学习我直接把代码注释写上。

var NewFuturesTradeFilter = function() { // 该函数是一个构造函数,构造出用于计算逐笔成交的对象 var type_enum = { // 定义逐笔成交信息的枚举类型 OPENLONG:"多开|OpenLong", // 多开:新多头入场开仓 OPENSHORT:"空开|OpenShort", // 空开:新空头入场开仓 OPENDOUBLE:"双开|OpenDouble", // 双开:多头、空头入场开仓 CLOSELONG:"多平|CloseLong", // 多平:多头平仓离场 CLOSESHORT:"空平|CloseShort", // 空平:空头平仓离场 CLOSEDOUBLE:"双平|CloseDouble", // 双平:多空平仓离场 EXCHANGELONG:"多换|ExchangeLong", // 多换:多头换手 EXCHANGESHORT:"空换|ExchangeShort", // 空换:空头换手 OPENUNKOWN:"开仓|OpenUnkown", // 开仓:无法判断出主动成交的方向 CLOSEUNKOWN:"平仓|CloseUnkown", // 平仓:无法判断出主动成交的方向 EXCHANGEUNKOWN:"换仓|ExchangeUnkown", // 换仓:无法判断出主动成交的方向 UNKOWN:"未知|Unkown", // 未知:无法判断 NOCHANGE:"空闲|NoChange", // 空闲:没有变化 } // 定义涨为红色,跌为绿色,白色为价格不变 var color_enum = {RED:"#00ff00", GREEN:"#ff0000", WHITE:"#666"} // Reverse China color // 定义一些动作的枚举 var tick_dict = { delta_enum_NONE: { forward_enum_UP: [ type_enum.NOCHANGE, color_enum.WHITE ], forward_enum_DOWN: [ type_enum.NOCHANGE, color_enum.WHITE ], forward_enum_MIDDLE: [ type_enum.NOCHANGE, color_enum.WHITE ] }, delta_enum_EXCHANGE: { forward_enum_UP: [ type_enum.EXCHANGELONG, color_enum.RED ], forward_enum_DOWN: [ type_enum.EXCHANGESHORT, color_enum.GREEN ], forward_enum_MIDDLE: [ type_enum.EXCHANGEUNKOWN, color_enum.WHITE ] }, delta_enum_OPENFWDOUBLE: { forward_enum_UP: [ type_enum.OPENDOUBLE, color_enum.RED ], forward_enum_DOWN: [ type_enum.OPENDOUBLE, color_enum.GREEN ], forward_enum_MIDDLE: [ type_enum.OPENDOUBLE, color_enum.WHITE ] }, delta_enum_OPEN: { forward_enum_UP: [ type_enum.OPENLONG, color_enum.RED ], forward_enum_DOWN: [ type_enum.OPENSHORT, color_enum.GREEN ], forward_enum_MIDDLE: [ type_enum.OPENUNKOWN, color_enum.WHITE ] }, delta_enum_CLOSEFWDOUBLE: { forward_enum_UP: [ type_enum.CLOSEDOUBLE, color_enum.RED ], forward_enum_DOWN: [ type_enum.CLOSEDOUBLE, color_enum.GREEN ], forward_enum_MIDDLE: [ type_enum.CLOSEDOUBLE, color_enum.WHITE ] }, delta_enum_CLOSE: { forward_enum_UP: [ type_enum.CLOSESHORT, color_enum.RED ], forward_enum_DOWN: [ type_enum.CLOSELONG, color_enum.GREEN ], forward_enum_MIDDLE: [ type_enum.CLOSEUNKOWN, color_enum.WHITE ] }, } var preInfo = null; // 用于记录前一次tick数据 var feed = function(info) { // 函数实现主要的功能,反推逐笔交易信息,传入的参数info为tick数据 if (!preInfo) { // 如果第一次执行feed,没有preInfo则使用当前info赋值给preInfo后(闭包:preInfo不会被释放),直接返回 preInfo = info; return null; } var volume_delta = info.Volume - preInfo.Volume; // 反推算法主要依赖于以下两个数据,前后两次tick数据的成交量变化值:volume_delta var open_interest_delta = info.OpenInterest - preInfo.OpenInterest; // 前后两次tick数据的持仓量变化值:open_interest_delta var delta_forward = 'delta_enum_UNKOWN' // 初始为未知状态 // 以下这组if判断涵盖了正常情况,一种异常状态就是volume_delta小于0,通常来说不可能,一个交易日内成交量是一个递增的量,如果出现归于delta_enum_UNKOWN处理 if (open_interest_delta == 0 && volume_delta == 0) { // 持仓量和成交量都没有变动,正常来讲成交量没有变动,持仓量也可定不变,所以就是没有任何新的成交 delta_forward = 'delta_enum_NONE' } else if(open_interest_delta == 0 && volume_delta > 0) { // 持仓量没有变动,成交量增加 // 说明有人开仓,有人平仓,开仓平仓的合约数量相等,根据后续对盘口价格变动的判断,价格推高表示开仓多头主动,价格下降表示开仓空头主动, // 持仓量未变,说明有同样数量的平仓单,此时可能多头换手,空头换手都存在。 delta_forward = 'delta_enum_EXCHANGE' } else if (open_interest_delta > 0) { // 持仓量增加 if (open_interest_delta - volume_delta == 0) { // 持仓量增加的情况下,持仓量变动和成交量变动相同(成交量也是增加的) // 说明成交量变动,新增成交的这部分都是开仓,没有平仓。例如:多头开仓和空头开仓成交1张,增加1张的持仓量 delta_forward = 'delta_enum_OPENFWDOUBLE' } else { // 持仓量增加的情况下,持仓量变动和成交量变动不同 // 说明有开仓,可能有平仓,有换手,总之持仓量是增加的,有新的资金入场,判定为“多开”还是“空开”等,根据之后的盘口变动检测而定 delta_forward = 'delta_enum_OPEN' } } else if (open_interest_delta < 0) { // 持仓量下降 if (open_interest_delta + volume_delta == 0) { // 持仓量下降的情况下,持仓量和成交量变动相同 // 说明成交量变动,新增成交的这部分都是平仓,没有开仓,双平。 delta_forward = 'delta_enum_CLOSEFWDOUBLE' } else { // 持仓量下降的情况下,持仓量和成交量变动不同 // 说明有平仓,可能有开仓,有换手,总之持仓量是减少的,有资金离场,判定为“空平”还是“多平”等,根据之后的盘口变动检测而定 delta_forward = 'delta_enum_CLOSE' } } var obj = tick_dict[delta_forward]; // 找到对应的初步判定类型 var ret = null; if (typeof(obj) !== 'undefined') { // 根据价格变动进一步分析处理 var order_forward = ''; if (info.Last >= preInfo.Sell) { // 最新成交价较上一次tick相比,大于等于上一个tick的卖一,判定为价格上涨 order_forward = 'forward_enum_UP'; } else if (info.Last <= preInfo.Buy) { // ...判定为价格下跌 order_forward = 'forward_enum_DOWN'; } else { // 如果盘面盘口较大,最新成交价停留在盘口中间的某个位置 if (info.Last >= info.Sell) { // 和当前tick的盘口卖一价格做比较,大于等于当前卖一,判定为价格上涨 order_forward = 'forward_enum_UP'; } else if (info.Last <= info.Buy) { // ...判定为价格下跌 order_forward = 'forward_enum_DOWN'; } else { order_forward = 'forward_enum_MIDDLE'; // 中间位置,这种表示无法判断出此次tick变动,推算出的逐笔成交主动交易的方向 } } if (order_forward != '') { var d = obj[order_forward]; if (typeof(d) !== 'undefined') { ret = [info.Last, volume_delta, d[0], d[1]] // 此次tick前后对比得出的逐笔成交数据,[最新成交价, 成交量变动, 成交类型(多开, 双平 ...), 颜色] } } } preInfo = info; return ret; } return { feed: feed, reset: function() { preInfo = null; }, } }

这段代码主要通过前后两次tick的对比,算出:1、成交量变动,2、持仓量变动。然后根据这两个数据推算出此次tick变动的综合动作:

  • 空闲,没有任何成交
  • 换手
  • 增仓
  • 减仓

再根据后续对盘口价格变动的分析,判断出此次推算的逐笔成交信息中主动交易的方向。例如此次是“换手”,根据盘口价格变动继续判断出是“多换”(多头主动)还是“空换”(空头主动)。

从另一个角度去实践验证

这里引申出另一个问题,在写策略时经常有需求要计算成交金额,但是通常我们只有成交量。这个成交金额怎么获取呢?

有了以上代码推算出的逐笔成交,不就可以计算出成交金额了吗?只需要累计这个量就可以了。

当然,CTP协议也给我们提供了充足的数据,也可以直接计算出成交金额。只是我们平时不太在意CTP协议的tick行情数据中的AveragePrice属性,AveragePrice表示持续平均计算得出的成交均价。需要注意的是这个数值是没有除以合约乘数的,例如合约是rb2305,那么AveragePrice表示的是10吨的均价。

成交金额 = AveragePrice / VolumeMultiple * Volume

我们就可以使用这两种方式计算成交金额来进行对比,测试代码如下:

function main() { SetErrorFilter("market not ready|not login") while (true) { if (exchange.IO("status")) { LogStatus(_D(), "已连接") break } else { LogStatus(_D(), "未连接") Sleep(1000) } } var info = _C(exchange.SetContractType, "rb2305"); // 使用螺纹钢2305合约测试 var filt = NewFuturesTradeFilter(); // 创建用来推算逐笔交易的对象 var firstTicker = _C(exchange.GetTicker) // 获取首个tick行情 Log(firstTicker); // AveragePrice Volume var initTransactionAmount = firstTicker.Info.AveragePrice / info.VolumeMultiple * firstTicker.Info.Volume // 计算初始成交金额 var initVolume = firstTicker.Info.Volume // 记录初始成交量 var sum = 0; // 用于累计逐笔成交信息的总成交金额 var volume = 0; // 用于累计逐笔成交信息的总成交量 var t = firstTicker while (true) { if (t) { var ret = filt.feed(t); // 使用filt对象的feed函数推算出逐笔成交信息 if (ret) { Log("Price:", ret[0], "Amount:", ret[1], _T(ret[2]), ret[3]); sum += ret[0] * ret[1] // 此次逐笔成交信息,价格乘以数量算出金额,累计成交金额 volume += ret[1] // 累计成交量 } // 计算当前时刻和初始时刻的 AveragePrice / VolumeMultiple * Volume 差值,以及 Volume差值 LogStatus(_D(), "tick:", t, "\n", "sum:", sum, "volume:", volume, "\n", "transactionAmount:", t.Info.AveragePrice / info.VolumeMultiple * t.Info.Volume - initTransactionAmount, "transactionVolume:", t.Info.Volume - initVolume); } else { Sleep(100) } t = exchange.GetTicker(); // 每次循环更新tick } }

测试

使用以上测试代码,实盘测试:

 

实盘测试

 

 

实盘测试日志

 

可以发现成交量两种统计方式算出的数值是一致的,成交金额有一点点差别(误差原因:1、可能是tick数据中的AveragePrice即成交均价的数据精度引起的误差。2、两次tick之间成交有可能有很多小幅度价格变动,最新成交价可能和实际的两次tick之间的交易成交均价有差别,毕竟tick数据是切片数据)。不过成交金额差别不算大,基本是一致的。

https://www.haomiwo.com

上一篇:基金子公司一对多(基金一般几点到账)

下一篇:nmn概念股票(nmn概念股华润双鹤)

相关推荐

返回顶部