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

 
Roman #:

손실 함수 작업 방법을 설명해주세요
최소화를 위해 목표 함수를 사용하는 방법은 무엇인가요?

그리고 두 번째 질문입니다.
Matlab에서 fminsearch() 함수는 Nelder-Mead 알고리즘을 사용합니다.
이 알고리즘은 ENUM_LOSS_FUNCTION에 없습니다.
이 알고리즘을 추가 할 수 있습니까?

신경망을 훈련하는 작업은 훈련 샘플의 오류를 최소화하는 알고리즘을 찾는 것이며, 이를 위해 손실 함수가 사용됩니다.손실 방법은 편차를 계산하는 데 사용되며, 14가지 유형의ENUM_LOSS_FUNCTION 열거 중 1가지를 지정할 수 있습니다.

얻은 편차 값은 신경망의 매개변수를 세분화하는 데 사용되며, 이는 활성화 함수의 미분 값을 계산하여 전달된 벡터/행렬에 기록하는미분 방법을 사용하여 수행됩니다.

열거형을 확장할 수 있기 때문에 필요에 따라 새로운 알고리즘을 추가할 수 있습니다.

 
Renat Fatkhullin #:

신경망을 훈련하는 작업은 훈련 샘플의 오차를 최소화하는 알고리즘을 찾는 것으로, 이를 위해 손실 함수가 사용됩니다. 편차를 계산하기 위해 14가지 유형의ENUM_LOSS_FUNCTION 열거 중 하나를 지정할 수 있는손실 메서드가 사용됩니다.

그런 다음 얻은 편차 값을 사용하여 신경망의 매개 변수를 구체화하며, 이는 활성화 함수의 미분 값을 계산하여 전달된 벡터/행렬에 기록하는미분 방법을 사용하여 수행됩니다.

열거형을 확장할 수 있기 때문에 필요에 따라 새로운 알고리즘을 추가할 수 있습니다.


저는 MAPE의 예시를 통해 이를 알아냈습니다.

목표 함수를 최소화하는 손실 함수라고 생각했는데
그리고 이것은 메트릭 계산일 뿐 입니다.

vector Forecast = {28.252177870295327, 1.386017247821653, 1.321279511381957};
vector Fact     = {45.979999999999997, 1.710000000000000, 1.340000000000000};

double MAPE = Forecast.Loss(Fact,LOSS_MAPE);

Print(DoubleToString(MAPE,2) + " %");
19.63 %


코드에서도 마찬가지입니다.

vector Forecast = {28.252177870295327, 1.386017247821653, 1.321279511381957};
vector Fact     = {45.979999999999997, 1.710000000000000, 1.340000000000000};

vector loss = {0.,0.,0.};

for(int i=0; i<3; i++)
   loss[i] = fabs(Forecast[i] - Fact[i]) / Fact[i];

double MAPE = loss.Mean()*100;

Print(DoubleToString(MAPE,2) + " %");
19.63 %



그렇다면 문서 설명에 의문이 생깁니다.

설명에 오류가 있나요?

ll

아마도 더 정확할 것입니다 :
손실 값을 메트릭 MSE, MAE 등으로 계산합니다...?
결국 손실을 최소화하는 기능은 직접 작성해야합니다.


그리고 여기에 이상한 설명이 있습니다.

i

Документация по MQL5: Методы матриц и векторов / Машинное обучение / Loss
Документация по MQL5: Методы матриц и векторов / Машинное обучение / Loss
  • www.mql5.com
Loss - Машинное обучение - Методы матриц и векторов - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksey Vyazmikin #:

신비한 예측 변수/기능/징후를 찾아 미지의 길을 따라 흥미롭고 흥미로운 여정을 함께할 동반자를 찾고 있습니다.

그것들을 찾을 지도가 있고, 함정을 설치하고 이 놀라운 현상의 습관과 후광을 숙고할 손이 필요합니다.

이 여정은 쉽지 않고 길지만 흥미진진하며 트로피가 없지는 않을 것이라고 확신합니다!

