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

 
Sergey Gritsay:

Примеров полно в CodeBase  ищите советники на отложенных ордерах и смотрите как написан код.

Искал в  CodeBase образец около часа и ничего понятного для себя не нашел. Это для меня слишком сложно. Слишком большие коды в которых ничего не понятно, а мне всего то нужно пару кодов размером в 4-6 строчек. Спасибо за ответ, но это не подходит.
 
maxon777:

Искал в  CodeBase образец около часа и ничего понятного для себя не нашел. Это для меня слишком сложно. Слишком большие коды в которых ничего не понятно, а мне всего то нужно пару кодов размером в 4-6 строчек. Спасибо за ответ, но это не подходит.

Вы хотите на этот вопрос:

1)открыть отложенный ордер когда он достиг какого либо значения(т.е. если цена равна 0.7777, то открыть отложенный ордер)

2)закрыть ордер(рыночный) если он достиг какого либо значения (т.е. если цена равно 0.6666, то закрыть ордер)

получить ответ на 4-6 строчек кода?

Вы из тех заказчиков, которые пишут - "Да чё там делать-то? Делов-то на пару строчек... Какие сто баксов???"

Давайте определимся:

Вам нужно сначала определить, что цена достигла значения 0.7777. Достигла сверху? Снизу? А ничего, что прошлый тик был, например 0.7776, а текущий стал 0.7778 ? В таком случае вы не поймаете равенство цены значению 0.7777... Значит проверять нужно прошлое значение и текущее на пересечение нужного значения. Соответственно, вам нужно хранить значение прошлого тика и знать значение текущего. Значит - нужна функция для получения значения тика и запоминания его значения чтобы потом было с чем сравнивать - три цены: прошлый тик, текущий тик и собственно пересекаемая цена.

Далее. Нам нужно знать в какую сторону цена должна пересечь нужное вам значение и, соответственно, выставить нужный тип отложенного ордера на нужной цене.

Чтобы его поставить, нужно посчитать цену его установки от текущей цены, сравнить полученную дистанцию установки отложенного ордера со значением StopLevel и, если полученная дистанция меньше этого значения, то: а) Скорректировать дистанцию установки ордера так, чтобы не получить ошибку 130 и выставить-таки ордер, либо б) подождать когда дистанция установки будет больше значения StopLevel (при плавающем спреде, который тоже нужно получать на каждом тике), поглядеть - а на нужном ли значении находится цена, которая уже пересекла заданный уровень - т.е., не далеко ли она ушла от этого уровня чтобы выставить ордер, или уже "поезд ушёл".

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

Это для отложек.

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


Если вы уложитесь в 4-6 строчек для всего этого, то ... медаль на складе получите... ;)

 
Чувствую что после этого объяснения еще одним начинающим программистом стало меньше )))
 
Andrey Koldorkin:
Чувствую что после этого объяснения еще одним начинающим программистом стало меньше )))
 

ребята что за (.е) в вальютах объясните плиз

 
нужен участок кода - надежный мультивалютный трейлингстоп начинающий работать с задаваемого безубытка и с задаваемым отступом от цены
 
Vitaliy29:
нужен участок кода - надежный мультивалютный трейлингстоп начинающий работать с задаваемого безубытка и с задаваемым отступом от цены

Глянь этот, http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=62

Автоматизация торговли на финансовых рынках - Скачать e-Trailing2.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Советники   Новая улучшенная бесплатная версия "кимовского трала". Добавлен параметр Magic, позволяющий более гибко отбирать сопровождаемые позиции, а также разделены параметры трала для покупок и продаж. Кроме того, вместо параметра ProfitTrailing теперь используется TrailingStart. Это почти то...
 
Artyom Trishkin:

Вы хотите на этот вопрос:

1)открыть отложенный ордер когда он достиг какого либо значения(т.е. если цена равна 0.7777, то открыть отложенный ордер)

2)закрыть ордер(рыночный) если он достиг какого либо значения (т.е. если цена равно 0.6666, то закрыть ордер)

получить ответ на 4-6 строчек кода?

Вы из тех заказчиков, которые пишут - "Да чё там делать-то? Делов-то на пару строчек... Какие сто баксов???"

Давайте определимся:

Вам нужно сначала определить, что цена достигла значения 0.7777. Достигла сверху? Снизу? А ничего, что прошлый тик был, например 0.7776, а текущий стал 0.7778 ? В таком случае вы не поймаете равенство цены значению 0.7777... Значит проверять нужно прошлое значение и текущее на пересечение нужного значения. Соответственно, вам нужно хранить значение прошлого тика и знать значение текущего. Значит - нужна функция для получения значения тика и запоминания его значения чтобы потом было с чем сравнивать - три цены: прошлый тик, текущий тик и собственно пересекаемая цена.

