Имя пользователя:

Пароль:



MQL5 - вопросы программирования

Подписчиков: coder-ex

MQL5 - вопросы программирования

Номер сообщения:#1  Непрочитанное сообщение SVG » 18 мар 2015, 17:59

Пишем, задаем вопросы касательно работы и программирования для МТ5, выкладываем советников, индикаторы только для МТ5.

Делюсь советником-индикатором для MT5 для проведения аналитики расчета безоткатных движений рынка по валютным парам (не торгует и не тестируется, только на чарт терминала). Все расчеты записываются в файл с расширением csv по пути MQL5\Files.
Сова написана по мотивам советника MaxTrend от cmilliona, добавлена функция расчета как отката так и безотката, перевод на 5 знак.
Полезно при расчете настроек мартингейла.

ExpBezotkat.rar


MQL5 - вопросы программирования
У вас нет доступа для просмотра вложений в этом сообщении.
Скоростной и надежный VPN сервер
Аватар пользователя
SVG
.
.
      Автор темы
Сообщений: 1430
Возраст: 45
Зарегистрирован: 64 месяцев и 18 дней
Откуда: Khimki Left coast
Национальный флаг:
Russia
Благодарил (а): 454 раз.
Поблагодарили: 805 раз.
Имя: Владимир
Пункты репутации: 29
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#2  Непрочитанное сообщение forwardkiko » 23 май 2015, 22:32

мт5 по-моему поинтереснее чем мт4 надо бы как-то освоить и торговать на мт5 так акак от мартина надо бы отойти

Сообщение добавлено... спустя 1 минуту 43 секунды:
скину индикатор неплохая замена параболика для торгующих по тренду

Сообщение добавлено... спустя 9 минут 27 секунд:
портировал на мт4 прбуйте кому цикава
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
forwardkiko
.
.
Сообщений: 374
Возраст: 42
Зарегистрирован: 45 месяцев и 3 дня
Откуда: Беларусь г. Гомель
Национальный флаг:
Belarus
Благодарил (а): 36 раз.
Поблагодарили: 91 раз.
Имя: Игорь
Пункты репутации: 5
Ученик трейдера

MQL5 - вопросы программирования

Номер сообщения:#3  Непрочитанное сообщение las calic » 17 фев 2016, 22:05

forwardkiko писал(а):

мт5 по-моему поинтереснее чем мт4 надо бы как-то освоить и торговать на мт5 так акак от мартина надо бы отойти

Сообщение добавлено... спустя 1 минуту 43 секунды:
скину индикатор неплохая замена параболика для торгующих по тренду

Сообщение добавлено... спустя 9 минут 27 секунд:
портировал на мт4 прбуйте кому цикава


Подскажите, индикатор сделан по http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:chandelier_exit ?
Спасибо
Аватар пользователя
las calic


MQL5 - вопросы программирования

Номер сообщения:#4  Непрочитанное сообщение tai78 » 16 мар 2016, 12:03

Поправьте пожалуйста ошибки.
У вас нет доступа для просмотра вложений в этом сообщении.
MQL5 - вопросы программирования
Аватар пользователя
tai78
.
.
Сообщений: 200
Возраст: 39
Зарегистрирован: 64 месяцев и 5 дней
Откуда: Оренбург
Национальный флаг:
Russia
Благодарил (а): 197 раз.
Поблагодарили: 61 раз.
Имя: Андрей
Пункты репутации: 3
Ученик трейдера

MQL5 - вопросы программирования

Номер сообщения:#5  Непрочитанное сообщение SVG » 16 мар 2016, 16:38

А что понесло на mt5, его если только переписать по новой, тем более галимая мартышка.
Ты что еще не на тестился ?
тестирую Дракулу :)
Есть ли смысл, расскажи хоть принцип его торговли, используемые фильтра что в нем интересного.
Скоростной и надежный VPN сервер
Аватар пользователя
SVG
.
.
      Автор темы
