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

 
Aleksandr Lishchenko:

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

Не суди строго! ;)

Учитесь скачивать коды с сети, к ним делать привязку к счёту и зарабатывать на партнёрке? Так этому не нужно учиться, это довольно просто делается.

 
Vitaly Muzichenko:

Учитесь скачивать коды с сети, к ним делать привязку к счёту и зарабатывать на партнёрке? Так этому не нужно учиться, это довольно просто делается.

я хочу привязать своего авторского (заказанного) советника к счету и разместить его на сомнительном серваке, что тут не понятного =)

По этому прошу у Вас помощи, подскажите пожалуйста что нужно разместить.
 
Aleksandr Lishchenko:

я хочу привязать своего авторского (заказанного) советника к счету и разместить его на сомнительном серваке, что тут не понятного =)

По этому прошу у Вас помощи, подскажите пожалуйста что нужно разместить.

Вам ответили

Но также можете в конце OnInit вставить

int OnInit()
  {
//---
  // Здесь уже есть код
//---
 // Проверка счёта
  if(AccountInfoInteger(ACCOUNT_LOGIN) != 123456 ) return(INIT_FAILED);
//---
 return(INIT_SUCCEEDED);
  }
 
Vitaly Muzichenko:

Вам ответили

Но также можете в конце OnInit вставить

Уверен, что человек опять не скопирует не думая?

if(AccountInfoInteger(ACCOUNT_LOGIN) != 123456 ) return(INIT_FAILED);
 
Ihor Herasko:

Немного не так. Первым делом нужно вычислить ближайшее корректное значение (на основании заданной величины), а уже потом проверить разность полученных величин. Если она равна нулю (или не более, чем DBL_EPSILON), то все ОК:

Функцию VolumeCast можно взять отсюда.

Большое спасибо

 
Ihor Herasko:

Немного не так. Первым делом нужно вычислить ближайшее корректное значение (на основании заданной величины), а уже потом проверить разность полученных величин. Если она равна нулю (или не более, чем DBL_EPSILON), то все ОК:

Функцию VolumeCast можно взять отсюда.

Спасибо. Только я бы еще немного доработал VolumeCast , ведь если задать задать вполне обычные значения, например шал лота равным 0.01 и минимальный лот равным 0.01, а значение объема заданное пользователем будет корректное, например 0.03, то VolumeCast увеличит объем до 0.04. Я бы сделал так:

double VolumeCast(double volume, double volumeMin, double volumeMax, double volumeStep)
{
   if (volumeStep == 0.0)
      return volumeMin;
   if(volumeStep!=volumeMin)
      return (MathMin(MathFloor(volume / volumeStep) * volumeStep + volumeMin, volumeMax));
   else
      return (MathMin(MathFloor(volume / volumeStep) * volumeStep, volumeMax));
}
 
Aleksandr Teleguz:

Спасибо. Только я бы еще немного доработал VolumeCast , ведь если задать задать вполне обычные значения, например шал лота равным 0.01 и минимальный лот равным 0.01, а значение объема заданное пользователем будет корректное, например 0.03, то VolumeCast увеличит объем до 0.04. Я бы сделал так:

Да, верно.

 
Подскажите, можно ли как то написать код так, чтобы и на MT5, и на МТ4 работал?
 
Roman Sharanov:
Подскажите, можно ли как то написать код так, чтобы и на MT5, и на МТ4 работал?

Например так

#ifdef __MQL5__
        int totalPsitions = PositionsTotal();
#else
        int totalPsitions = OrdersTotal();
#endif
 
Konstantin Nikitin:

Например так

а получение данных с индикаторов, графика?

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