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

 
makssub #:

... Сегодня на днях проверю.

Так сегодня или на днях?

Настораживает...

 
Roman Sharanov #:

Есть два конструктора. Когда я из второго вызываю первый и задаю значения переменным выше, при возврате из него во второй эти переменные идут в NULL
При этом если просто скопировать код из первого конструктора во второй и не делать вызова, все работает. В чем проблема?

PapaYozh #:


Проблема в MQL.

Я в подобных ситуациях выношу инициализацию в отдельный метод, котрорый дёргаю из разных конструкторов.

---

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

Проблема в непонимании сути того, что происходит при вызове:

CWave(namePref, startPrice, startTime, endPrice, endTime);

А тут все просто. Создается объект CWave, который сразу же уничтожается))) Никакого отношения экземпляру, в конструкторе которого произведен вызов, этот временный объект не имеет))) 

 
Vladimir Simakov #:

Проблема в непонимании сути того, что происходит при вызове:

А тут все просто. Создается объект CWave, который сразу же уничтожается))) Никакого отношения экземпляру, в конструкторе которого произведен вызов, этот временный объект не имеет))) 

Где Вы увидели оператор new?
 

Всем доброго времени суток!!!

Пишу сеточный советник необходимо найти профит только ордера с максимальным тикет и ордера с минимальным тикет (с минимальным это потом) сейчас хочу разобраться с профитом для максимального ордера. Прикладываю функцию и картинку которая показывает принцип  открытия сетки ордеров. Мой вопрос заключается в том правильно ли я написал функцию для расчета профита ордера с максимальным тикетом? Заранее спасибо. 

//+----------------------------------------------------------------------------+
//| Расчет профита максимального ордера в сетке                                |
//+----------------------------------------------------------------------------+
double GetProfitMaxOrder(int otype)
{
  int max_ticket=0;
  double max_ticket_profit = 0;
         ticket = 0;
  {
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) 
    {
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype)
      {
        max_ticket = OrderTicket();
        if(max_ticket > ticket)
        {
          ticket = max_ticket;
          max_ticket_profit = OrderProfit();
        }
      }
    }
  }
  return(max_ticket_profit);
}

 

 
Сергей Таболин #:

Так сегодня или на днях?

Настораживает...

Все нормально. Хотел проверить прям сейчас, но позвали, и я понял, что вернусь не скоро. Прям репортаж получился)

 
EVGENII SHELIPOV #:

Всем доброго времени суток!!!

Пишу сеточный советник необходимо найти профит только ордера с максимальным тикет и ордера с минимальным тикет (с минимальным это потом) сейчас хочу разобраться с профитом для максимального ордера. Прикладываю функцию и картинку которая показывает принцип  открытия сетки ордеров. Мой вопрос заключается в том правильно ли я написал функцию для расчета профита ордера с максимальным тикетом? Заранее спасибо. 

 

//+----------------------------------------------------------------------------+
//| Расчет профита максимального ордера в сетке                                |
//+----------------------------------------------------------------------------+
double GetProfitMaxOrder(int otype)
{
  int max_ticket=0;
  double max_ticket_profit = 0;
  {
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) 
    {
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype)
      {
      if(max_ticket < OrderTicket())
         {
         max_ticket = OrderTicket();
         max_ticket_profit = OrderProfit()+OrderCommission()+OrderSwap();
        }
      }
    }
  }
  return(max_ticket_profit);
}
 
Vladimir Simakov #:

Проблема в непонимании сути того, что происходит при вызове:

А тут все просто. Создается объект CWave, который сразу же уничтожается))) Никакого отношения экземпляру, в конструкторе которого произведен вызов, этот временный объект не имеет))) 


Не надо фантазировать. Суть того, что происходит - вызов метода, который является конструктрором с другим набором параметров. Никакой объект при это не создаётся.

Аналогичный вызов конструктора, который тоже не приведёт к желяемому результату:

this.CWave(namePref, startPrice, startTime, endPrice, endTime);
 
Добрый день. Подскажите как найти цену открытия ближайшего ордера к текущей цене. MQL4. Может есть примеры?
 

здравствуйте, подскажите пожалуйста, я правильно понимаю выражение?

MaxMartinLot   = Lot*MathPow(K_Martin,OrdersClose); - означает  K_Martin , в степени  OrdersClose ?

 
законопослушный гражданин #:

здравствуйте, подскажите пожалуйста, я правильно понимаю выражение?

MaxMartinLot   = Lot*MathPow(K_Martin,OrdersClose); - означает  K_Martin , в степени  OrdersClose ?

Что такое OrdersClose ?

Смотри здесь
Причина обращения: