INPUT : K1(0.24,0.01,0.9,0.01);
INPUT :K2(0.23,0.01,0.9,0.01);
INPUT : Mday(1);
INPUT : Nday(1);
INPUT : lots(1);
INPUT : offset(5);
VARIABLE : BuyRange=0;
VARIABLE :SellRange=0;
VARIABLE : BuyTrig=0;
VARIABLE : SellTrig=0;
VARIABLE : HH=0;
VARIABLE : LL=0;
VARIABLE : HC=0;
VARIABLE : LC=0;
VARIABLE : i_offset=0;
VARIABLE : BuyPosition=0;
VARIABLE :SellPosition=0;
CYC:=BARSLAST(DATE<>REF(DATE,1))+1;
//If (BARPOS < 44*Max(Mday,Nday)) then GOTO FFE;//使用的是5分钟周期,其它的;周期自己做相应修改
i_offset=offset*MINDIFF;// i_offset = offset*MinMove*PriceScale;
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);
HH:=HHV(昨高,Mday);//N日HIGH的最高价
HC:=HHV(昨收,Mday);//N日CLOSE的最高价
LC:=LLV(昨收,Mday);//N日CLOSE的最低价
LL:=LLV(昨低,Mday);//N日LOW的最低价
SellRange:=MAX(HH-LL,HC-LL);//RANGE
HH:=HHV(昨高,Nday);//N日HIGH的最高价
HC:=HHV(昨收,Nday);//N日CLOSE的最高价
LC:=LLV(昨收,Nday);//N日CLOSE的最低价
LL:=LLV(昨低,Nday);//N日LOW的最低价
BuyRange:=MAX(HH-LL,HC-LL);//RANGE
BuyTrig: = K1*BuyRange;
SellTrig: = K2*SellRange;
开盘价:=VALUEWHEN(CYC=1,OPEN);
BuyPosition:= 开盘价+BuyTrig;
SellPosition:= 开盘价-SellTrig;
上轨: BuyPosition;
下轨:SellPosition;
//partline(1,BuyPosition,colorred);
//partline(1,SellPosition,colorgreen);
开多条件:=h>BuyPosition AND HOLDING=0;
开空条件:=l<SellPosition AND HOLDING=0;
//交易系统
开多:BUY(开多条件 ,lots,THISCLOSE);
开空:BUYSHORT(开空条件 ,lots,THISCLOSE);
{开多:BUY(开多条件 AND CYC>1,lots,MARKET);
开空:BUYSHORT(开空条件 AND CYC>1,lots,MARKET);
}
开多条件2:=h>BuyPosition AND HOLDING=-1;
开空条件2:=l<SellPosition AND HOLDING=1;
//交易系统
开多2:BUY(开多条件2 ,lots,THISCLOSE);
开空2:BUYSHORT(开空条件2 ,lots,thisclose);
//FFE@ EXIT
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值
有历史信号出现。不过因为你这两个条件限制,并且没有平仓语句,所以他们只会触发一个开仓条件。
开多条件:=h>BuyPosition AND HOLDING=0;
开空条件:=l<SellPosition AND HOLDING=0;
这个条件不符合图表开仓机制。开仓前先平反手仓位
开多条件2:=h>BuyPosition AND HOLDING=-1;
开空条件2:=l<SellPosition AND HOLDING=1;