"New Neural"은 MetaTrader 5 플랫폼용 신경망 엔진의 오픈 소스 프로젝트입니다. - 페이지 46

 
최대 페이드 :

즉시 수염 난 농담을 기억

나는 태어날 때 "0"에 대해 의심하고, 또한 오류-편차가 끊임없이 존재한다고 생각합니다.
그건 그렇고, 그렇습니다. 아이는 적어도 쥐고 삼키는 반사를 가지고 태어 났으며 이것도 뇌의 작용입니다. 그래서 그는 특히 그가 태어나기 훨씬 전에 훈련이 시작되기 때문에 두뇌가 0이 아닙니다. 신생아의 무게를 싣는 것이 학습보다 진화의 문제라는 것은 나쁜 일입니다.
 

매개변수가 있는 생성자를 통해 객체를 생성 할 때 시퀀스의 끝에서 새 객체가 초기화되도록 변경되었습니다.

조금 느리게 작동하지만 항상 고유한 시퀀스입니다.

표준 생성자를 통해 생성할 때 여전히 Srand()를 호출해야 하며 시퀀스는 동일하며 원을 그리며 회전합니다.

   uint st= GetTickCount ();
  CRandm *rnd= new CRandm(( uint ) TimeLocal (), 10000 ); // длинна последовательности
   for ( int i= 0 ;i< 1000000 ;i++) // количество вызовов
    {
     rnd.Rand();
    } 
   delete rnd;   
   Print ( "time=" , GetTickCount ()-st);
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
파일:
Randm.mqh  5 kb
 

나는 가상 주문의 성경을 고려할 것을 제안합니다.

과거 데이터( 전략 테스터 외부)에서 모델을 실행해야 할 때 유용합니다.

무엇을 잊었습니까? 무엇을 개선, 추가, 변경, 완료할 수 있습니까? - 성경은 매우 원시적입니다.

지금까지 Buy-0 및 Sell-1 작업만 구현되었습니다.

파일:
C_Orders.mqh  15 kb
 

강의 1은 여기 https://www.mql5.com/ru/forum/4956/page23

강의 2는 여기 https://www.mql5.com/ru/forum/4956/page34

강의 3은 여기 https://www.mql5.com/ru/forum/4956/page36

강의 4

그래서 우리의 임무는 뇌의 원리에 따라 가격 패턴에 대한 분류 신경망을 구축하는 것입니다. 이 네트워크는 입력 정보(가격)를 변환하는 모듈과 알려진 원칙(예: Support Vector Machine)에 따라 구축할 수 있는 분류 모듈의 두 가지 모듈로 나눌 수 있습니다.

이전 강의에서는 정보의 생물학적 변환의 예로 시각피질의 HMAX 모델을 설명했습니다. 이 모델의 가장 큰 단점은 가중치(수용 필드)의 값이 학습되지 않고 단순히 뇌 뉴런의 생물학적 측정값에서 가져온다는 것입니다. 예를 들어, V1(S1)에서 단순 뉴런의 수용 필드의 측정은 https://www.youtube.com/watch?v=Cw5PKV9Rj3o 의 비디오와 같이 수행됩니다(듣는 클릭은 뉴런 임펄스임). 인용문 시계열의 경우 정보를 변환하는 뉴런의 "수용장"은 미리 알려져 있지 않습니다. 그러므로 우리는 그것들을 스스로 찾아야 합니다. 예를 들어 첫 번째 가격 변환 계층(S1 계층)은 시각 피질의 S1 계층과 유추하여 다음과 같이 구성할 수 있습니다.

