1. 自動交易啟動時,會不會先逐根跑歷史 K 棒?跑歷史 K 棒的時候,CurrentDate 回傳的是今天,還是那根 K 棒的日期?
2. 某根 K 棒執行到 return 時,後面才賦值的變數在那一根是什麼值:保留前一根的值,還是宣告時的初始值 0?
3. 附兩支幾行的最小範例:寫法 A 把變數放在 return 後面,寫法 B 放在前面,兩支都把 avgV 寫進 log。請確認「重開 XQ 後兩支不同、回測時相同」這個理解對不對。
寫法 A(變數在 return 之後計算):
var: diff(0), avgV(0);
if Date <> CurrentDate then return;
diff = Close - Close[1];
avgV = Average(diff, 9);
print(file("C:\XQ_test\A.log"), Date, Time, diff, diff[1], avgV);
寫法 B(變數在 return 之前計算):
var: diff(0), avgV(0);
diff = Close - Close[1];
avgV = Average(diff, 9);
if Date <> CurrentDate then return;
print(file("C:\XQ_test\B.log"), Date, Time, diff, diff[1], avgV);
4. 如果只想擋住下單、但指標要照常累積,請問建議的寫法是把序列變數都移到 return 前面,還是改用 GetInfo("TradeMode")/"IsRealTime" 判斷?後者各數值代表哪個階段?
1 評論