Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 999

 

Я только учусь.

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && ? );

вместо знака вопрос надо прописать - прибыль больше ноля по данному инструменту.

 
cashnewmoney:

Я только учусь.

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && ? );

вместо знака вопрос надо прописать - прибыль больше ноля по данному инструменту.

Зависит от собственного желания.
 
Alexey Viktorov:
Зависит от собственного желания.

  Типо закрывай руками.

Так не пойдёт, надо автоматизировать.

 
cashnewmoney:

  Типо закрывай руками.

Так не пойдёт, надо автоматизировать.

Нет не руками. Я имел ввиду вписать можно по собственному желанию. Но видимо с первого раза я не так понял вопрос. Для того чтобы ставить условие прибыль по инструменту больше нуля, эту прибыль надо посчитать.

  double profit = 0;
  for(int i = 0; i < OrdersTotal(); i++)
   {
    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
     {
      if(OrderType() < 2)
        profit += OrderProfit()+OrderCommission()+OrderSwap();
     }
   }
 
Alexey Viktorov:

Нет не руками. Я имел ввиду вписать можно по собственному желанию. Но видимо с первого раза я не так понял вопрос. Для того чтобы ставить условие прибыль по инструменту больше нуля, эту прибыль надо посчитать.

Вот так значит надо сделать?

double profit = 0;

  for(int i = 0; i < OrdersTotal(); i++)

   {

    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)

     {

      if(OrderType() < 2)

        profit += OrderProfit()+OrderCommission()+OrderSwap();

     }

   }

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit + );

 
cashnewmoney:

Вот так значит надо сделать?

double profit = 0;

  for(int i = 0; i < OrdersTotal(); i++)

   {

    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)

     {

      if(OrderType() < 2)

        profit += OrderProfit()+OrderCommission()+OrderSwap();

     }

   }

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit + );

Издеваетесь?

double profit = 0;
  for(int i = 0; i < OrdersTotal(); i++)
   {
    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
     {
      if(OrderType() < 2)
        profit += OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit > 0 );
 
Vitaly Muzichenko:

Издеваетесь?

Спасибо большое, всё заработало.

 
cashnewmoney:

Спасибо большое, всё заработало.

Спасибо вот сюда передайте, Alexey Viktorov

 

Советник выставляет только один ордер по алгоритму, рассмотрим Sell:

SellOpen = (AC<0.0  && RSI<30   &&  Close[2]>Open[2] && Close[1]>Open[1] && Low[2]<Low[1] );

Как прописать код, чтоб он продолжал выставлять ордера пока присутствует условие AC<0.0

 
Alexey Viktorov:

Нет не руками. Я имел ввиду вписать можно по собственному желанию. Но видимо с первого раза я не так понял вопрос. Для того чтобы ставить условие прибыль по инструменту больше нуля, эту прибыль надо посчитать.

Спасибо большое. Всё работает.

Причина обращения: