以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp)
-- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4)
---- 老师帮我写个策略,谢谢 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=145238)
|
-- 作者:xhbsy007
-- 发布时间:2016/12/25 17:29:50
-- 老师帮我写个策略,谢谢
老师:请帮我把下面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);
|
-- 作者:xhbsy007
-- 发布时间:2016/12/25 17:36:17
--
开仓条件见图此主题相关图片如下:截图01.jpg
[此贴子已经被作者于2016-12-25 17:36:31编辑过]
|
-- 作者:xhbsy007
-- 发布时间:2016/12/25 17:37:32
--
见图
此主题相关图片如下:截图02.jpg
|
-- 作者:jinzhe
-- 发布时间:2016/12/26 9:43:10
--
那么原来代码里面的开平仓条件,还要保留吗?
|
-- 作者:xhbsy007
-- 发布时间:2016/12/26 20:29:50
--
老师请看图解 此主题相关图片如下:截图01.jpg
|
-- 作者:xhbsy007
-- 发布时间:2016/12/26 20:35:51
--
也就是说:2个图谁先发出开仓信号,另外一个图的开仓方向若一致,就开仓。,,
平仓:2图 只要有任意一个图,有平仓信号发生,就立即平仓。。(不需要2图同方向发生)
|
-- 作者:jinzhe
-- 发布时间:2016/12/27 9:14:23
--
也就是开多开空条件只要加一个DDII大于0还是小于0的条件?
|
-- 作者:xhbsy007
-- 发布时间:2016/12/27 22:02:35
--
老师:我整理了下,您看下:
(1)附图DDII 大于0 ==(死叉后绿色箭头出现后,一直到DDII小于零 的区域==都属于开空有效区域,这时候主图若有开空信号,立即市价开空单);(2)附图DDII 小于0 ====(金叉红色箭头出现后,一直到DDII大于零的区域==都属于开多有效区域,这时候主图若有开多信号,立即市价开多单);
(3)主图开多信号出现,进入开多有效区域===这时候附图DDII小于零轴金叉红箭头出现,立即市价开多单; (4)主图开空信号出现,进入开空有效区域===这时候附图DDII大于零轴死叉绿箭头出现,立即市价开空单;
|
-- 作者:xhbsy007
-- 发布时间:2016/12/27 22:05:39
--
老师:我整理了下,您看下:
开仓: (1)附图DDII 大于0 ==(死叉后绿色箭头出现后,一直到DDII小于零 的区域==都属于开空有效区域,这时候主图若有开空信号,立即市价开空单);(2)附图DDII 小于0 ====(金叉红色箭头出现后,一直到DDII大于零的区域==都属于开多有效区域,这时候主图若有开多信号,立即市价开多单);
(3)主图开多信号出现,进入开多有效区域===这时候附图DDII小于零轴金叉红箭头出现,立即市价开多单; (4)主图开空信号出现,进入开空有效区域===这时候附图DDII大于零轴死叉绿箭头出现,立即市价开空单;
平仓: 主图平仓信号出现 OR 开多单后附图出现绿箭头 OR 开空单后附图出现红箭头
|
-- 作者:jinzhe
-- 发布时间:2016/12/28 8:52:42
--
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
|