國外知名策略-dual thrust策略源碼[開拓者公式]
- 內(nèi)容:
dual thrust是八幾年一個老外寫的,目前在自動化交易里應(yīng)該還能排到前三吧。
這個系統(tǒng)核心相當(dāng)簡單,我一直都相信越簡單越有效,而且作者的思想很有借鑒之處,為方便與大家分享,我重寫了一個TB版本。
原形很簡單,很多人經(jīng)驗都比我豐富,一定能擴(kuò)充不少,如加入止損,止贏,加入資金/風(fēng)險管理,改成日內(nèi)系統(tǒng)等,從而打造成為自己的一個利器。
寫在前面的話:
從看dual thrust的原形到重寫TB代碼,用時大概半小時,因為我本人是從事研發(fā)工作,代碼從構(gòu)思開始就會首先考慮邏輯思維的嚴(yán)密和健壯性,但也很可能有疏忽之處,比如這個系統(tǒng)我就沒有加入漲跌停和最小幅度控制(我只想原汁原味重寫,其它的大家自己擴(kuò)充吧),所以大家在提問的時候,不要先入為主的認(rèn)為我會犯很多低級錯誤,一定要認(rèn)真讀過代碼,并對TB機(jī)制有足夠的了解,這也是對我的尊重吧,坦白說,前幾次發(fā)分享系統(tǒng),看到大家的回復(fù),我有些失落。
- TB源碼
- //------------------------------------------------------------------------
- // 簡稱: dual_thrust
- // 名稱:
- // 類別: 公式應(yīng)用
- // 類型: 用戶應(yīng)用
- // 輸出: 穿堂風(fēng)
- //------------------------------------------------------------------------
- Params
- Numeric K1(0.5);
- Numeric K2(0.5);
- Numeric Mday(1);
- Numeric Nday(1);
- Numeric lots(1);
- Numeric offset(0);
- Vars
- Numeric BuyRange(0);
- Numeric SellRange(0);
- Numeric BuyTrig(0);
- Numeric SellTrig(0);
- Numeric HH;
- Numeric LL;
- Numeric HC;
- Numeric LC;
- Numeric i_offset;
- Numeric BuyPosition;
- Numeric SellPosition;
- Begin
- If(CurrentBar > 44*Max(Mday,Nday))//使用的是5分鐘周期,其它的周期自己做相應(yīng)修改
- {
- i_offset = offset*MinMove*PriceScale;
- 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))
- {
- SellRange = HH - LC;
- }
- Else
- {
- SellRange = HC - LL;
- }
- HH = Highest(HighD(1),Nday);
- HC = Highest(CloseD(1),Nday);
- LL = Lowest(LowD(1),Nday);
- LC = Lowest(CloseD(1),Nday);
- If((HH - LC) >= (HC - LL))
- {
- BuyRange = HH - LC;
- }
- Else
- {
- BuyRange = HC - LL;
- }
- BuyTrig = K1*BuyRange;
- SellTrig = K2*SellRange;
- BuyPosition = OpenD(0)+BuyTrig;
- SellPosition = OpenD(0)-SellTrig;
- PlotNumeric("BuyPosition",BuyPosition);
- PlotNumeric("SellPosition",SellPosition);
- If(MarketPosition == 0)
- {
- If(High>=BuyPosition)
- {
- Buy(lots,Max(Open,BuyPosition)+i_offset);
- Return;
- }
- If(Low<=SellPosition)
- {
- SellShort(lots,Min(Open,SellPosition)-i_offset);
- Return;
- }
- }
- If(MarketPosition == -1)
- {
- If(High>=BuyPosition)
- {
- Buy(lots,Max(Open,BuyPosition)+i_offset);
- Return;
- }
- }
- If(MarketPosition == 1)
- {
- If(Low<=SellPosition)
- {
- SellShort(lots,Min(Open,SellPosition)-i_offset);
- Return;
- }
- }
- }
- End
- //------------------------------------------------------------------------
- // 編譯版本 GS2010.12.08
- // 用戶版本 2011/07/24 02:14
- // 版權(quán)所有 穿堂風(fēng)
- // 更改聲明 TradeBlazer Software保留對TradeBlazer平臺
- // 每一版本的TrabeBlazer公式修改和重寫的權(quán)利
- //------------------------------------------------------------------------
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫!(不貴!點擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容