Começarei com um pedaço de código, que pode vir a ser útil (pretendo trabalhar com o cronograma M5, fazer cálculos e tomar uma decisão a cada 5 minutos):
data de importação como 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__()
Graças a esta classe, será conveniente registrar o que está acontecendo.
Por exemplo, escreva algo como isto
dt_stamp_read = ... print('\n'+date_time.now().nice_view, '- начал работу, планирую прочитать файлы с ценами в {}'.format(dt_stamp_read.nice_view))
e obter resultados como:
2021.12.11 22:41:23 - начал работу, планирую прочитать файлы с ценами в 2021.12.11 22:45:30
Você também vai precisar dele:
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__()
A fonte aqui não é monoespacial, de modo que visualmente a formatação foi um pouco fora, mas essa não é a questão
Favor inserir o código corretamente: primeiro pressione , depois insira o código na janela pop-up.
Estou pedindo a alguém que sugira uma estratégia comercial simples (perder conscientemente, não o ponto).
Se a mensagem for sã, isto é, será mais ou menos claro o que precisa ser feito, implemente aqui, nesta linha, o comércio sobre esta estratégia, em Python.
Estou esperando )
Reescreva o Expert Advisor MACD padrão que vem com o MT5. Será útil para verificar em todas as etapas.
Vou perguntar mais especificamente sobre a forma de teste-optimização pretendida. É um testador auto-escrito ou um testador de terceiros baseado em Python? Integração com a MQL5 através de arquivos, soquetes, etc.?
Negociar com píton é bom...
Mas a pitão é boa para analisar dados, mas não para comercialização.
Se você considerar a opção MACD, em python:
- é fácil de carregar as citações;
- Os dados MACD podem ser facilmente calculados;
Depois, em cada nova barra, tomar uma condição, por exemplo: valor MACD e linha de sinal, inclinação da linha lenta e rápida, movimento de preços longe da linha lenta...
Faça o histórico da condição e mostre estatísticas mais/menos da formação especificada por um certo período. Tudo o resto (abrir/fechar/assumir negócios) deve ser feito em MQL.
Você não precisa inventar um testador - nós temos um já pronto.
Em Python, as citações e indicadores são armazenados no SQLite. Conexão MQL - python através de soquete, arquivos ou banco de dados (soquete é melhor).
Tudo...
Python - somente para análise de dados com a rica capacidade de exibir os resultados da análise como gráficos 2d(3d).
copy_rates_from não é suficiente para uma análise completa dos dados. Se fosse possível extrair dados indicadores (incluindo indicadores personalizados), o anel de análise seria fechado.
E negociando via python, IMHO é um movimento de relações públicas da MQL5.
Vou implementar esta estratégia aqui nesta linha em Python.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Estou pedindo a alguém que sugira uma estratégia comercial simples (perder conscientemente, não o ponto).
Se a mensagem for sã, isto é, será mais ou menos claro o que precisa ser feito, implemente aqui, nesta linha, o comércio sobre esta estratégia, em Python.
Olhando para o futuro )