例如
if open < close[1] then begin
plot3(open ,"S2");
value2=open;
end;
if value2*0.995 >=low then plot4(close,"B2");
第一行程式訊號可能一直重複發生,導致第二行程式不斷修正更新value2的值,如何讓第二段程式只判斷第一次的訊號價格?
        
        例如
if open < close[1] then begin
plot3(open ,"S2");
value2=open;
end;
if value2*0.995 >=low then plot4(close,"B2");
第一行程式訊號可能一直重複發生,導致第二行程式不斷修正更新value2的值,如何讓第二段程式只判斷第一次的訊號價格?
Hello xqyi,
您可以用變數控制,舉例來說:
if open < close[1] then begin
plot3(open ,"S2");
if value2 = 0 then value2=open;
end;
if value2*0.995 >=low then begin
plot4(close,"B2");
value2 = 0;
end;
這樣 value2 就只會在 value2*0.995 >=low 符合後才會被歸0,並在之後的第一行條件符合時才重新賦予值。
同理您也可以用其他條件來歸0 (ex. 每日開盤時重置)。
以11/28 的3147 1分K執行結果一樣捏
第一行程式賣出訊號open < close[1]一直更新時,
(09:03第一筆106.5 ,中間有11次訊號發生,10:39更新後最後一筆13次的價格108.5)
第二行的程式會抓到第一行的最後一筆訊號做計算,(第二行10:43會以108.5 *.995=107.9 (107.5買進)
這樣導致虧損!
3 評論