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

 
Vitaly Muzichenko #:

начальный 0.01, коэффициент умножения 1.3

Если коэффициент 1.5 и выше - без проблем

Как решить?

А какой лот Вы хотите получить у второй сделки? 0.01*1.3 чтобы было 0.02?

Если да, то округляйте вверх до второго знака

MathCeil(Buy.LastLot * Multiplier * 100) / 100

Либо добавляете 0.005

NormalizeLot(Buy.LastLot * Multiplier + 0.005)
 
Aleksei Stepanenko #:

А какой лот Вы хотите получить у второй сделки? 0.01*1.3 чтобы было 0.02?

Если да, то округляйте вверх до второго знака

Либо добавляете 0.005

Спасибо, попробую

 
Vitaly Muzichenko #:

Потратил почти 3 часа времени, но решение не нашёл

Как получить вот такой шаг лотов,

начальный 0.01, коэффициент умножения 1.3

--

начальный 0.01, коэффициент умножения 1.4


--

Если коэффициент 1.5 и выше - без проблем

--

Как решить?

  double lot=0.01,
         Lot=lot,
         Multiplier=1.3;
  for(int i = 0; i++ < 10;)
   {
    Print(NormalizeDouble(Lot,2));
    Lot+=lot*Multiplier;
   }
2025.08.24 18:11:48.607 Test shablon (AUDCAD,M5)        0.01
2025.08.24 18:11:53.579 Test shablon (AUDCAD,M5)        0.02
2025.08.24 18:12:17.662 Test shablon (AUDCAD,M5)        0.04
2025.08.24 18:12:18.835 Test shablon (AUDCAD,M5)        0.05
2025.08.24 18:12:19.979 Test shablon (AUDCAD,M5)        0.06
2025.08.24 18:12:20.943 Test shablon (AUDCAD,M5)        0.08
2025.08.24 18:12:29.382 Test shablon (AUDCAD,M5)        0.09
2025.08.24 18:12:31.329 Test shablon (AUDCAD,M5)        0.1
2025.08.24 18:12:42.754 Test shablon (AUDCAD,M5)        0.11
2025.08.24 18:12:43.991 Test shablon (AUDCAD,M5)        0.13
 
Alexey Viktorov #:

Это Я сделал, но это работает не так, как требуется.

У меня задача, полностью скопировать логику закрытого ЕА = Я не вижу код, а только входные параметры.

Вот как это работает там, лоты с коэффициентом 1.3


 
А Вы хотите скопировать логику? Тогда точно нельзя сказать какая там логика. Например видно, что расстояние между сделками разное, возможно и с лотами также, какая-нибудь степенная функция, например. Или какая-то зависииость лота от расстояния
 
Aleksei Stepanenko #:
А Вы хотите скопировать логику? Тогда точно нельзя сказать какая там логика. Например видно, что расстояние между сделками разное, возможно и с лотами также, какая-то степенная функция, например

Расстояние не влияет на лоты, Я проверял. От коэффициента 1.5 и выше - работает без проблем, а если ниже 1.5 = расчёт странный

Я логику лотов воссоздал, но теперь важно, чтобы код никто не видел, а если увидит - не знал кто это наворотил :)
 
Vitaly Muzichenko #:
Я логику лотов воссоздал, но теперь важно, чтобы код никто не видел, а если увидит - не знал кто это наворотил :)

А какая логика должна быть? Словами можно?

 
Artyom Trishkin #:

А какая логика должна быть? Словами можно?

Самый простой усреднитель, при движении против цены идёт увеличение лота.

 
Vitaly Muzichenko #:

Самый простой усреднитель, при движении против цены идёт увеличение лота.

Тут ни слова про логику увеличения лота.

начало - лот ХХХХ,
шаг 1 - лот ХХХХ,
шаг 2 - лот ХХХХ,
шаг 3 - лот ХХХХ,
...
шаг N - лот ХХХХ

 

Как один из самых простых вариантов ;)

NormalizeDouble(Старт_Лот*MathPow(Коэффициент,Количество_Позиций),2)