等级: 新手上路
- 注册:
- 2021-11-13
- 曾用名:
|
请老师帮忙写下完整的代码,实在是小白一枚,折腾了好久没做出来。有经验的师兄也可以有偿代写;
下面是原始布林交易系统,如何再增加MACD强弱指标,只有布林线处于上轨,并回调到中轨只开多,上碰到上轨线平多50%,当布林线处于下轨,只开空和平空;时间周期:半小时与日线共振开仓;
//中间变量
INPUT:M(50,5,300,30),N(1.25,0.1,10,0.1),D(30,1,100,1),SS(1,1,10000,1);
VARIABLE:X:=50;
MID:= MA(CLOSE,M);//布林中轨
UPPER:=MID + N*STD(CLOSE,M);//布林上轨
LOWER:=MID - N*STD(CLOSE,M);//布林下轨
CYC:=ENTERBARS+1,NOAXIS;//开仓至今的周期数
HC30:=REF(HHV(C,D),1);//30周期收盘价高点
LC30:=REF(LLV(C,D),1);//30周期收盘价低点
手数:=SS;
出场MA:=MA(CLOSE,IF(HOLDING<>0,IF(CYC>=40,10,51-CYC),50));
//交易条件
开多平空条件:=C>HC30 AND H>REF(UPPER,1);//收盘价大于30周期收盘价最高值,且最高价上穿上轨
开空平多条件:=C<LC30 AND L<REF(LOWER,1);//收盘价小于30周期收盘价最高值,且最低价下穿下轨
多头出场条件:=C<出场MA AND 出场MA<UPPER;
空头出场条件:=C>出场MA AND 出场MA>LOWER;
//交易系统
多头出场:SELL(多头出场条件 AND HOLDING>0,手数,LIMITR,C);
空头出场:SELLSHORT(空头出场条件 AND HOLDING<0,手数,LIMITR,C);
平空:SELLSHORT(开多平空条件 AND HOLDING<0,手数,LIMITR,C);
平多:SELL(开空平多条件 AND HOLDING>0,手数,LIMITR,C);
开空:BUYSHORT(开空平多条件 AND HOLDING>=0,手数,LIMITR,C);
开多:BUY(开多平空条件 AND HOLDING<=0,手数,LIMITR,C);
//注意先平后开原则
|
|