小弟有二項問題,肯請指導小弟一下:
一.1k(data1),60k(data2),若60k出現進場訊號,則進場,但發現進場時間不對。
例:09:45~10:45這根60k有進場訊號(例如7000),但1k(data1)卻不會立刻進場,而會等到這根60k收了後,下一根以後才進(第二次觸價才進)。
BAR_NO=Mod(CURRENTBAR,5) of data2;
IF BAR_NO=2 then begin BUY_P=High[1] of data2; SELL_P=Low[1] of data2; END ; IF Close of data1 >=BUY_P AND _POSITION<1 THEN begin BUY 1 SHARE next bar at open ; //BUY 1 END ELSE IF Close of data1 <=SELL_P AND _POSITION >-1 then begin sellshort 1 SHARE this bar on close ; //SELLSHORT 1
二.小弟希望能在13:43~13:45自動出場,但無法如願。
IF BAR_NO=0 AND time_s >=134300 AND time_s <=134500 then begin SELL ALL shares THIS BAR ON CLOSE ; buytocover ALL SHARES THIS BAR ON CLOSE ;
問題似乎不難,但小弟試了很久,總是無法解決,肯請指導小弟一下,thx~
q1 請舉列子,及附圖(因為程式碼不完整,不能跑出來看),並說明那裡你認為該做什麼動作
不然只看程式,我們只能理解程式的動作,不能理解你要的東西跟它有何不同唷
q2 你有確定你指定的時間,當時 BAR_NO=0 是成立的嗎?
請 print 出來觀察看看
一的問題,小弟已經暫時找到替代方案了~
現在只剩一個問題:
假設只用一個15K DATA (無DATA2),要如何在每天的13:44:00~13:45:00之間出場呢 ?
正規作法,無解
偏方,另寫一個出場,設為IOG模式,就能在指定時間出場了
但是回測跟實單,會有價差
1. 是指..在同一個視窗中,除了原本的訊號外,另外寫一個出場訊號,同時執行嗎 ?
IF TIME_S>=134400 AND TIME_S<=134500 THEN BEGIN
SELL ALL SHARES THIS BAR ON CLOSE;
BUYTOCOVER ALL SHARES THIS BAR ON CLOSE;
END;
IOG開啟;
這樣可以嗎?
2.您指的回測和實戰會有不同,是指滑價嗎 ? 是否還有別的不同呢 ?
不知有哪位客服大哥,願意回答一下小弟的問題呢~
感謝~^^
1. YES
2. 一根K棒只有開高低收四個價格值,沒有1340時的價格值,所以回測時它只能知道收盤值
若打開細部回測的話,回測會很慢,但還是會有一分的誤差值 (MC6 會,MC7 不會)
小弟了解了~
感謝您的回覆~^^
疑~小弟試了好幾天,
依照客服兄的方法,在60K的圖裡,
另寫一個出場訊號 (在設定 =>訊號,裡面有二個訊號(一個為主要策略,另一個為出場)同時執行,想要在134300~134500出場),
程式碼如上所寫,
但都沒出場,不知是何原因呢 ?
PS:群益6.0版。
不知有哪位朋友可以指導小弟一下呢 ?? 感謝您~~
不好意思,忘了一件事 IOG 的 TIME_S 還是收盤時間,請改用 tradetime 指令取代它
但是它使用的是PC時間而不是SERVER時間,所以PC時間請記得校時
請問一下:
1.tradetime 和 q_time 是否功能一樣呢 ?
2.您提的tradetime取代time_s,不知是否包含秒數呢 ? 1343 or 134300 ?
一樣
若要用到秒,可以使用 q_time_s
我使用了上述討論串中的方法,在執行原始當沖交易策略的同時,
放入另外一個出場訊號,並開啟出場訊號的IOG模式,發現兩個問題。
問題1
但是當兩個訊號同時開啟時,加入出場訊號後,
從圖表視窗上來看,部位依然是在end od day exit 出場,沒有在收盤前提早出場。
是因為圖表沒有顯示還是出場程式沒有發揮作用呢?
問題2
經測試發現使用次根開盤價進場(buy at next bar open + n stop) 委託型式的策略都不能使用IOG,
但可以在不開啟次根開盤進場委託型式當沖訊號之IOG的情況下,同時使用IOG的出場訊號嗎?
(我目前遇到的狀況是原始程式只要加入IOG的出場訊號就會被強制關閉訊號,但若把出場訊號的IOG模式關掉則不會被強制關閉,似乎一個視窗裡面的訊號會被另外一個訊號的IOG設定給影響。)
您好:
我也小寫一個尾盤出場訊號
今天測試了一下,發現好像之前出場訊號不會執行是時間函數的問題。
把下面這程式
if q_time_s >= 134430 then begin
改成
if Time >= 1344 then begin
出場訊號就會正確執行了。
不過看客服和其他版友使用q_time_s函式都沒有問題,
可能我的版本還是什麼地方的設定跟大家不一樣吧。
客服一號您好
對於上面問題的回覆 『 2. 是的, IOG 有一些限制,不能跟部份指令混用 』有個點我想釐清一下,
如果同一個視窗裡面有一個交易訊號,一個出場訊號,出場訊號使用IOG會影響到交易訊號嗎?