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 格的資料出來回傳到程式裡。
謝謝D.K.分享這個技巧!
回覆刪除不知道OpenD取日線開盤價,與使用data2的方法有什麼不同?還是兩個方法都可以取出日線開盤價?
D.K您好
回覆刪除TS交易全攻略中提到ATR在分鐘內的開盤時不規則突刺部分,在HTS上實做已排除,貼文以供參考.
不過貼文html不接受,實在不知如何處理,可否用下列信箱回覆
另外書中提到贈送自動下單機,還可以申請嗎?
是在日盛下單的.Peter在tie212@ms37.hinet.net
我找到有個更好的方法取日線、分線數據的方法,用別人寫好的函數,不僅可以取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.指導一下如何寫出停損平倉同時反手進倉的寫法? 感謝~感謝~
peter: 感謝您提供程式碼!我會再將程式碼放到文章內…謝謝。
回覆刪除J.I. 要在停損的時候直接反手的話..把原本的 exitlong 換成 sell 或是 exitshort 換成 buy 就可以直接反手了。
回覆刪除至於引用日分線數據的方式…也謝謝您的提供。