Ответить
06.04.2014, 09:33
Регистрация: 13.03.2009 / Сообщений: 2,362
Поблагодарили 1,968 раз(а) / Репутация: 2045
Я проверил .У обоих брокеров указано при открытии " Вы можете установить ордер не ближе 0 пунктов от рыночной цены". Но на одном открывает ,а на другом -нет...
То что терминал отвечает что стоп левел =0, ещё не означает что BuyStop ордер можно установить прямо на Ask.
В этом случае надо внимательно читать торговые условия и регламент. На разных ДЦ по разному. И даже на разных типах счетов в пределах одного ДЦ могут быть разные правила.
Например может использоваться в качестве стоп левела спред, или вообще разрешено устанавливать даже внутри спреда.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
06.04.2014, 10:45
Аватар для wellaflex
wellaflex wellaflex вне форума Новичок форума
Регистрация: 08.11.2009 / Сообщений: 19
Поблагодарили 9 раз(а) / Репутация: 9
То что терминал отвечает что стоп левел =0, ещё не означает что BuyStop ордер можно установить прямо на Ask.
В этом случае надо внимательно читать торговые условия и регламент. На разных ДЦ по разному. И даже на разных типах счетов в пределах одного ДЦ могут быть разные правила.
Например может использоваться в качестве стоп левела спред, или вообще разрешено устанавливать даже внутри спреда.
Понятно ,спасибо. Только я вспомнил одну важную деталь.Когда советник пытается выставить стоповый ордер и сыпет ошибками в журнале о неправильном ТП или СЛ,чуть ли не каждую секунду.В этот момент стоит только нажать на смайлик советника,вызвать его настройки и там просто нажать ОК,ничего не меняя.И после этого стоповый ордер сразу выставляется.
Так что тут проблема в коде видимо,только при перезапуске настроек сов выставляет стоп ордер.
08.04.2014, 11:43
Аватар для Roschah
Roschah Roschah вне форума Новичок форума
Регистрация: 21.08.2013 / Сообщений: 27
Поблагодарили 8 раз(а) / Репутация: 9
Уважаемые программисты, возник такой вопрос: ставлю один советник на несколько различных валютных пар, как запретить советнику открывать ордера, если есть уже открытый ордер по другой паре?????
08.04.2014, 11:58
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
Уважаемые программисты, возник такой вопрос: ставлю один советник на несколько различных валютных пар, как запретить советнику открывать ордера, если есть уже открытый ордер по другой паре?????
Как вариант, убрать из проверки принадлежности ордера Symbol() и магик. Хотя магик можно оставить, но назначить его одинаковым на все советники. Это позволит разделить советники на 2-3 группы, если такое желание появится.
08.04.2014, 12:19
Аватар для Roschah
Roschah Roschah вне форума Новичок форума
Регистрация: 21.08.2013 / Сообщений: 27
Поблагодарили 8 раз(а) / Репутация: 9
Как вариант, убрать из проверки принадлежности ордера Symbol() и магик. Хотя магик можно оставить, но назначить его одинаковым на все советники. Это позволит разделить советники на 2-3 группы, если такое желание появится.
А можно ли сделать так, чтобы советник первым делом проверял есть ли открытые ордера вообще на счету и если есть, то не открывал своих ордеров????
08.04.2014, 12:31
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
А можно ли сделать так, чтобы советник первым делом проверял есть ли открытые ордера вообще на счету и если есть, то не открывал своих ордеров????
if(OrdersTotal() > 0) return;
08.04.2014, 13:38
Аватар для Roschah
Roschah Roschah вне форума Новичок форума
Регистрация: 21.08.2013 / Сообщений: 27
Поблагодарили 8 раз(а) / Репутация: 9
if(OrdersTotal() > 0) return;
я правильно понял???? int start() {
if(OrdersTotal() > 0) return;
08.04.2014, 13:40
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
я правильно понял???? int start() {
if(OrdersTotal() > 0) return;
Это зависит от алгоритма советника. Если просто ставит ордера, то да. А если ещё и тралит, то нет. Тогда надо изменить условие
if(OrdersTotal() < 1) открыть ордер

ps; и не int start() а void OnTick()
Лучше сразу привыкай к новому МЕ.

Последний раз редактировалось AlexeyVik; 08.04.2014 в 13:42.
08.04.2014, 13:58
Аватар для Roschah
Roschah Roschah вне форума Новичок форума
Регистрация: 21.08.2013 / Сообщений: 27
Поблагодарили 8 раз(а) / Репутация: 9
Это зависит от алгоритма советника. Если просто ставит ордера, то да. А если ещё и тралит, то нет. Тогда надо изменить условие
if(OrdersTotal() < 1) открыть ордер

ps; и не int start() а void OnTick()
Лучше сразу привыкай к новому МЕ.
Функции трала нет. Спасибо, большое за помощь.
08.04.2014, 15:21
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,851
Поблагодарили 9,512 раз(а) / Репутация: 9517
Подскажите, как правильно задать условие: ордер открытый на текущей свече, должен закрыться с появлением новой?
08.04.2014, 15:32
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,590
Поблагодарили 3,715 раз(а) / Репутация: 3711
Подскажите, как правильно задать условие: ордер открытый на текущей свече, должен закрыться с появлением новой?
В некоторых случаях достаточно if(Time[0] > OrderOpenTime())
09.04.2014, 17:06
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Я что-то туплю, по ходу. Я иной раз замечаю, что некоторые программисты в своих функциях задают следующее условие:

PHP код:
if (fi_Ticket == 0) return; 
Например, в функции установки стоп-лосса. По скольку тикета равного 0 (нуль) не бывает ни в тестере, ни в реале, возникает вопрос. Зачем такая проверка вообще используется?
09.04.2014, 18:49
Регистрация: 13.03.2009 / Сообщений: 2,362
Поблагодарили 1,968 раз(а) / Репутация: 2045
Я что-то туплю, по ходу. Я иной раз замечаю, что некоторые программисты в своих функциях задают следующее условие:

PHP код:
if (fi_Ticket == 0) return; 
Например, в функции установки стоп-лосса. По скольку тикета равного 0 (нуль) не бывает ни в тестере, ни в реале, возникает вопрос. Зачем такая проверка вообще используется?
В том и смысл. Тикета =0 не бывает, а значение переменной вполне.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
hoz 
09.04.2014, 20:32
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
В одной библиотеке имеется перечень глобальных переменных. Данная библиотека подключается к некоторым другим библиотекам. Мне интересен один момент. В С++ есть конструкция, которая гарантирует, что не будет объявлена та же переменная или функция повторно. А в мкл4 как?
Например, по ходу кода в эксперте, в случает, если эксперт использует несколько библиотек и какая-нить переменная объявляется несколько раз (внутри разных библиотек). Это считается нормально? Ведь если переменная объявлена, и, инициализирована некоторым значением до повторного её объявления по ходу отработки кода... то как это отразится на значении данной переменной?
Я раньше не задумывался об этом, но сейчас вот решил въехать, дабы уяснить канкретно.
12.04.2014, 10:03
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
При компиляции должен будет предупредить.
12.04.2014, 12:12
Аватар для qqmber
qqmber qqmber вне форума Почётный гражданин
Регистрация: 20.01.2013 / Сообщений: 530
Поблагодарили 386 раз(а) / Репутация: 386
В одной библиотеке имеется перечень глобальных переменных. Данная библиотека подключается к некоторым другим библиотекам. Мне интересен один момент. В С++ есть конструкция, которая гарантирует, что не будет объявлена та же переменная или функция повторно. А в мкл4 как?
Например, по ходу кода в эксперте, в случает, если эксперт использует несколько библиотек и какая-нить переменная объявляется несколько раз (внутри разных библиотек). Это считается нормально? Ведь если переменная объявлена, и, инициализирована некоторым значением до повторного её объявления по ходу отработки кода... то как это отразится на значении данной переменной?
Я раньше не задумывался об этом, но сейчас вот решил въехать, дабы уяснить канкретно.
В mql нет глобальных переменных в том же смысле, как в С, переменные на верхнем уровне все равно локальны внутри модуля и недоступны из других. Не зря extern тут означает совсем другое.
12.04.2014, 21:05
Аватар для hoz
hoz hoz вне форума Активный участник
Регистрация: 01.04.2011 / Сообщений: 532
Поблагодарили 112 раз(а) / Репутация: 111
  • Отправить сообщение для hoz с помощью ICQ
Я так понимаю, что extern это лишь признак того, что эта переменная вводная. Есс-но, её значение можно ввести. Я вот на данный момент думаю как разумнее разрулить использование переменной типа extern внутри класса. Ведь внутри секций (private, protected и рublic) можно только объявить переменные. Задать значения переменным нельзя.
Тогда возникает вопрос, как передать в класс значение вводимые пользователем? Т.е. extern (input).
13.04.2014, 10:26
Аватар для ctmcn
ctmcn ctmcn вне форума Новичок форума
Регистрация: 02.04.2011 / Сообщений: 35
Поблагодарили 6 раз(а) / Репутация: 7
Здравствуйте !
Подскажите, почему в МЕ 509 билда - ошибки, а в МЕ 625 - ошибок нет.
Считал, что и там, и там ошибок не должно быть.
Индикатор прилагаю.
С уважением.
18.04.2014, 11:49
Аватар для ansol
ansol ansol вне форума Местный знаток
За призовое место в конкурсе 

Регистрация: 22.04.2010 / Сообщений: 2,039
Поблагодарили 873 раз(а) / Репутация: 859
Как узнать время выставления отложенного ордера?
OrderOpenTime() для отложенника не работает. Или я что-то не понял?
Задача - удалять ордер по открытию новой свечи, а у всех ДЦ, с которыми я имел дело, меньше 10 минут отложенники не дает ставить.
18.04.2014, 11:53
Аватар для matro3
matro3 matro3 вне форума Почётный гражданин
Регистрация: 18.07.2013 / Сообщений: 349
Поблагодарили 340 раз(а) / Репутация: 344
Когда выставляешь - запоминай время. Потом сравнивай со временем текущей свечи.
Ответить

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 02:04. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO