با سلام
من این کد رو نوشتم و تعریف کردم که هروقت مجموع تمام پوزیشنها + پروفیت شد همه رو با هم ببنده (تا اینجا مشکلی نیست)
حال چگونه میتونم تعقییرش بدم به اینکه هرموقع موقعیت کلوز سیگنال پیش اومد فقط همه پوزیشنهای که توی سود هستن رو ببنده به علاوه آخرین پوزیشنی که توی ضرر هست.
اما باید مجموع پوزیشنهای که بسته میشه + پروفیت باشه.
من این کد رو نوشتم و تعریف کردم که هروقت مجموع تمام پوزیشنها + پروفیت شد همه رو با هم ببنده (تا اینجا مشکلی نیست)
حال چگونه میتونم تعقییرش بدم به اینکه هرموقع موقعیت کلوز سیگنال پیش اومد فقط همه پوزیشنهای که توی سود هستن رو ببنده به علاوه آخرین پوزیشنی که توی ضرر هست.
اما باید مجموع پوزیشنهای که بسته میشه + پروفیت باشه.
کد:
void closePostion(int number) { double totalProfit = totalProfit(number); if(totalProfit > 0) { for(int i = OrdersTotal() - 1; i >= 0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == Symbol()&& OrderMagicNumber() == number && OrderType()<=OP_SELL) bool result=OrderClose(OrderTicket(), OrderLots(), Ask,slippage, Yellow); if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == Symbol() && OrderMagicNumber() == number && OrderType()<=OP_BUY) bool result=OrderClose(OrderTicket(),OrderLots(),Bid,slippage,Green); } } } //+------------------------------------------------------------------+ double totalProfit(int number) { double totalProfit = 0; for(int i = OrdersTotal() - 1; i >= 0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderSymbol() == Symbol() && OrderMagicNumber() == number) totalProfit += (OrderProfit() + OrderCommission() + OrderSwap()); } return totalProfit; } //+------------------------------------------------------------------+
نظر