x축을 따라 비선형 왜곡이 있는 두 가격 차트의 비교 - 페이지 7

 
hrenfx :

DTW를 통해 이 문제를 해결하는 방법(예제):

  1. 지난 100개의 막대와 같이 역사상 유사한 상황을 찾아야 합니다.
  2. 1,000,000개 바의 사용 가능한 이력.
  3. 먼저 50개의 막대로 구성된 1,000,000개의 시퀀스를 가져와서 DTW를 통해 템플릿과 비교했습니다.
  4. 우리는 이미 각각 55개의 막대가 있는 1,000,000개의 시퀀스를 추가로 가져와 DTW를 통해 템플릿과 비교했습니다.
  5. 이제 60바입니다.
  6. .....
  7. 각각 100바.
  8. .....
  9. 각각 300바. 그리고 거기에서 멈출 수 있습니다.

복잡도가 O(N ^ 2)인 DTW 알고리즘을 사용하여 총 50,000,000번의 비교가 수행되었습니다. 저것들. 5 * 10^11(5000억)개의 기본 계산 연산을 매우 대략적으로 수행했습니다.

이제 새로운 기준이 생겼습니다. 5000억 번의 계산이 다시 수행되었습니다.

우리는 마지막 요소의 200,000부터 시작하여 역사를 실행하기로 결정했습니다. 대략적으로 한 번 실행하려면 200,000번, 각각 5,000억 번을 계산해야 합니다. 총 10^17 계산.

교활한 최적화가 있더라도 두 자릿수 이상의 이득을 얻지 못할 것입니다. 저것들. 가장 좋은 경우에는 10 ^ 15개 정도 계산해야 합니다.


그런 말도 안되는 소리를 하기 전에 먼저 알고리즘의 원리를 이해하십시오. 알고리즘의 복잡성은 O(n*m)이며, 여기서 n과 m은 두 입력 벡터의 길이입니다.

ps "50마디, 55마디"를 할 필요가 없습니다. 세 가지 가능한 왜곡 중 하나는 누락된 관찰입니다.

pps DTW는 경로의 형태에 제한이 있기 때문에 "그곳에서 멈출 수 있습니다"도 완전히 불필요합니다.

ppps "지그재그 + 상관관계 계산" 방법은 말도 안 되는 것으로 보일 것입니다. 지그재그는 거의 말하지 않는 잡음이 있는 랜덤 변수의 최대값을 기반으로 합니다.

pppps 큰 오디오 스트림에서 검색하려면 완전히 다른 방법이 사용됩니다.

 
IgorM :
Habrahabr http://habrahabr.ru/blogs/algorithm/135087/ 에 DTW에 대한 기사가 있습니다. 모든 것이 알기 쉽게 쓰여진 것 같지만 OHLC에 DTW를 사용하는 방법을 상상조차 할 수 없습니다. 누군가 알기 쉽게 설명할 수 있나요?


OHLC의 경우 막대 사이의 거리에 대한 몇 가지 함수를 생각해 내야 합니다. 예를 들어:

1. 두 개의 막대가 주어짐

2. 각 막대를 3차 다항식으로 근사화합니다(C>O 막대의 경우 점 기준: {(t[0];Open), (t[1];Low), (t[2];High ), (t[3];Close)}, 점 {(t[0];Open), (t[1];High), (t[2];Low), (t[ 3];닫기)} , 여기서 t[i]=i/3)

3. 간격 0..1에서 두 다항식의 차이의 제곱의 적분의 제곱근으로 거리를 계산합니다.

(제가 발명한 것이 아니라 관심 있는 모든 사람이 이 방법을 알고 접근할 수 있는 것 같습니다)

 
Integer :

주제의 저자가 직면한 작업과 그의 답변으로 시작하기 위해 읽을 것입니다.

동의합니다, 작업은 유사성 기준을 찾기 위해 공식화되었습니다. 나는 Spearman의 QC를 통한 유사성 기준에 대한 그의 초기 작업을 기반으로 저자가 적용할 추가 논리적 단계를 취했습니다. 아마도 그는 실수했고 저자는 다른 것에 대해 새로운 유사성 기준을 적용하는 것을 생각하고 있습니다.
 
hrenfx :

우리는 마지막 요소의 200,000부터 시작하여 역사를 실행하기로 결정했습니다. 대략적으로 한 번 실행하려면 각각 200,000번, 5000억 번을 계산해야 합니다. 총 10^17 계산.

교활한 최적화가 있더라도 두 자릿수 이상의 이득을 얻지 못할 것입니다. 저것들. 가장 좋은 경우에는 10 ^ 15개 정도 계산해야 합니다.

