Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 3221

 

Os registros de data e hora não são os mesmos do original. O MQ-demo não é interessante.

 
fxsaber #:

Os registros de data e hora não correspondem aos registros de data e hora originais. O MQ-demo não é interessante.

https://disk.yandex.ru/d/Rc3uOON6M_IAYw

TicksG2.csv.zip
TicksG2.csv.zip
  • disk.yandex.ru
Посмотреть и скачать с Яндекс Диска
 
2023.03.01,00:00:00.800,6.001640530494182

Se for um incremento, em quais unidades?

 
fxsaber #:

Se for um incremento, em quais unidades?

Isso já foi convertido de volta para preços

Adicionei um número positivo a toda a série (+6,0) para torná-la maior que zero. Parece que os símbolos personalizados não digerem valores negativos

Não preste atenção ao "close" na tela, são ticks.


 
Não sei como é possível que séries aleatórias frequentemente mostrem estruturas ordenadas como ondas pentagonais, com ondas pentagonais aninhadas em seu interior, como na tela acima. Então podemos rejeitar toda a teoria de Elliott :)

Auto-similaridade no movimento browniano?

O mesmo acontece com os "níveis"

 
Maxim Dmitrievsky #:
Não sei como é possível que séries aleatórias frequentemente mostrem estruturas ordenadas como cinco ondulações, com cinco ondulações aninhadas dentro, como na tela acima.

Você deve ter visto esses padrões nos aparelhos de TV soviéticos sem antena.

 
fxsaber #:

Você provavelmente também já viu padrões em TVs soviéticas sem antena.

Não, apenas no carpete

 
Maxim Dmitrievsky #:
Isso já foi convertido de volta para preços
#property script_show_inputs
#property link "https://www.mql5.com/ru/forum/86386/page3220#comment_49180634"

// https://www.mql5.com/ru/forum/86386/page3216#comment_49148211
input string inFileName = "Ticks.bin";

// https://www.mql5.com/ru/forum/86386/page3220#comment_49180488
input string inFileNameGenerator = "TicksGM1.csv";

void SetAvgPrice( MqlTick &Tick, const double Price )
{
  const double Spread = (Tick.ask - Tick.bid) / 2;
  
  Tick.bid = NormalizeDouble(Price - Spread, 5);
  Tick.ask = NormalizeDouble(Price + Spread, 5);
}

void OnStart()
{
  const int Handle = FileOpen(inFileNameGenerator, FILE_READ | FILE_ANSI);
  
  if (Handle != INVALID_HANDLE)
  {
    MqlTick Ticks[];
    const int Size = (int)FileLoad(inFileName, Ticks);

    int Amount = 1;

    while (!FileIsEnding(Handle))
      // https://www.mql5.com/ru/forum/86386/page3220#comment_49180613
      SetAvgPrice(Ticks[Amount++], (double)StringSubstr(FileReadString(Handle), StringLen("2023.03.01,00:00:00.800,")));
      
    FileClose(Handle);
    
    Ticks[0] = Ticks[1];    
    ArrayResize(Ticks, Amount);
    
    FileSave(inFileNameGenerator + ".bin", Ticks);
  }    
}

Adicionado o spread real.


 
fxsaber #:

Adicionei a propagação real.

Posso carregar outras gerações posteriormente, se necessário, com outros parâmetros.
 
fxsaber #:

Adicionou um spread real.

Resultado da otimização.

Compare com o original. Em geral, não funcionou aqui.


ZЫ Curiosamente, o gráfico de otimização está próximo do período de tempo H2 mostrado acima.

Проверка обратного времени.
Проверка обратного времени.
  • 2023.09.03
  • www.mql5.com
Мною была поставлена задача разобраться в причинах получения прибыли определенной ТС (торговая система). Для этого требовалось изучить историю котировок, подтвердив или опровергнув возникающие