你好,
如果在60分K下的逐筆洗價,我下面的腳本不是應會正常印出來的嗎?但都沒有,可否請教一下如何改?
if time = 224400
then begin
print("訊息");
end;
你好,
如果在60分K下的逐筆洗價,我下面的腳本不是應會正常印出來的嗎?但都沒有,可否請教一下如何改?
if time = 224400
then begin
print("訊息");
end;
60分鐘的time沒有 = 224400 這個規格選項,他必須以小時K切齊
如果非K棒規格時間,可以試試用CurrentTime=224400
我有開逐筆洗價,
而不管是用time或用CurrentTime=224400
我都印不出耶!
currenttime時間建議不要只用 " = ",因為等於是一瞬間,在這一瞬間要出現成交訊號的機率非常低,時間條件可在放寬鬆一點,有成交訊號出現時,XS才會跑腳本print。
我的目的是在不同的時間點,印出一些字句,但如果是寫成大於time且小於time的方式,恐怕會一直重複印出,請問有什麼做法嗎?
第一要確認條件時間區間內是否有成交訊號。
第二用變數控制印出次數。如下範例
if (time>=100000 and time<100100)
then begin
if value1=0 //等於0才可以印出
then begin
value1=1; //印出紀錄
print(close);//印出
end;
end else value1=0;//離開時間區間後,重置value1=0
Hello 無情卻慈悲,
time 回傳的會是Bar的時間,就算您用逐筆洗價,該根bar的time還是相同的,都是220000這根Bar,所以自然不會符合,您可以print出time來就可以確認。
這個例子中應該使用1分鐘頻率的time 來當作條件,也就是 getfield("Time", "1"),這樣才會有 224400 這個時間點。
currenttime是會有224400這個時間點,也print得出來 (參考附圖),但只有在回測,因為回測的currenttime會是回傳該根Bar的時間點,逐筆洗價的話則是該分鐘 (1分鐘Bar) 的時間點。
實際上運作時系統時間要剛好等於 224400 的機率並不高。
要檢驗您為什麼print不出來,需要麻煩您提供 回測腳本匯出檔 以及 回測的設定(截圖) 來檢驗。
您可以直接將檔案上傳,也可以Mail至客服信箱 XQservice@XQ.com.tw 且務必附上 討論文章連結網址(小幫手才能盡早處理)。
感謝。
感謝 蕎伊斯 和 musashi 的熱心回覆。
Hello 無情卻慈悲,
如同小幫手上面所說,如果您使用currenttime在即時的狀況下,除非洗價腳本運算是剛好在您指定的時間 (要連秒數都相同),不然條件都不會符合。
替代方案就是改用 getfield("Time", "1"),這樣就會只要在那1分鐘洗價條件都會符合。
舉例來說:
if getfield("Time", "1") = 230000 then ... 就會是23:00 ~ 23:01 之間腳本有運算的話都會符合。
8 評論