Доброго времени суток!
Возник вопрос может кто нибудь поможет.
Допустим открыта сделка с magic=999 надо закрыть ордер по достижению определенной прибыли(по маджик 999),но открыты скажем 3 ордера с magic=111 как реализовать?
if (OrdersTotal()==1)
if(OrderMagicNumber()==999)
if(profit>=tp_in_money1 || a>0)
{
closeall();
closeall();
closeall();
//a++;
//if(total()==0) a=0;
}
if (OrdersTotal()==2)
if(profit>=tp_in_money2 || a>0)
{
closeall();
closeall();
closeall();
//a++;
//if(total()==0) a=0;
}
Вот код где tp_in_money1, tp_in_money2 и т.д. у меня суммы профита при разном количестве открытых ордеров.Что надо всунуть в этот код чтоб сова закрывала профит только в ордерах с определенным маджиком?
Может проблема в том что "Все открытые ордера" надо заменить на "Все открытые ордера с маджик 999" .????
Проблема в if (OrdersTotal()==1)
Он считает не только свои но и чужие, только что сова закрыла 6ть сделок, по заданному профиту для 7 сделок , 6 закрыто 1 осталась. Закрыла только ордера с OrderMagicNumber()==999
Может проблема в том что "Все открытые ордера" надо заменить на "Все открытые ордера с маджик 999" .????
Проблема в if (OrdersTotal()==1)
Он считает не только свои но и чужие, только что сова закрыла 6ть сделок, по заданному профиту для 7 сделок , 6 закрыто 1 осталась. Закрыла только ордера с OrderMagicNumber()==999
Может проблема в том что не внимательно читаешь документацию? Или вообще не читал никогда?
Что такое profit и tp_in_money1? Что такое closeall() и как ордера закрываются?
tp_in_money1- это профит в валюте депозита
функция profit -
double profit=0;
for(i=0; i<OrdersTotal(); i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=magic || OrderType()>1) continue;
profit+=OrderProfit();
В документации пока что пытаюсь разобраться,я не программист,я только учусь. Пытаюсь подстроить не мной написанную сову под себя
На
double profit1=0, price1=0, tp_in_money1=50; // например 50 долларов или рублей или евро int magic1=999, Slip=30, i=0; for(i=OrdersTotal()-1; i>=0; i--) if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) if(OrderSymbol()==_Symbol) { if(OrderMagicNumber()==magic1) { profit1=OrderProfit()+OrderSwap()+OrderCommission(); if(profit1>=tp_in_money1) price1=OrderType()==OP_BUY?Bid:Ask; if(OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(price1,_Digits),Slip,clrRed)==true) Print("OrderClose Ok !!!"); else Print("OrderClose Error "+(string)GetLastError()); } }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток!
Возник вопрос может кто нибудь поможет.
Допустим открыта сделка с magic=999 надо закрыть ордер по достижению определенной прибыли(по маджик 999),но открыты скажем 3 ордера с magic=111 как реализовать?
if (OrdersTotal()==1)
if(profit>=tp_in_money1 || a>0)
{
closeall();
closeall();
closeall();
//a++;
//if(total()==0) a=0;
}
if (OrdersTotal()==2)
if(profit>=tp_in_money2 || a>0)
{
closeall();
closeall();
closeall();
//a++;
//if(total()==0) a=0;
}
Вот код где tp_in_money1, tp_in_money2 и т.д. у меня суммы профита при разном количестве открытых ордеров.Что надо всунуть в этот код чтоб сова закрывала профит только в ордерах с определенным маджиком?