트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 321

 
막심 드미트리예프스키 :

https://www.mql5.com/ru/code/127

코드에 일종의 오류가 있을 뿐입니다. 제 생각에는 표시기가 잘못 정규화되었습니다.

모든 것이 정확합니다. [0; 1]이 아니라 다른 간격으로 정규화되었습니다.


간단하게 하기 위해 가지고 있는 것과 동일한 CalcRegression 함수를 그대로 둘 수 있습니다(이 함수에서 b는 이미 반대 기호 *와 함께 반환됩니다. 즉, 기호를 두 번째로 변경할 필요가 없습니다). 간격 [-0.5; 0.5]에 속하도록 결과를 곱하는 데 필요한 값을 경험적으로 찾으십시오. 그런 다음 +0.5를 추가하여 가운데를 0에서 0.5로 이동합니다.


*그러나 그것은 정확하지 않습니다. 상대성 문제. 이 공식은 시간의 가장 오래된 가격이 배열에서 가장 높은 인덱스를 갖는 경우 올바른 부호와 함께 b를 제공합니다.

 
박사 상인 :

모든 것이 정확합니다. [0; 1]이 아니라 다른 간격으로 정규화되었습니다.


간단하게 하기 위해 가지고 있는 것과 동일한 CalcRegression 함수를 그대로 둘 수 있습니다(이 함수에서 b는 이미 반대 부호와 함께 반환됩니다. 즉, 부호를 두 번째로 변경할 필요가 없습니다). 간격 [-0.5; 0.5]에 속하도록 결과를 곱하는 데 필요한 값을 경험적으로 찾으십시오. 그런 다음 +0.5를 추가하여 가운데를 0에서 0.5로 이동합니다.


다른 시간 척도에 대해 다른 최대값과 최소값을 갖습니다. 그다지 편리하지 않습니다. 내 생각에는 역사의 큰 섹션에서 표시기 배열에 의해 가장 정규화된 것 같습니다.
 
박사 상인 :

*그러나 그것은 정확하지 않습니다. 상대성 문제. 이 공식은 시간의 가장 오래된 가격이 배열에서 가장 높은 인덱스를 갖는 경우 올바른 부호와 함께 b를 제공합니다.


기존 버퍼를 기반으로 지표에 다른 정규화된 버퍼를 추가하겠습니다. :)
 

회귀의 기울기와 함께 흥미로울 수도 있습니다. 백테스트 및 앞으로. 요컨대, 이 논리로 작업하고 다양한 예측 변수를 실험할 수 있는 것처럼 보입니다.


파일:
 
막심 드미트리예프스키 :

회귀의 기울기와 함께 흥미로울 수도 있습니다. 백테스트 및 앞으로. 간단히 말해서 이 논리로 작업하고 다양한 예측 변수를 실험할 수 있는 것 같습니다.


코드 감사합니다. 테스트했습니다. 나는 더 나빠졌다. 하지만 최적화에 1년이 아닌 1개월만 걸렸으니 빨리 확인하고 싶었습니다. 프론트 테스트에서 어드바이저가 처음에는 정상인 상태를 보이다가 서서히 균형을 잡기 시작하다가 점차 빠져나가는 것을 볼 수 있습니다. 새로운 데이터에 대한 약간의 정보는 여전히 유효합니다. 나쁘지 않습니다.

나는 그것을 바꿀 것이다

1) 이중 a3 = regr[0]; - 제로 인덱스는 시간상 가장 오래된 데이터입니다. 여기에 있는 최신(새) 막대는 49(50이 사용되었으므로)가 됩니다. 그러나 후자는 다시 그릴 수 있으며 48이 더 낫습니다.지표가 다시 그려졌는지 여부도 확인해야 합니다.
rsi와 동일합니다. 세 개에서 더 새로운 것을 제거했습니다. 인덱스가 0인 인덱스를 가장 오래된 것으로 제거하는 것이 좋습니다.

2) Yuri의 고문의 세 번째 버전에서 RNN 기능에는 4개의 매개변수가 포함되어 있으며 즉시 3개의 rsi와 추세를 가져올 수 있습니다. 일반적으로 함수는 Yuri의 기사에 작성된 것처럼 새로운 매개변수로 보완될 수 있지만 각 +1 매개변수는 계수의 수를 두 배로 만듭니다.

