Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ниже код, который компилируется без предупреждений под MQL4/5
Спасибо @Andrey Voytenko за предложение такого решения!
Для чего этот хак?
Для чего этот хак?
В примере закомментированы long-типы. Если их оставить, то в MQL5 и NoStrict-MQL4 не будет предупреждений. Но в strict-MQL4 - возникнут.
Чтобы можно было писать кроссплатформенные библиотеки без соответствующих Warnings, и добавлен данный функционал.
Пользоваться им совершенно не требуется. Это дополнительное удобство для тех, перед кем может встать кроссплатформенная задача подобного рода.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Робот из МТ4 на МТ5
fxsaber, 2018.03.08 09:27
Forum on trading, automated trading systems and testing trading strategies
Libraries: MT4Orders
fxsaber, 2018.04.14 09:10
Example
Result
В примере видно, что при срабатывании TP/SL исходный комментарий "Hello World!" заменяется полностью на свой в MT5 - "tp 1.23614".
В MT4 же в таких ситуациях комментарий становится, вроде, такого вида "Hello World!tp 1.23614". Нужно ли так же делать в MT4Orders?
Т.е. правильно/удобно ли, чтобы при SL/TP/MO закрытиях комментарий ордера в истории был комбинацией комментария при открытии и закрытии, как это происходит в MT4?
В примере видно, что при срабатывании TP/SL исходный комментарий "Hello World!" заменяется полностью на свой в MT5 - "tp 1.23614".
В MT4 же в таких ситуациях комментарий становится, вроде, такого вида "Hello World!tp 1.23614". Нужно ли так же делать в MT4Orders?
Т.е. правильно/удобно ли, чтобы при SL/TP/MO закрытиях комментарий ордера в истории был комбинацией комментария при открытии и закрытии, как это происходит в MT4?
я бы предложил что-то наподобие:
Original_Comment[tp: 1.23614] (т.к. иногда есть необходимость парсинга комментария)
с логом нештатных ситуаций, когда длина комментария выходит за лимиты
В примере видно, что при срабатывании TP/SL исходный комментарий "Hello World!" заменяется полностью на свой в MT5 - "tp 1.23614".
В MT4 же в таких ситуациях комментарий становится, вроде, такого вида "Hello World!tp 1.23614". Нужно ли так же делать в MT4Orders?
Т.е. правильно/удобно ли, чтобы при SL/TP/MO закрытиях комментарий ордера в истории был комбинацией комментария при открытии и закрытии, как это происходит в MT4?
OrderComment, как и OrderCommission, в библиотеке и сейчас очень медленный (заметно на множественных вызовах). Понятно, что как раз из-за специфики МТ5 (разделение этих данных на 2 сделки).
Может, просто добавить OrderCommentOpen? Ну, или сделать совсем универсальный вариант: OrderCommentOpen, OrderCommentClose и OrderComment, пытающийся эмулировать поведение МТ4.
Я пока задумываюсь о кэше для тяжелых OrderCommission и OrderComment, или для собственного списка сделок, что в моем конкретном случае — суть одно и то же.
OrderComment, как и OrderCommission, в библиотеке и сейчас очень медленный (заметно на множественных вызовах). Понятно, что как раз из-за специфики МТ5 (разделение этих данных на 2 сделки).
На реал-тайме сказываться не должно.
Может, просто добавить OrderCommentOpen? Ну, или сделать совсем универсальный вариант: OrderCommentOpen, OrderCommentClose и OrderComment, пытающийся эмулировать поведение МТ4.
Возможно, и стоит добавить. Сейчас это можно сделать так (для исторических MT4-ордеров)
Я пока задумываюсь о кэше для тяжелых OrderCommission и OrderComment, или для собственного списка сделок, что в моем конкретном случае — суть одно и то же.
Если делать кэш, то для всей истории. И делать это лучше на основе Generic-библы, наверное. Минус только один - память выжирать будет на VPS.
MQ хорошо поработали над историей в Тестере - быстрой стала. Когда ее ускорили, мысли на тему кэширования ушли (были сырые варианты библы), т.к. не увидел, что получится существенно ускорить. Более того, у меня не получилось придумать ТС для Тестера, в которой бы история торгов серьезно влияла на логику.
Кешировать же для реал-тайма Историю нельзя - она может правиться задним числом. Да и к чему в реал-тайме экономия микросекунд?
На реал-тайме сказываться не должно.
Возможно, и стоит добавить. Сейчас это можно сделать так (для исторических MT4-ордеров)
Если делать кэш, то для всей истории. И делать это лучше на основе Generic-библы, наверное. Минус только один - память выжирать будет на VPS.
MQ хорошо поработали над историей в Тестере - быстрой стала. Когда ее ускорили, мысли на тему кэширования ушли (были сырые варианты библы), т.к. не увидел, что получится существенно ускорить. Более того, у меня не получилось придумать ТС для Тестера, в которой бы история торгов серьезно влияла на логику.
Кешировать же для реал-тайма Историю нельзя - она может правиться задним числом. Да и к чему в реал-тайме экономия микросекунд?
Если правильно понял, то у меня одна ТС работает: в определённое время начинаем входить в рынок по сигналу, в итоге несколько бай и селл, в конце сессии закрываем всё как есть. На следующий день идём по кругу, но лоты уже рассчитываем по истории закрытия последней сессии, то есть лезем в историю и смотрим, закрыли прибыль, или какой-то убыток.
То есть, без доступа к истории - ТС не пригодна к использованию.
Если правильно понял, то у меня одна ТС работает: в определённое время начинаем входить в рынок по сигналу, в итоге несколько бай и селл, в конце сессии закрываем всё как есть. На следующий день идём по кругу, но лоты уже рассчитываем по истории закрытия последней сессии, то есть лезем в историю и смотрим, закрыли прибыль, или какой-то убыток.
То есть, без доступа к истории - ТС не пригодна к использованию.
В той фразе ключевым было слово "серьезно". Понятно, что история торгов может вклиниваться в торговую логику. Вопрос в ТС, которая начинает заметно тормозить в Тестере от обращения к ней.
На реал-тайме сказываться не должно.
Возможно, и стоит добавить. Сейчас это можно сделать так (для исторических MT4-ордеров)
Если делать кэш, то для всей истории. И делать это лучше на основе Generic-библы, наверное. Минус только один - память выжирать будет на VPS.
MQ хорошо поработали над историей в Тестере - быстрой стала. Когда ее ускорили, мысли на тему кэширования ушли (были сырые варианты библы), т.к. не увидел, что получится существенно ускорить. Более того, у меня не получилось придумать ТС для Тестера, в которой бы история торгов серьезно влияла на логику.
Кешировать же для реал-тайма Историю нельзя - она может правиться задним числом. Да и к чему в реал-тайме экономия микросекунд?
Вы как-то показывали код, который ищет на истории похожие "паттерны".
Вот вам и простейшая ТС с глубокой историей:
Смотрим текущую "форму-паттерн" цены за определённое время от "сейчас" до "немного в прошлое (торговый день например)", ищем все похожие паттерны цены на истории, классифицируем их по "степени совпадения", отбираем несколько наиболее совпадающих участков такой "картинки" в истории. Анализируем историю с виртуальными входами-выходами и получаем рекомендации по входам/выходам на текущее состояние. Можно даже назначить по итогам анализа исторических паттернов "вес" для каждой рекомендации.