[TS懶人包] [保險服務]

2009年11月22日 星期日

程式交易 - TradeStation opend 函數說明

有朋友在留言版問到了這個函數到底在寫些什麼。在留言版上又不好回答…所以就直接用這篇文章來說明一下了。首先來看一下 opend 函數的程式內容。


Inputs: DaysAgo(Numeric);
Array: OpenArray[50](-1);

If DataCompression < 2 Then Begin
If Date > Date[1] Then Begin
For Value1 = 50 DownTo 1 Begin
OpenArray[Value1] = OpenArray[Value1-1];
End;
OpenArray[0] = Open;
End;
If DaysAgo <= 50 Then
OpenD = OpenArray[DaysAgo];
End;

{ Forcing the function to series }
Value1 = OpenD[1];


首先問到的是 Array 到底是作什麼用的?其實 Array 就是存每日開盤用的…至於他預設的 50 的意思…是表示這個函數只存 50 天的開盤數據。

至於這一段:

If Date > Date[1] Then Begin
For Value1 = 50 DownTo 1 Begin
OpenArray[Value1] = OpenArray[Value1-1];
End;
OpenArray[0] = Open;
End;
If DaysAgo <= 50 Then
OpenD = OpenArray[DaysAgo];

就是在換日的時候將 Array 的數據全部往前移動一格(Array 可以看成是儲存資料的格子),也就是第 50 格的資料改成 49 格的資料…一直到第 1 格的資料改成第 0 格的資料。

接著再把第 0 格的資料設為那一天的開盤。

所以在程式內使用 opend(10) 去取資料的時候…就是來到這邊拿出第 10 格的資料出來回傳到程式裡。

5 則留言:

  1. 謝謝D.K.分享這個技巧!
    不知道OpenD取日線開盤價,與使用data2的方法有什麼不同?還是兩個方法都可以取出日線開盤價?

    回覆刪除
  2. D.K您好
    TS交易全攻略中提到ATR在分鐘內的開盤時不規則突刺部分,在HTS上實做已排除,貼文以供參考.

    不過貼文html不接受,實在不知如何處理,可否用下列信箱回覆

    另外書中提到贈送自動下單機,還可以申請嗎?
    是在日盛下單的.Peter在tie212@ms37.hinet.net

    回覆刪除
  3. 我找到有個更好的方法取日線、分線數據的方法,用別人寫好的函數,不僅可以取OHLC,還可以引用指標,在這裡分享一下: http://www.puretick.com/BB2/viewtopic.php?f=4&t=348&view=previous&sid=bb433cd19e76fa437ca051340e4ad963

    http://www.programtrading.tw/viewtopic.php?f=2&t=555&sid=7e82de80a8aedf98e55b5b29b3e33870

    很欣賞D.K.的程式寫作風格,實用又易懂,有空的話可否請D.K.指導一下如何寫出停損平倉同時反手進倉的寫法? 感謝~感謝~

    回覆刪除
  4. peter: 感謝您提供程式碼!我會再將程式碼放到文章內…謝謝。

    回覆刪除
  5. J.I. 要在停損的時候直接反手的話..把原本的 exitlong 換成 sell 或是 exitshort 換成 buy 就可以直接反手了。

    至於引用日分線數據的方式…也謝謝您的提供。

    回覆刪除

請留下您的大名…匿名者恕不回應…

Related Posts Plugin for WordPress, Blogger...