이 예에서 S1 레이어에는 0-5로 번호가 매겨진 6개의 하위 레이어가 있습니다. 동일한 하위 레이어의 뉴런(원)은 동일한 입력 가중치(수용 필드)를 가지며 조건부로 왼쪽 상자에 표시됩니다. 뉴런의 각 하위층에는 자체 수용 필드가 있습니다. k=0..5(방향 "위")인 수용 필드 w_0,k가 있는 하위 계층이 있으면 수용 필드 -w_0,k(방향 "아래")가 있는 하위 계층이 있어야 한다는 것을 미리 알고 있습니다. ). 양수 필드가 있는 레이어는 명확한 숫자(0, 2, 4)로 번호가 매겨지고 음수 필드는 퍼지 번호(1, 3, 5)로 번호가 매겨집니다. 또한 S1 하위 계층에는 다양한 크기의 수신 필드가 있어야 한다는 것을 알고 있습니다. 필드의 크기가 하위 레이어 0(및 음의 대응물 1)에서 서브레이어 4(및 음의 대응물 5)로 증가하도록 하십시오. 동일한 가격은 동일한 열의 모든 뉴런 입력까지 올라갑니다(예: 가격 x_0...x_5는 첫 번째 열의 뉴런 입력까지 올라갑니다). 1 bar(x_1...x_6)만큼 이동한 가격은 다음 열의 뉴런 입력으로 올라가는 식으로 계속됩니다. 따라서 S1 레이어는 서로 다른 방향(위, 아래), 크기 및 위치의 수용 필드를 가진 뉴런으로 구성됩니다.

계층 S1에서 뉴런의 입력 가중치 훈련은 다른 하위 계층의 뉴런의 한 열에 대해서만 수행되며 어느 것이 중요하지 않습니다. 그런 다음 각 하위 도메인의 나머지 뉴런에 대해 모든 가중치가 복사됩니다. 학습은 S1 계층의 입력에 다른 가격 패턴을 적용하고 일부 규칙에 따라 가중치를 변경하여 교사 없이 발생합니다. 뉴런 가중치에 대한 자가 학습 규칙에 대한 많은 규칙이 있으며 여기에 잘 설명되어 있습니다.

Miller, KD 및 MacKay, DJC(1994). Hebbian 학습에서 제약의 역할. 신경 계산., 6, 100-126.