Сообщений: 1430
Возраст: 45
Зарегистрирован: 64 месяцев и 18 дней
Откуда: Khimki Left coast
Национальный флаг:
Russia
Благодарил (а): 454 раз.
Поблагодарили: 805 раз.
Имя: Владимир
Пункты репутации: 29
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#6  Непрочитанное сообщение tai78 » 16 мар 2016, 22:05

SVG писал(а):

А что понесло на mt5, его если только переписать по новой, тем более галимая мартышка.
Ты что еще не на тестился ?
тестирую Дракулу :)
Есть ли смысл, расскажи хоть принцип его торговли, используемые фильтра что в нем интересного.

Нее не на тестился, это единственная сова которая выводила за одну ночь меня в лидеры в конкурсах, еще одно запомнилось, давно впервые когда она попала ко мне в руки я поставил ее вместе в интегрой версию сейчас не скажу (все потерялось с вылетом HDD, как всегда закон подлости, когда были хорошие результаты надо чемуто сломаться именно в этот момент), поставив точно помню одинаковые магики, а вот что остальное менял не помню, хоть и уже много, много раз пытался это повторить, тока как то не то что было тогда,но две совы тоже опять же за ночь :D наколотили с 12000 до 22000 и посмотрев по истории как так быстро, получилась такая картина, интегра открывала ордера соответственно против тренда а Дракула по тренду и они компенсировали друг друга как то, ордеров тогда было много какой-то скальпер выходил. А вот в конкурсах уже тока одна Дракула работала, и тут надо ловить разворот она упорно торгует по тренду если не помочь руками будет слив.
По сове попробую пояснить что в ней нарыл и понял, надеюсь правильно, теперь хочу понять, это проблемы декомпила как многие говорят или все таки автор чтото не доделал(и это точно не доделано) до конца.
Заведено но не используется в советнике:
Индикатор force, фибо уровни, 2-е MA, (pricefilter,patternsfilter-заведены но не работают как фильтры-это самый большой фильтр что я видел на просторах инета в совах), есть закоментированные фильтры их можно активировать такие как atr, хеджирование по MA, несколько вариантов закрытия и трелинга от процента просадки прибыли,Защита от потери депозита, что хотел сделать автор заведя отдельно переменные по GBPJPYm и дальше нет ничего,хотяб зачем описавать перменные string gs_unused_1652 = "2=buy 0=sell 1=no trade"; но ведь заведено в коде не так 1 и 2 открытие на бай и сел а 0 не открывать-ошибка может-поэтому много вопросов которые меня беспокоят :D
По умолчанию выведено для торговли по индикаторам psar, фильтр EMA, envelopes, хеджирование по psar, кстати фильтр по пивот чтото тоже не работает но он есть. Вот примерно такая картина может чтото упустил, а в MT5 хочу попробовать сделать его мультивалютным может будет еще интереснее.
MQL5 - вопросы программирования
Аватар пользователя
tai78
.
.
Сообщений: 200
Возраст: 39
Зарегистрирован: 64 месяцев и 5 дней
Откуда: Оренбург
Национальный флаг:
Russia
Благодарил (а): 197 раз.
Поблагодарили: 61 раз.
Имя: Андрей
Пункты репутации: 3
Ученик трейдера

MQL5 - вопросы программирования

Номер сообщения:#7  Непрочитанное сообщение SVG » 17 мар 2016, 01:09

Так давай ее заставим работать пока на mt4 а потом при желании (кверяю точно желание такое отпадет) напишем ее под мт5.
Это декомпил, во первых во вторых его нужно полностью переписывать и смысла ловить ошибки вообще нет. Если есть оригинал под мт4 давай разберем что и как там работает.
От всех падений HDD спасает работа только в папках dropboxa, яндекс диска и др..
Скоростной и надежный VPN сервер
Аватар пользователя
SVG
.
.
      Автор темы
Сообщений: 1430
Возраст: 45
Зарегистрирован: 64 месяцев и 18 дней
Откуда: Khimki Left coast
Национальный флаг:
Russia
Благодарил (а): 454 раз.
Поблагодарили: 805 раз.
Имя: Владимир
Пункты репутации: 29
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#8  Непрочитанное сообщение tai78 » 17 мар 2016, 07:53

