Discussão do artigo "Reimaginando Estratégias Clássicas (Parte XI): Cruzamento de Médias Móveis (II)"
Obrigado, Gamu. Gosto de suas publicações e tento aprender reproduzindo suas etapas.
Estou tendo alguns problemas, espero que isso possa ajudar outras pessoas.
1) Meus testes com o EURGBP_Stochastic diário usando o script fornecido produziram apenas 2 ordens e, posteriormente, uma taxa de Sharpe de 0,02. Acredito que tenho as mesmas configurações que você, mas em duas corretoras ele produz apenas duas ordens.
2) como alerta para outros, talvez seja necessário modificar as configurações do símbolo para corresponder à sua corretora (por exemplo, EURGBP para EURGBP.i), se necessário
3) em seguida, quando tento exportar os dados, obtenho uma matriz fora do intervalo para o ATR. Acredito que isso ocorra porque não obtenho 100.000 registros na minha matriz (se eu alterá-la para 677), posso, portanto, obter um arquivo com 677 linhas. Para mim, o padrão para o número máximo de barras em um gráfico é 50.000. Se eu alterar isso para 100.000, o tamanho da minha matriz será de apenas 677, mas é possível que eu tenha uma configuração incorreta. Talvez você também possa incluir o script de extração de dados em seu download.
4) Copiei o código do seu artigo para tentar no Python e recebi um erro look_ahead not defined ----> 3 data.loc[data["Close"].shift(-look_ahead) > data["Close"], "Binary Target"] = 1
4 data = data.iloc[:-look_ahead,:]
NameError: o nome 'look_ahead' não está definido
5) Quando carreguei o notebook do Juypiter, descobri que ele precisava ter o look ahead definido #Let us forecast 20 steps into the future
look_ahead = 20 , Depois disso, usei apenas o arquivo incluído, mas estou com o seguinte erro, possivelmente relacionado ao fato de ter apenas 677 linhas.
Executei o #Scale os dados antes de começar a visualizá-los
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
o que me dá um erro que não sei como resolver
ipython-input-6-b2a044d397d0>:4: SettingWithCopyWarning: Um valor está tentando ser definido em uma cópia de uma fatia de um DataFrame. Em vez disso, tente usar .loc[row_indexer,col_indexer] = value Veja as advertências na documentação: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy data[[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
Obrigado, Gamu. Gosto de suas publicações e tento aprender reproduzindo suas etapas.
Estou tendo alguns problemas, espero que isso possa ajudar outras pessoas.
1) Meus testes com o EURGBP_Stochastic diário usando o script fornecido produziram apenas 2 ordens e, posteriormente, uma taxa de Sharpe de 0,02. Acredito que tenho as mesmas configurações que você, mas em duas corretoras ele produz apenas duas ordens.
2) como alerta para outros, talvez seja necessário modificar as configurações do símbolo para que correspondam à sua corretora (por exemplo, EURGBP para EURGBP.i), se necessário
3) em seguida, quando tento exportar os dados, obtenho uma matriz fora do intervalo para o ATR. Acredito que isso ocorra porque não obtenho 100.000 registros na minha matriz (se eu alterá-la para 677), posso, portanto, obter um arquivo com 677 linhas. Para mim, o padrão para o número máximo de barras em um gráfico é 50.000. Se eu alterar isso para 100.000, o tamanho da minha matriz será de apenas 677, mas é possível que eu tenha uma configuração incorreta. Talvez você também possa incluir o script de extração de dados em seu download.
4) Copiei o código do seu artigo para tentar no Python e recebi um erro look_ahead not defined ----> 3 data.loc[data["Close"].shift(-look_ahead) > data["Close"], "Binary Target"] = 1
4 data = data.iloc[:-look_ahead,:]
NameError: o nome 'look_ahead' não está definido
5) Quando carreguei seu notebook Juypiter, descobri que ele precisava ter o look ahead definido #Let us forecast 20 steps into the future
look_ahead = 20 , Depois disso, usei apenas o arquivo incluído, mas estou com o seguinte erro, possivelmente relacionado ao fato de ter apenas 677 linhas.
Executei o #Scale os dados antes de começar a visualizá-los
from sklearn.preprocessing import RobustScaler
scaler = RobustScaler()
data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
o que me dá um erro que não sei como resolver
ipython-input-6-b2a044d397d0>:4: SettingWithCopyWarning: Um valor está tentando ser definido em uma cópia de uma fatia de um DataFrame. Em vez disso, tente usar .loc[row_indexer,col_indexer] = value Veja as advertências na documentação: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy data[[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']] = scaler.fit_transform(data[[['Open', 'High', 'Low', 'Close', 'MA Fast', 'MA Slow','Stoch Main']])
E aí, Neil, acredito que você esteja bem.
Sim, sei que há muitas partes móveis. Verei se isso resolverá meus problemas.
- 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
Novo artigo Reimaginando Estratégias Clássicas (Parte XI): Cruzamento de Médias Móveis (II) foi publicado:
Já abordamos anteriormente a ideia de prever cruzamentos de médias móveis, o artigo está vinculadoaqui. Observamos que os cruzamentos de médias móveis são mais fáceis de prever do que as mudanças de preço diretamente. Hoje revisitaremos este problema familiar, mas com uma abordagem totalmente diferente.
Agora queremos investigar minuciosamente quão grande é a diferença que isso faz para nossas aplicações de trading e como esse fato pode melhorar suas estratégias de trading. Os cruzamentos de médias móveis estão entre as estratégias de negociação mais antigas existentes. É desafiador construir uma estratégia lucrativa usando uma técnica tão amplamente conhecida. No entanto, espero mostrar a você neste artigo que cães velhos podem de fato aprender truques novos.
Para sermos empíricos em nossas comparações, primeiro construiremos uma estratégia de trading em MQL5 para o par EURGBP usando apenas os seguintes indicadores:
Nossa estratégia será destinada a operar no Time Frame Diário. Faremos o back-test desta estratégia desde o primeiro de janeiro de 2022 até o início de junho de 2024. Nossa estratégia inicialmente usará regras clássicas de trading. Assim, sinais de compra serão gerados sempre que a média móvel rápida cruzar acima da média móvel lenta e a leitura do estocástico estiver acima de 80. E o inverso é verdadeiro para nossos sinais de venda. Registraremos um sinal de venda quando a média móvel rápida estiver abaixo da lenta e o oscilador estocástico estiver abaixo de 20.
Autor: Gamuchirai Zororo Ndawana