開拓者 TB一個穩定盈利的日內交易系統代碼
作者:開拓者 TB 來源:cxh99.com 發布時間:2012年11月30日
- 思路內容: 前兩天我發過一篇帖子介紹了hans123系統,今天我給大家來點硬貨,一個實實在在穩定盈利的日內系統,其中還有很大完善空間,由于我學TB剛剛一周多,技術方面還不是很熟練,希望各位程序高手協助我完善系統,我很喜歡國外論壇的那種氛圍,交易高手分享他們的思路和ea雛形,程序高手無償的幫助他們實現他們的想法,在這個過程中相互提高.再此我希望更多高手分享他們系統的源碼,以此來相互提高,讓我們早日超過歐美同行的水平.恩,我以為真正掌握交易之道的人是不怕分享他們的思路和系統的,因為一個失效的系統略加修改就可以成為一個穩定獲利的系統.為了證明這一點我將在接下來的文章中公布一個和這個系統完全相反的系統,你會發現只要調整交易周期和參數,系統就可以穩定獲利.道家說道可道,非常道.名可名,非常名.無,曰天地始.有,曰萬物主.常無,欲觀其妙.常有,欲關其繳.玄之又玄,眾妙之門.用在交易系統上來說就是可以寫出來的系統肯定不是永遠有效的系統,只有掌握了交易之道的人,才能隨著市場變化調整他的交易策略.永遠與道同在.所謂常無,就是要經常拋棄以前的所有的理論和觀念,以客觀觀察市場的奧妙.常有,就是要帶著你以前設計交易系統的經驗和技巧.去審視你現在所用的系統.謹以此篇獻給各位交易市場的新手老手.希望我們大家一起合作,制作出一個完善可靠的交易系統來.就算沒有任何系統經驗的人也來分享一下你們的想法,很多時候新手的一句話也是我靈感的源泉.實在不知道說啥的就幫頂一下吧,此帖能一直置頂我就每周發一個交易系統,呵呵.不廢話了,開始說代碼和思路.
***1基本思路:RangeBreak加入交易時間過濾,多周期趨勢過濾,突破range過濾.Range優化.
參加過高級應用培訓的人應該很熟悉這個系統,這是我在外匯市場用了很久的系統,想移植到國內來,通過搜索找到了培訓的文檔.然后寫了出來,發現效果不是很好,于是我就對其進行了優化,優化的結果還是相當不錯的資金曲線穩定增長,利潤也不小,大家可以自己測試一下.用于股指期貨銅,鋅等品種的15分鐘都是相當不錯的。恩下面敘述一下基本的交易思路。
以昨日震幅為基礎,今日開盤價+N*昨日震幅等于上軌 今日開盤價-昨日震幅*N等于下軌,突破上軌做多突破下軌做空。反之平倉,14點55分平掉所有倉位。N=0.8
已完成優化的思路
1。限制交易時間,最后開倉時間在下午兩點以前(根據觀察接近收盤的突破一般是無效的)
2。限制前一日的最小震幅(根據觀察昨日震幅太小的話會出現很多無效信號)
未完成的交易思路 各位高手前輩不吝賜教協助我完成下哈。
1。根據觀察與大周期趨勢相反的突破一般來說是假突破。限制大周期趨勢方法,日線n周期ma方向.
處理方法:
1.過濾掉所有與大周期趨勢相反的信號
2.所有大周期相反的信號反向操作既原來做空現在做多,原來做多現在做空。
根據我外匯自動交易的經驗處理方法2更加有效,但編程比較復雜希望高手能幫助我完成這兩個思路的編程。
PS:大家有什么進一步優化這個系統的思想也可以提出來我會盡我所能去實現它。
代碼缺陷:
14點55分平倉在15分鐘不能運行,在1分鐘運行正常。不明白為什么,請高手賜教。
有其它缺陷大家也請提出來
具體源碼
//------------------------------------------------------------------------
// 簡稱: RB
// 名稱:15Min RangeBreak
// 類別: 交易指令
// 類型: 其他
// 輸出:
//------------------------------------------------------------------------
Params
Numeric PercentOfRange(0.8);//突破參數N
Numeric ExitOnCloseMins(14.55);//平倉時間
Numeric MinRange(0.2);//最小Range
Numeric LastTradeMins(14.00);//最后交易時間
Numeric BeginTradeMins(9.00);
Numeric Lots(1);
Numeric Stoplossset(1);
Vars
NumericSeries DayOpen;
NumericSeries preDayRange;
NumericSeries HigherAfterEntry;
NumericSeries LowerAfterEntry;
Numeric preDayHigh;
Numeric preDayLow;
Numeric UpperBand;
Numeric LowerBand;
Numeric MyPrice;
Numeric StopLine;
Begin
DayOpen=OpenD(0);
preDayHigh=HighD(1);
preDayLow=LowD(1);
preDayRange=HighD(1)-LowD(1);
UpperBand=DayOpen+preDayRange*PercentOfRange;
LowerBand=Dayopen-preDayRange*PercentOfRange;
If(BarsSinceEntry==1)
{
HigherAfterEntry=AvgEntryPrice;
LowerAfterEntry=HigherAfterEntry;
}Else If(BarsSinceEntry>1)
{
HigherAfterEntry=max (HigherAfterEntry[1],High[1]);
LowerAfterEntry=min(LowerAfterEntry[1],Low[1]);
}
If(Date!=Date[1])
{DayOpen=Open;
preDayRange=preDayHigh-preDayLow;
If(preDayRange<Open*MinRange*0.01)
PreDayRange=Open*MinRange*0.01;
}Else
{
DayOpen=DayOpen[1];
preDayRange=preDayRange[1];
}
If(MarketPosition!=1&&High>=UpperBand&&Time<LastTradeMins/100)
{
Myprice=UpperBand;
If(Open>Myprice)Myprice=Open;
Buy(1,Myprice);
Return;
}
If(MarketPosition!=1&&Low<=LowerBand&&Time<LastTradeMins/100)
{
Myprice=LowerBand;
If(Open<Myprice)Myprice=Open;
Sellshort(1,Myprice);
Return;
}
If(MarketPosition==1)
{
StopLine=UpperBand-DayOpen*StopLossSet*0.01;
If(Low<=StopLine)
{
MyPrice=StopLine;
If(Open<MyPrice)MyPrice=Open;
BuyToCover(Lots,MyPrice);
}
}
//收盤平倉程序化交易
If(Time>=ExitOnCloseMins/100)
{
Sell(1,Open);
BuyToCover(1,Open);
}
SetExitOncLOSE;
End
//------------------------------------------------------------------------
// 編譯版本 GS2004.06.12
// 用戶版本 2010/07/11 16:44
// 版權所有 oliverzrl 趙閏龍 ( www.tumamayizhan.com )
// 每一版本的TrabeBlazer公式修改和重寫的權利
//------------------------------------------------------------------------