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

 

R에서 mql로 뉴런을 전송하는 방법에 대한 주제에서:

나는 이것을 nnet 패키지로 했다. https://cran.r-project.org/web/packages/nnet/index.html (패키지 소스: nnet_7.3-12.tar.gz) 소스를 확인해야 합니다. 아카이브에 src / nnet.c 폴더가 있습니다.

fpass 기능이 필요합니다. 처음 몇 줄은 thisError = 0.0까지입니다(이것은 backprop에 대한 오류 계산의 시작이며 단순 예측에는 필요하지 않음)


어드바이저에서 사용할 수 있는 코드는 다음과 같습니다.

   double sigmoid( double sum)
     {
       if (sum<- 15.0 )
         return ( 0.0 );
       else if (sum> 15.0 )
         return ( 1.0 );
       else
         return ( 1.0 / ( 1.0 + exp (-sum)));
     }

//nnet_hidden - число нейронов в скрытом слое
//выход один
//nnet_weights - массив с весами нейронки взятыми из R после обучения nnet модели

int weights_it= 0 ;
double hiddenLayer[];
ArrayResize (hiddenLayer,nnet_hidden);
for ( int i= 0 ; i<nnet_hidden; i++)
 {
  hiddenLayer[i]=nnet_weights[weights_it++];
   for ( int j= 1 ; j<=nnet_bars; j++)
    {
     hiddenLayer[i]+=openPrices[j]*nnet_weights[weights_it++];
    }
  hiddenLayer[i]=sigmoid(hiddenLayer[i]);
 }
double prediction=nnet_weights[weights_it++];
for ( int i= 0 ; i<nnet_hidden; i++)
 {
  prediction+=hiddenLayer[i]*nnet_weights[weights_it++];
 }
if (!linout)
 {
  prediction = sigmoid(prediction);
 }

이 코드는 모델 매개변수 skip = FALSE인 경우에만 작동합니다.
이와 같지 않거나 softmax를 사용하는 경우 - fpass() 함수의 차이점을 찾으십시오.


가중치(배열 nnet_weights)는 훈련 후 R 자체에서 복사해야 합니다.

 library (nnet)
trainedModel <- nnet(y = 1 : 10 , x = matrix(runif( 20 ),ncol= 2 ), size= 10 )
nnet_weights <- trainedModel$wts
cat( "double nnet_weights[] = {" , paste(format(weights,digits= 16 ,scientific=T), collapse= "," ), "};" , file= "D:/weights.txt" ) #сохранить веса в файлик чтоб оттуда скопипастить в советник
 
영형! 그것은 이미 뭔가입니다. 약간 수정되어 사용할 준비가 되었습니다. 고맙습니다!
 

강화에 대한 또 다른 작은 소개 기사이지만 요점은 다음과 같습니다.

mql에 대한 소규모 팀워크와 브레인스토밍을 구성하고 경험을 공유하는 것이 흥미로울 것입니다. 주제는 매우 흥미롭고 다른 접근 방식은 이미 빨려들어갔습니다.

https://proglib.io/p/trade-learning/

Трейдинг и машинное обучение с подкреплением
Трейдинг и машинное обучение с подкреплением
  • 2018.02.15
  • matyushkin
  • proglib.io
В статье рассмотрено, как машинное обучение с подкреплением может применяться для трейдинга финансовых рынков и криптовалютных бирж. Академическое сообщество Deep Learning в основном находится в стороне от финансовых рынков. В силу ли того, что у финансовой индустрии не лучшая репутация, что решаемые проблемы не кажутся слишком интересными для...
 

제 생각에는 강화 학습은 일반적으로 과적합이 매우 큰 모델을 제공하며 이 경우 교차 검증은 저장되지 않습니다. 모델 자체 내에서 제안에 대한 몇 가지 특별한 메커니즘이 있어야 합니다.

아직 이 주제에 대해 잘 모르는 사람들을 위해 간단히 말해서 일반적인 모델 평가(정확도, r2, logloss 등) 대신 자체 모델 평가 논리를 사용하여 특별한 적합성 함수가 생성됩니다. 이러한 적합성 함수는 예를 들어 거래 시 모델의 이익 또는 샤퍼레이션을 계산할 수 있습니다. 그리고 모델의 매개변수 는 유전 알고리즘 에 의해 선택됩니다.

mt4 및 mt5의 옵티마이저가 강화 학습 원칙에 따라 작동하는 것도 궁금합니다. 각 막대(또는 틱)의 어드바이저는 가격 및 지표의 현재 값을 수신하고 일부 결정을 내리고 이에 대해 거래가 이루어집니다 , 어드바이저 의 최종 견적 은 거래 의 결과 로 간주 됩니다 . 조언자의 매개변수는 점수를 높이기 위해 유전학에 의해 선택됩니다.
무료로 사용할 수 있는 MT5에 대한 Expert Advisors로 판단하면 이 교육 방법이 많은 게으름뱅이를 생성한다는 것을 분명히 알 수 있습니다. 그러나 때로는 좋은 조언자를 얻기도 합니다.

 
박사 상인 :

제 생각에는 강화 학습은 일반적으로 과적합이 매우 큰 모델을 제공하며 이 경우 교차 검증은 저장되지 않습니다. 모델 자체 내에서 제안에 대한 몇 가지 특별한 메커니즘이 있어야 합니다.

아직 이 주제에 대해 잘 모르는 사람들을 위해 간단히 말해서 일반적인 모델 평가(정확도, r2, logloss 등) 대신 자체 모델 평가 논리를 사용하여 특별한 적합성 함수가 생성됩니다. 이러한 적합성 함수는 예를 들어 거래 시 모델의 이익 또는 샤퍼레이션을 계산할 수 있습니다. 그리고 모델의 매개변수 는 유전 알고리즘 에 의해 선택됩니다.

