
等级: 新手上路
- 注册:
- 2023-8-7
- 曾用名:
|
我现在的系统是20日均线在30日上,同时收盘价15日新高开多。20日均线在30日均线下,同时收盘价创15日新低,开空。每次止损为总资金的1.5%,开仓手数为总资金*1.5%/每手乘数/2/ATR,止盈和止损都一样,
开仓后最高点反向2倍ATR止盈止损。开仓与平仓以收盘价为准,盘中开平仓信号不算。
另外图标上需要画出20日均线,30日均线, 开仓后的移动止损线, 开仓点与平仓点之间连线。
目前的代码如下:不太完整,希望老师帮忙改改。
input:a(20,1,30,1),b(30,1,50,1),n(2,1,4,1),r(0.015,0.005,1,0.005),m(15,1,999,1);
TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TR1,14);//atr
MA1:=MA(CLOSE,a);//短期均线
MA2:=MA(CLOSE,b);//长期均线
上轨:REF(HHV(CLOSE,m),1);//n日最高价
下轨:REF(LLV(CLOSE,m),1);//n日最低价
zs:=n*ATR*MULTIPLIER;//2倍atr*品种杠杆=暴露风险
cc:=(ASSET*r)/zs;//权益百分比/暴露风险
PosNum:=cc;;//仓位
//交易条件
开多条件:=ma1>ma2 and CLOSE>上轨 and holding=0;//短期均线大于长期均线且最高价大于上轨
开空条件:=ma1<ma2 and CLOSE<下轨 and holding=0;//短期均线小于长期均线且最低价小于下轨
平多条件:=l<(hhv(h,enterbars+1)-2*atr) and holding>0;//最低价<开仓以来最高价减去2*atr的价格
平空条件:=h>(llv(h,enterbars+1)+2*atr) and holding<0;//最低价<开仓以来最低价加上2*atr的价格
//交易系统
开多:buy(开多条件,PosNum,MARKET);
开空:buyshort(开空条件,PosNum,MARKET);
平多:sell(平多条件,0,MARKET);
平空:sellshort(平空条件,0,MARKET);
|
|