Hi, 大家好, 今天在回測過程裏, 發現了一個小問題,不知道該如何解決, 所以上來請教大家,謝謝大家!
用以下2段程式碼當範例:
程式碼1:(可以正常做到條件觸發時,將部位先平倉,然後開新倉)
condition1=ema(close,5)>ema(close,10);
condition2=ema(close,5)<ema(close,10);
if condition1 then begin
setposition(1,market);
end;
if condition2 then begin
setposition(-1,market);
end;
程式碼2:(只會平倉,無法開新倉,即無法做到條件觸發時,將部位先平倉,然後開新倉),
condition1=ema(close,5)>ema(close,10);
condition2=ema(close,5)<ema(close,10);
if condition1 then begin
setposition(0,market);
setposition(1,market);
end;
if condition2 then begin
setposition(0,market);
setposition(-1,market);
end;
而我想要的功能,類似程式碼2,請問大家,要如何做到呢? 謝謝大家...
類似這樣下面這樣,但下面這段程式實際回測,只會平倉,無法開新倉:
condition1 = 開多單條件;
condition2 = 開空單條件;
condition3 = 平倉多單條件;
condition4 = 平倉空單條件;
if condition3 then begin //平倉多單條件成立, 先平倉多單
setposition(0,market);
if condition2 then begin //開空單條件成立, 開空單,沒成立就算了,只執行上面的平倉多單而已。
setposition(-1,market);
end;
end;
if condition4 then begin //平倉空單條件成立, 先平倉空單
setposition(0,market);
if condition1 then begin //開多單條件成立, 開多單,沒成立就算了,只執行上面的平倉空單而已。 setposition(-1,market);
end;
end;
2 評論