老师:请帮我把下面2段代码结合实现图示开仓,谢谢!
//主图策略:
//中间变量
INPUT:X(300,1,1000,1);
X周期高点:ref(hhv(C,X),1),LINEDOT;
X周期低点:ref(LLV(C,X),1),LINEDOT;
手数:=1;
开多平空条件:=CROSS(H,X周期高点) and holding<=0;
开空平多条件:=CROSS(X周期低点,L) and holding>=0;
DXX:=IF(OPEN>=X周期高点,open,X周期高点);
KNN:=IF(OPEN<=X周期低点,open,X周期低点);
//执行下单-------------------------
平空:sellshort(开多平空条件 and holding<0, 手数,limitr,DXX);
平多:sell(开空平多条件 and holding>0,手数,limitr,KNN);
开空:buyshort(开空平多条件 and holding=0,手数,limitr,KNN);
开多:buy(开多平空条件 and holding=0, 手数,limitr,DXX);
//附图
N:=26; N1:=55; M:=13;M1:=9;
DMZ:=IF((H+L)<=(REF(H,1)+REF(L,1)),0,MAX(ABS(H-REF(H,1)),ABS(L-REF(L,1))));
DMF:=IF((H+L)>=(REF(H,1)+REF(L,1)),0,MAX(ABS(H-REF(H,1)),ABS(L-REF(L,1))));
DIZ:=SUM(DMZ,N)/(SUM(DMZ,N)+SUM(DMF,N));
DIF:=SUM(DMF,N)/(SUM(DMF,N)+SUM(DMZ,N));
DDI:=DIZ-DIF,COLORSTICK;
ADDI:SMA(DDI,N1,M);
AD:MA(ADDI,M1);
DDII:SMA(DDI,9,1),COLORSTICK;
DRAWICON((CROSS(ADDI,AD) AND DDII<0),AD*0.998,4);
DRAWICON((CROSS(AD,ADDI) AND DDII>0),AD*1.002,5);
开仓条件见图

此主题相关图片如下:截图01.jpg

[此贴子已经被作者于2016-12-25 17:36:31编辑过]
也就是说:2个图谁先发出开仓信号,另外一个图的开仓方向若
一致,就开仓。,,
平仓:2图 只要有任意一个图,有平仓信号发生,就立即平仓。。(不需要2图同方向发生)
也就是开多开空条件只要加一个DDII大于0还是小于0的条件?
老师:我整理了下,您看下:
(1)附图DDII 大于0 ==(死叉后绿色箭头出现后,一直到DDII小于零 的区域==都属于开空有效区域,这时候主图若有开空信号,立即市价开空单);
(2)附图DDII 小于0 ====(金叉红色箭头出现后,一直到DDII大于零的区域==都属于开多有效区域,这时候主图若有开多信号,立即市价开多单);
(3)主图开多信号出现,进入开多有效区域===这时候附图DDII小于零轴金叉红箭头出现,立即市价开多单;
(4)主图开空信号出现,进入开空有效区域===这时候附图DDII大于零轴死叉绿箭头出现,立即市价开空单;
老师:我整理了下,您看下:
开仓:
(1)附图DDII 大于0 ==(死叉后绿色箭头出现后,一直到DDII小于零 的区域==都属于开空有效区域,这时候主图若有开空信号,立即市价开空单);
(2)附图DDII 小于0 ====(金叉红色箭头出现后,一直到DDII大于零的区域==都属于开多有效区域,这时候主图若有开多信号,立即市价开多单);
(3)主图开多信号出现,进入开多有效区域===这时候附图DDII小于零轴金叉红箭头出现,立即市价开多单;
(4)主图开空信号出现,进入开空有效区域===这时候附图DDII大于零轴死叉绿箭头出现,立即市价开空单;
平仓:
主图平仓信号出现 OR 开多单后附图出现绿箭头 OR 开空单后附图出现红箭头
INPUT:X(300,1,1000,1);
X周期高点:ref(hhv(C,X),1),LINEDOT;
X周期低点:ref(LLV(C,X),1),LINEDOT;
手数:=1;
开多平空条件:=CROSS(H,X周期高点) and holding<=0;
开空平多条件:=CROSS(X周期低点,L) and holding>=0;
DXX:=IF(OPEN>=X周期高点,open,X周期高点);
KNN:=IF(OPEN<=X周期低点,open,X周期低点);
DDII:=stkindi('','YY.ddii',0,datatype);
//执行下单-------------------------
平空:sellshort((开多平空条件 or ddii>0 ) and holding<0, 手数,limitr,DXX);
平多:sell((开空平多条件 or ddii<0 ) and holding>0,手数,limitr,KNN);
开空:buyshort(开空平多条件 and holding=0 and ddii<0,手数,limitr,KNN);
开多:buy(开多平空条件 and holding=0 and ddii>0, 手数,limitr,DXX);
注意你的幅图策略命名为YY