http://www.baidu.com/s?ct=0&ie=gb23...8&tn=baidu&wd=%22Dual+Thrust%22++%C6%DA%BB%F5 一共五个帖子,三个是这个帖子本身,另外一个是假的(XH),还有是真的。 已经有人写出来了(跟楼主的表达好像有所出入,需要对比)
[LegacyColorValue = TRUE]; Inputs: K1(.5),K2(.5),Mday(1),Nday(1); Vars: BuyRange(0), SellRange(0); Vars: BuyTrig(0),SellTrig(0); Vars: HH(0),LL(0),HC(0),LC(0); If CurrentBar > 1 Then Begin HH = Highest(High,Mday); HC = Highest(Close,Mday); LL = Lowest(Low,Mday); LC = Lowest(Close,Mday); If (HH - LC) >= (HC - LL) Then Begin SellRange = HH - LC; End Else Begin SellRange = HC - LL; End; HH = Highest(High,Nday); HC = Highest(Close,Nday); LL = Lowest(Low,Nday); LC = Lowest(Close,Nday); If (HH - LC) >= (HC - LL) Then Begin BuyRange = HH - LC; End Else Begin BuyRange = HC - LL; End; BuyTrig = K1*BuyRange; SellTrig = K2*SellRange; If MarketPosition = 0 Then Begin Buy at Open of next bar + BuyTrig Stop; Sell at Open of next bar - SellTrig Stop; End; If MarketPosition = -1 Then Begin Buy at Open of next bar + Buytrig Stop; End; If MarketPosition = 1 Then Begin Sell at Open of next bar - SellTrig Stop; End; End;
这个白糖的系统用TS写出来就几句话: Inputs: k(0.7); if MarketPosition = 0 then begin buy next bar at open of tomorrow + k*MaxList(H-C, C-L) stop; sellshort next bar at open of tomorrow - k*MaxList(H-C, C-L) stop; end; if MarketPosition = 1 then sellshort next bar at open of tomorrow - k*MaxList(H-C, C-L) stop; if MarketPosition = -1 then buy next bar at open of tomorrow + k*MaxList(H-C, C-L) stop; TB的设计思路与TS不一样,没搞通。哪位高手会TB?
没问题,不过这两天我在为测试程序中建立头寸的K线上引入更新时间周期进行测试,我发现之前对K值的选择以及ATR和THRUST的结果有点变化,等我这两天测完再一并贴上来 我在使用ATR上和THRUST的思路有点像,都是对某个价格的触发,只不过我不是SAR,还是加了止损了
以下是zzhang朋友编写的TB代码,请参考: Params Numeric K1(0.5); Numeric K2(0.5); Numeric Mday(1); Numeric lots(1); //交易手数 Vars Numeric BuyRange(0); Numeric SellRange(0); Numeric BuyTrig(0); Numeric SellTrig(0); Numeric HH(0); Numeric LL(0); Numeric HC(0); Numeric LC(0); Begin HH = Highest(HighD(1),Mday); HC = Highest(CloseD(1),Mday); LL = Lowest(LowD(1),Mday); LC = Lowest(CloseD(1),Mday); If((HH - LC) >= (HC - LL)) BuyRange = HH - LC; else BuyRange = HC - LL; SellRange=BuyRange; BuyTrig = K1*BuyRange; SellTrig = K2*SellRange; If(MarketPosition !=1 && High>=(OpenD(0)+BuyTrig)) Buy(lots,OpenD(0)+BuyTrig); // 多头建仓 If(MarketPosition !=-1 && Low<=(OpenD(0)-SellTrig)) SellShort(lots,OpenD(0)-SellTrig); // 空头建仓 End 我这儿无法使用TB,没有验证过。