Discussão do artigo "Busca de padrões sazonais no mercado de Forex usando o algoritmo CatBoost" - página 2

 
Maxim Dmitrievsky:

O spread é levado em consideração no testador personalizado e, em seguida, os modelos são verificados no testador do MT5 (consulte o primeiro artigo da série).

Ou seja, a lógica é facilmente (relativamente) transferida para o MT5, quase automaticamente.

Sim, eu já dei uma olhada nisso. Entendo que você usa o preço médio (ask+bid)/2 para análise. Vi isso em seu software e acho que vou adicioná-lo ao meu software. Esse spread estraga tudo, o ruído do spread em muitos pares é maior do que o tamanho médio da vela. Aqui está a solução). Mas, nos picos de alta e baixa, seria mais fácil corrigi-los também). Você tem correções em todos os 4 pontos ou apenas na abertura e no fechamento? Ou talvez isso me pareça))). Se não tiver, você pode tentar adicioná-las. Isso suavizará imediatamente a série de preços, e as variantes que estão dentro do spread cairão quase todas de uma vez.

 
Eu tenho porque a propagação mais próxima do ponto 0:00 em todos os lugares aumenta na maioria das variantes, há a busca )))) você testa no testador e a propagação é maior do que a expectativa )). Acho que, com a introdução desse filtro, tudo mudará drasticamente ))
[Excluído]  
Evgeniy Ilin:

Sim, já dei uma olhada nisso. Sei que você também usa o preço médio (ask+bid)/2 para análise. Vi isso em seu software, então acho que vou adicioná-lo ao meu software também. Esse spread estraga tudo, o ruído do spread em muitos pares é maior do que o tamanho médio da vela. Aqui está a solução ). Mas, nos picos de alta e baixa, seria mais fácil corrigi-los também). Você tem correções em todos os 4 pontos ou apenas na abertura e no fechamento? Ou talvez isso me pareça))). Se não as tiver, você pode tentar adicioná-las. Isso suavizará imediatamente a série de preços, e as variantes que estão dentro do spread cairão quase todas de uma vez.

Não, os preços de abertura. O spread é definido no estágio de treinamento do modelo, ou seja, as negociações abaixo do spread são descartadas.

 
Maxim Dmitrievsky:

não, o preço de abertura. O spread é definido no estágio de treinamento do modelo, ou seja, as negociações abaixo do spread são descartadas

mas você não ajusta os valores de Open[]. Em geral, o fato de eu não ter entendido tudo isso me deu a ideia correta do DDD. Você pode tentar eliminar os ruídos do spread corrigindo os valores Open[] Close[] High[] Low[] usando o Spread nos mesmos pontos. Exatamente o meio entre o Ask e o Bid). Essa série é mais confiável, pois o ruído do spread será descartado da análise.

[Excluído]  
Evgeniy Ilin:

mas você não ajusta os valores de Open[]. Em geral, como não entendi tudo isso, eu tinha a ideia correta do DDD. Você pode tentar eliminar os ruídos do spread corrigindo os valores Open[] Close[] High[] Low[] usando o Spread nos mesmos pontos. Exatamente o meio entre o Ask e o Bid). Essa série é mais confiável, pois o ruído do spread será descartado da análise.

Tentei corrigir de outras formas, movendo os clusters no espaço de recursos, mas isso é outra história.

 
Maxim Dmitrievsky:

A lógica é facilmente (relativamente) transferida para o MT5, quase automaticamente.

Você pode publicar um EA para esse mesmo modelo com os horários?

[Excluído]  
Evgeni Gavrilovi:

Você pode publicar um EA para esse mesmo modelo com cronogramas?

A resposta é a mesma do segundo artigo, mas no terminal você precisa adicionar a limitação de abertura de negociações por horário, e tudo o mais para os dias da semana e diferentes combinações.

O mesmo para os dias da semana e diferentes combinações. Além disso, no MT5, a contagem regressiva de horas é deslocada em 1 para a direita, ou seja, se no python for a 4ª hora, no MT será a 5ª hora

MqlDateTime hours;

void OnTick() {
//---
   if(!isNewBar()) return;
   TimeToStruct(TimeCurrent(), hours);
}

if(hours.hour == 5 && countOrders() == 0 && CheckMoneyForTrade(_Symbol,LotsOptimized(),ORDER_TYPE_BUY)) {
      if(sig < 0.5)
         OrderSend(Symbol(),OP_BUY,LotsOptimized(), Ask, 0, Bid-stoploss*_Point, Ask+takeprofit*_Point, NULL, OrderMagic);
      else if(sig > 0.5)
         OrderSend(Symbol(),OP_SELL,LotsOptimized(), Bid, 0, Ask+stoploss*_Point, Bid-takeprofit*_Point, NULL, OrderMagic);
      return;
   }
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Информация об инструменте - Состояние окружения - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Maxim Dmitrievsky:

A resposta é a mesma do segundo artigo, mas no terminal você precisa adicionar a limitação de abertura de negociações por horário, e pronto

o mesmo para os dias da semana e diferentes combinações. Além disso, no MT5, a contagem regressiva das horas é deslocada em 1 para a direita, ou seja, se no Python for a 4ª hora, no MT será a 5ª

Obrigado.

[Excluído]  
Bravo! Uma ideia incrível. Tiro meu chapéu para você, que é incrivelmente original e criativo!!!!
 

Tópico interessante e próximo.

Seria muito curioso ver o patrimônio líquido final de um testador MT5 padrão em qualquer um dos instrumentos FORTS de sua escolha, obtido pela aplicação desse método.

Como feedback, estou pronto para postar o patrimônio líquido do meu algoritmo sazonal no instrumento selecionado :)