뉴런의 자가 학습을 위한 첫 번째 규칙은 1949년 Hebb에 의해 가정되었습니다( https://en.wikipedia.org/wiki/Hebbian_theory ). 이 규칙은 "뉴런이 다른 뉴런으로부터 입력을 받고 둘 다 매우 활동적이면 뉴런 사이의 가중치를 늘려야 합니다."라고 명시되어 있습니다. 수학적으로는 다음과 같이 쓰여진다.

dw_i = mu*x_i*y,

여기서 dw_i는 가중치 증가 w_i, x_i는 i번째 입력의 값, y는 뉴런의 출력, mu는 학습률입니다. 경쟁 학습 규칙 클래스 에 속하는 Oja 규칙( https://en.wikipedia.org/wiki/Oja's_rule )을 사용합니다.

dw_i = mu*y*(x_i - y*w_i/a),

여기서 dw_i - 가중치 증가 w_i, x_i - i번째 입력에서의 가격, y - y = SUM(w_i*x_i, i=0..m-1)으로 계산된 뉴런 출력, mu - 학습률 및 - 매개변수( 합 제곱 가중치 SUM(w_i^2,i=0..m-1)은 a) 경향이 있습니다. 이 규칙의 장점은 자동으로 가중치를 가격 견적의 주요 고유 벡터로 찾는 것입니다. 즉, 오지의 법칙은 PCA(Principal Component Method)를 재현합니다. 이것은 시각 피질의 S1 층의 수용 필드가 시각 정보의 주요 고유 벡터라는 생물학적 가정과 일치합니다. 첨부된 C++ 코드는 EURUSD M5 입력 따옴표, mu=1, a=1을 사용하여 32개의 S1 하위 레이어의 가중치를 자동으로 훈련합니다. 입력의 함수로서의 이러한 가중치는 다음과 같습니다.

처음 두 하위 레이어(0 및 1)의 가중치는 빨간색으로 표시됩니다. 0이 아닌 값은 -0.707과 +0.707 두 개뿐입니다. 하위 레이어 2와 3의 가중치는 주황색으로 표시됩니다. 0이 아닌 값이 4개 있습니다. 등.

첨부된 코드를 사용하려면 Boost 및 CImg 라이브러리 http://cimg.sourceforge.net/ 을 설치해야 합니다. 나는 아직 더 높은 계층(C1, S2, C2)에 도달하지 않았으며 아마도 오랫동안 거기에 도달하지 못할 것입니다. 내 이전 강의를 읽은 사람들은 모든 HMAX 계층이 어떻게 작동하는지 이해하고 가격 견적 변환 모듈을 완료해야 합니다. 다음(마지막) 강의에서는 SparseNets에 대해 이야기하겠습니다.

파일:
BrainPower.zip  907 kb
 
:

나는 가상 주문의 성경을 고려할 것을 제안합니다.

과거 데이터( 전략 테스터 외부)에서 모델을 실행해야 할 때 유용합니다.

무엇을 잊었습니까? 무엇을 개선, 추가, 변경, 완료할 수 있습니까? - 성경은 매우 원시적입니다.

지금까지 Buy-0 및 Sell-1 작업만 구현되었습니다.

도서관에 감사드립니다. 사용 방법에 대한 간단한 가이드를 얻을 수 있습니까?
 
그래프 :
도서관에 감사드립니다. 사용 방법에 대한 간단한 가이드를 얻을 수 있습니까?

사실 특별히 드릴 말씀은 없습니다.

각 기록을 실행하기 전에 주문 기록 을 지우려면 다음을 호출해야 합니다.

 void Initialise( int MaxPossibleCountOrd, double Spread, double Point_);

그런 다음 거래 전략에 따라 필요한 명령을 호출합니다.

 int     OrderOpen        ( int Type, double Volume, int Time, double Price, double SL, double TP);
void    Possible_SL_or_TP( int Time, double PriceHigh, double PriceLow);
void    OrderClose       ( int Ticket, int Time, double Price);
void    OrderCloseAll    ( int Time, double    Price);
int     ProfitTradeCount ();
int     TotalPipsProfit  ();
int     LossSeriesCount  ();
int     ProfitSeriesCount();

스프레드는 고정되어 있으며 초기화 중에 설정됩니다. 플로팅 스프레드의 경우 적절한 기능을 추가해야 합니다. 저에게는 필요하지 않습니다. 기기에 대해 가능한 최대 스프레드를 설정하기만 하면 됩니다.

 
:

사실 특별히 드릴 말씀은 없습니다.

각 기록을 실행하기 전에 주문 기록 을 지우려면 다음을 호출해야 합니다.

그런 다음 거래 전략에 따라 필요한 명령을 호출합니다.

스프레드는 고정되어 있으며 초기화 중에 설정됩니다. 플로팅 스프레드의 경우 적절한 기능을 추가해야 합니다. 저에게는 필요하지 않습니다. 기기에 대해 가능한 최대 스프레드를 설정하기만 하면 됩니다.

감사합니다. 오늘 밤에 시도해 보겠습니다. MT4 https://www.mql5.com/en/forum/124013 에 대한 아날로그가 어떤 식으로든 도움이 될 수 있습니다.
Простая идея мультивалютного тестера с примером реализации - MQL4 форум
  • www.mql5.com
Простая идея мультивалютного тестера с примером реализации - MQL4 форум
 

미안하지만 내 힘을 잘못 계산한 것 같다. 이제 프로젝트 에 참여할 기회가 거의 없습니다.

그리고 참여 의욕은 큰데 시간과 에너지가 부족해서 아쉬울 따름입니다.

시험 합격 후(12월 중순) 입사할 수 있습니다. 그건 그렇고, 코스 중 하나는 신경망과 직접 관련이 있습니다.

 

그런데. 그리고 두 가지 목적 함수가 있습니다. 로지스틱 회귀 및 단순 회귀의 경우.

분류는 로지스틱 회귀의 경우 중 하나입니다.

로지스틱 회귀에 대한 목적 함수:

그리고 일반의 경우:

파생 상품은 비슷하지만. 아마도 그것이 그들이 일반적으로 구별에 대해 침묵하는 이유일 것입니다.

첫 번째 것은 분류 문제에서 출력 시그모이드 계층에 사용됩니다.

두 번째는 예측 문제에서 선형 출력을 위한 것입니다.

 
더엑스퍼트 :

미안하지만 내 힘을 잘못 계산한 것 같다. 지금은 프로젝트에 참여할 기회가 거의 없습니다.

그리고 참여 의욕은 큰데 시간과 에너지가 부족해서 아쉬울 따름입니다.

시험 합격 후(12월 중순) 입사할 수 있습니다. 그건 그렇고, 코스 중 하나는 신경망과 직접 관련이 있습니다.

모퉁이를 돌다, 동지들이여. 니카라쇼.