올바른 차량의 일부 표시 - 페이지 15

 
Nikolai Semko :

귀하의 차량이 작동하는 데 전체 스토리가 필요하지 않은 경우 나쁜 소식이 있습니다.

그러나 역사의 영향은 깊이와 함께 기하급수적으로 사라집니다. 사실이야

이것이 내가 역사의 로그 표현을 사용하는 이유입니다.

저것들. 20년의 역사를 사용한다면 다음 주의 역사는 전체 역사 크기의 80%가 됩니다.


위협 중력에 대한 좋은 비유. 빛이 250만 년 동안 이동하는 이웃 안드로메다 은하의 중력이 우리 행성의 궤적에 매우 큰 영향을 미친다는 것을 알고 계십니까?

숫자, 숫자, 숫자:

지구는 약 30km/sec의 속도로 태양 주위를 공전합니다.

태양은 우리 은하의 중심을 230km/sec로 공전합니다.

우리 은하수와 안드로메다 성운 은하는 ~ 300km/s의 속도로 서로를 향해 돌진하고 있습니다

ZYY 계속... 그게 다가 아니야

이웃 은하와 함께 우리 은하는 M83 은하를 향해 ~ 500km/s의 속도로 움직이고 있습니다

전체적으로 우리 은하는 우주에서 약 1000km/초의 속도로 움직입니다.

당신은 약을 복용하고 있습니까?

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

올바른 차량의 일부 표시

fxsaber , 2020.03.01 21:56

의견에서 시간 반전 후 TS의 동작에 대해 생각하는 것이 좋습니다. 마치 되감기가 켜진 것처럼 틱이 반대 방향(미래에서 과거로)으로 이동합니다.

역전이 TS의 결과에 영향을 미치지 않을 수 있는 기호와 시장 패턴의 심각한 변화를 읽을 수도 있습니다.

다행히도, 외환 기호는 이론상 이러한 시간 역전으로 시장 패턴을 파괴해서는 안 됩니다. 내 차량 중 하나에서 이것을 테스트하는 데 관심이있었습니다.


먼저 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 ;  
}


이 기능을 기반으로 반전 기호를 생성하는 스크립트가 첨부되어 있습니다. 우리는 그와 함께 일할 것입니다. 결과는 이렇습니다.


최고의 Optimizer는 직선 기호를 전달합니다.


시간이 거꾸로 된 기호에 동일한 패스.


결론이 없습니다.


이 결과는 이론적 관심일 뿐입니다. 해석하기 어렵습니다.

기호 코드가 있으므로 원하는 경우 누구나 자신의 차량을 거꾸로 된 기호로 시험해 볼 수 있습니다.

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

당신은 약을 복용하고 있습니까?

내 관찰에 따르면 이것은 가장 교육적인 포럼 사용자 중 하나입니다. 그리고 당신은 진술을주의 깊게 이해합니다.

 
Uladzimir Izerski :

내 관찰에 따르면 이것은 가장 교육적인 포럼 사용자 중 하나입니다. 그리고 당신은 진술을주의 깊게 이해합니다.

나는 당신이 아니라 그에게 물었다.

 
fxsaber :

이 결과는 이론적 관심일 뿐입니다. 해석하기 어렵습니다.

기호 코드가 있으므로 원하는 경우 누구나 자신의 차량을 거꾸로 된 기호로 시험해 볼 수 있습니다.

대칭은 아름다움으로 나타났습니다. 그래야만 합니다. 그리고 전에 무언가를 증명하고 싶었습니다. 나는 힘들었다))

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

나는 당신이 아니라 그에게 물었다.

공허하고 저속한 질문을 할 필요가 없습니다. 당신은 그런 식으로 자신을 분리합니다.

 
Uladzimir Izerski :

공허하고 저속한 질문을 할 필요가 없습니다. 당신은 그런 식으로 자신을 분리합니다.

난 곤경에 처하지 않습니다.

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

난 곤란하지 않아.

이산이 더 정확할 것입니다.

 
Nikolai Semko :

...

올바른 TS를 위해서는 올바른 데이터 구조, 저장 기반 및 액세스가 필요합니다.

현재는 올바른 TS를 생성하기가 매우 번거롭고 서투릅니다.

나는 내 자신을 개발해야했고 내 의견으로는 훨씬 더 편리하고 컴팩트하며 빠릅니다.

간단히 설명할 수 있습니다.

...

그 후, 틱 배열도 삭제할 수 있으며 30-40Mb 크기의 데이터베이스에서 최대 1Mb 크기의 대수 압축 데이터베이스를 형성합니다. 이 데이터베이스에는 현재 순간부터 심볼의 전체 긴 역사에 대한 완전한 그림이 포함되어 있습니다.

...

데이터베이스의 "대수 압축"에 관심이 있습니다. 더 많을 수 있습니까?

 
Vladimir :

데이터베이스의 "대수 압축"에 관심이 있습니다. 더 많을 수 있습니까?

제대로 표현되지 않았습니다.

"데이터 표현의 대수 규모로 인한 압축"이 더 정확합니다.

모든 것이 간단합니다.

다음은 이러한 시스템의 압축을 푼 막대 구조입니다.

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

동시에 막대의 기간은 배열의 각 막대마다 다릅니다.

예를 들어, 그러한 막대의 유한 배열이 28000개 있습니다.

제로 바의 기간은 예를 들어 1초입니다.
첫 번째 막대의 기간은 int(1.00047) = 1초입니다.
두 번째 막대의 기간은 int(1.00047^2) = 1초입니다.
세 번째 막대의 기간은 int(1.00047^3) = 1초입니다.
...
1500번째 막대의 기간은 int(1.00047^1500) = 2초입니다.
...
3000번째 막대의 기간은 int(1.00047^3000) = 4초입니다.
...
10000번째 막대의 기간은 int(1.00047^10000) = 109초 = 1분 49초입니다.
...
12000번째 막대의 기간은 int(1.00047^12000) = 281초 = 4분 41초입니다.
...
15000번째 막대의 기간은 int(1.00047^15000) = 1150초 = 19.21분입니다.
...
17000번째 막대의 기간은 int(1.00047^17000) = 2945초 = 49분입니다.
...
20000번째 막대의 기간은 int(1.00047^20000) = 12061초 = 3.35시간입니다.
...
25000번째 막대의 기간은 int(1.00047^25000) = 126404초=1.46일입니다.
...
27999번째 막대의 기간은 int(1.00047^27999) = 517331초 = 5.99일입니다.


막대는 막대당 평균 크기가 약 20바이트인 압축된 형태로 저장됩니다.

빠른 액세스를 위한 인덱스 배열 은 전체 크기의 약 5%를 차지합니다.

저것들. 그러한 데이터베이스의 총 크기는 28000*20*1.05 = 588 kB가 될 것이며 이러한 어레이는 40-50년의 역사를 포함합니다.