SVG писал(а):

Так давай ее заставим работать пока на mt4 а потом при желании (кверяю точно желание такое отпадет) напишем ее под мт5.
Это декомпил, во первых во вторых его нужно полностью переписывать и смысла ловить ошибки вообще нет. Если есть оригинал под мт4 давай разберем что и как там работает.
От всех падений HDD спасает работа только в папках dropboxa, яндекс диска и др..

Да согласен, но на сколько помню это еще не было развито в 2008-2009 годах, все важное сохранялось на болванки, если конечно успел перенести на них :) .
Я те даже как то ее скидывал давным-давно. :)
У вас нет доступа для просмотра вложений в этом сообщении.
MQL5 - вопросы программирования
Аватар пользователя
tai78
.
.
Сообщений: 200
Возраст: 39
Зарегистрирован: 64 месяцев и 5 дней
Откуда: Оренбург
Национальный флаг:
Russia
Благодарил (а): 197 раз.
Поблагодарили: 61 раз.
Имя: Андрей
Пункты репутации: 3
Ученик трейдера

MQL5 - вопросы программирования

Номер сообщения:#9  Непрочитанное сообщение SVG » 22 мар 2016, 20:19

tai78 писал(а):

SVG писал(а):

Так давай ее заставим работать пока на mt4 а потом при желании (кверяю точно желание такое отпадет) напишем ее под мт5.
Это декомпил, во первых во вторых его нужно полностью переписывать и смысла ловить ошибки вообще нет. Если есть оригинал под мт4 давай разберем что и как там работает.
От всех падений HDD спасает работа только в папках dropboxa, яндекс диска и др..

Да согласен, но на сколько помню это еще не было развито в 2008-2009 годах, все важное сохранялось на болванки, если конечно успел перенести на них :) .
Я те даже как то ее скидывал давным-давно. :)

Ужас тихой ночью, я не возьмусь. Разобрать по косточкам могу помочь.
Скоростной и надежный VPN сервер
Аватар пользователя
SVG
.
.
      Автор темы
Сообщений: 1430
Возраст: 45
Зарегистрирован: 64 месяцев и 18 дней
Откуда: Khimki Left coast
Национальный флаг:
Russia
Благодарил (а): 454 раз.
Поблагодарили: 805 раз.
Имя: Владимир
Пункты репутации: 29
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#10  Непрочитанное сообщение tai78 » 23 мар 2016, 08:26

SVG писал(а):

tai78 писал(а):

SVG писал(а):

Так давай ее заставим работать пока на mt4 а потом при желании (кверяю точно желание такое отпадет) напишем ее под мт5.
Это декомпил, во первых во вторых его нужно полностью переписывать и смысла ловить ошибки вообще нет. Если есть оригинал под мт4 давай разберем что и как там работает.
От всех падений HDD спасает работа только в папках dropboxa, яндекс диска и др..

Да согласен, но на сколько помню это еще не было развито в 2008-2009 годах, все важное сохранялось на болванки, если конечно успел перенести на них :) .
Я те даже как то ее скидывал давным-давно. :)

Ужас тихой ночью, я не возьмусь. Разобрать по косточкам могу помочь.

Да ладно, что ж там ужасного :D
Давай попробуем по частям, начнем с фильтра pricefilter, patternsfilter - самая большая и вкусная часть кода, как то на форуме уже интересовался что может быть присвоено gd_664 посоветовали присвоить -point, остальное вроде все заведено в коде не потеряно, но это не помогло, при тесте нет влияния на торговлю что включить, что выключить эти фильтры.
MQL5 - вопросы программирования
Аватар пользователя
tai78
.
.
Сообщений: 200
Возраст: 39
Зарегистрирован: 64 месяцев и 5 дней
Откуда: Оренбург
Национальный флаг:
Russia
Благодарил (а): 197 раз.
Поблагодарили: 61 раз.
Имя: Андрей
Пункты репутации: 3
Ученик трейдера

MQL5 - вопросы программирования

