函數:GetField("總成交次數")無法用在回測嗎?

  •   114 
  • 最後發表   Ysheng  2021 九月 17
Ysheng 發文於   2021/09/16

小幫手你好~新手初次發問請多包涵

用函數:GetField("總成交次數")寫成指標腳本運作正常

 

 

value1=GetField("總成交次數");

value2=average(value1,1);

value3=average(value1,10);

plot1(value2,"筆數");

plot2(value3,"筆數10均");

 

 

 

但若寫入警示腳本,回測就會失效

爬文發現此函數不能用逐筆洗價

所以回測並未勾選逐筆洗價

隨便拿系統內建腳本一分鐘K三連紅當例子:

 

value1=GetField("總成交次數");

value2=average(value1,1);

value3=average(value1,10);

 

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

variable:BarNumberOfToday(0); 

if Date <> Date[1] then 

BarNumberOfToday=1

else 

BarNumberOfToday+=1;{記錄今天的Bar數}

if barnumberoftoday=3 then begin

//今天第三根1分鐘K,也就是開盤第三分鐘

if trueall(close>=close[1],3)

//連三根K棒都是紅棒

and volume>average(volume[1],3)*2

//成交量是過去三根量平均量的兩倍以上

and close=highd(0)

//收最高

then ret=1;

end;

我甚至都還沒拿來計算只是寫進去,腳本回測就會失效

原本以為是函數寫錯位置嘗試更改函數插入位置依然無解

爬好多文發現此函數似乎無法支援回測須自寫函數?

 Tick 資料只支援10日內的資料?麻煩小幫手幫忙解決難題~

非常感謝~!

 

 

 

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

Hello Ysheng,

 

小幫手這邊作測試是可以使用的。(參考附圖)

推測應該是您回測使用的頻率非1分鐘導致錯誤。

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

腳本裡有限制您必須要使用1分鐘頻率。

 

您可以隨便寫一個很簡單的腳本測試即可。

value1=GetField("總成交次數");

if value1 >= 100 then ret = 1;

回測應該可以用在支援的頻率

Ysheng 發文於   2021/09/17

非常抱歉

後來發現是我自己搞烏龍

回測時有一邊的逐筆洗價沒取消勾選

非常謝謝小幫手的熱心解答。

發表回覆
Close