3) 나는 스톱 앤 테이크를 좋아하지 않습니다. 최적의 값은 새로운 막대에서 지속적으로 변경됩니다. 보다 정확하게는 최적의 값조차 없으며 특정 시간 간격으로 Expert Advisor에 대한 "편리한"값이 있을 뿐입니다. 또한 중개인은 양초를 멈출 수 있습니다. 나는 각각의 새로운 막대에 대한 예측을 시도하고 다음 막대와 예측까지 이 방향으로 거래를 유지하고 필요한 경우 뒤집습니다.

4)

   int handle= iRSI ( _Symbol , 0 , 9 , PRICE_OPEN );
   double rsi[ 30 ];
   CopyBuffer (handle, 0 , 0 , 28 ,rsi);

핸들은 Expert Advisor가 생성될 때마다가 아니라 OnInit에서 초기화되어야 합니다. 또한 30개 요소의 배열과 28개만 복사됩니다. 인덱스 28과 29는 액세스할 수 없으며(아무도 액세스할 수 없지만 원하는지 여부는 알 수 없음) 채워지지 않습니다.

 
박사 상인 :


코드 감사합니다. 테스트했습니다. 나는 더 나빠졌다. 하지만 최적화에 1년이 아닌 1개월만 걸렸으니 빨리 확인하고 싶었습니다. 프론트 테스트에서 어드바이저가 처음에는 정상인 상태를 보이다가 서서히 균형을 잡기 시작하다가 점차 빠져나가는 것을 볼 수 있습니다. 새로운 데이터에 대한 약간의 정보는 여전히 유효하며 나쁘지 않습니다.

나는 그것을 바꿀 것이다

1) 이중 a3 = regr[0]; - 제로 인덱스는 시간상 가장 오래된 데이터입니다. 여기에 있는 최신(새) 막대는 49(50이 사용되었으므로)가 됩니다. 그러나 후자는 다시 그릴 수 있으며 48이 더 낫습니다.지표가 다시 그려졌는지 여부도 확인해야 합니다.
rsi와 마찬가지로 3개에서 더 새로운 것을 제거했습니다. 인덱스가 0인 인덱스를 가장 오래된 것으로 제거하는 것이 좋습니다.

2) Yuri의 고문의 세 번째 버전에서 RNN 기능에는 4개의 매개변수가 포함되어 있으며 즉시 3개의 rsi와 추세를 가져올 수 있습니다. 일반적으로 함수는 Yuri의 기사에 작성된 것처럼 새로운 매개변수로 보완될 수 있지만 각 +1 매개변수는 계수의 수를 두 배로 만듭니다.

3) 나는 스톱 앤 테이크를 좋아하지 않습니다. 최적의 값은 새로운 막대에서 지속적으로 변경됩니다. 보다 정확하게는 최적의 값조차 없으며 특정 시간 간격으로 Expert Advisor에 대한 "편리한"값이 있을 뿐입니다. 또한 중개인은 양초를 멈출 수 있습니다. 나는 각각의 새로운 막대에 대한 예측을 시도하고 다음 막대와 예측까지 이 방향으로 거래를 유지하고 필요한 경우 뒤집습니다.

4)

핸들은 Expert Advisor가 생성될 때마다가 아니라 OnInit에서 초기화되어야 합니다. 또한 30개 요소의 배열과 28개만 복사됩니다. 인덱스 28과 29는 액세스할 수 없으며(아무도 액세스할 수 없지만 원하는지 여부는 알 수 없음) 채워지지 않습니다.


흠, 응? 버퍼를 복사할 때 null이 첫 번째 값을 반환한다고 생각했습니다. 확인이 필요합니다...

https://www.mql5.com/ru/docs/series/copybuffer

sl 및 tp 대신 후행을 추가했지만 결과가 많이 개선되지 않았습니다.

핸들에 대해, 예, 회귀를 위해 초기화로 가져갔습니다. rsi의 경우에는 잊어버렸습니다.