Далее. Нам нужно знать в какую сторону цена должна пересечь нужное вам значение и, соответственно, выставить нужный тип отложенного ордера на нужной цене.

Чтобы его поставить, нужно посчитать цену его установки от текущей цены, сравнить полученную дистанцию установки отложенного ордера со значением StopLevel и, если полученная дистанция меньше этого значения, то: а) Скорректировать дистанцию установки ордера так, чтобы не получить ошибку 130 и выставить-таки ордер, либо б) подождать когда дистанция установки будет больше значения StopLevel (при плавающем спреде, который тоже нужно получать на каждом тике), поглядеть - а на нужном ли значении находится цена, которая уже пересекла заданный уровень - т.е., не далеко ли она ушла от этого уровня чтобы выставить ордер, или уже "поезд ушёл".

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

Это для отложек.

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


Если вы уложитесь в 4-6 строчек для всего этого, то ... медаль на складе получите... ;)

"Вы из тех заказчиков, которые пишут - "Да чё там делать-то? Делов-то на пару строчек... Какие сто баксов???"". Нет, я не из таких людей и не понимаю с чего вы взяли что я заказчик. Я хочу освоить эту программу т.к. у меня есть идеи по поводу советника, проблемы в ее реализации только технические (и не спорю что проблемы очень большие), но я не пытался сказать что то типа "сделайте мне все прогу и чтоб пахала только с прибылью". Я наоборот начал с основ и хочу сам написать свой первый советник. Так же я написал что нужен очень простой пример без учитывания всяких точностей(хоть и понимаю что они очень важны), но надо с чего то начинать. Я знал что профессионалу будет больно смотреть на то, что я прошу, но ничего поделать не мог, пока это все что я знаю. Я думал что написать такой кусок кода можно с помощью оператора if else и  функции OrderSend (OrderClose)ну и еще каких то вещей которые мне как раз и не удаются. Вы написали кучу сложных терминов тем самым сказав мне что я ничего не могу и лошара в программировании, но это я и так знаю. Надеюсь вы теперь не считаете меня обнаглевшим человеком и поймете что я всего лишь хочу продолжить обучаться. Но и вы со своей стороны правы, надеюсь  компромисс найден.
 
maxon777:
"Вы из тех заказчиков, которые пишут - "Да чё там делать-то? Делов-то на пару строчек... Какие сто баксов???"". Нет, я не из таких людей и не понимаю с чего вы взяли что я заказчик. Я хочу освоить эту программу т.к. у меня есть идеи по поводу советника, проблемы в ее реализации только технические (и не спорю что проблемы очень большие), но я не пытался сказать что то типа "сделайте мне все прогу и чтоб пахала только с прибылью". Я наоборот начал с основ и хочу сам написать свой первый советник. Так же я написал что нужен очень простой пример без учитывания всяких точностей(хоть и понимаю что они очень важны), но надо с чего то начинать. Я знал что профессионалу будет больно смотреть на то, что я прошу, но ничего поделать не мог, пока это все что я знаю. Я думал что написать такой кусок кода можно с помощью оператора if else и  функции OrderSend (OrderClose)ну и еще каких то вещей которые мне как раз и не удаются. Вы написали кучу сложных терминов тем самым сказав мне что я ничего не могу и лошара в программировании, но это я и так знаю. Надеюсь вы теперь не считаете меня обнаглевшим человеком и поймете что я всего лишь хочу продолжить обучаться. Но и вы со своей стороны правы, надеюсь  компромисс найден.

Вас никто не называл "лошара", зря вы так. Но и 4-6 строк кода тоже, знаете-ли вызывают недоумение - ведь раз человек чему-то учится, то должен уже что-то пробовать, что-то уже пытался написать, и явно уже видит, что в 4-6 строчек не уместиться.

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

Могу предложить альтернативный, упрощённый вариант - не искать по тикам пересечение цены некоего уровня, а искать его по МА(1) - тогда МАшка на баре 1 и МАшка на баре 0 будут служить вам индикатором пересечения нужного вам уровня.

 
Sahet.Sh:

ребята что за (.е) в вальютах объясните плиз

Это вопрос к брокеру, не стесняйтесь обращаться в поддержку. Только он точно знает, что у него означают суффиксы .e. Это его решение. А вообще суффиксы (также и префиксы) в названиях валюных пар и других инструментов могут означать что угодно: ie - исполнение инстант экзекъкюшен, m - исполнение по рынку, точка - пять знаков в котировке и комиссия, _OP - инструмент для торговли бинарными опционами,... Но, безусловно, это решение только брокера, он и является последней инстанцией в выяснении смысла введенных им обозначений.
Причина обращения: