有關intrabarpersist的問題

  •   356 
  • 最後發表   小富  2024 九月 20
小富 發文於   2024/09/19

親愛的小編& 許教授或各位高手,

    想請問,當我交易腳本程式設定好15minK的頻率時,此時每根K的運行應該是以15分鐘為一根K的方式,對嗎? 請看下方腳本,我設定同一根K不會兩次交易,但事實上limit_control似乎不太受到控制,不知道是我對currentbar理解錯誤 或是語法有誤,請幫忙解惑,謝謝。 [附圖為交易時間~~事實上應該在同一根15minK當中]

// 15 MIN & MA3 作多策略

input: length(60,"3日均線期數"),length2(3,"分時均線");
input: riskpoint1(35,"可忍受風險回檔點數"),riskpercent(0.25,"可忍受風險百分比");
var: triggeredprice(0),benchprice(0);
var: riskpoint2(0),riskpoint3(0),riskpoint(0);
var: intrabarpersist limit_control(0);

if barfreq<>"Min"or barinterval<>15  then return;

// 資料讀取筆數設定
settotalbar((1+length)*3.5); //期指一天需要60根5minK


triggeredprice = EMA(close,length2); //觸發價
benchprice = EMA(close,length); //計算3日均線

condition1 = close cross over triggeredprice and triggeredprice >= benchprice and triggeredprice > triggeredprice[1];
condition2 = limit_control <> currentbar;

// 多方進場策略:收盤價突破ema3且ema3>三日線做多。
if Position = 0 and condition1 and condition2 then begin
   SetPosition(1);
   if position = 1 and filled = 1 then begin
      limit_control = currentbar;
    end;
end;

附加文件

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

你的問題在於送出買進委託之後,同一次洗價position不變,仍然是0。下一次洗價,position已經是1,無法讓limit_control = currentbar。所以無法達到控制效果。

小富 發文於   2024/09/20

了解,感謝許教授指點。

發表回覆
Close