Closerorders на основе прибыли
Я пытаюсь написать код для открытия нового ордера, когда новая цена открытия становится ниже/выше 300 пипсов. Затем сравните профит обоих ордеров, когда он в профите, я закрываю оба ордера одновременно. если нет, а второй ордер идет с убытком выше 300 пипсов, я снова открою новый ордер. Я буду открывать ордера 10 раз. Я хочу закрывать ордера таким образом: когда общее количество открытых ордеров больше 3, я хочу сравнить прибыль первого и последнего открытого ордера, если он упадет ниже прибыли, я закрою их первыми. Затем я сравню 2-й и 3-й ордер, если они упадут в профит, я их закрою, иначе я создам новый ордер, когда он превысит 300 пунктов. Пожалуйста, помогите мне понять или написать этот метод. заранее спасибо
void CloseallOrders()
{
if(AccountEquity()>AccountBalance())
{
for (int i=OrdersTotal()-1;i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
OrderClose(OrderTicket(), OrderLots(), Bid,3,Blue);
}
}
}
void drawdown()
{
if (OrdersTotal()>=0)
{
for (int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderProfit())
{
if(OrderType==OP_BUY)
{
double ddBuy=0;
ddBuy= OrderOpenPrice()- (300*pips)
if(!ddBuy)continue;
{
if(Ask<=ddBuy)
{
int buyticketDD= OrderSend(Symbol(),0,(LotSize*1.5),Ask,3,0,0,NULL,MagicNumber,0,Green);
}
}
}
if(OrderType==OP_SELL)
{
double ddSell=0;
ddSell= OrderOpenPrice()+ (300*pips)
if(!ddSell)continue;
{
if(Bid>=ddSell)
{
int sellticketDD= OrderSend(Symbol(),1,(LotSize*1.5),Bid,3,0,0,NULL,MagicNumber,0,Red);
}
}
}
}
}
CloseallOrders();
}