베이지안 회귀 - 이 알고리즘을 사용하여 Expert Advisor를 만든 사람이 있습니까? - 페이지 45

 
http://www.quantalgos.ru/?p=1898 아마도 주제의 저자가 도움이 될 것입니다 ...
Предсказание чего угодно с использованием Python | QuantAlgos
  • 2016.03.12
  • www.quantalgos.ru
Небольшая статья с ресурса http://www.talaikis.com/ о построении простой стратегии, использующую наивный байесовский классификатор при создании процесса возврата к среднему. Весь код в статье приведен на языке Python. Это достаточно большая область исследований, но расскажем все очень кратко. Мы попытаемся найти взаимоотношение между...
 
Ilnur Khasanov :
http://www.quantalgos.ru/?p=1898 아마도 주제의 저자가 도움이 될 것입니다 ...
나는 평균으로 돌아갈 때와 조금 다르게 비슷한 일을 했습니다. 작동하지만 현실 세계에 출시할 수 없습니다. 해결책이 완전히 불분명한 문제가 있습니다. 이 방법의 가장 큰 단점은 시장이 아니라 자신이 옳다는 것을 지속적으로 증명해야 한다는 것입니다. :)
 

의사 난수 생성기. (PRNG)

위에서 제안한 극좌표의 방법에 따라 PRNG MT4를 확률변수가 정규분포된 PRNG로 변환하였다.

코드가 제대로 작동하는지 시각적으로 확인하기 위해 작업 결과를 가격 차트에 투영했습니다.

이것은 1000번의 호출 후에 일반 PRNG가 표시하는 것입니다. 히스토그램 직사각형의 영역은 수직 스케일의 이 범위에 속하는 생성된 난수의 수에 비례합니다.


그리고 이제 메서드의 공식에 따라 수천 건의 호출을 변환한 결과

꽤 적절한 벨.

 
Yuri Evseenkov :

위에서 제안한 극좌표 방법에 따라 PRNG MT4를 확률변수가 정규분포된 PRNG로 변환하였다.

mql4.com의 오래된 자전거.
 

Bayes 공식을 적용하려고 합니다. 다시.

일. 베이즈 정리를 사용하여 아직 도착하지 않은 틱의 값이 가장 가능성이 높은 값을 결정합니다.

주어진. 시계열 x,y.

y=ax+b 마지막 틱에서 미래까지의 라인.

P(a,b|x,y)=P(x,y|a,b)*P(a)*P(b)/P(x,y); (1) 베이즈 공식.

P(a,b|x,y) - 계수 a와 b가 미래 틱의 x 및 y 좌표에 해당할 확률.

이 확률(보다 정확하게 는 확률 척도)이 최대가 되도록 그러한 및 b를 찾는 것이 필요합니다 .

P(x,y|a,b) - 우도 함수로 가격 수준별 틱 분포의 실제 히스토그램을 사용하겠습니다. 이 함수는 2차원 배열(매트릭스)로 지정됩니다. 가격 범위 - 확률, 총 틱 수에 대한 이 범위에 속하는 틱의 백분율.

P(b) - 증분의 정규 분포는 선험적 확률 b로 간주됩니다. 정규 분포 값을 가진 PRNG가 사용됩니다.

P(a) 계수 a는 직선의 기울기와 예측된 증분의 부호를 결정합니다. 지금은 이전에 게시한 선형 회귀 코드를 사용할 생각입니다. 즉, 거기에서 발견된 계수의 확률을 받아들이는 것입니다. 하지만 단위당. 그리고 (1)에서 이것과 주어진 y에 대해 계산된 것 사이의 차이를 고려하여 계산된 확률 P(a)를 대입합니다.

각 틱의 증분 기호가 어떻게 작동하는지에 대한 아이디어가 있습니까?


 

수식에서 틱을 대체해서는 안됩니다. 누구나 FORTS에서 이러한 틱을 생성할 수 있으며 이는 매일 수행됩니다.

문제는 매트가 아닙니다. 방법, 오히려. 그리고 적용할 데이터 선택의 적절성.

 
왜 인공 틱을 복용합니까? 더 높은 수학 없이도 예측하는 방법을 배울 수 있습니다. MQ에게 방법을 물어보세요.

실제 진드기, 10000 조각을 가져 와서 분포를보십시오. 적어도 실용적일 것입니다.
 