mt4 및 mt5의 옵티마이저가 강화 학습 원칙에 따라 작동하는 것도 궁금합니다. 각 막대(또는 틱)의 어드바이저는 가격 및 지표의 현재 값을 수신하고 일부 결정을 내리고 이에 대해 거래가 이루어집니다 , 어드바이저 의 최종 견적 은 거래 의 결과 로 간주 됩니다 . 조언자의 매개변수는 점수를 높이기 위해 유전학에 의해 선택됩니다.
무료로 사용할 수 있는 MT5에 대한 Expert Advisors로 판단하면 이 교육 방법이 많은 게으름뱅이를 생성한다는 것을 분명히 알 수 있습니다. 그러나 때로는 좋은 조언자를 얻기도 합니다.

옵티마이저에 대한 좋은 비유입니다. 제 이전 봇은 이것에 관한 것이지만 너무 간단합니다.

그러나 일반적으로 RL이 유전학에 반대되지 않으면 비 고정 프로세스에서 작업하는 능력과 같은 이점이 강조됩니다. 특히, 그 과정에서 모델이 지속적으로 재학습되고 임의의 단계를 수행하는 덕분에 욕심이 없는 피트니스 기능을 사용할 수 있습니다. 그리고 옵티마이저로 국회에서 나온 바디킷(유전학 아님)을 사용

모든 것이 조금 더 복잡하지만 아직 책을 읽지 않았습니다.

저것들. 유전학, 옵티마이저 및 RL에 대한 귀하의 진술은 잘못되었습니다.

 

*감정, 철학, 그 모든 것의 순간*

맑고 화창한 날을 상상해보십시오. 당신은 연못 옆 잔디에 앉아 따뜻한 봄 바람이 불어 물에 잔물결을 남기고 근처에서 오리 소리가 들립니다. 물고기는 수중에서 얕게 헤엄치고 때로는 지느러미로 표면을 만지고 물 속에 원을 펼칩니다. 이웃 사람이 근처에 물을 길고 있고, 그녀의 손자는 물에 돌을 던지며 개구리를 이리저리 쫓습니다. 연못 반대편에서는 한 남자가 세차를 하고 있습니다.

그 대가는 이 모든 혼란의 물결과도 같으나 폭풍우가 치는 동안에도 마찬가지입니다. 파도를 따라 물이 특정 지점에서 오르거나 내리기 시작할 때를 추측할 수 있지만 환경을 따르지 않으면 대부분의 경우 틀릴 것입니다.

가격의 미래 가치는 과거 가치에 의존하는 것이 아니라 과거 가격 변화를 일으키고 새로운 변화를 일으킬 글로벌 세계 프로세스에 의존합니다.
물 위의 파도뿐만 아니라 바람, 물고기의 궤적, 이웃의 양동이 등을 따라갈 필요가 있습니다. 그러면 물 위의 파도의 특성을 이해하고 예측할 수 있습니다.

따라서 가격에 영향을 미치는 모든 글로벌 프로세스에 대한 정보가 있으면 예측하는 방법을 배울 수 있으며 지난 세기의 모든 간단한 모델이 이에 대처할 수 있습니다.
문제는 일반적으로 가격 차트만 있고 이것으로 충분하지 않다는 것입니다.

 

RL과 NN을 연결하는 방법은 다음과 같습니다 .

 

그리고 vidosik, 아직 2부가 있습니다

그게 다야, 나는 더 이상 스팸하지 않을거야, 읽기에 관심이


 
MT의 신경망을 사용하면 모든 것이 간단합니다. Microsoft CNTK의 라이브러리가 있습니다. Python, C# 및 C++용으로 구현됩니다. 모든 네트워크 분석 및 교육은 Python에서 수행되며 DLL은 교육된 네트워크를 로드하고 계산을 수행하는 C++로 작성됩니다. 제 생각에는 이것이 최선의 선택입니다. 두 번째 옵션은 Python을 MT에 연결하는 것입니다. 이를 위해 간단한 라이브러리를 작성했습니다. 도서관 . 우리는 파이썬에서 사용할 수 있는 모든 것을 연결하고 사용할 수 있습니다. 그리고 많이 있습니다. 내 블로그에 머신 러닝에 대한 글을 시작해야 하는지 궁금합니다.
 
그리고리 쇼닌 :
MT의 신경망을 사용하면 모든 것이 간단합니다. Microsoft CNTK의 라이브러리가 있습니다. Python, C# 및 C++용으로 구현됩니다. 모든 네트워크 분석 및 교육은 Python에서 수행되며 DLL은 교육된 네트워크를 로드하고 계산을 수행하는 C++로 작성됩니다. 제 생각에는 이것이 최선의 선택입니다. 두 번째 옵션은 Python을 MT에 연결하는 것입니다. 이를 위해 간단한 라이브러리를 작성했습니다. 도서관 . 우리는 파이썬에서 사용할 수 있는 모든 것을 연결하고 사용할 수 있습니다. 그리고 많이 있습니다. 내 블로그에 머신 러닝에 대한 글을 시작해야 하는지 궁금합니다.

전략과 개인적인 생각/경험에 대해 읽는 것이 흥미로울 것입니다. .. 개인적으로

기본적으로 그들은 라이브러리 더미를 통해 정렬하고 작성하거나 작성하지 않는 것이 더 나은 것에 대해 여기에 모든 종류의 쓰레기를 씁니다. 전염병은 간단하고 모든 것이 우유에 있습니다.

주요 아이디어는 오래 전에 fxsaber에 의해 표명되었지만 이 접근 방식을 사용하면 처음에 잘못된 주제였기 때문에 주제를 닫을 수도 있습니다.