Поддерживаю идею. Правильное решение........!!!
Кода Вашего огромное количество, вопросы возникают частенько, а обращаться к Вам в чужих постах и по другим темам как-то не хорошо.
Замечательно.
Предложение разработчикам: начать формирование библиотеки функций. По моим представлениям, для этого желательно предъявить сообществу требования к оформлению (например, обязательно должно присутствовать описание переменных, оговорены ограничения по использованию, количество символов в строке и т.д.). Хорошо бы MQ-вскую статью на эту тему.
Со временем в библиотеке появятся не только простые, но и сложные функции.
А будут ли публиковаться функции для реальной торговли?
Да, будут... Следующей будет функция SetOrder() для онлайн-торговли...
Примеры использования функции SetOrder():
1. Установка ордера BuyLimit лотом 0.1 на 50 пунктов ниже текущей цены:
SetOrder(NULL, OP_BUYLIMIT, 0.1, Ask-50*Point);
2. Установка ордера BuyStop лотом 0.3 на 36 пунктов выше текущей цены со стопом 32 пункта:
SetOrder(NULL, OP_BUYSTOP, 0.3, Ask+36*Point, Ask+(36-32)*Point);
3. Установка ордера SellLimit лотом 0.2 на 42 пунктов выше текущей цены с тейком 50 пунктов:
SetOrder(NULL, OP_SELLLIMIT, 0.2, Bid+42*Point, 0, Bid+(42-50)*Point);
4. Установка ордера SellStop лотом 0.5 на 100 пунктов ниже текущей цены со стопом 30 пунктов и тейком 70 пунктов:
SetOrder(NULL, OP_SELLSTOP, 0.5, Bid-100*Point, Bid-(100-30)*Point, Bid-(100+70)*Point);
5. Установка ордера BuyLimit лотом 0.1 на 50 пунктов ниже текущей цены с магиком 123456 и сроком истечения через два часа:
SetOrder(NULL, OP_BUYLIMIT, 0.1, Ask-50*Point, 0, 0, 123456, TimeCurrent()+2*60*60);В прицепе реальноработающий скрипт с вышеприведёнными примерами. Первые четыре примера закомментированы.
Здравствуйте, Игорь!
Поддерживаю идею. Правильное решение........!!!
Кода Вашего огромное количество, вопросы возникают частенько, а обращаться к Вам в чужих постах и по другим темам как-то не хорошо.
Спасибо.
Покажите Вашу версию задержек между торговыми операциями
Между торговыми операциями я задержек не делаю. То есть, если мне нужно выставить два и более ордера, то эти торговые операции я совершаю без паузы между ними. А вот между торговыми попытками, которые приходится повторять, если при обращении к серверу возникает ошибка, делаю паузу согласно рекомендациям разработчиков МТ4. В качестве примера можете посмотреть, как реализованы такие паузы в моей функции SetOrder() для онлайн-торговли. Для разных ошибок, возвращаемых торговым сервером, делаются разные паузы.
Функция SetOrder() предназначена для установки отложенных ордеров. Рекомендуется к использованию в онлайн-торговле на демо и реальных счетах.
...объясните откуда задержки в 7.7,17,11 сек . Это шутка или обоснованно.
Какие могут быть шутки с реальными деньгами?
На паузу 7.7 секунды нарвутся ошибки 129 (Неправильная цена bid или ask), 130 (Неправильные стопы), 134 (Недостаточно денег), 136 (Нет цен). Разработчики МТ4 рекомендуют в этих случаях паузы более 5 секунд. Я поставил 7.7 секунды. С таким же успехом можно было поставить 6.1 секунды. Круглые значения не люблю из-за их притягательности, поэтому ставлю некруглые.
Пауза длительностью 17 сек. предполагалась для ошибки 145 (Модификация запрещена). Но, так как функция SetOrder не занимается модификацией, то я убрал обработку этой ошибки. Благодарю, что обратили моё внимание на данный аспект моей функции!
Пауза длительностью 11 сек расположена внутри цикла, проверяющего состояние подсистемы торговли. Тут можно поставить и 15 сек., и 30. Кому как нравится.
И еше,а как быть если несколько экспертов тогда без анализа не обойтись.
Для случая нескольких экспертов на одном торговом счете обрабатывается ошибка 146 (Подсистема торговли занята). Функция SetOrder ждёт, когда подсистема торговли освободится.
Внимание! Предыдущий пост я подредактировал. Внёс изменения в функцию SetOrder.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В этой теме я буду выкладывать коды своих функций на языке программирования MQL4, приводить примеры их использования и отвечать на вопросы, связанные с их использованием. Каждую функцию буду публиковать двумя постами. В первом посте код функции, во втором примеры использования и небольшие пояснения. Ко второму посту буду иногда прицеплять код скрипта для реального тестирования функции с отображением результатов.
Начну с функций, предназначенных для работы с ордерами, по просьбе Lukyanov в теме "Как два советника одновременно запустить" в конце.
Пусть первой будет функция установки ордера (версия для тестера МТ4):