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

 
Igor Makanu:

все нужно исправить

Ваш код ищет первый попавшийся ордер из истории ордеров с заданным символом и заданным магиком

затем идет подсчет количества найденных убыточных ордеров, и возводите в степень 2 это количество ордеров

поиском по форуму "полезные функции от КИМ", и соберите себе примерно так:

- найти тикет последнего ордера  по нашему символу и нашему магику

- по найденному тикету получить OrderProfit() и OrderLots() и если нужно, то умножить на свой коэффициент мартингейла

ЗЫ: может быть там есть и готовое решение

Задача немного не такая, у меня плавающий лот при каждом открытии и нужно его умножить на коэффициент.
Лот первого колена к примеру 0.07, а второго может быть 0.04, после убытка лот третьего колена 0.05 и вот этот лот и нужно умножить на коэффициент 4.
У меня функция рассчитывает плавающий лот, его и нужно умножать на LotSize() * 2,4,8,16 и тд.
 
Denis Pershin:
Задача немного не такая, у меня плавающий лот при каждом открытии и нужно его умножить на коэффициент.
Лот первого колена к примеру 0.07, а второго может быть 0.04, после убытка лот третьего колена 0.05 и вот этот лот и нужно умножить на коэффициент 4.
У меня функция рассчитывает плавающий лот, его и нужно умножать на LotSize() * 2,4,8,16 и тд.

такая

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

научитесь искать последний закрытий ордер со своим магиком

если уж совсем сложная система расчетов лота - как вариант магик + номер колена для новых ордеров, можно еще с комментариями, но не надежно, лучше используйте несколько магиков


Ваш приведенный код, просто перебирает ордера - он ничего не видит, поэтому и обратил внимание

 
Igor Makanu:

такая

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

научитесь искать последний закрытий ордер со своим магиком

если уж совсем сложная система расчетов лота - как вариант магик + номер колена для новых ордеров, можно еще с комментариями, но не надежно, лучше используйте несколько магиков


Ваш приведенный код, просто перебирает ордера - он ничего не видит, поэтому и обратил внимание

В том и сложность, что стартовый лот неизвестен, он рассчитывается на n% от эквити.
Комментарий использовать не хотелось-бы.
Сейчас в коде считается количество убытков подряд и считает правильно, но как это доделать с коэффициентом умножения 2,4,8,16 - не соображу.
 
Denis Pershin:
Сейчас в коде считается количество убытков подряд и считает правильно, но как это доделать с коэффициентом умножения 2,4,8,16 - не соображу.

не правильно

но раз Вас устраивает тогда попробуйте так свой код подправить

int c=1;
....
c*=2; // 1,2,4,8....
 
Igor Makanu:

не правильно

но раз Вас устраивает тогда попробуйте так свой код подправить

У него получиться при третьем умножении: 3*2=6, а ему уже нужно 8, а при четвёртом будет 8, а нужно 16.

 

k = {1,2,4,8,16,......}

cn = k[c]

 
Vitaly Muzichenko:

У него получиться при третьем умножении: 3*2=6, а ему уже нужно 8, а при четвёртом будет 8, а нужно 16.


void OnStart()
{
   int c = 1;
   for(int i = 1; i <= 5; i++)
   {
      c *= 2;
      printf("i = %i, c = %i",i,c);
   }
}

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 1, c = 2

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 2, c = 4

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 3, c = 8

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 4, c = 16

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 5, c = 32

где 6?

или что нужно?

 
Igor Makanu:


2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 1, c = 2

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 2, c = 4

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 3, c = 8

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 4, c = 16

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 5, c = 32

где 6?

или что нужно?

ага, Я затупил.

 
Планирует ли MQ добавление пользовательских индикаторов в мобильную платформу?
 
Igor Makanu:


2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 1, c = 2

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 2, c = 4

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 3, c = 8

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 4, c = 16

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 5, c = 32

где 6?

или что нужно?

Спасибо,очень помогли)

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