指定頻率與資料讀取相關問題

  •   354 
  • 最後發表   sss  2024 七月 31
sss 發文於   2024/07/23

if getfield("成交量","d")> highest(getField("Volume","d")[1],40) then ret=1;

我的頻率設定2分鐘 
請問那我的資料讀取是不是要設定成135*40 =5400 筆?

if getfield("外盤量","d")-getfield("內盤量","d")> highest(getfield("外盤量","d")[1]-getfield("內盤量","d")[1],40) then ret=1;

我的頻率設定2分鐘 
請問那我的資料讀取是不是要設定成135*40 =5400 筆?

我只是想2分鐘算一次  不想要那麼大的資料量啊 !

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/07/24

讀取的資料SetTotalBar(5400);,是執行策略時跑的筆數。若你的策略用在盤中即時,則只會在開始即時洗價之前,跑5400筆一遍,不會每兩分鐘都跑5400筆。若你想每兩分鐘算一次,不要勾逐筆洗價,則每兩分鐘只洗價一次。至於要設多少筆的讀取資料,要看策略使用的資料,若有用到跨頻率,特別是使用到某些需要前值運算的技術指標,必須多一點筆數,才會得到正確的數據。

sss 發文於   2024/07/24

感謝 虎科大許教授 您的回答 

原來不是兩分鐘就跑一次5400筆 

再次感謝

XS小編 發文於   2024/07/31

Hello sss,

 

highest 是使用節省效能的寫法,在跨頻率時可能會出錯,建議您使用 simplehighest。

另外腳本中只有使用到資料 (不需要腳本運算),故可以使用 SetBackBar 來設定所需的引用筆數。

舉例來說,SetBackBar(50, "D") 就足夠函數使用。

感謝 虎科大許教授 的熱心回覆。

發表回覆
Close