Номер сообщения:#11  Непрочитанное сообщение SVG » 24 мар 2016, 00:21

tai78 писал(а):

SVG писал(а):

tai78 писал(а):

SVG писал(а):

Так давай ее заставим работать пока на mt4 а потом при желании (кверяю точно желание такое отпадет) напишем ее под мт5.
Это декомпил, во первых во вторых его нужно полностью переписывать и смысла ловить ошибки вообще нет. Если есть оригинал под мт4 давай разберем что и как там работает.
От всех падений HDD спасает работа только в папках dropboxa, яндекс диска и др..

Да согласен, но на сколько помню это еще не было развито в 2008-2009 годах, все важное сохранялось на болванки, если конечно успел перенести на них :) .
Я те даже как то ее скидывал давным-давно. :)

Ужас тихой ночью, я не возьмусь. Разобрать по косточкам могу помочь.

Да ладно, что ж там ужасного :D
Давай попробуем по частям, начнем с фильтра pricefilter, patternsfilter - самая большая и вкусная часть кода, как то на форуме уже интересовался что может быть присвоено gd_664 посоветовали присвоить -point, остальное вроде все заведено в коде не потеряно, но это не помогло, при тесте нет влияния на торговлю что включить, что выключить эти фильтры.

Да половина кода не задйствовано, фильтр прайсов и паттернов воздухе висит, вместо пв_664 точно ставим _Point.
На неделе распишу, что скрывается за этим фильтром.
Скоростной и надежный VPN сервер
Аватар пользователя
SVG
.
.
      Автор темы
Сообщений: 1430
Возраст: 45
Зарегистрирован: 64 месяцев и 18 дней
Откуда: Khimki Left coast
Национальный флаг:
Russia
Благодарил (а): 454 раз.
Поблагодарили: 805 раз.
Имя: Владимир
Пункты репутации: 29
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#12  Непрочитанное сообщение SVG » 03 апр 2016, 22:01

