才剛進場下一秒還沒達到移動停利條件就馬上出場,已經發生不止一次。
以下是語法,請問會是哪裡有問題?
執行環境還原 5Min 逐筆
Inputs:
StartTradeTime(091000), EndTradeTime(110000), LastExitTime(131000),
StopLoss(2), TakeProfit(3),
ProfitTarget1(2.33), ProfitDrawdown1(76.4),
ProfitTarget2(3.77), ProfitDrawdown2(61.8),
ProfitTarget3(5), ProfitDrawdown3(50),
ProfitTarget4(6.1), ProfitDrawdown4(38.2),
ProfitTarget5(6.765), ProfitDrawdown5(23.6);
Variables:
IntrabarPersist MaxProfitPoint(0);
MaxProfitPoint = Iff(Position <> 0, AbsValue(FilledAvgPrice - Low), 0);
if Position <> 0 and Filled <> 0 then begin
{ 停損 }
if Close cross over FilledAvgPrice * (100 + StopLoss) * 0.01 then begin
SetPosition(0, Market, Label := "Stop Loss");
end;
{ 移動停利 }
if MaxProfitPoint > FilledAvgPrice * ProfitTarget1 * 0.01 and Close cross over FilledAvgPrice - MaxProfitPoint * (100 - ProfitDrawdown1) * 0.01 then begin
SetPosition(0, Market, Label := "Trailing Stop 1");
end;
if MaxProfitPoint > FilledAvgPrice * ProfitTarget2 * 0.01 and Close cross over FilledAvgPrice - MaxProfitPoint * (100 - ProfitDrawdown2) * 0.01 then begin
SetPosition(0, Market, Label := "Trailing Stop 2");
end;
if MaxProfitPoint > FilledAvgPrice * ProfitTarget3 * 0.01 and Close cross over FilledAvgPrice - MaxProfitPoint * (100 - ProfitDrawdown3) * 0.01 then begin
SetPosition(0, Market, Label := "Trailing Stop 3");
end;
if MaxProfitPoint > FilledAvgPrice * ProfitTarget4 * 0.01 and Close cross over FilledAvgPrice - MaxProfitPoint * (100 - ProfitDrawdown4) * 0.01 then begin
SetPosition(0, Market, Label := "Trailing Stop 4");
end;
if MaxProfitPoint > FilledAvgPrice * ProfitTarget5 * 0.01 and Close cross over FilledAvgPrice - MaxProfitPoint * (100 - ProfitDrawdown5) * 0.01 then begin
SetPosition(0, Market, Label := "Trailing Stop 5");
end;
end;
4 評論