關於日頻率與分頻率於同個警示腳本寫法 題目 : 利用分K(頻率1分鐘)來估計當天成交量能,如何判斷預估量能會超過前五天的平均成交量1.5倍(頻率為日)呢

  •   386 
  • 最後發表   拉氏轉換  2021 六月 15
拉氏轉換 發文於   2021/06/11

if barfreq <> "Min" or Barinterval <> 1 then RaiseRuntimeError("請設定頻率為1分鐘");

setTotalBar(270); 

value2 = getField("volume","1");

value1 = xfMin_GetCurrentBar("1");

value11 = summation(value2,value1) * (log(270*0.08+1.05)/log((value1+1)*0.08+1.05)); 

var: estvolume(0);

estvolume = value11;
-----------------------------------以上為想利用"1分K "來預估當天的成交量------------------------------
if estvolume > average(volume[1],5)*1.5
then ret = 1;
---------------以上為想利用"日K "來判斷估量是否超過過去五天的平均量能的1.5倍-------------------

 

我的問題是,當策略雷達要設定日頻率去監控時,1分K的程式就會有誤。

而要使用1分鐘為頻率去監控時,則average(volume[1],5) 又變成不是取得日K的前五日均量。

想請教大大,該怎麼寫才能達成當天策略雷達每一根1分K都能去監控 是否有出量呢? 謝謝!

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/06/15

Hello 拉氏轉換,

 

由於您是想要每分鐘都要監控,所以您需要使用的的是1分鐘頻率。

前五日K的均量正確寫法應該為 average(getField("volume","D")[1], 5) 才對。

如果使用 value1 = getField("volume","D") 後取 value1[1] 會與 getField("volume","D")[1] 出來的結果不同。

這是由於 value1[1] ==> 前一根一分鐘 bar 的 getField("volume","D")值。

getField("volume","D")[1] ==> 前一天的 volume 值。

您可以實際 print 出來觀察。

小幫手建議您跨頻率取值時不要用變數存取避免搞混。

拉氏轉換 發文於   2021/06/15

謝謝小編專業回答

發表回覆
Close