 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
- FireScript
|
VARIABLE:LSETUP:=0,SSETUP:=0;
INPUT:MOMLEN(10,1,1000,1),AVGLEN(5,1,1000,1),ATRLEN(10,1,1000,1),AVGLEN(10,1,1000,1),ATRPCNT(10,1,1000,1),SETUPLEN(10,1,1000,1);//参数
INITMONEY:=VALUEWHEN(BARPOS=1,ASSET);
RISK:=ASSET<=INITMONEY*(1-10/100);//风控条件:本金风险率超过10%
RISK,CLOSEOUT;//达到风控条件,模型清仓且不再开仓
MOMVALUE:=C-REF(C,MOMLEN);
VWM:=EMA(VOL*MOMVALUE,AVGLEN);//定义成交量加权为VWM
TRUEHIGH1:=IF(HIGH>REF(C,1),HIGH,REF(C,1));
TRUELOW1:=IF(LOW<=REF(C,1),LOW,REF(C,1));
TRUERANGE1:=IF(ISLASTBAR,H-L,TRUEHIGH1-TRUELOW1);
AATR:=MA(TRUERANGE1,ATRLEN);//定义波动率
BULLSETUP:=CROSS(VWM,0);//UWM上穿零轴定义多头势
BEARSETUP:=CROSS(0,VWM);//UWM下穿零轴定义空头势
IF BULLSETUP THEN LSETUP:=0; ELSE LSETUP:=LSETUP+1;
LEPRICE:=VALUEWHEN(BULLSETUP,C);
IF BEARSETUP THEN SSETUP:=0; ELSE SSETUP:=SSETUP+1;
SEPRICE:=VALUEWHEN(BEARSETUP,C);
//系统入场
//当多头势满足并且在SETUPLEN的BAR数目内,当价格达到入场价格后,做多
if NOT(RISK)&&BARPOS>AVGLEN&&H>=REF(LEPRICE,1)+((ATRPCNT/10)*REF(AATR,1))&&REF(LSETUP,1)<=SETUPLEN &&LSETUP>=1 then buy(holding=0,1,market);
//系统出场
if BEARSETUP then sell(1,holding,market);
//系统入场
//当空头势满足并且在SETUPLEN的BAR数目内,当价格达到入场价格后,做空
if NOT(RISK)&&BARPOS>AVGLEN&&L<=REF(SEPRICE,1)-((ATRPCNT/10)*REF(AATR,1))&&REF(SSETUP,1)<=SETUPLEN&&SSETUP>=1 then buyshort(holding=0,1,market);
//系统出场
sellshort(BULLSETUP,holding,market);
//BKVOL>0&&CLOSE<=BKHIGH*(1-10/100),CLOSEOUT;//多单,开多之后的高点为基准回撤10%止损
//SKVOL>0&&CLOSE>=SKLOW*(1+10/100),CLOSEOUT;//空单,开空之后的低点为基准回撤10%止损
//
1.
INPUT:MOMLEN(10,1,1000,1),AVGLEN(5,1,1000,1),ATRLEN(10,1,1000,1),AVGLEN(10,1,1000,1),ATRPCNT(10,1,1000,1),SETUPLEN(10,1,1000,1);//参数
参数部分你自行修正下,你代码里没有体现这些参数的默认值我随便写的,只是为了编译方便
2.
CLOSEOUT
这个没查到说明。 |
|