自動交易 安控失敗後 多久會再次執行?

  •   323 
  • 最後發表   YG  2025 五月 21
YG 發文於   2025/05/06

各位好

我的策略頻率是60k
請問如果安控失敗後,何時會再次執行,這部分應如何調整,感謝。

我原先的「策略部位」是設定不執行。後來「策略部位」改成「延續前次執行」,但還是沒有馬上執行,我想請教這個重新執行需要等待多久。

附加文件

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/05/06

台指期下午1點45分收盤,你的策略在收盤後才觸發(應該是自動洗價),收盤了,委託當然失敗。策略不會重新啟動,與策略部位無關。

YG 發文於   2025/05/06

台指期下午1點45分收盤,你的策略在收盤後才觸發(應該是自動洗價),收盤了,委託當然失敗。策略不會重新啟動,與策略部位無關。

請問許教授,這個情況60k的策略,若要更頻繁的確認訊號,您有建議的方式嗎?

// === 進場邏輯:包含即時進場 + 15:00開盤補單 ===

if ((Time = 150000 and long_condition[1]) or long_condition) and Position <> 1 then begin

    SetPosition(1);

    EntryPriceAvg = Close;

end;

 

if ((Time = 150000 and short_condition[1]) or short_condition) and Position <> -1 then begin

    SetPosition(-1);

    EntryPriceAvg = Close;

end;

 

// === 出場邏輯(保持不變) ===

long_exit = Position = 1 and long_exit_condition;

short_exit = Position = -1 and short_exit_condition;

 

long_stop = Position = 1 and Close <= longexitprice;

short_stop = Position = -1 and Close >= shortexitprice;

 

if long_exit or long_stop then SetPosition(0);

if short_exit or short_stop then SetPosition(0);

 

 

虎科大許教授 發文於   2025/05/06

(1)EntryPriceAvg這個變數,因為用Entry開頭,所以編譯的時候會出錯。

(2)勾選逐筆洗價,就會每個Tick執行一次程式。

(3) 我猜測,你之前收盤才送單,問題應該出在long_exit_condition,例如long_exit_condition=time=124500; 這種情況,若沒有勾選逐筆洗價,則會在124500這根最後的60分K收K的時候才執行程式,收K的那時候已經收盤了,所以會出錯。

YG 發文於   2025/05/06

(1)EntryPriceAvg這個變數,因為用Entry開頭,所以編譯的時候會出錯。

(2)勾選逐筆洗價,就會每個Tick執行一次程式。

(3) 我猜測,你之前收盤才送單,問題應該出在long_exit_condition,例如long_exit_condition=time=124500; 這種情況,若沒有勾選逐筆洗價,則會在124500這根最後的60分K收K的時候才執行程式,收K的那時候已經收盤了,所以會出錯。

感謝教授撥冗解答
我想請教一下,我的訊號就是希望收盤以後再去計算這根60k,只是因為剛好遇到了日夜盤交易替的休盤時間,導致訊號出來卻無法下單,是否有辦法可以,15:00再次執行前面沒執行的訊號,以及若凌晨四點出訊號,8:45再次執行。
再次感謝回覆

虎科大許教授 發文於   2025/05/06

可以的。控制每一個K的第一個Tick判斷之前的K棒是否有訊號。例如下午三點一開盤,第一個Tick進來就判斷上一根K是否有訊號,若有訊號就下單。

YG 發文於   2025/05/07

想請問您所說的「例如下午三點一開盤,第一個Tick進來就判斷上一根K是否有訊號,若有訊號就下單。」這個應該怎麼寫

因為我的時間框架是60K,他可能會等到15:00-16:00這根k棒跑完才補進場,屆時已經相差甚遠
但我又不希望跑多頻率的框架,因為我主要是追蹤60k棒的計算訊號,若又摻入1k的計算容易出錯。

抱歉佔用您的時間,感恩

虎科大許教授 發文於   2025/05/07

假設進場條件是均線黃金交叉。

Var: intrabarpersist mytime(0);

Condition1=c[1] cross over average(c[1],5);

if time<>mytime then

    Begin

        Setposition(1);

        mytime=time;

    End

YG 發文於   2025/05/07

感謝教授 我來嘗試一下 謝謝

XS小編 發文於   2025/05/21

Hello YG,

 

小編補充,策略部位 不會影響策略洗價運算的規律,而是影響策略的部位庫存。

建議可參考 自動交易中心:庫存同步整合教學 裡的說明。

發表回覆
Close