2010年9月21日 星期二

[程式交易]留倉單轉倉的寫法

  很多人在測試留倉單時,往往都忽略了結算日當天,近月的契約已被結算掉了,隔日的新倉跳空,在實際上是參與不到的,這不管在參數最佳化或回測報表中,均無法顯示出來,為了要能更精細計算獲利的差異,應該要在結算日當天的13:25時將目前的部位先平倉掉,至隔日再依據策略決定是否建倉。在2003~2007四年的績效報表中,不平倉與平倉二種績效竟然可以差到20萬,為了能讓報表更能呈現實際情況,一定得看看平倉後的績效表現。

隔日建倉有二種做法,一種是隔日一開盤,自動建立昨日平倉掉的多空部位,另一種是等待下次訊號出現時再進場,不同的策略,會有不同的作法,所以本篇文章的將提供一個範本,可以由參數來設定這些交易的策略,讀者可以自行加入自己的進出場參數與進出場策略。



Inputs:IsAutoExit(true), IsAutoBuild(true) {,…其他參數.};

Variables:NeedLong(false), NeedShort(false) {,…其他變數.};

If Date <> Date[1] Then

Begin

      If NeedLong Then

         Buy(“LE_Settle”) At Next Bar Open;

    If NeedShort Then

         Sell(“SE_Settle”) At Next Bar Open;

    If _IsSettleDay(Date[1]) Then

         Begin

             NeedLong = fasle;

          NeedShort = false;

         End;

End;



{



其他策略進出場條件



}



If Time > 1320 And IsAutoExit And _IsSettleDay(Date) And MarketPosition <> 0 Then

Begin

If MarketPosition > 0 Then

Begin

ExitLong(“LX_Settle”) At Next Bar Open;

If IsAutoBuild Then

NeedLong = true;

End;

If MarketPosition < 0 Then

Begin

ExitShort(“SX_Settle”) At Next Bar Open;

If IsAutoBuild Then

NeedShort = true;

End;

End;

沒有留言:

張貼留言