관심이 있으시면 질문하세요!

모든 것이 이미 우리보다 먼저 발명되었으니 그냥 기차에 올라타고 싶어요.

이제 메타트레이더에 신경망만 있으면 편히 쉴 수 있을 것 같습니다.

일반적으로 우리는 가스 선물을 매수한 다음 매도하면 됩니다.
 
Maxim Dmitrievsky #:
그래서 모든 것이 이미 우리보다 먼저 발명되었으니 그냥 기차에 올라타고 싶습니다.

발명되었을 수도 있지만 오픈 소스에서 표면적으로는 분명히 아닙니다.

예측 변수 검색 및 선택을 위해 저는 체계적인 접근 방식을 개발하고 있습니다. 즉, 무엇보다도 지표 데이터를 기반으로하는 예측 변수 유형이있을 것입니다. 흥미로운 것을 찾기 위해 코드베이스를 샅샅이 훑어보고 싶습니다. 일반적으로 제 패러다임에는 "이벤트"라는 개념이 있으며 가격에 영향을 미칠 수있는 무언가이며 예측 자로 설명됩니다. 예를 들어 "가격이 레벨을 돌파"(지표에 의해 생성됨)와 같은 다양한 유형의 이벤트가 있으며 이러한 이벤트에 대한 설명은 시간, 이벤트 내역, 이벤트의 상대성 (정규화)을 담당하는 예측자이며 좌표계도 선택됩니다.

이 방법 자체는 작동하고 흥미로운 변형을 선택할 수 있지만 이러한 변형을 생성해야합니다.

저는 프로세스 속도를 높이고 비판적이고 창의적인 사고를 향상시킬 사람들을 찾고 있습니다.

예, 관심있는 사람은 없을 것이며 천천히 지루하게 혼자 고를 것입니다.

 
Aleksey Vyazmikin #:

개발되었을 수도 있지만 오픈 소스에서는 표면적으로 드러나지 않은 것이 분명합니다.

예측 변수 검색 및 선택을 위해 저는 체계적인 접근 방식을 개발하고 있습니다. 즉, 무엇보다도 지표 데이터를 기반으로하는 예측 변수 유형이있을 것입니다. 흥미로운 것을 찾기 위해 코드베이스를 샅샅이 뒤지고 싶습니다. 일반적으로 제 패러다임에는 "이벤트"라는 개념이 있으며 가격에 영향을 미칠 수있는 무언가이며 예측 자로 설명됩니다. 예를 들어 "가격이 레벨을 돌파"(지표에 의해 생성됨)와 같은 다양한 유형의 이벤트가 있으며 이러한 이벤트에 대한 설명은 시간, 이벤트의 기록, 이벤트의 상대성 (정규화)을 담당하는 예측자이며 좌표계도 선택됩니다.

이 방법 자체는 작동하며 흥미로운 변형을 선택할 수 있지만 이러한 변형을 생성해야 합니다.

저는 프로세스 속도를 높이고 비판적이고 창의적인 사고를 향상시킬 사람들을 찾고 있습니다.

예, 관심있는 사람은 없을 것입니다. 천천히 지루하게 하나를 선택할 것입니다.

이미 이 모든 것을 만들었습니다.
 
Aleksey Vyazmikin #:

개발되었을 수도 있지만 오픈 소스에서는 표면적으로 드러나지 않은 것이 분명합니다.

예측 변수 검색 및 선택을 위해 저는 체계적인 접근 방식을 개발하고 있습니다. 즉, 무엇보다도 지표 데이터를 기반으로하는 예측 변수 유형이있을 것입니다. 흥미로운 것을 찾기 위해 코드베이스를 샅샅이 훑어보고 싶습니다. 일반적으로 제 패러다임에는 "이벤트"라는 개념이 있으며 가격에 영향을 미칠 수있는 무언가이며 예측 자로 설명됩니다. 예를 들어 "가격이 레벨을 돌파"(지표에 의해 생성됨)와 같은 다양한 유형의 이벤트가 있으며 이러한 이벤트에 대한 설명은 시간, 이벤트의 기록, 이벤트의 상대성 (정규화)을 담당하는 예측자이며 좌표계도 선택됩니다.