Я забил на эту помойку из кода под названием Дракула :[
Скоростной и надежный VPN сервер
Аватар пользователя
SVG
.
.
      Автор темы
Сообщений: 1430
Возраст: 45
Зарегистрирован: 64 месяцев и 18 дней
Откуда: Khimki Left coast
Национальный флаг:
Russia
Благодарил (а): 454 раз.
Поблагодарили: 805 раз.
Имя: Владимир
Пункты репутации: 29
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#13  Непрочитанное сообщение coder-ex » 28 июл 2016, 02:26

Всем привет!
Сразу дам краткую вводную, а затем вопрос:
1. Торговая стратегия с выставлением sl и tp
2. Работаем с ассинхронным вариантом функции отправки торговых запросов OrderSendAsync
3. Работа строится из расчета работы по маркет, т.е. сперва отправляем запрос на открытие позиции и только после ее открытия (получили подтверждение) sl и tp
4. Далее только сопровождаем открытую позицию по тралу либо она закрывается по tp
Возникающие подводные камни:
1. Иногда при сопровождении позиции при трейлинге получаем серию одинаковых запросов на модификацию
2. Иногда при сопровождении позиции при трейлинге получаем серию ошибок
2016.07.28 02:54:31.166 Trades '15006872': failed modify #1000250533 sell 0.10 GBPUSD sl: 1.31975, tp: 1.31186 -> sl: 1.31914, tp: 1.31186 [Invalid stops]

Сами вопросы:
1. Суть появления серии однотипных запросов понятна, нужен алгоритм не в коде, как обойти эту серию запросов
2. С самой серией ошибок так же все понятно, она порождена п. 1, а вот как обойти саму ошибку, ведь весь расчет sl производится в одном такте OnTick(), больших задержек в ней нет т.к. расчеты элементарные. По сути получаем во время трала уровень на выставление sl, его проверяем и если он для buy "<" / для sell ">", то отправляем запрос на модификацию, однако в этом же такте происходит уход цены с намеченного уровня ниже порога его выставления (спред), т.к. при расчете спред учитывается. Алгоритм с MQL4 который используется и работает, тут не подходит, нужно что другое. Думал над вариантом обновления данных именно перед расчетом в методах трала, а не в начале такта для всех алгоритмов, но это сильно нагнет систему на оптимизации и тестировании, т.к. общий алгоритм сложный в расчетах, а МТ5 оказался не так совершенен как его позиционируют разработчики. Может кто подскажет умную мыслю и я ее оприходую в код библиотеки. Сама библиотека у SVG, правда кое что в ней еще не переделал с MQL4.

P.S. :
Нужны не коды, нужна сама мысль!!!
Си — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.
Аватар пользователя
coder-ex
.
.
Сообщений: 849
Возраст: 47
Зарегистрирован: 16 месяцев и 26 дней
Откуда: Томск
Национальный флаг:
Russia
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Имя: Константин
Пункты репутации: 2
Ученик трейдера

MQL5 - вопросы программирования

Номер сообщения:#14  Непрочитанное сообщение Kordan » 28 июл 2016, 03:17

Подключать в рабочем режиме обновление непосредственно перед модификацией, а в тестере отключать.
Аватар пользователя
Kordan
.
.
Сообщений: 2452
Возраст: 49
Зарегистрирован: 65 месяцев и 26 дней
Откуда: Саратов
Национальный флаг:
Russia
Благодарил (а): 667 раз.
Поблагодарили: 1220 раз.
Имя: Валерий
Пункты репутации: 25
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#15  Непрочитанное сообщение SVG » 28 июл 2016, 10:49

coder-ex писал(а):

не в коде, как обойти эту серию запросов

Вау , какие люди, Константин приветствую тебя на наших просторах.
Я думаю эта мысль не очень корректна. Скажи пожалуйста еще цену открытия твоего ордера Sell.
Если у тебя в коде учтены эти параметры
Код: выделить все · Развернуть
spr   = MarketInfo(Symb,MODE_SPREAD     );
   freez = MarketInfo(Symb,MODE_FREEZELEVEL);
   stlev = MarketInfo(Symb,MODE_STOPLEVEL  );

то никаких проблем не должно возникать, такое бывает (ошибка модификации) когда например трал строят по Parabolic SAR, при трале точка индикатора появляется очень близко к цене открытия ордера и тут нужны как раз эти ограничения с проверкой. Проверено, без проверки сравнения дистанции отступа точки индикатора от цены открытия ордера с учетом спреда, стоплевела и фриза происходит именно такая ошибка модификации.
Скоростной и надежный VPN сервер
Аватар пользователя
SVG
.
.
      Автор темы
Сообщений: 1430
Возраст: 45
Зарегистрирован: 64 месяцев и 18 дней
Откуда: Khimki Left coast
Национальный флаг:
Russia
Благодарил (а): 454 раз.
Поблагодарили: 805 раз.
Имя: Владимир
Пункты репутации: 29
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#16  Непрочитанное сообщение Kordan » 28 июл 2016, 11:32

Интегра рулит? Вова, просили же без кода. :D
Аватар пользователя
Kordan
.
.
Сообщений: 2452
Возраст: 49
Зарегистрирован: 65 месяцев и 26 дней
Откуда: Саратов
Национальный флаг:
Russia
Благодарил (а): 667 раз.
Поблагодарили: 1220 раз.
Имя: Валерий
Пункты репутации: 25
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#17  Непрочитанное сообщение Pyyx » 29 июл 2016, 12:53

Всем ЗДРЯМ, Костик какими судьбами опять к нам, да еще и под другим ником????
Решение данного вопроса, уже было разработано мною еще 2 года назад, но тогда ты об этом просто не хотел слушать. Ну да ладно, повторюсь опять.
Не всегда нужно приминать к модификации точные расчеты программных алгоритмов, всегда используй уровень гистерезиса, для учета прыжков цены в рассчитанном диапазоне. На сегодняшний момент я использую диапазон равный 1/2 спреда, с учетам Гаусавой функции. Да немного завернул, но в реальности это выражается 6 дополнительными строками кода, для проверки результатов расчета на выход из диапазона и принятия решения отправки запроса на модификацию ордера.
:)
Правильного выбора в реальности не существует — есть только сделанный выбор и его последствия.

