2023-11-17|閱讀時間 ‧ 約 3 分鐘

多週期商品的牛刀小試

大數據時代,資料為王已介紹如何改寫函式,該函式可以抓取到預設數列以外的數列資料,本篇將利用這個改寫後的函式,進行訊號改寫,讓訊號可以依據長、短週期的數列,進行行情判斷,並依些產生進場訊號。

多週期策略

多週期策略

在策略中,新增二個輸入參數(輸入參數可進行最佳化),以下簡單介紹這二個參數:

  • LongBarCount:
    設定長週期的連結創新高或新低的根數。
  • LongBarLimit:
    當長週期創新高或新低後,其效果可保留多少根K棒。
{判斷長週期是否連續創高或創低}
LongContinueBreakOutHigh = _ContinueBreakOut(LongBarCount, High of Data2, 1);
LongContinueBreakOutLow = _ContinueBreakOut(LongBarCount, Low of Data2, -1);

{當連續創高條件成立時,就將長週期的方向設為1,並紀錄發生的K棒編號(LongBarNumber=BarNumber)}
If LongContinueBreakOutHigh Then
Begin
LongDirection = 1;
LongBarNumber = BarNumber;
End;

{當連續創低條件成立時,就將長週期的方向設為-1,並紀錄發生的K棒編號(LongBarNumber=BarNumber)}
If LongContinueBreakOutLow Then
Begin
LongDirection = -1;
LongBarNumber = BarNumber;
End;

在程式中,將先計算長週前的連續創新高或新低的條件是否成立,若成立時,則將方向紀錄下來,並且把發生的K棒編號保留下來,這樣才能在程式中,去計算其效力可以保持多少根K棒。

接下來再加一段程式,進行這個創高或創低的有效性,當超過設定的有效根數後,就將其方向歸零(即LongDirection = 0)。

{當發生的的K棒編號與目前的編號差異超過設定的限制值時,就將這個方向歸零,並將紀錄編號歸零}
If BarNumber - LongBarNumber > LongBarLimit Then
Begin
LongDirection = 0
LongBarNumber = 0;
End;​


加上這二段程式後,就可在原來單一週期的程式中,加上第二個週期數列的判斷,利用多週期的數列來達成以長週期為趨勢判斷,而短週期為較精準的進出場點位判斷,進而提升策略對行情的把握程度,可更容易開發出長期有效的策略。

讀者先進行策略的最佳化及判讀,明天的文章再針對此策略最佳化的報表,進行績效報表分析。


分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.