이 방법 자체는 작동하며 흥미로운 변형을 선택할 수 있지만 이러한 변형을 생성해야 합니다.

저는 프로세스 속도를 높이고 비판적이고 창의적인 사고를 향상시킬 사람들을 찾고 있습니다.

예, 관심있는 사람은 없을 것이며 천천히 지루하게 혼자 고를 것입니다.

실시간을 추가하는 것을 잊지 마세요... 그렇지 않으면 다른 사람들처럼 끝날 것입니다 :-)

a la 2 개 : y = abs(sin(x))*sin(x); 1 일 및 1 주일 빈도; 위상 이동은 미리 계산하는 것이 좋습니다.

지표와 선 교차의 확률이 그것에 의존하기 때문입니다.

그건 그렇고, 여기 푸리에를 싫어했습니다 :-)

 
mytarmailS #:
이미 다 만들었습니다.

정말 잘하시네요!

그리고 흥미롭고 지속 가능한 많은 것을 찾았나요?

터미널에서 솔루션이 작동하는 문제가 해결되었나요?

 
Maxim Kuznetsov #:

실시간을 추가하는 것을 잊지 마세요... 그렇지 않으면 다른 사람들처럼 될 수 있습니다 :-)

a la 2 pcs: y=abs(sin(x))*sin(x); 1일과 1주일의 빈도로; 위상 이동은 미리 계산하는 것이 좋습니다.

왜냐하면 지표와 선이 교차할 확률이 그것에 따라 달라 지기 때문입니다.

그건 그렇고, 여기 푸리에를 싫어했습니다 :-)

글쎄, 나는 영리하지 않아, 내 환상에서.... "실시간"이란 무엇을 의미하나요?

 
Aleksey Vyazmikin #:

0)넌 정말 착한 아이구나!

1)그리고 흥미롭고 지속 가능한 것들을 많이 찾았나요?

2)터미널에서 솔루션의 작업 문제가 해결 되었습니까?

0) 네, 그런 것 같아요...)

1) 아직 전체를 배포하지 않았습니다,
1. 차원의 저주와 조합 폭발에 문제가 있지만 이론적으로는 정확성을 위해 이론적으로 해결할 수 있습니다....
2. 검색 알고리즘이 느리고 C 또는 C ++로 작성해야하는 것이 많다는 문제가 있으며 어떻게해야할지 모르겠습니다.
3. 최적화 된 알고리즘조차도 큰 날짜의 패턴을 검색 할 수 없으므로 로컬에서 패턴을 검색해야합니다.....
하지만 일반적으로 작동하지 않으면 아무것도 작동하지 않습니다....

2) 예.


그건 그렇고, "이벤트"라는 단어는 "규칙"이라는 단어로 대체 할 수 있습니다.


 
Aleksey Vyazmikin #:

글쎄요, 제 환상 속에서는 영리하지 않아요..... "실시간"이라니 무슨 뜻이죠?

가격이 특정 선을 넘을 확률(및 보조지표 신호가 트리거될 확률)은 시간과 요일에 따라 달라집니다.

NN과 DL에 주기적 시간을 추가해야 합니다. 가장 간단한 방법은 사인파를 사용하는 것입니다. 종속성은 비선형적이므로 부호를 고려하여 단순히 제곱합니다. 시간 참조를 담당하는 두 가지 추가 입력이 있습니다. 자정/정오는 모든 곳에서 다르므로 미리 위상을 계산하여 제공하는 것이 좋습니다. 이것이 실제 세계와 시간과의 모델 연결입니다.

명시적으로 주어지지 않으면 IMHO는 호박을 얻거나 전체가 자체적으로 가져와 출력하려고 시도합니다.

사유: