기사 고문. 모두를 위한 테스트. - 페이지 4

 
Reshetov :


Expert Advisor를 개선하여 거래 신호에서 미래의 매도 포지션 확률을 계산합니다. 따라서 확률이 0.5보다 크면 짧은 것을 열고 그렇지 않으면 긴 것을 엽니다.



테이크 앤 무스를 고정했습니다. 더 이상 신호를 뒤집지 않습니다. 이것은 MM을 조이기 위해 필요합니다.

다음 그림이 나타납니다. 처음 136개의 트랜잭션은 최적화이고 나머지는 OOS입니다.


이 토픽은 트레이더들에게 흥미가 없고, 토픽스테이터의 정체를 논의하기 위해 플러더들만 여기에 오기 때문에 어드바이저의 수정된 코드는 첨부하지 않습니다.


유리, 듣지마. 수정된 Expert Advisor를 게시하십시오.
 
Andru80 :
유리, 그들의 말을 듣지 마십시오. 수정된 Expert Advisor를 게시하십시오.

기사가있을 것이고 고문이있을 것입니다. 무엇이 무엇인지 보자 ... 약간의 경험과 테스트를 통해 아이디어를 평가할 필요가 없습니다. 기다리 자.
 
Figar0 :

기사가있을 것이고 고문이있을 것입니다. 무엇이 무엇인지 보자 ... 약간의 경험과 테스트를 통해 아이디어를 평가할 필요가 없습니다. 기다리 자.

나는 모든 사람들이 그것을 테스트하고 말할 수 있도록 기사 앞에 어드바이저를 게시합니다(비록 그들이 내 성격에 대해 다시 논의하기 시작할 가능성이 가장 높지만?).


요점은 Expert Advisor에도 있지 않고 거기에 내가 추가한 안티 피팅 알고리즘에 있습니다.

이제 성공적인 정방향 테스트를 오랫동안 찾고 테스트 결과를 깊이 파고들 필요가 없지만 결과의 맨 윗줄을 살펴볼 필요가 있습니다. 결과는 어딘가에 있어야 합니다. 맨 윗줄에.

테스트 결과와 최적화 결과는 매우 다를 수 있습니다. 안티피팅 은 최적화 중에만 활성화되고 다른 시간에는 비활성화됩니다.

다음은 테스트 결과의 맨 윗줄 그래프입니다(처음 404개 거래는 최적화이고 나머지는 포워드 테스트임).


Expert Advisor는 첨부 파일에 첨부되어 있습니다(편집된 기사가 게시되기 전에 기사에서 해당 코드를 열겠습니다).

입력 매개변수:

x0, x1, x2, x3, x4, x5, x6, x7 - 0에서 100까지 1씩 증가하여 조정 가능합니다. 최적화됨.

sl - 손실을 멈추고 포인트를 획득합니다. 예를 들어, H1의 5자리 EURUSD의 경우 100에서 1000까지 50씩 증가할 수 있습니다(4자리의 경우 모든 숫자에서 0 하나 제거). 최적화.

로트 - 로트의 볼륨, 최적화를 위해 최소 1로트를 설정해야 합니다. 최적화되지 않았습니다.

mn - 매직 넘버. 최적화되지 않았습니다.

d - 로트 크기의 소수 자릿수. 저것들. 0.01이 허용되면 d = 2로 설정합니다. 최적화되지 않았습니다.

이익 요인에 의한 최적화, 이 매개변수에 의한 최적화 결과의 정렬.

만일을 대비하여 ZIP 아카이브에 어드바이저의 설정이 있는 그대로 파일을 게시합니다.

파일:
rnn_v3_1.ex4  7 kb
rnn_v3.zip  1 kb
 

흥미로운 결과!

유라 , 조언자가 던진 분석에 사용된 도구의 데이터인가요?

 
Neutron :

흥미로운 결과!

유라 , 조언자가 던진 분석에 사용된 도구의 데이터인가요?

예, 즉 다른 도구는 분석되지 않습니다. TA는 개시 가격 에서만 수행됩니다.


원칙적으로 입력은 그렇게 까다롭지 않습니다. 이 모든 경제가 계산되는 코드 조각을 보여줄 수 있습니다.


   // Считываем показания индикаторов
   double a1 = input ( 9 , 0 );
   double a2 = input ( 9 , 1 );
   double a3 = input ( 9 , 2 );

   // Вычисляем вероятность торгового сигнала для короткой позиции
   double result = getProbability(a1, a2, a3);

   ...

// Показания индикаторов , должны быть в диапазоне от 0 до 1
// p - период индикатора
// shift - смещение вглубь истории в периодах индикатора
double input ( int p, int shift) { 
   return ( iRSI ( Symbol (), 0 , p, PRICE_OPEN , p * shift) / 100.0 );
}
 

고맙습니다.

안티피팅... NN의 고전을 떠올리면 안티피팅은 앞으로 예측 오차의 최소값을 찾는 것으로 귀결됩니다. 이것은 각각에 대해 NN 재훈련을 사용하여 100 또는 2개의 독립적인 실행에 대한 통계를 수집하여 구현할 수 있습니다. 이는 이해할 수 있지만 초기 VR의 유한한 길이와 비정상성으로 인해 구현하기가 매우 어렵습니다.

또 다른 방법은 훈련 세트의 최적 길이에 대한 추정치를 얻는 것입니다. 내가 아는 한, 아직 아무도 이 문제를 일반적인 형태로 해결하지 못했습니다 ...

