
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я поддержу топик стартера, я много раз брался за mql как 4 так и 5, и скажу что лично у меня мало желания изучать язык который мне пригодится только тут в торговле, ...
Ну это вы зря или из-за непонимания проблемы. Неужели алгоритмы индикаторов будете писать заново. Это все равно что добираться из Волгограда до Москвы через Владивосток. Еще адын нюанс, все индикаторы учитывают историю. Т.е. если вы возьмете данные (бары) за месяц, рассчитаете индикатор по своему алгоритму и сравните с Терминалом, то ваши расчеты будут отличаться.
Мне тоже не понятна фраза:
Исходя с написанного, получается что есть большая прослойка знающих Python :) Ну прям открыл редактор и уже знаешь питон - это-же так просто, а открыл mql - нифига не знаешь.
При этом, назвать mql который полностью ориентирован на платформу "устаревшим" инструментом ... питон создан в 1991, а это намного раньше
То, что Я увидел в этой ветке написанное на питоне, очень просто реализуется на mql
---
Не, ну как-бы для общего развития тема интересна, но не более.
Более того - то что тс понаписал - вообще никак не использует преимущества Питона и по сути совсем не "Питон-стайл". Это как гвозди забивать шуруповертом, молоток то устарел
подозреваю, что из столовых приборов в Вашем доме - только ложки, хочешь щи хлебай, а хочешь кашу жуй, да и довольно безопасно в обращении
)))
нравится, используйте Python , но только не как топикстартер - не создавайте свои новые пользовательские типы данных - бары и т.п., не пишите самостоятельно расчет МАшки...а используйте уже готовые решения, иначе смысла в использовании этого языка нет, ведь с таким же успехом можно и свои пакеты для работы с нейросетями можно взять и написать ;)
Да уж) а кстати на Питоне неужели нет ещё библы по всяким вот таким около-трейдерским функциям, или если в пару строк можешь написать полный стат.анализ ряда, то МА-шка уже не нужна..)
Да уж) а кстати на Питоне неужели нет ещё библы по всяким вот таким около-трейдерским функциям, или если в пару строк можешь написать полный стат.анализ ряда, то МА-шка уже не нужна..)
The Best 101 Python algorithmic-trading Libraries | PythonRepo
Не смог вчера вернуться к форуму. Продолжу. Завёл новый демосчёт, и на нём наименования инструментов без '_i' в конце, так что поправил код в этой части.
Продолжу постепенное и медленное движение, своего рода микроучебник, для тех, кому, может, пригодится.
Введу переменную n (маленькую) - пусть это будет, так сказать, длина окна. То есть в файлах с ценами N отсчётов, например 1000, а n зададим, например, 10, или 100, или 288 (сутки, если таймфрейм М5).
Переменная d у меня означает сдвиг этого окна по времени, в прошлое. Зададим d = 0.
Будем для примера выводить по 10 отсчётов цен закрытия и SMA порядка 101 (запаздывающей на 50 интервалов между отсчётами):
Результат работы:
Научимся опрашивать терминал о текущих, висящих в рынке, так сказать, сделках по инструментам.
Введу функцию
Пусть они принимает перечень открытых позиций по инструменту, и возвращает кортеж, вижа (количество сделок на продажу, количество сделок на покупку).
В функцию main добавим такой фрагмент перед функцией terminal_done()
Результат работы (n уменьшил до 5 для красоты вывода):
Предлагаю начинать собственно открытие сделок. Типа: если цена больше SMA на сколько-то: открыться на продажу, если ниже SMA на сколько-то - открыться на покупку.
Предлагаю ещё пару функций: чтобы открытые сделки контролировать на предмет наличия у них SL и TP, если их нет - закрывать, и функцию, возвращающую текущий результат (прибыль или убыток), в пипсах.
Не забыть как-то обрабатывать ситуацию, когда ордер уже в истории и его нет в активных, а позиции ещё нет, и не отправлять в этом случае ордер на открытие повторно.
Такая стиуация время от времени возникает и, например, работа через Trade.mqh эту проблему не решает (как минимум, не решала раньше - я от Trade.mqh давно отказался).
Бывает и наоборот - ордер на закрытие в уже истории, а позиция ещё видна.
Не забыть как-то обрабатывать ситуацию, когда ордер уже в истории и его нет в активных, а позиции ещё нет, и не отправлять в этом случае ордер на открытие повторно.
Такая стиуация время от времени возникает и, например, работа через Trade.mqh эту проблему не решает (как минимум, не решала раньше - я от Trade.mqh давно отказался).
Бывает и наоборот - ордер на закрытие в уже истории, а позиция ещё видна.
Я показал как опрашивать терминал на предмет открытых позиций. Ничто не мешает написать код так, что если позиция уже есть, то не отправлять запрос повторно, если нет - отправить. Тем более что по итогам отправки запроса возвращается объект, у которого всё есть в свойствах, можно посмотреть, штатно ли он открылся, или там какая ошибка прописана, и исходя из этого действовать. Никаких проблем здесь нет.
The Best 101 Python algorithmic-trading Libraries | PythonRepo
Уже 104) Здесь пишется 105-я)
Полный код файла TradeLogic.py к настоящему моменту (да, он примитивный, но уверен, для некоторых может открыть дверь в торговлю с использованием Метатрейдер 5 и Python)
Результат работы:
З.Ы. Показанные самые примитивные, элементарные, кусочки кода, на мой взгляд, уже достаточно ясно демонстрируют, что нетрудно реализовать абсолютно любую логику, любые вычисления, сравнения, контроль открытых сделок по различным критериям, автозакрытие их при некоторых условиях, ведение логов, как в командной строке, так и записывая в файлы, и т.д. и т.п.- всё что угодно без каких бы то ни было ограничений.
З.Ы.2 До сих пор не использовал класс Sdelka, а вообще-то удобно передавать в функции объекты этого класса, записывать их в файлы как .json, и т.д., - но как-то малость устал, думаю желающие разберутся, могу помочь тут с чем-то. При желании можно прикрутить графический интерфейс.
Всем настоятельно рекомендую торговлю с Python + библиотека metatrader5.
Я показал как опрашивать терминал на предмет открытых позиций. Ничто не мешает написать код так, что если позиция уже есть, то не отправлять запрос повторно, если нет - отправить. Тем более что по итогам отправки запроса возвращается объект, у которого всё есть в свойствах, можно посмотреть, штатно ли он открылся, или там какая ошибка прописана, и исходя из этого действовать. Никаких проблем здесь нет.
Ещё раз: ордер уже выполнился и ушёл в историю. Его уже нет в активных. Позиция уже открыта, но её ещё не видно, запрос её не показывает.
Обычно это очень краткий интервал времени и на него трудно попасть, тем более, что он далеко не всегда бывает.
Но, например, при утреннем открытии с гэпом и большом потоке ордеров эта ситуация может длиться даже не секунды, а минуты.
Чтобы было понятнее: TRADE_TRANSACTION_ORDER_DELETE пришло раньше, чем TRADE_TRANSACTION_HISTORY_ADD или TRADE_TRANSACTION_DEAL_ADD
И мы в какой-то момент можем не видеть ордера ни в активных, ни в истории, или не видеть ни ордера ни сделки.