我在選股策略裡,因為想要在選股中心每日選出標的時,顯示該標的過去10天內觸發過幾次訊號,所以按以下寫法處理:
SetTotalBar(10);
if Condition1 and Condition2 then begin
print(xxxxx);
ret = 1;
end;
OutputField1(Countif(Condition1 and Condition2, 10), "近期觸發次數");
但當我跑指定一天的選股時(例如 2023/03/08),如果該標的過去 10 天內有滿足過觸發條件,就會一次把 10 天有觸發過條件的都印出來。用 SetTotalbar(1) 能避免印出過去 10 天觸發的結果,但沒辦法做到顯示 Count。不用 Countif 改用 value1 自己手動去 count 也無法改變打印出 10 天有觸發過條件的問題。
另外也試過 filter 功能,跑回測看起來有確實的過濾掉短期內觸發的次數,但 print 還是會印出那些被忽略的觸發記錄
if Filter(Condition1 and Condition2, 10) then begin
print(xxxx);
ret = 1;
end;
我期待的是只需要印出我所選擇日期的觸發記錄,而不是把所有日期都印出,想請問該怎麼改才能做到呢?
4 評論