反覆看了好久
還是找不到為什麼沒有停利
請問高手是否有看出甚麼問題
// 下買單
ticket_buy = OrderSend(Symbol(), OP_BUY, lots, Ask, 3, 0, 0, "買進",
id, 0, Blue);
// 如果有成交設定停損停利
if(ticket_buy > 0)
{
// check 50% profit
double high = High[iHighest(Symbol(), 0, MODE_HIGH, green, 1)];
double low = Low[iLowest(Symbol(), 0, MODE_LOW, green, 2)];
double fifty_precent = (high - low) / 2;
set_take_profit(fifty_precent);
bars = Bars;
}
實作設定停利
void set_take_profit(double take_profit)
{
double stoploss, takeprofit;
for(int z =0;z<OrdersTotal();z++)//透過FOR函式執行訂單挑選次數
{
OrderSelect(z,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol() == Symbol() && OrderType() == OP_BUY &&
OrderMagicNumber() == id)//挑選出符合條件的訂單
{
if(sl>0)//如果有設停損
stoploss = OrderOpenPrice()-sl;//停損價為進場價格減去停損點數
else
stoploss = OrderStopLoss();//維持原先停損價格
if(take_profit>0)//如果有訂停利
takeprofit = OrderTakeProfit()+take_profit;
else
takeprofit = OrderTakeProfit();//維持停利價格
OrderModify(OrderTicket(),OrderOpenPrice(),stoploss,takeprofit,0,White);
}
}
}
--
All Comments