Alexey Burnakov :
왜 인공 틱을 복용합니까? 더 높은 수학 없이도 예측하는 방법을 배울 수 있습니다. MQ에게 방법을 물어보세요.

실제 진드기, 10000 조각을 가져 와서 분포를보십시오. 적어도 실용적일 것입니다.

음, (1)의 우도 함수 P(x,y|a,b) 는 실제 틱(틱 볼륨)의 실제 분포입니다. 아주 드물게 정상입니다. 그리고 P(a)와 P(b)는 선험적 확률로 채택된 법칙에 따른 수정 확률입니다.

MQ에 무엇을 물어볼 것인가? 전략 테스터에서 틱 모델링의 원리는? 예, 몇 가지 원칙이 있어야 합니다. 아마도 그것을 알고 테스터 "grails"가 생성됩니다. 그러나 나는 아직 테스트 모드에서 개발을 대표하지 않습니다. 왜냐하면 나는 틱 기록이나 작업 실습이 없기 때문입니다. 모든 것이 실시간으로 진행됩니다.

당신의 말에 관심:

"일반적으로 내 실험에서 나는 회귀하지 않고 가격 값(또는 그 변형), 기호를 예측하지만 이것이 또한 가격 정보의 일부라고 말할 수 있습니다.

내 오류는 다음과 같습니다.

0 1

0 0.58 0.42

1 0.43 0.57

또는 원래 다음과 같은 것:

1 - 참, 0 - 오류: 1, 1, 0, 0, 0, 1, 1, 1, 0, 1

그리고 결과 확률 분포는 0.5/0.5와 최대한 달라야 합니다. 우리가 그러한 결과의 상호 독립성을 얻는다면, 우리는 이항 분포에 이르게 될 것이며, 이에 대한 많은 공식과 통계적 테스트 가 있습니다. "인용 끝.

기호 예측의 경우 이항 분포가 실제로 지배합니까? 결과의 상호 독립성이란 무엇입니까? 고맙습니다.

 
Yuri Evseenkov :

음, (1)의 우도 함수 P(x,y|a,b) 는 실제 틱(틱 볼륨)의 실제 분포입니다. 아주 드물게 정상입니다. 그리고 P(a)와 P(b)는 선험적 확률로 채택된 법칙에 따른 수정 확률입니다.

MQ에 무엇을 물어볼 것인가? 전략 테스터에서 틱 모델링의 원리는? 예, 몇 가지 원칙이 있어야 합니다. 아마도 그것을 알고 테스터 "grails"가 생성됩니다. 그러나 나는 아직 테스트 모드에서 개발을 대표하지 않습니다. 왜냐하면 나는 틱 기록이나 작업 실습이 없기 때문입니다. 모든 것이 실시간으로 진행됩니다.

당신의 말에 관심:

"일반적으로 내 실험에서 나는 회귀하지 않고 가격 값(또는 그 변형), 기호를 예측하지만 이것이 또한 가격 정보의 일부라고 말할 수 있습니다.

내 오류는 다음과 같습니다.

0 1

0 0.58 0.42

1 0.43 0.57

또는 원래 다음과 같은 것:

1 - 참, 0 - 오류: 1, 1, 0, 0, 0, 1, 1, 1, 0, 1

그리고 결과 확률 분포는 0.5/0.5와 최대한 달라야 합니다. 우리가 그러한 결과의 상호 독립성을 얻는다면, 우리는 이항 분포에 이르게 될 것이며, 이에 대한 많은 공식과 통계적 테스트 가 있습니다. "인용 끝.

기호 예측의 경우 이항 분포가 실제로 지배합니까? 결과의 상호 독립성이란 무엇입니까? 고맙습니다.

순서대로. 네, 테스터의 알고리즘에 따라 틱이 생성됩니다. 실제 진드기에 대한 테스트는 아직 릴리스되지 않았습니다. 이 진드기가 어떻게 생성되는지에 대한 기사가 이 사이트에 있습니다. 그들은 전혀 실제 틱이 아닙니다.

이항 분포에 대해. 이진 변수를 예측하면 인식 정확도를 보여주는 2*2 행렬을 얻습니다. 이것은 본질적으로 목표와 시뮬레이션의 두 이진 변수의 공동 분포입니다.