MQL5 - вопросы программирования
Аватар пользователя
Pyyx
.
.
Сообщений: 950
Возраст: 36
Зарегистрирован: 65 месяцев и 3 дня
Откуда: Планета Земля
Национальный флаг:
Belarus
Благодарил (а): 331 раз.
Поблагодарили: 545 раз.
Имя: Сергей
Пункты репутации: 21
Молодой трейдерМолодой трейдерМолодой трейдер

MQL5 - вопросы программирования

Номер сообщения:#18  Непрочитанное сообщение coder-ex » 01 авг 2016, 12:20

Всем привет, только приехал с Оби, еще от дороги шум в ушах стоит :)
Цитата:
Всем ЗДРЯМ, Костик какими судьбами опять к нам, да еще и под другим ником????
Скучно стало ;) А ник сменил давно в соответствии с работой которую выполняю :)

Серега, тут я думаю две проблемы. Первая может из этой серии:
Цитата:
Не всегда нужно приминать к модификации точные расчеты программных алгоритмов, всегда используй уровень гистерезиса, для учета прыжков цены в рассчитанном диапазоне. На сегодняшний момент я использую диапазон равный 1/2 спреда, с учетам Гаусавой функции. Да немного завернул, но в реальности это выражается 6 дополнительными строками кода, для проверки результатов расчета на выход из диапазона и принятия решения отправки запроса на модификацию ордера.

но я не знаю как применить формулу Гаусавой функции, объясни подробнее.

Вторая проблема скорее всего из-за применения асинхронной функции запросов, т.е. пробивает несколько запросов а результата еще не получено, нужно будет алгоритм придумать, а то на бирже штрафами закидают. В МТ4 такой проблемы нет, т.к. функция OrderSend там синхронная, т.е. программа тормозится в точке вызова этой функции и не пойдет дальше пока не получит ответ. В МТ5 можно тоже ее использовать, но меня интересует вариант для скоростной торговли (в стакане и HFT), поэтому я использую асинхронный вариант отправки торговых запросов.
Си — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.
Аватар пользователя
coder-ex
.
.
Сообщений: 849
Возраст: 47
Зарегистрирован: 16 месяцев и 26 дней
Откуда: Томск
Национальный флаг:
Russia
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Имя: Константин
Пункты репутации: 2
Ученик трейдера

MQL5 - вопросы программирования

Номер сообщения:#19  Непрочитанное сообщение coder-ex » 01 авг 2016, 17:02

SVG писал(а):

coder-ex писал(а):

не в коде, как обойти эту серию запросов

Вау , какие люди, Константин приветствую тебя на наших просторах.
Я думаю эта мысль не очень корректна. Скажи пожалуйста еще цену открытия твоего ордера Sell.
Если у тебя в коде учтены эти параметры
Код: выделить все · Развернуть
spr   = MarketInfo(Symb,MODE_SPREAD     );
   freez = MarketInfo(Symb,MODE_FREEZELEVEL);
   stlev = MarketInfo(Symb,MODE_STOPLEVEL  );

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

спред и стоплевел у меня проверются, а вот:
Цитата:
SYMBOL_TRADE_FREEZE_LEVEL Дистанция заморозки торговых операций (в пунктах)

не проверяется. Нужно будет проверить, но это наверное только завтра, сегодня полный релакс )))
Си — это причудливый, несовершенный, но невероятно успешный язык.
— Dennis M. Ritchie.
Аватар пользователя
coder-ex
.
.
Сообщений: 849
Возраст: 47
Зарегистрирован: 16 месяцев и 26 дней
Откуда: Томск
Национальный флаг:
Russia
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Имя: Константин
Пункты репутации: 2
Ученик трейдера

MQL5 - вопросы программирования

Номер сообщения:#20  Непрочитанное сообщение Pyyx » 03 авг 2016, 14:18

coder-ex писал(а):

но я не знаю как применить формулу Гаусавой функции, объясни подробнее.

