Возьми 2 файла и сравни. До и после доработки.
Сначала 2 строки добавилось.
Сразу после Старт строки.
И в конце пару функций. Всё!
:idea: )
ПС... ниче вроде не забыл?
1. В переменные
extern double TakeProfit = 10.0;
extern bool исп_проц_от_депо_закр_все = false;
extern double проц_от_депо_закр_все = 0.4;
2. После start
if (исп_проц_от_депо_закр_все && Профіт_відс_валюти_ф()>=проц_от_депо_закр_все) закриття_ордеру_ф();
3. В функции в конец
double Профіт_відс_валюти_ф()
{
return(Профіт_валюти_ф()/(AccountBalance()/100));
}
double Профіт_валюти_ф()
{
double профіт;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderMagicNumber()==MagicNumber)
{
if(OrderSymbol()==Symbol())
{
профіт+=OrderProfit()+OrderCommission()+OrderSwap();
}
}
}
}
return(профіт);
}
void закриття_ордеру_ф()
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
{
if(OrderMagicNumber()==MagicNumber)
{
if(OrderSymbol()==Symbol())
{
bool закрився_ордер=false;
for (int j_ex = 0;j_ex < 8; j_ex++)
{
while(IsTradeContextBusy()) Sleep(1000);
if(OrderType()==OP_BUY ) закрився_ордер=OrderClose(OrderTicket(),OrderLots(),Bid,slip,Yellow);
if(OrderType()==OP_SELL) закрився_ордер=OrderClose(OrderTicket(),OrderLots(),Ask,slip,Yellow);
if(OrderType()==OP_SELLSTOP || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYLIMIT) закрився_ордер=OrderDelete(OrderTicket(),CLR_NONE);
if(закрився_ордер==true)break;
}
}
}
}
}
}