MQL госпиталь (бывшая "Больничка"): исправляем ошибки

vlad_123

Местный знаток
Спасибо за ответ!
Если я правильно понял, то ордера последовательно закрываются попарно с одинаковой лотностью: пара селл+бай, потом следующая пара сел+бай, потом следующая пара селл+бай и т.д.
Попарно - да, но лотность роли не играет. В OrderCloseBy указываются только номера закрываемых встречных позиций.
И принцип сохранения одного спреда все же остается!?
Недопонял...
Имхо, спред берется текущий на момент закрытия очередной пары ордеров (в случае попарного закрытия).
 

Novikov

Гуру форума
Недопонял...
Имхо, спред берется текущий на момент закрытия очередной пары ордеров (в случае попарного закрытия).

Когда используется функция OrderCloseBy, то 1 спред из 2х ордеров сохраняется, т.е. 2 ордера закрываются по одной цене, а если закрывать 2 ордера поочередно, то они закрываются по разным ценам - бид и аск

И еще вылез баг - указал магик, а скрипт с этим магиком закрыл только селовские ордера, а для закрытия перекрытых взял совершенно другие ордера, а локированные баевские ордера с этим же магиком, оставил не закрытыми.
Проблему описал здесь _http://forum.alpari.ru/index.php?/topic/62288-voprosy-po-ispolneniiu-orderov/?p=3619402
Кто-то может объяснить, в чем дело и почему это произошло?
 
Последнее редактирование:

GALO4KA1971

Новичок форума
Ребята, гляньте индикатор. Он обновляется только при переключении тф.
 

Вложения

  • BinaryComodo.ex4
    8,7 КБ · Просмотры: 34
  • BinaryComodo.mq4
    3,4 КБ · Просмотры: 52

alexshell

Элитный участник
Извините, что вмешиваюсь... но ведь функция OrderCloseBy имеет совсем другое назначение - закрытие ордера открытием встречного по тому же инструменту. _http://docs.mql4.com/ru/trading/ordercloseby При чём здесь закрытие перекрытых ордеров ?
Как то вы невнимательно прочитали. Есть два или несколько открытых в разные стороны ордеров и вот они взаимно закрываются с сохранением одного спреда. а то что выделено вообще никакой логики не имеет.Мы про мкл5 не говорим.
 
Последнее редактирование модератором:

Novikov

Гуру форума
Извините, что вмешиваюсь... но ведь функция OrderCloseBy имеет совсем другое назначение - закрытие ордера открытием встречного по тому же инструменту. _http://docs.mql4.com/ru/trading/ordercloseby При чём здесь закрытие перекрытых ордеров ?

Ты ссылку дал, но как то не точно процитировал :not-bad:

Закрытие одним открытым ордером другого ордера, открытого по тому же самому инструменту, но в противоположном направлении.

Открытым - открытого, а не открытием ;)
 
Последнее редактирование модератором:

RoboMaks

Элитный участник
да, ошибся... сорри :)

просто по магику у него там небольшая неточность. При магике, заданном ненулевым он закрывает всё-равно любые... немного подправил его так...
 

Вложения

  • Close overlain by magic.mq4
    3,4 КБ · Просмотры: 39
Последнее редактирование:

Novikov

Гуру форума
Разобрался по поводу БАГа - если указываем магик 0, то закрываются все ордера, с магиком и без магика, открытые вручную.
А вот проблема с магиком осталась - когда указываем магик, то он при закрытии может выхватить ордера без магика, т.е. открытые вручную, а с указанным магиком часть перекрытых ордеров может остаться.

Пожалуйста, кто-то может это исправить? Что бы при указании магика, он четко брал для закрытия только ордера с указанным магиком, а ручные не трогал!

Close overlain by magic.mq4
 

RoboMaks

Элитный участник
Разобрался по поводу БАГа - если указываем магик 0, то закрываются все ордера, с магиком и без магика, открытые вручную.
А вот проблема с магиком осталась - когда указываем магик, то он при закрытии может выхватить ордера без магика, т.е. открытые вручную, а с указанным магиком часть перекрытых ордеров может остаться.

Пожалуйста, кто-то может это исправить? Что бы при указании магика, он четко брал для закрытия только ордера с указанным магиком, а ручные не трогал!

Close overlain by magic.mq4

в предыдущим добавил уже
 

Novikov

Гуру форума
да, ошибся... сорри :)

просто по магику у него там небольшая неточность. При магике, заданном ненулевым он закрывает всё-равно любые... немного подправил его так...

Спасибо!
А в этом исправленном, если указываем магик - он не будет использовать для закрытия ордера без магика? Будет закрывать ордера только с указанным магиком?
 

RoboMaks

Элитный участник
при 0 - закрывает все, как и прежде. при указанном - только "свои"
правда, проверял только на одной паре... надо на куче тоже проверить
нормально... проверил и кучу
 
Последнее редактирование:

Novikov

Гуру форума
при 0 - закрывает все, как и прежде. при указанном - только "свои"
правда, проверял только на одной паре... надо на куче тоже проверить
нормально... проверил и кучу

Ставлю 0 - почему то не закрывает все (ручные и с магиком) :not-good:

Даже ручные ордера без магика не закрывает почему то!
 
Последнее редактирование:

alexshell

Элитный участник

Вложения

  • закрытие встречных ордеров.mq4
    1,9 КБ · Просмотры: 56

RoboMaks

Элитный участник
Ставлю 0 - почему то не закрывает все (ручные и с магиком) :not-good:

Даже ручные ордера без магика не закрывает почему то!

может - старый EX4 остался, не скомпилировал по-новой? У меня всё вроде правильно работает... С 0 - все, с указанным магиком - только по магику... заново скомпилировать его надо

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

Novikov

Гуру форума
может - старый EX4 остался, не скомпилировал по-новой? У меня всё вроде правильно работает... С 0 - все, с указанным магиком - только по магику... заново скомпилировать его надо

всё нормально работает у меня... проверил ещё раз...

Почему то не хочет :not-good: удалил, установил, скомпилировал, запустил - не закрыл.
Взял скрипт предложенный alexshell - все закрылось! При указании 0 - закрывает ручные и подхватывает с магиком! Норм! ;)
 

RoboMaks

Элитный участник
:) странные шутки. попробуй так, в комплекте...
 

Вложения

  • Close overlain by magic.ex4
    6,3 КБ · Просмотры: 29
  • Close overlain by magic.mq4
    3,4 КБ · Просмотры: 40

RoboMaks

Элитный участник
его скрипт тоже нормально работает у меня... там у него только несовместимость int и double надо подправить...
 
Верх