성공하셨나요?

 
Neutron :

또 다른 방법은 훈련 세트의 최적 길이에 대한 추정치를 얻는 것입니다. 내가 아는 한, 아직 아무도 이 문제를 일반적인 형태로 해결하지 못했습니다 ...

해결할 필요가 없습니다. 특정 경우에 충분한 길이의 훈련 샘플을 찾는 것으로 충분합니다. 이것은 매우 간단하게 수행됩니다.

네, 그리고 안티핏이 아닙니다. 이것은 2단계 적합성입니다. n번째 수준 적합의 경우 테스트할 n+1개의 샘플, 즉 마지막 컨트롤이 있어야 합니다.

Reshetov가 결코 갖지 못한 것은 정확히 후자입니다.

 

얼마나 간단합니까!

곡선의 각 점에 대해 통계를 수집해야 합니다. 가격대가 한 달 만에 특성을 완전히 바꾸면 어디에서 얻을 수 있습니까?

 

아니, 아무것도 명확하지 않습니다.

유리의 경우 NN은 내가 지정한 히스토리 섹션의 가중치를 간단하게 정렬해서 훈련하는데... 맞죠? 그렇다면 단순히 각 반복에서 거래의 결과가 분석됩니다. 그리고 진술 : "...이제 성공적인 정방향 테스트를 오랫동안 찾고 테스트 결과 를 깊이 파고들 필요가 없지만 결과의 맨 윗줄을 살펴볼 필요가 있습니다. 어딘가에 있어야합니다. , 그들이 최상위 라인에 있을 가능성이 매우 큽니다 ... " 사실이 아닙니다. 성공적인 포워드는 어디에나 있을 수 있으며 모든 곳을 살펴봐야 합니다.

 
Neutron :

고맙습니다.

안티피팅... NN의 고전을 떠올리면 안티피팅은 앞으로 예측 오차의 최소값을 찾는 것으로 귀결됩니다. 이것은 각각에 대해 NN 재훈련을 사용하여 100 또는 2개의 독립적인 실행에 대한 통계를 수집하여 구현할 수 있습니다. 이는 이해할 수 있지만 초기 VR의 유한한 길이와 비정상성으로 인해 구현하기가 매우 어렵습니다.

또 다른 방법은 훈련 세트의 최적 길이에 대한 추정치를 얻는 것입니다. 내가 아는 한 아무도 이 문제를 일반적인 형태로 해결하지 못했습니다 ...

성공하셨나요?

거래 시스템의 경우 여기에서는 기록 조정만 가능합니다. 신경망에는 한 번에 두 가지 불쾌한 일이 있습니다. 바로 맞춤과 재훈련입니다. 또한, 재학습은 정지된 데이터에서도 발생합니다.

그러나 적절한 입력이 있는 신경망을 사용하면 일종의 신경망 패키지나 자체 제작 그리드를 다룰 때 Leonid Velichkovsky 가 말한 방법을 사용하는 것이 조금 더 쉽습니다. 훈련 예제를 두 개의 샘플로 나눕니다. : 훈련과 테스트, 그리고 학습 과정에서 우리는 두 샘플에 대한 결과를 계산하고 훈련 하나에 대해서만 그리드를 훈련합니다. 테스트 샘플에서 결과의 개선이 멈추자 마자, 즉 계속해서 개선되지 않으면 네트워크가 충분히 훈련되고 중단되어야 합니다. 저것들. 이런 식으로 우리는 메시를 가장 적절하게 훈련시킵니다. 더 나아지지 않고 더 나빠지기 쉽습니다. 네트워크가 정확히 얼마나 재훈련되거나 조정되는지, 이 경우에는 별로 신경 쓰지 않습니다. 왜냐하면 테스트 샘플에 극한값이 있습니다.

터미널에 내장된 유전자 알고리즘을 사용하면 훨씬 더 어렵습니다. 우리는 전방 섹션에 대한 결과를 계산할 수 없으며 제 시간에 최적화를 중지할 수 없습니다. 이 때문에 수동으로 지표별로 정렬된 최적화 결과에서 앞으로를 찾아야 합니다.

나는 조금 다른 길을 갔다:

1. 신경망을 재훈련시키는 이유를 찾아 제거했습니다. 저것들. 훈련 예제가 고정되어 있고 모순을 포함하지 않는 경우 내 알고리즘은 과대적합되지 않지만 예제의 수가 보간을 위해 충분하지 않은 경우 쉽게 과소적합될 수 있습니다.

2. 피팅이 더 어려웠습니다. 그러나 문제는 또한 해결할 수 있는 것으로 밝혀졌습니다. 적합성은 주로 훈련의 질에 달려 있습니다. 보상 및 처벌 시스템의 적절성, 그렇지 않으면 알고리즘은 최소 저항의 경로를 따르고 실제로 적절한 방식이 아닌 더 쉬운 방식으로 학습합니다. 그래서 나는 그에게 저항이 가장 적은 바로 그 길을 제거했습니다. 핍 수가 아니라 결과 확률 계산의 품질로 유전 알고리즘을 평가하도록 했습니다.

3. 비정상성. 전혀 극복할 수 없었기 때문입니다. 알고리즘이 아닌 시장에만 의존합니다. 이것이 예측 품질에 실질적인 장애물이 되는 유일한 것입니다. 그러나 훈련의 다른 단점이 제거되면 그 영향력은 더 이상 수입을 방해할 정도로 크지 않습니다.