Alguns sinais dos TCs certos - página 15

 
Nikolai Semko:

Se seu TS não precisa de toda a história para trabalhar, tenho más notícias para você.

Mas o impacto da história se desvanece exponencialmente, dependendo de sua profundidade. Isso é verdade.

É por isso que utilizo uma representação logarítmica da história.

Ou seja, se eu usar 20 anos de história, então a história semanal mais próxima é 80% do tamanho de toda a história.


ZS É uma boa analogia com a gravidade. Você sabia que a trajetória de nosso planeta é muito influenciada pela gravidade da vizinha Galáxia, a Nebulosa de Andrómeda, para a qual a luz viaja há 2,5 milhões de anos?

números, números, números:

A Terra gira ao redor do Sol a ~30 km/seg.

O Sol gira ao redor do centro de nossa galáxia a ~ 230 km/seg.

Nossa galáxia Via Láctea e a galáxia da Nebulosa de Andrómeda estão se aproximando a ~300 km/seg.

A continuação da ZSU... Isso não é tudo

Nossa galáxia e suas galáxias vizinhas estão se movendo em direção à galáxia M83 a uma velocidade de ~ 500 km/seg.

No total, nossa galáxia está se movendo através do Universo a uma velocidade de cerca de 1000 km/seg.

Você consome drogas?

 

Fórum sobre comércio, sistemas comerciais automatizados e estratégias comerciais de teste

Alguns sinais de bom TS

fxsaber, 2020.03.01 21:56

Nos comentários foi sugerido pensar sobre o comportamento do TS após a inversão do tempo - os carrapatos vão ao contrário (do futuro para o passado), como se o rebobinar fosse ativado.

Lá você também pode ler, em quais símbolos a inversão pode não afetar o resultado do TS, e para o qual é uma séria mudança dos padrões de mercado.

Felizmente, os símbolos forex não devem, em teoria, destruir os padrões de mercado com esta inversão de tempo. Achei interessante testar isto em um dos meus TS.


Primeiro, o código de inversão da série tick em MQL5.

int TimeDayOfWeek( const datetime Date )
{
  MqlDateTime mTime;
  
  TimeToStruct(Date, mTime);
  
  return(mTime.day_of_week);
}

#define  HOUR 3600
#define  DAY (24 * HOUR)
#define  WEEK 7

// https://www.mql5.com/ru/forum/170953/page8#comment_6940794
datetime GetTimeDayOfWeek( const datetime TimeSource, const int Shift = 0, const ENUM_DAY_OF_WEEK Day = SUNDAY )
{
  const datetime Res = TimeSource / DAY * DAY;
  
  return(Res - (((WEEK + (TimeDayOfWeek(Res) - Day)) % WEEK) + Shift * WEEK) * DAY);
}

void ReverseTick( MqlTick &Tick, const long &Offset )
{
  Tick.time_msc = Offset - Tick.time_msc;
  Tick.time = (datetime)(Tick.time_msc / 1000);
  
  return;
}

// Инверсирование времени.
void ReverseTicks( MqlTick &Ticks[] )
{
  const int Size = ArraySize(Ticks);
  
  if (Size)
  {
    const long Offset = (long)(GetTimeDayOfWeek(Ticks[0].time, 0, MONDAY) + GetTimeDayOfWeek(Ticks[Size - 1].time, -1, SATURDAY)) * 1000;

    for (int i = 0; i < Size; i++)
      ReverseTick(Ticks[i], Offset);

    ArrayReverse(Ticks);
  }

  return;  
}


Com base nesta função, o roteiro que cria o símbolo invertido é anexado. Trabalharemos com ele. Os resultados são os seguintes.


O melhor passe do Optimizer para o símbolo reto.


O mesmo passa no símbolo do tempo invertido.


Nenhuma conclusão.


Este resultado é de interesse teórico apenas. É difícil de interpretar.

Existe um símbolo de código, para que todos possam experimentar seu TS no símbolo invertido, se desejarem.

 
Алексей Тарабанов:

Você consome drogas?