작업은 훨씬 더 겸손합니다. 오늘 발생한 일을 전날의 시작과 비교하고(패턴 크기가 다릅니다!) 유사성을 평가합니다. 만약 존재한다면, 오늘의 나머지 기간에 대한 대략적인 코스 궤적을 그립니다. H1을 취하면 이것은 24개의 막대입니다. 어쨌든 24개 이하의 비교. M15에서 최대 96개 비교. 내 관찰에 따르면 유사성은 기껏해야 2일 동안 지속되고 시장은 모든 것을 "잊습니다". 몇 개월, 몇 년 단위로 최적화하는 것은 자기기만입니다.
 
anonymous :


그런 말도 안되는 소리를 하기 전에 먼저 알고리즘의 원리를 이해하십시오. 알고리즘의 복잡성은 O(n*m)이며, 여기서 n과 m은 두 입력 벡터의 길이입니다.

왜 그렇게 많은 적대감과 공격성이 있습니까? 알고리즘 복잡성 추정치를 숙지하십시오. O(N^2) 당신이 쓴 것과 모순되지 않습니다. 이러한 복잡성을 가진 알고리즘은 데이터 양이 적은 문제에 적합합니다.

ps "50마디, 55마디"를 할 필요가 없습니다. 세 가지 가능한 왜곡 중 하나는 누락된 관찰입니다.

pps DTW는 경로의 형태에 제한이 있기 때문에 "그곳에서 멈출 수 있습니다"도 완전히 불필요합니다.

위의 예에서 여러 번 언급된 "무례한" 단어에 주의하십시오. 모든 뉘앙스를 고려하면 게시물이 인식 할 수없는 거대한 크기로 커질 것입니다. FastDTW 알고리즘 및 기타 추가 알고리즘 최적화를 언급할 수 있습니다. 실전에서 지성과 지식으로 빛을 발하는 것이 좋습니다.

ppps "지그재그 + 상관관계 계산" 방법은 말도 안 되는 것으로 보일 것입니다. 지그재그는 거의 말하지 않는 잡음이 있는 랜덤 변수의 최대값을 기반으로 합니다.

당신의 언어로 - "넌센스". 예를 들어 이것을 건설적으로 보여줄 수 있습니까?

pppps 큰 오디오 스트림에서 검색하려면 완전히 다른 방법이 사용됩니다.

흥미롭네요.
 
wmlab :
작업은 훨씬 더 겸손합니다.

그런 다음 나는 그것을 과장했습니다. 이러한 간단한 작업의 경우 DTW보다 쉬운 것은 없을 것입니다. 그러나 그러한 작은 데이터 시퀀스를 비교하는 것은 모호한 작업입니다.

당신의 가설이 효과가 있었던 것처럼 보였던 삶의 예를 들어주실 수 있습니까?

 
hrenfx :

그런 다음 나는 그것을 과장했습니다. 이러한 간단한 작업의 경우 DTW보다 쉬운 것은 없을 것입니다. 그러나 그러한 작은 데이터 시퀀스를 비교하는 것은 모호한 작업입니다.

당신의 가설이 효과가 있었던 것처럼 보였던 삶의 예를 들어주실 수 있습니까?


수명이 다한 것 같습니다 - 나는 정신적으로 오늘의 차트를 EURUSD에 대한 어제의 차트로 옮기는 것을 알아차렸습니다. 하루의 전반부가 시각적으로 일치하면 예측을 할 수 있습니다(금요일 및 뉴스가 아닌 경우). "시각적으로"는 상승과 하강의 교대이며 수준이 일치하지 않습니다. 글쎄, 그것은 진화의 삽화를 보는 것과 같습니다. 이웃하는 사진은 비슷하고 멀리 있는 사진은 더 이상 없습니다. 글쎄, 오늘과 어제의 사진이 일치하지 않으면이 방법이 작동하지 않습니다.
 
시각적으로 일치하는 섹션의 그래프를 가져올 수 있습니까?
 
wmlab :
작업은 훨씬 더 겸손합니다. 오늘 발생한 일을 전날의 시작과 비교하고(패턴 크기가 다릅니다!) 유사성을 평가합니다. 만약 존재한다면, 오늘의 나머지 기간에 대한 대략적인 코스 궤적을 그립니다. H1을 취하면 이것은 24개의 막대입니다. 어쨌든 24개 이하의 비교. M15에서 최대 96개 비교. 내 관찰에 따르면 유사성은 기껏해야 2일 동안 지속되고 시장은 모든 것을 "잊습니다". 몇 개월, 몇 년 단위로 최적화하는 것은 자기기만입니다.

그러나 예를 들어 H4의 내 지표 및 Expert Advisor는 900-1000 막대의 소급으로 작동하고 마지막 막대의 이벤트를 명확하게 포착합니다 https://forum.mql4.com/ru/46596/page124, 그래서 시장 기억이란 그렇게 덧없는 것이 아닌가?
 

그것은 뭔가 밝혀졌습니다 ... 단지 깨닫지 못했습니다. 신비로운 황홀감이 느껴집니다 :)

파일:
idtw2.mq4  8 kb