 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
- wenarm
|
本帖最后由 技术006 于 2021-11-5 17:30 编辑
图表不支持锁仓,指的是图表理论持仓,不能同时持有多头和空头2个方向的仓位。而实际账户只会跟着图表的理论开平仓动作去下单。
在你使用的金字塔这个版本中,逐k+仅刷最后一个k线模式,每根新k出现时,公式都会从第一根k线开始重新计算历史信号。而下面的这个条件,在历史k线上恒成立
(ISLASTBAR and TIMETOT0(DYNAINFO(207))>TIMETOT0(CLOSETIME(0))-3) or not(ISLASTBAR);//在最新k上,只要不是收盘前几秒钟内,是不成立的。
第一节点状态时:
那么整个公式在执行时就会出现下面的情况:
//当open=20215 h=20245 l=20200 变动价位是5
MYholding:HOLDING;//上根k上的holding结果,我们此处认为之前没有开过仓,那么就是0
KD:H>O+MINDIFF;//20245>20215+5 成立
kk:l<o-MINDIFF;// 20200<20215-5 成立
//在最后一根k上,(但是并非收盘最后一根k)时,平仓条件不成立。
pd:(ISLASTBAR and TIMETOT0(DYNAINFO(207))>TIMETOT0(CLOSETIME(0))-3) or not(ISLASTBAR);
pk:(ISLASTBAR and TIMETOT0(DYNAINFO(207))>TIMETOT0(CLOSETIME(0))-3) or not(ISLASTBAR);
MYholding0:HOLDING;//此处时的holding始终都是MYholding的结果.
SELLSHORT(pk and HOLDING<0,HOLDING,MARKET);//因为是最新的一根k,平仓条件不成立所以理论持仓不会有任何动作
MYholding1:HOLDING;//仓位探针1
BUY(KD AND MYholding=0,1,LIMITR,o+2*MINDIFF);// 在最新k上,之前没有理论持仓MYholding=0.满足开仓条件。执行开仓动作。(实际账户跟着下单)
MYholding2:HOLDING;//仓位探针2 //holding=1
sell(pd and holding>0,HOLDING,MARKETR); //因为是最新一根k上,pd不成立。所以不会执行平多
MYholding3:HOLDING;//仓位探针3 //holding=1
buySHORT(KK AND MYholding=0,1,LIMITR,o-2*MINDIFF); //此时虽然满足开空的条件,但是因为前面开多条件成立,此时的holding=1,所以不会触发开空动作。
MYholding4:HOLDING;//仓位探针4 holding=1
第二节点状态时:
当这个k线走完时,它变成了历史k线。
//open=20215 h=20245 l=20200 变动价位是5
MYholding:HOLDING;//上根k上的holding结果是0 ,此处和它作为最新k时。执行的结果是一致的。(由原来的倒数第二根,现在是倒数第三根的holding得到的)
KD:H>O+MINDIFF;//20245>20215+5 成立
kk:l<o-MINDIFF;// 20200<20215-5 成立
//此时,因为不是最新k上了,平仓条件恒成立。
pd:(ISLASTBAR and TIMETOT0(DYNAINFO(207))>TIMETOT0(CLOSETIME(0))-3) or not(ISLASTBAR);
pk:(ISLASTBAR and TIMETOT0(DYNAINFO(207))>TIMETOT0(CLOSETIME(0))-3) or not(ISLASTBAR);
MYholding0:HOLDING;//此处时的holding始终都是MYholding的结果.此处与它是最后一根k上的结果一致不会变化。
SELLSHORT(pk and HOLDING<0,HOLDING,MARKET);//虽然PK成立,但是HOLDING=0,所以不执行
MYholding1:HOLDING;//仓位探针1 HOLDING=0
BUY(KD AND MYholding=0,1,LIMITR,o+2*MINDIFF);// 在倒数第二根k上,KD条件成立,此时MYholding=0也成立执行图表理论开多动作。(此处因为是历史k线,不是最新k,它只会标记理论开仓信号,但是holding的值一样会发生变化)
MYholding2:HOLDING;//仓位探针2 //holding=1
sell(pd and holding>0,HOLDING,MARKETR); //此处pd成立,holding>0成立,执行理论平多(这个位置,在最新k上时是不成立的。但是现在成立了)
MYholding3:HOLDING;//仓位探针3 //holding=0
buySHORT(KK AND MYholding=0,1,LIMITR,o-2*MINDIFF); //在倒数第二根k上,KK条件成立,而MYholding=0也成立,执行图表理论开空动作,holding=-1
MYholding4:HOLDING;//仓位探针4 holding=-1
第三节点状态时:
那么在经过上面两个k的执行后,此时在最新k上,
//MYholding:HOLDING;//等于-1。
//我们依旧认为开高低三个价格的差值依旧大于1个变动价位以上。
MYholding:HOLDING;//由第二节点执行结果得到,此处为-1.
KD:H>O+MINDIFF;//20245>20215+5 成立
kk:l<o-MINDIFF;// 20200<20215-5 成立
//此时,因为又不是最新k上了,平仓条件恒成立。
pd:(ISLASTBAR and TIMETOT0(DYNAINFO(207))>TIMETOT0(CLOSETIME(0))-3) or not(ISLASTBAR);
pk:(ISLASTBAR and TIMETOT0(DYNAINFO(207))>TIMETOT0(CLOSETIME(0))-3) or not(ISLASTBAR);
MYholding0:HOLDING;//此处时的holding始终都是MYholding的结果.此处与它是最后一根k上的结果一致不会变化。
SELLSHORT(pk and HOLDING<0,HOLDING,MARKET);//PK成立,HOLDING=-1,所以执行理论平仓
MYholding1:HOLDING;//仓位探针1 HOLDING=0
BUY(KD AND MYholding=0,1,LIMITR,o+2*MINDIFF);// 在此时,KD条件成立,而此时MYholding=-1不成立,不执行
MYholding2:HOLDING;//仓位探针2 //holding=0
sell(pd and holding>0,HOLDING,MARKETR); //无理论持仓可平。不执行
MYholding3:HOLDING;//仓位探针3 //holding=0
buySHORT(KK AND MYholding=0,1,LIMITR,o-2*MINDIFF); //KK成立,但是MYholding=-1不成立,所以也不执行
MYholding4:HOLDING;//仓位探针4 holding=0。
随着开高低三个价格的变化。这些执行状态的变化会交替出现 ,使得最新k上出现开多或者开空的理论信号,
如果:你是走完k线模式,那么下单时机是当个k线走完下根k线生成时,就可能会出现开多开空同时出现即:
MYholding:HOLDING;//如果上根k的holding=0.
KD:H>O+MINDIFF;//成立
kk:l<o-MINDIFF;// 成立
//此时,此刻计算时,它已经不是最新k,平仓条件开始成立。
pd:(ISLASTBAR and TIMETOT0(DYNAINFO(207))>TIMETOT0(CLOSETIME(0))-3) or not(ISLASTBAR);
pk:(ISLASTBAR and TIMETOT0(DYNAINFO(207))>TIMETOT0(CLOSETIME(0))-3) or not(ISLASTBAR);
SELLSHORT 不执行
BUY执行 执行
sell 执行 执行
buyshort 执行
从而造成实际账户中看到的所谓锁仓。
|
|