Для ордера BUY, для SELL в точности на оборот, для отложек дополнительно еще и цену установки, в общем довольно объёмная функция, но при вызове работает только кусок кода для определённого ордера, минимальная задержка, но избавляет от лишнего дятла.
Код: выделить все · Развернуть
double Point_=Order.GetPoint();
   double Min_Dist=Order.ND((SymbolInfoInteger(Order.Getsymbol(),SYMBOL_SPREAD)/2+SymbolInfoInteger(Order.Getsymbol(),SYMBOL_TRADE_STOPS_LEVEL)+SymbolInfoInteger(Order.Getsymbol(),SYMBOL_TRADE_FREEZE_LEVEL))*Point_);// Миним. дистанция
                                                                                                                                                                   //Print(DoubleToString(Min_Dist,_Digits));
   SymbolInfoTick(Order.Getsymbol(),m_price);
   switch(Order.Gettype())
     {
      case OP_BUY:
         if((Take<(Order.Gettp()+Min_Dist) && Take>(Order.Gettp()-Min_Dist))
            && (Stop<(Order.Getst()+Min_Dist) && Stop>(Order.Getst()-Min_Dist)))
           {
            Err.SetUserErr(ERRORS_SL_TP_PR,StringConcatenate(" --//-- BUY-order ",Order.Getticket()," remains"));
            //(" --//--  BUY-order ",Order.Getticket()," остаётся прежним"));
            break;
           }
      if(CompareDoubles(Take,0) || (Take>Order.GetPoint() && Take>(m_price.ask+Min_Dist)))Take=Order.ND(Take);
      else
        {
         Err.SetUserErr(ERRORS_TP,StringConcatenate(" --//-- Incorrectly calculated TP for BUY orders ",Order.Getticket()," BUY order ( TP= ",Take," Ask=",m_price.ask,")"));
         //(" --//-- Неправильно рассчитан TP для BUY-ордера ",Order.Getticket()," BUY-ордера ( TP= ",Take,"  Ask=",m_price.ask,")"));
         Take=Order.Gettp();break;
        }
      if(CompareDoubles(Stop,0) || (Stop>Order.GetPoint() && Stop<(m_price.bid-Min_Dist)))Stop=Order.ND(Stop);
      else
        {
         Err.SetUserErr(ERRORS_SL,StringConcatenate(" --//-- Incorrectly calculated SL for the BUY order",Order.Getticket()," BUY order ( SL= ",Stop," Bid=",m_price.bid,")"));
         //(" --//-- Неправильно рассчитан SL для BUY-ордера ",Order.Getticket()," BUY-ордера ( SL= ",Stop,"  Bid=",m_price.bid,")"));
         Stop=Order.Getst();break;
        }
      break;
      //--- 


coder-ex писал(а):

Вторая проблема скорее всего из-за применения асинхронной функции запросов, т.е. пробивает несколько запросов а результата еще не получено, нужно будет алгоритм придумать, а то на бирже штрафами закидают. В МТ4 такой проблемы нет, т.к. функция OrderSend там синхронная, т.е. программа тормозится в точке вызова этой функции и не пойдет дальше пока не получит ответ. В МТ5 можно тоже ее использовать, но меня интересует вариант для скоростной торговли (в стакане и HFT), поэтому я использую асинхронный вариант отправки торговых запросов.

Используй функции OnTrade() или OnTradeTransaction(). Но не зная условий олгорима и условий торговли это как пальцем в небо тыкать.
Правильного выбора в реальности не существует — есть только сделанный выбор и его последствия.

MQL5 - вопросы программирования
Аватар пользователя
Pyyx
.
.
Сообщений: 950
Возраст: 36
Зарегистрирован: 65 месяцев и 3 дня
Откуда: Планета Земля
Национальный флаг:
Belarus
Благодарил (а): 331 раз.
Поблагодарили: 545 раз.
Имя: Сергей
Пункты репутации: 21
Молодой трейдерМолодой трейдерМолодой трейдер

След.

Вернуться в Программное обеспечение



Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

  • Объявления
cron