各位好
我的策略頻率是60k
請問如果安控失敗後,何時會再次執行,這部分應如何調整,感謝。
我原先的「策略部位」是設定不執行。後來「策略部位」改成「延續前次執行」,但還是沒有馬上執行,我想請教這個重新執行需要等待多久。
台指期下午1點45分收盤,你的策略在收盤後才觸發(應該是自動洗價),收盤了,委託當然失敗。策略不會重新啟動,與策略部位無關。
台指期下午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);
(1)EntryPriceAvg這個變數,因為用Entry開頭,所以編譯的時候會出錯。
(2)勾選逐筆洗價,就會每個Tick執行一次程式。
(3) 我猜測,你之前收盤才送單,問題應該出在long_exit_condition,例如long_exit_condition=time=124500; 這種情況,若沒有勾選逐筆洗價,則會在124500這根最後的60分K收K的時候才執行程式,收K的那時候已經收盤了,所以會出錯。
(1)EntryPriceAvg這個變數,因為用Entry開頭,所以編譯的時候會出錯。
(2)勾選逐筆洗價,就會每個Tick執行一次程式。
(3) 我猜測,你之前收盤才送單,問題應該出在long_exit_condition,例如long_exit_condition=time=124500; 這種情況,若沒有勾選逐筆洗價,則會在124500這根最後的60分K收K的時候才執行程式,收K的那時候已經收盤了,所以會出錯。
感謝教授撥冗解答
我想請教一下,我的訊號就是希望收盤以後再去計算這根60k,只是因為剛好遇到了日夜盤交易替的休盤時間,導致訊號出來卻無法下單,是否有辦法可以,15:00再次執行前面沒執行的訊號,以及若凌晨四點出訊號,8:45再次執行。
再次感謝回覆
可以的。控制每一個K的第一個Tick判斷之前的K棒是否有訊號。例如下午三點一開盤,第一個Tick進來就判斷上一根K是否有訊號,若有訊號就下單。
想請問您所說的「例如下午三點一開盤,第一個Tick進來就判斷上一根K是否有訊號,若有訊號就下單。」這個應該怎麼寫
因為我的時間框架是60K,他可能會等到15:00-16:00這根k棒跑完才補進場,屆時已經相差甚遠
但我又不希望跑多頻率的框架,因為我主要是追蹤60k棒的計算訊號,若又摻入1k的計算容易出錯。
抱歉佔用您的時間,感恩
假設進場條件是均線黃金交叉。
Var: intrabarpersist mytime(0);
Condition1=c[1] cross over average(c[1],5);
if time<>mytime then
Begin
Setposition(1);
mytime=time;
End
感謝教授 我來嘗試一下 謝謝
9 評論