2014年8月23日 星期六

★多空區間振幅策略程式碼

     《Wen外期策略團隊》
     從海外找到一個簡單又可以學到東西的策略程式碼。策略的想法很單純,統計過去一段時間的漲跌狀況,分成兩類,只要是上漲的日K線,歸類為「多方振幅」;如果收跌,就歸類為「空方振幅」。 進場條件為,當過去一段時間的「多方振幅」大於「空方振幅」時,就在下一根開盤價買進,反之就放空(但要注意多空的條件有些許不對稱)。出場則是利用計算出來的振幅設定停損和停利點。
     在此就不貼上這個策略的回測績效了(當然是因為績效不好),主要是讓大家看一下語法,刺激一下右半腦。

程式碼


Inputs: Len(63);
Vars: PointRange(0), SumPosRange(0), SumNegRange(0), AvePosRange(0), AveNegRange(0);
PointRange = High - Low;
If Close > Close[1] Then
SumPosRange = SumPosRange * (Len - 1) / Len + PointRange;
If Close < Close[1] Then
SumNegRange = SumNegRange * (Len - 1) / Len + PointRange;
AvePosRange = SumPosRange / Len;
AveNegRange = SumNegRange / Len;



{Buy/sell statements to use in system only}


{This identifies the up trend}
If AvePosRange > AveNegRange and MarketPosition = 0 Then
Buy next bar at O;
If AvePosRange < AveNegRange Then
Sell ("Down Trend") next bar at Open;


{This identifies the down trend}
If AveNegRange > AvePosRange * 1.06 and AveNegRange >= AveNegRange[1] and AvePosRange < AvePosRange[1] and MarketPosition = 0 Then
Sellshort next bar at Open;
If AveNegRange < AvePosRange * 1.06 Then
Buytocover ("Up Trend") next bar at Open;


{This is the short-term trading rules within the up trend}
If BarsSinceEntry >=1 Then Begin
Sell ("Loss Long") next bar at EntryPrice - AveNegRange stop;
Sell ("Trail Long") next bar at Open - AveNegRange stop;
Sell ("Profit Long 2") next bar at Open + 3*AvePosRange limit;
Sell ("Profit Long 1") next bar at EntryPrice + 6*AvePosRange limit;
End;


{This is the short-term trading rules within the down trend}
If BarsSinceEntry >=1 Then Begin
Buytocover ("Loss Short") next bar at EntryPrice + AvePosRange stop;
Buytocover ("Trail Short") next bar at Open + AvePosRange stop;
Buytocover ("Profit Short 2") next bar at Open - 2*AveNegRange limit;
Buytocover ("Profit Short 1") next bar at EntryPrice - 4*AveNegRange limit;
End;

2 留言:

吳哲民 提到...

SumPosRange = SumPosRange * (Len - 1) / Len + PointRange;
SumPosRange 初始設0 這樣乘任何數 SumPosRange 還是0吧
這邊有問題嘛 請Wen 賜教 感恩

WEN 提到...

你可以用print的指令測試看看

張貼留言

如果有私人問題想請教,請透過網站右方『與站長聯絡』之表單,謝謝!

----------------------------------------------------------------------------------------------------
網站聲明(Disclaimer)
本教學網站內所提供之程式碼(包括函數、指標、訊號)屬開放程式碼,用意在於讓使用者學習程式語法之撰寫,使用者可以任意修改語法內容並調整參數。本網站所有之內容(包括文章、影片、歷史紀錄、程式碼、教材)限用於個人學習使用,請勿轉寄、濫用,嚴禁私自串接帳戶交易。
-------------------------------------------------------------------------------------------------