대상 변수 iid의 구현 순서가 독립적이고 동일하게 분포되어 있으면 많은 기준을 적용할 가능성이 열립니다. 이것은 동전 던지기의 결과입니다. 이것이 베르누이 과정이다. 이는 이벤트가 서로 독립적임을 의미합니다. 이것이 유효하면 확률 분포는 이항 분포를 따릅니다. 예를 들어 성공 횟수에는 고유한 확률이 있으며 이는 거의 정상입니다.

나는 혼란스럽게 글을 쓴다, 이미 늦었다. 이항 분포에 대해 제가 정말 좋아하는 점은 정사각형 테이블의 경우 카이-제곱 테스트가 적용되어 결과가 무작위 추측과 다르다는 사실의 중요성을 보여줍니다. 다항(정사각형일 필요는 없음) 테이블에 대해서도 동일한 작업을 수행할 수 있습니다. 또한 이진 변수에 대한 많은 기계 학습 방법이 있습니다.
 

내 생각에 예측에 틱을 사용하는 것은 위험하며 각 브로커에 대해 모델을 별도로 구성해야 합니다.

전략 테스터에서 틱을 가져 가면 테스터의 틱이 분 막대의 ohlc 값에서 템플릿에 따라 생성되기 때문에 실제와 큰 차이가 있습니다 ( https://www.mql5.com/ ko/articles/75 ). 따라서 아무도 스캘퍼를 테스트하지 않고 즉시 실제 계정에 넣고 최적화합니다.

실제 진드기의 경우 브로커마다 매우 다를 수 있습니다. 예를 들어 이 스레드에서 https://www.mql5.com/en/forum/64228/page2#comment_1960403 ( https://c.mql5.com/3/78/tbd.png ) 스크린샷이 첨부되어 있습니다. 두 개의 다른 브로커에 대한 동일한 기간 동안의 틱 증가분 분포입니다. 나는 간격의 길이를 기억하지 못합니다. 하루에서 일주일 정도입니다. 일반적으로 그들은 동일하지만 그 중 하나는 가격을 변경하지 않고 두 배의 틱을 가지고 있습니다. 수십 명의 중개인을 비교하면 특히 "갑작스러운 양초"가 있는 주방의 경우 큰 차이가 있다고 생각합니다.
또는 가격을 변경하지 않고 모든 눈금을 제거할 수 있습니다. 그러면 Expert Advisor에서 OnTick() 이벤트를 건너뛸 수 있는 뉘앙스가 있으며, 그러면 이전 가격을 건너뛰고 새로운 가격이 터미널에 올 것입니다. Tobish는 1.23456 -> 1.23490 -> 1.23410이 아니라 1.23456 -> 1.23410입니다. 그리고 두 가지 변경 사항 대신 모델에 한 가지 변경 사항이 적용됩니다.
두 개의 인접한 틱 사이의 시간 간격이 정의되지 않은 것으로 판명되었으며 데이터 간격이 있을 것입니다. 이것은 나쁘다고 생각합니다.
여전히 시도해 볼 가치가 있습니다. 실제 틱을 테스터에 삽입하려면 MT4 및 Tickstory Lite 프로그램(무료 버전 있음)을 사용해야 합니다(Dukascopy 중개인에서 가져옴). 빌드 950 미만에서는 MT4 터미널만 사용해야 합니다. 그렇지 않으면 무료 버전의 tickstory가 테스트 데이터를 제로 스프레드로 만듭니다.

나는 평균을 구하고 현재 가격이 평균에서 크게 벗어나면 매수-매도와 같은 틱으로 무언가를 시도했습니다. 이익이 있다면 스프레드가 모든 것을 먹어치우고 더 큰 기간으로 이동했습니다.

The Algorithm of Ticks' Generation within the Strategy Tester of the MetaTrader 5 Terminal
The Algorithm of Ticks' Generation within the Strategy Tester of the MetaTrader 5 Terminal
  • 2010.06.02
  • MetaQuotes Software Corp.
  • www.mql5.com
MetaTrader 5 allows us to simulate automatic trading, within an embedded strategy tester, by using Expert Advisors and the MQL5 language. This type of simulation is called testing of Expert Advisors, and can be implemented using multithreaded optimization, as well as simultaneously on a number of instruments. In order to provide a thorough testing, a generation of ticks based on the available minute history, needs to be performed. This article provides a detailed description of the algorithm, by which the ticks are generated for the historical testing in the MetaTrader 5 client terminal.
사유: