以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=184684) |
-- 作者:wz888999 -- 发布时间:2021/3/14 19:48:53 -- [求助]老师您好,问题请教 麻烦老师修改:信号过滤,盘整、震荡行情不开仓。万分感谢。 //多单止盈平仓条件:成交量的MA3大于100000 平多仓 //空单止盈平仓条件:成交量的MA3大于100000 平空仓 HH:=HHV(HIGH,30)/5+HHV(HIGH,30)/5+HHV(HIGH,30)/5+HHV(HIGH,5)/120+HHV (HIGH,60)/5; LL:=LLV(LOW,20)/5+LLV(LOW,20)/5+LLV(LOW,20)/5+LLV(LOW,5)/5+LLV(LOW,30)/5; H1:= IF(H<REF(H,10)&&REF(H,20)<REF(H,2),REF(H,2),0); L1:= IF(L>REF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0); H2:=VALUEWHEN(H1>0,H1); L2:=VALUEWHEN(L1>0,L1); K1:=IF(CLOSE>H2,-3,IF(CLOSE<L2,1,0)); K2:=VALUEWHEN(K1<>0,K1); GG:=IF(K2=1,H2,L2); GG1:=VALUEWHEN(ISLASTBAR,GG); TMP1:=K2; W1:=K2; W2:=OPEN-CLOSE; HT:=IF(OPEN>CLOSE,OPEN,CLOSE); LT:=IF(OPEN<CLOSE,OPEN,CLOSE); KK:=BARSLAST(CROSS(TMP1,0)); DD:=BARSLAST(CROSS(0,TMP1)); STICKLINE(DD<KK,C,O,8,0),COLORRED; STICKLINE(DD<KK,H,L,0,0),COLORRED; STICKLINE(DD>KK,C,O,8,0),COLORGREEN; STICKLINE(DD>KK,H,L,0,0),COLORGREEN; ss:=2;//手数 jc:CROSS(0,TMP1); sc:CROSS(TMP1,0); if ref(jc,0) then begin sellshort(holding<0,holding,MARKETR);//平空 buy(holding=0,ss,MARKETR); // 过滤信号 盘整、震荡行情 不开仓 end if ref(sc,0) then begin sell(holding>0,holding,MARKETR);//平多 buyshort(holding=0,ss,MARKETR);// 过滤信号 盘整、震荡行情 不开仓 end INPUT:M1(5,5,10,1),M2(10,10,30,1),M3(20,1,50,1); VOLUME:VOL,; MA1:MA(VOL,M1); MA2:MA(VOL,M2); MA3:MA(VOL,M3); //多单止盈条件:成交量的MA3大于100000 平多仓 //空单止盈条件:MA3大于100000 平空仓 |
-- 作者:FireScript -- 发布时间:2021/3/15 9:31:19 -- “信号过滤,盘整、震荡行情不开仓。万分感谢。”这样的描述是无法编写成代码的。 能写出代码的描述必须是有一个完整的详细的逻辑和定义的。 比如说盘整,举个例子 多少周期内价格波动在多少幅度内。像这样详细定义好才行。
|
-- 作者:wz888999 -- 发布时间:2021/3/15 13:04:43 -- 老师,暂不要过滤信号,麻烦您编写止盈平仓条件,谢谢老师 //多单止盈平仓条件:成交量的MA3大于100000 平多仓 //空单止盈平仓条件:成交量的MA3大于100000 平空仓 //加仓条件, 平多仓的价格,如果在红色k线区间,回落百分之0.005,实时加多仓 平空仓的价格,如果在绿色k线区间,反弹百分之0.005,实时加空仓
|
-- 作者:FireScript -- 发布时间:2021/3/15 13:37:07 -- “平多仓的价格,如果在红色k线区间,回落百分之0.005,实时加多仓” 这个平多仓的价格 是指上次平仓价格。相当于你现在还有获取到上次平多时候的价格?
|
-- 作者:wz888999 -- 发布时间:2021/3/15 13:53:31 -- 是的,上次平仓的价格 |
-- 作者:FireScript -- 发布时间:2021/3/15 14:14:11 -- 当前价格和上次平仓价格相比,回落或者上涨一定百分比就加仓,加仓次数不限? |
-- 作者:wz888999 -- 发布时间:2021/3/15 14:22:56 -- 是的,不限制, |
-- 作者:wz888999 -- 发布时间:2021/3/15 14:30:10 -- 谢谢老师,能不能达到加仓条件就看k线与价格的变化了,老师辛苦了,感谢 |
-- 作者:FireScript -- 发布时间:2021/3/15 14:31:57 -- HH:=HHV(HIGH,30)/5+HHV(HIGH,30)/5+HHV(HIGH,30)/5+HHV(HIGH,5)/120+HHV (HIGH,60)/5; LL:=LLV(LOW,20)/5+LLV(LOW,20)/5+LLV(LOW,20)/5+LLV(LOW,5)/5+LLV(LOW,30)/5; H1:= IF(H<REF(H,10)&&REF(H,20)<REF(H,2),REF(H,2),0); L1:= IF(L>REF(L,2)&&REF(L,1)>REF(L,2),REF(L,2),0); H2:=VALUEWHEN(H1>0,H1); L2:=VALUEWHEN(L1>0,L1); K1:=IF(CLOSE>H2,-3,IF(CLOSE<L2,1,0)); K2:=VALUEWHEN(K1<>0,K1); GG:=IF(K2=1,H2,L2); GG1:=VALUEWHEN(ISLASTBAR,GG); TMP1:=K2; W1:=K2; W2:=OPEN-CLOSE; HT:=IF(OPEN>CLOSE,OPEN,CLOSE); LT:=IF(OPEN<CLOSE,OPEN,CLOSE); KK:=BARSLAST(CROSS(TMP1,0)); DD:=BARSLAST(CROSS(0,TMP1)); STICKLINE(DD<KK,C,O,8,0),COLORRED; STICKLINE(DD<KK,H,L,0,0),COLORRED; STICKLINE(DD>KK,C,O,8,0),COLORGREEN; STICKLINE(DD>KK,H,L,0,0),COLORGREEN; VARIABLE:p1:=0,p2:=0;//这2个全局变量,记录最近一次的平多和平空的价格 ss:=2;//手数 jc:CROSS(0,TMP1); sc:CROSS(TMP1,0); if ref(jc,0) then begin sellshort(holding<0,holding,MARKETR);//平空 p2:=EXITPRICE; buy(holding=0,ss,MARKETR); // 过滤信号 盘整、震荡行情 不开仓 end if ref(sc,0) then begin sell(holding>0,holding,MARKETR);//平多 p1:=EXITPRICE; buyshort(holding=0,ss,MARKETR);// 过滤信号 盘整、震荡行情 不开仓 end INPUT:M1(5,5,10,1),M2(10,10,30,1),M3(20,1,50,1); VOLUME:VOL,; MA1:MA(VOL,M1); MA2:MA(VOL,M2); MA3:MA(VOL,M3); //多单止盈条件:成交量的MA3大于100000 平多仓 多头止盈:sell(vol>ma3,holding,market); //空单止盈条件:MA3大于100000 平空仓 空头止盈:sellshort(ma3>vol,holding,market); //加仓条件, //平多仓的价格,如果在红色k线区间,回落百分之0.005,实时加多仓 //平空仓的价格,如果在绿色k线区间,反弹百分之0.005,实时加空仓 pcd1:(p1-c)/p1<=0.005/100;//最新价比上次平多价格回落0.005% 加仓 pcd2:(c-p2)/p2>=0.005/100;//最新价比上次平多价格上涨0.005% 平仓 多头加仓:buy(DD<KK and pcd1,1,market); 空头加仓:buyshort(DD>KK and pcd2,1,market); 代码如上。但是这个加仓条件太宽松了,基本上会一直加仓的。
|
-- 作者:wz888999 -- 发布时间:2021/3/15 14:37:15 -- 好的,谢谢, |