Pelo que posso ver, é uma das pessoas mais comestíveis do fórum. E você tem o cuidado de resolver o que está dizendo.

 
Uladzimir Izerski:

Pelo que posso ver, é uma das pessoas mais nervosas do fórum. E você é cuidadoso com o que diz.

Eu perguntei a ele, não a você).

 
fxsaber:

Este resultado é, até agora, apenas de interesse teórico. É difícil de interpretar.

O código do símbolo está lá, para que qualquer pessoa possa experimentar seu TS em um símbolo invertido, se desejar.

A simetria tem se mostrado em toda a sua glória. Deveria ser. E eu queria provar algo mais cedo. (fiquei impaciente))

 
Алексей Тарабанов:

Eu perguntei a ele, não a você).

Não faça perguntas vazias e vulgares. Você só está se desacreditando desta maneira.

 
Uladzimir Izerski:

Não faça perguntas vazias e vulgares. Você só está se desacreditando desta maneira.

Eu não estou ferrado.

 
Алексей Тарабанов:

Eu não estou em apuros.

Discreto seria mais correto.

 
Nikolai Semko:

...

Um TS adequado precisa de uma estrutura de dados, armazenamento e base de acesso adequados.

O atual é muito pesado e desajeitado para criar um TS adequado.

Tive que desenvolver o meu próprio e, em minha opinião, ele se mostrou muito mais conveniente, compacto e ágil.

Posso explicar em poucas palavras.

...

Depois disso, você também pode apagar a matriz de carrapatos e formar um banco de dados logaritmicamente comprimido de até 1Mb do banco de dados de 30-40Mb. Neste banco de dados há um quadro completo de toda a história do símbolo desde o momento atual.

...

Estou interessado na "compressão logarítmica" do banco de dados. Você pode me dizer mais sobre isso?

 
Vladimir:

Interessado na "compressão logarítmica" do banco de dados. Você pode ser mais específico?

Isso não está muito certo.

A frase correta é "compressão devido à escala logarítmica de representação de dados".

é tão simples quanto isso.

Aqui está a estrutura desembrulhada da barra em tal sistema:

struct iRates {
   double    open;
   double    high;
   double    low;
   double    close;
   datetime  open_time;
   datetime  high_time;
   datetime  low_time;
   datetime  close_time;
   int       volume;
};

com o período de tempo da barra sendo diferente para cada barra da matriz.

Por exemplo, existe um conjunto finito de barras como a 28000.

O período de tempo da barra zero será, por exemplo, de 1 segundo.
período de tempo da 1ª barra será int(1.00047) = 1 segundo.
período de tempo da 2ª barra será int(1.00047^2) = 1 segundo.
período de tempo da terceira barra será int(1.00047^3) = 1 segundo.
...
o período de tempo de 1500 bar será int(1.00047^1500) = 2 segundos.
...
o período de 3000 bar será int(1.00047^3000) = 4 segundos.
...
o período de tempo de 10000 bar será int(1.00047^10000) = 109 segundos = 1 minuto e 49 segundos
...
o período de tempo de 12000 bar será int(1.00047^12000) = 281 segundos = 4 min 41 seg
...
o período de tempo de 15000 bar seria int(1.00047^15000) = 1150 segundos = 19,21 minutos ...
...
o período de 17000ª barra seria int(1.00047^17000) = 2945 segundos = 49 minutos ...
...
o período de 20000ª barra será int(1.00047^20000) = 12061 segundos = 3,35 horas ...
...
o período de tempo de 25000ª barra será int(1.00047^25000) = 126404 segundos = 1,46 dias
...
o período de 27999th bar seria int(1.00047^27999) = 517331 segundos=5,99 dias


As barras são armazenadas em uma forma embalada com um tamanho médio de cerca de 20 bytes por barra

matrizes de índice para acesso rápido ocupam cerca de 5% do tamanho total

ou seja, o tamanho total de tal banco de dados seria 28000*20*1,05 = 588 kB, tal matriz cobriria 40-50 anos de história.