거기에서 가장 높은 이윤 계수를 가진 포워드를 선택해야 하며 백테스트가 거의 동일하도록 그리드가 이러한 매개변수에 대한 규범을 예측할 수 있음을 의미합니다. 그리고 한 달 안에 추세에 맞을 수 있지만 앞으로 변경되었습니다. .. 더 많은 샘플링이 필요합니다. 예 .. 기간이 짧을수록 더 많은 매수 또는 매도 주문이 우세하며 주로 매수 또는 매도에 최적화되어 있습니다. 더 긴 기간은 판매 횟수이고 바이가 정렬됩니다.

그리고 어떤 이유로 RNN3는 훨씬 적은 신호를 제공합니다. 아직 이유를 찾지 못했습니다.

정규화 함수가 50개가 아닌 5000개 막대의 배열을 즉시 취하여 처음부터 더 정확한 최대값과 최소값을 찾고 시간이 지남에 따라 업데이트하지 않는 것이 더 나은지 여부는 아직 완전히 명확하지 않습니다. 테스트 섹션이 시작될 때 올바르게 정규화되지 않은 값이 입력에 공급되고 점점 더 정확하게

또한, 예를 들어 고정 계열에 대한 회귀 기울기 및 자기 상관과 같은 최상의 방법을 확신할 때까지 여전히 그래프의 추세를 제거하고 그리드에 대해 더 소화 가능한 값을 제공합니다. 나는 계량경제학 을 잘 못해서 지금 영상을 보고 있다

또한 나중에 이 RNN을 일반 MLP와 비교하고 싶지만 MLP가 출력에 무언가를 제출해야 하기 때문에 완전히 정확한 비교는 아닌 것으로 판명될 것입니다. 또 다른 옵션은 3개의 RNN으로 구성된 위원회를 만들고 그 결과를 RNN :D 또는 일부 convolutional NN에 제출하는 것입니다. 클라우드를 통해서도 최적화되면 아주 좋을 것입니다. 오랫동안. 그리고 3개의 RNN을 MLP에 제출하고 출력으로 가격을 인상하는 것이 좋습니다. 따라서 이론적으로 재교육을 제거할 것입니다. 저것들. RNN은 오토인코더의 역할을 할 것입니다.


 
막심 드미트리예프스키 :




ARIMA가 적용될 수 있는 인용문을 찾는 것은 거의 불가능합니다. 그러나 그것이 강의의 끝이었습니다.

GARCH는 어떻습니까? 이것은 훨씬 더 유망하고 TF에서 하루도 안 되는 기간 동안, 심지어 빈도가 높은 거래에서도 널리 사용됩니다.

 
산산이치 포멘코 :


ARIMA가 적용될 수 있는 인용문을 찾는 것은 거의 불가능합니다. 그러나 그것이 강의의 끝이었습니다.

GARCH는 어떻습니까? 이것은 훨씬 더 유망하고 TF에 매우 널리 사용되며, 빈도가 높은 거래의 경우에도 마찬가지입니다.


추세를 뺀 다음 자동회귀한 다음 회귀의 기울기와 함께 값을 NN에 채우는 것은 어떻습니까? 젠장, 이 가중치에 대해 알기 시작했고 아직 실험도 해보지 않았습니다. 그리고 저는 가르치에 대해서만 들었습니다 :)

그리고 RNN 유형을 MLP용 자동 인코더로 사용하는 방법은 무엇이라고 생각하십니까?

내가 이해하는 한, 순환 네트워크는 다음과 같이 논리적 규칙 세트가 있는 자동 인코더입니다.


 
막심 드미트리예프스키 :

추세를 뺀 다음 자동회귀한 다음 회귀의 기울기와 함께 값을 NN에 채우는 것은 어떻습니까? 젠장, 이 웨이트를 이제 막 알기 시작했어, 아직 실험도 해보지 않았어

지금 더 나은 실험!

많은 시간을 절약하고 불필요한 지식으로부터 자신을 보호합니다.

 
산산이치 포멘코 :


ARIMA가 적용될 수 있는 인용문을 찾는 것은 거의 불가능합니다. 그러나 그것이 강의의 끝이었습니다.

GARCH는 어떻습니까? 이것은 훨씬 더 유망하고 TF에서 하루도 안 되는 기간 동안, 심지어 빈도가 높은 거래에서도 널리 사용됩니다.

너무 보였다. IMHO, 이것은 우리의 주제 영역이 아닙니다.
사유: