Начну с кусочка кода, который всяко пригодится (планирую работать с таймфреймом М5, проводить вычисления и принимать решение один раз в 5 минут):
import datetime as dt
class date_time(dt.datetime): ''' Класс описывает отсчёт даты и времени. Представляет собой расширение класса datetime библиотеки datetime. ''' @property def M5_view(self): minute = (self.minute//5)*5 if minute < 10: _minute = '0'+str(minute) else: _minute = str(minute) return self.strftime('%Y%m%d%H')+_minute @property def nice_view(self): return self.strftime('%Y.%m.%d %H:%M:%S') def __str__(self): return self.M5_view def __repr__(self): return self.__str__()
Благодаря этому классу будет удобно логировать происходящее.
Например, написать что-нибудь в духе:
dt_stamp_read = ... print('\n'+date_time.now().nice_view, '- начал работу, планирую прочитать файлы с ценами в {}'.format(dt_stamp_read.nice_view))
и получить вывод типа:
2021.12.11 22:41:23 - начал работу, планирую прочитать файлы с ценами в 2021.12.11 22:45:30
Тоже понадобится:
class Bar: ''' Класс описывает бар, то есть структуру данных, удобную для описания изменения цен финансовых инструментов на интервалах времени. ''' def __init__(self, instrument, time_frame, time_close, price_open, price_low, price_high, price_close, pips_value): self.instrument = instrument self.time_frame = time_frame self.time_close = time_close self.time_open = self.time_close - dt.timedelta(minutes=self.time_frame) self.price_open = price_open self.price_low = price_low self.price_high = price_high self.price_close = price_close self.w = pips_value def __str__(self): str1 = '(Bar: instrument={} time_frame={} time_open={} time_close={}\n' str2 = 'open={} low={} high={} close={} pips_value={})' return (str1+str2).format(self.instrument, self.time_frame, self.time_open.M5_view, self.time_close.M5_view, self.price_open, self.price_low, self.price_high, self.price_close, self.w) def __repr__(self): return self.__str__()
шрифт здесь не моноширинный, так что визуально немного уплыло форматирование, не суть
Вставляйте, пожалуйста, код правильно: сначала нажимаете кнопку , а затем во всплывающее окно вставляете код.
Прошу кого-нибудь предложить простую (заведомо убыточную, не суть) стратегию торговли.
Если сообщение будет вменяемым, то есть будет более-менее ясно изложено, что необходимо сделать, реализую здесь, в этой ветке, торговлю по этой стратегии, на языке Python.
Жду )
Перепишите стандартный MACD эксперт поставляемый с МТ5. Будет удобно для проверки на всех этапах.
Более адресно задам вопрос про предполагаемый способ тестирования-оптимизации. Самописный или сторонний тестер на питоне? Интеграция с MQL5 через файлы, сокеты и тд?
Торговля с питон - это гуд..
Но питон - хорошее средство для анализа данных, но не ведения торговых операций.
Если рассматривать вариант MACD, то на питон:
- легко загрузить котировки;
- несложно посчитать данные MACD;
Далее, на каждом новом баре брать сложившееся условие, например: значение MACD и сигнальной линии, крутизну медленной и быстрой линии, уход цены от медленной..
Прогонять условие по истории и выдавать статистику плюс/минус указанной формации за определенный период. Все остальное (открытие/закрытие/сопровождение сделок) выполнять на MQL.
Не придется придумывать тестера - есть готовый.
В питоне хранение котировок и индикаторов на SQLite. Связь MQL-питон через сокет, файлы или БД (лучше сокет).
Все..
Питон - только для анализа данных с богатой возможностью отображать результаты анализа в виде 2d(3d) графиков.
copy_rates_from для полного анализа данных недостаточно. Если можно было извлекать данные индикаторов (в т.ч. пользовательских), то кольцо анализа замкнулось бы.
А торговать через питон, ИМХО - пиар ход MQL5
реализую здесь, в этой ветке, торговлю по этой стратегии, на языке Python.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Прошу кого-нибудь предложить простую (заведомо убыточную, не суть) стратегию торговли.
Если сообщение будет вменяемым, то есть будет более-менее ясно изложено, что необходимо сделать, реализую здесь, в этой ветке, торговлю по этой стратегии, на языке Python.
Жду )