Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 170
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Примеров полно в CodeBase ищите советники на отложенных ордерах и смотрите как написан код.
Искал в CodeBase образец около часа и ничего понятного для себя не нашел. Это для меня слишком сложно. Слишком большие коды в которых ничего не понятно, а мне всего то нужно пару кодов размером в 4-6 строчек. Спасибо за ответ, но это не подходит.
Искал в 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 строчек для всего этого, то ... медаль на складе получите... ;)
Чувствую что после этого объяснения еще одним начинающим программистом стало меньше )))
ребята что за (.е) в вальютах объясните плиз
нужен участок кода - надежный мультивалютный трейлингстоп начинающий работать с задаваемого безубытка и с задаваемым отступом от цены
Глянь этот, http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=62
Вы хотите на этот вопрос:
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)ну и еще каких то вещей которые мне как раз и не удаются. Вы написали кучу сложных терминов тем самым сказав мне что я ничего не могу и лошара в программировании, но это я и так знаю. Надеюсь вы теперь не считаете меня обнаглевшим человеком и поймете что я всего лишь хочу продолжить обучаться. Но и вы со своей стороны правы, надеюсь компромисс найден.
Вас никто не называл "лошара", зря вы так. Но и 4-6 строк кода тоже, знаете-ли вызывают недоумение - ведь раз человек чему-то учится, то должен уже что-то пробовать, что-то уже пытался написать, и явно уже видит, что в 4-6 строчек не уместиться.
Покажите что вы пытались сделать - попробуем понять.
Могу предложить альтернативный, упрощённый вариант - не искать по тикам пересечение цены некоего уровня, а искать его по МА(1) - тогда МАшка на баре 1 и МАшка на баре 0 будут служить вам индикатором пересечения нужного вам уровня.
ребята что за (.е) в вальютах объясните плиз