Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Вся деятельность участников MQL5.community. Заходи в раздел Стена!
Ahmad Mehdiyev
478
Ahmad Mehdiyev 2012.08.03 14:25 
При торговле на МТ4 с помощью тикета при получении реквота появляется окно, мы можем принять или игнорировать новую цену. Как можно добиться появления этого окна при торговле с помощью скриптов? Можно ли сделать это программно, либо через настройки терминала.
ZZZEROXXX
768
ZZZEROXXX 2012.08.03 14:30  

У меня тоже возникал этот вопрос. Памагите!

Не столько интересует появление окна сколько возможность согласиться или отказаться от предложенной после реквота ценой.

Ahmad Mehdiyev
478
Ahmad Mehdiyev 2012.08.03 14:55  
Наилучший способ согласиться или отказаться(!) ообенно при частых реквотах - это вручную. Повторение OrderSend() реализовано. Но неудобно и часто не выгодно. Простой алерт об ошибке-реквоте вообще ничего не дает.
Ihor Herasko
8896
Ihor Herasko 2012.08.03 17:24  

Парни, вам ехать или шашечки?

Если нужно, подтверждать или отказываться ручками, то торгуйте вручную. Если все же хотите открываться автоматически, то организуйте логику принятия решения об отказе или принятия новой цены в программе. Вы же сами как-то принимаете такие решения - вот и попробуйте формализовать их.

Можно, конечно, извратиться через MessageBox, но зачем тогда скрипт?

Ahmad Mehdiyev
478
Ahmad Mehdiyev 2012.08.03 18:31  
Об автоматизации речь не идет. Наверное нужно было точнее сформулировать мою цель: торговля в ручную (скрипт, ГУО, или панель с кнопками, не суть важно) без использования тикета (т.к. большой, неудобный, и при наличии вышеперечисленных методов не необходимый). Но хотелось бы не обрабатывать реквоты в авто режиме. Диалоговое окно реквота дает возможность быстро и неограниченное количество раз (при частых реквотах) принять новую цену, или игнорировать при первом же реквоте, чего авто-режим с, к примеру, 3-мя повторениями OrderSend() делать не будет. Не буду утверждать, но мне кажется принятие новой цены по реквоту обрабатывается быстрее чем повторение команды OrderSend(), но даже если это не так, получить цену близкую к изначальной или отказаться от сделки совсем, будет легче вручную, чем предоставить эксперту или скрипту получить на 3-м (или n-ном) поворении цену которая уже не выгодна. MessageBox() конечно вариант, но будет ли он так же быстро реагировать, и принимает ли команду клавиши "Enter"?
Ihor Herasko
8896
Ihor Herasko 2012.08.03 18:48  
pro_:
Но хотелось бы не обрабатывать реквоты в авто режиме.

Тогда, вроде бы, и скрипт не нужен.

MessageBox() конечно вариант, но будет ли он так же быстро реагировать, и принимает ли команду клавиши "Enter"?

И даже многие другие клавиши ))

Не буду утверждать, но мне кажется принятие новой цены по реквоту обрабатывается быстрее чем повторение команды OrderSend(), но даже если это не так, получить цену близкую к изначальной или отказаться от сделки совсем, будет легче вручную, чем предоставить эксперту или скрипту получить на 3-м (или n-ном) поворении цену которая уже не выгодна.

Это такой же новый запрос, который ничем не отличается от самого первого. Поэтому OrderSend в этом случае никак не медленнее. Если же учитывать скорость реакции человека (прочесть текст с ценой, принять решение, нажать Enter), то скрипт сработает значительно быстрее.

Для формализации условий подтверждения или отмены новой цены нужно всего лишь определить критерий "выгодности" цены. Выскажу предположение, что это просто некий уровень, выше которого покупать или ниже которого продавать считается невыгодным. В этом случае алгоритм прост - сравниваем новую цену с изначально заданным уровнем (цена первого отправленного приказа). Если выгоднее, то отправляем повторный приказ. Если нет - ждем выгодной цены.

Ahmad Mehdiyev
478
Ahmad Mehdiyev 2012.08.03 19:28  
Но хотелось бы не обрабатывать реквоты в авто режиме.

Тогда, вроде бы, и скрипт не нужен.

скрипт нужен чтобы не пользоваться тикетом

MessageBox() конечно вариант, но будет ли он так же быстро реагировать, и принимает ли команду клавиши "Enter"?

И даже многие другие клавиши ))

наверное придется приспособить MessageBox. Хотя точного ответа на первоначальный вопрос я пока не получил.

Если же учитывать скорость реакции человека (прочесть текст с ценой, принять решение, нажать Enter), то скрипт сработает значительно быстрее.

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

Для формализации условий подтверждения или отмены новой цены нужно всего лишь определить критерий "выгодности" цены. Выскажу предположение, что это просто некий уровень, выше которого покупать или ниже которого продавать считается невыгодным. В этом случае алгоритм прост - сравниваем новую цену с изначально заданным уровнем (цена первого отправленного приказа). Если выгоднее, то отправляем повторный приказ. Если нет - ждем выгодной цены.

Вопрос об алгоритме определения выгодности цены не стоит. Тем более что в последнее время реквоты выдаются даже при изменении цены в мою пользу. Неободимо лишь сохранить контроль над принятием (в случае надобности неоднократным) либо отказом от новой цены. Бывают случаи когда есть желание отказаться от новой цены даже если она более выгодная. Окно подтверждения единственный приемлемый для меня способ.

:) Я ценю Ваше желание помочь, но у меня складывается впечатление, что я прошу у Вас молоток чтоб забивать гвозди, а Вы мне подаете супер навороченный гаджет, который сам будет с гвоздями общаться. ))

Ahmad Mehdiyev
478
Ahmad Mehdiyev 2012.08.03 19:40  
Но хотелось бы не обрабатывать реквоты в авто режиме.

Тогда, вроде бы, и скрипт не нужен.

скрипт нужен чтобы не пользоваться тикетом

MessageBox() конечно вариант, но будет ли он так же быстро реагировать, и принимает ли команду клавиши "Enter"?

И даже многие другие клавиши ))

наверное придется приспособить MessageBox. Хотя точного ответа на первоначальный вопрос я пока не получил.

Ihor Herasko
8896
Ihor Herasko 2012.08.03 19:41  
pro_:

скрипт нужен чтобы не пользоваться тикетом

Что Вы подразумеваете под термином "тикет"?

Вопрос об алгоритме определения выгодности цены не стоит. Тем более что в последнее время реквоты выдаются даже при изменении цены в мою пользу. Неободимо лишь сохранить контроль над принятием (в случае надобности неоднократным) либо отказом от новой цены. Бывают случаи когда есть желание отказаться от новой цены даже если она более выгодная. Окно подтверждения единственный приемлемый для меня способ.

Тогда использование MessageBox - то, что Вам нужно. Алгоритм такой:

  1. После отправки приказа получили реквот.
  2. Выдаем MessageBox с новым Ask/Bid в зависимости от типа будущего рыночного ордера .
  3. Если пользователь нажал "Нет" (не открывать позицию), то завершаем скрипт.
  4. Если нажато "Да" (продолжить попытки), исполняем скрипт сначала.

Ahmad Mehdiyev
478
Ahmad Mehdiyev 2012.08.03 19:46  
Извините, биржевая привычка. Под термином "тикет" я имел ввиду окно нового приказа, ордер.
Ahmad Mehdiyev
478
Ahmad Mehdiyev 2012.08.03 20:05  
Спасибо за совет. Попытаюсь реализовать.
/ /12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий