차이 미적분, 예. - 페이지 14

 
알렉세이 판필로프 :

균형 표시기를 만든 경험이 있습니다. 그러면 초매개변수를 만드는 데 더 가까워질까요?

실제 관계가 없으면 도움이되지 않을 수도 있습니다. 사실 이것은 MO에서 모두가 의아해하는 질문입니다. :)

 
막심 드미트리예프스키 :

실제 관계가 없다면 도움이되지 않을 수도 있습니다 .. 사실 이것은 MO에서 모든 사람들이 궁금해하는 질문입니다. :)

:)

만일의 경우를 대비 하여 잔고 표시기(하단 창)의 그림입니다 .

부드러운 단계 균형, 녹색 선은 의미합니다.

 
알렉세이 판필로프 :

:)

만일의 경우를 대비하여 잔고 표시기(하단 창)의 그림입니다.

부드러운 단계 균형, 녹색 선은 의미합니다.

오오오!

+

 
알렉세이 판필로프 :

:)

만일의 경우를 대비하여 잔고 표시기(하단 창)의 그림입니다.

부드러운 단계 균형, 녹색 선은 의미합니다.

균형은 절대적인 조건 이 아니라 예를 들어 현재의 이익 요소가 필요합니다. 즉, 어떻게 든 일정을 정상화

그런 다음 예를 들어 퍼지 논리 또는 뉴런을 통해 이 변수를 나머지 부분과 이미 연결할 수 있습니다.

 

R^2 큰 도움이 됩니다

https://www.mql5.com/en/articles/2358

R-квадрат как оценка качества кривой баланса стратегии
R-квадрат как оценка качества кривой баланса стратегии
  • 2017.10.24
  • Vasiliy Sokolov
  • www.mql5.com
Каждая торговая стратегия нуждается в объективной оценке ее эффективности. Для этого используется обширный ряд статистических параметров. Многие из них просты в расчете и показывают интуитивно понятные метрики. Другие сложнее в построении и в интерпретации значений. Несмотря на все это многообразие, есть очень мало качественных метрик для...
 

그런 다음 지표와 R^2를 입력 용어로 추가한 다음 변수 간의 상호 작용 규칙을 언어적으로 설명하고 출력에서 신호를 얻습니다.

이것은 예입니다. 뉴런을 사용할 수 있지만(기사도 있음) 퍼지 논리는 이러한 작업에 대해 더 유연하고 직관적인 것으로 보이며 뉴런 또는 매개변수처럼 최적화할 수도 있지만 입력이 더 적습니다.

https://www.mql5.com/en/articles/3795

Нечеткая логика в торговых стратегиях
Нечеткая логика в торговых стратегиях
  • 2017.09.18
  • Maxim Dmitrievsky
  • www.mql5.com
Трейдеры часто задаются вопросом о том, как улучшить торговую систему или создать новую за счет машинного обучения. Несмотря на обилие публикаций, остается открытым вопрос о простом и интуитивно понятном способе создания моделей, которые невозможно аналитически просчитать без использования компьютерных вычислений. Нечеткая логика — это окно в...
 

메시지 주셔서 감사합니다.

불행히도 현재로서는 기계 학습에 익숙하지 않습니다. 그리고 가까운 장래에 나는 그것을 마스터하지 않을 것입니다.

균형 표시기는 빠른 연속 최적화를 위해 사용하도록 계획되었습니다. 불행히도 각 전문가에 대해 균형 표시기의 아날로그와 매개 변수를 열거하는 스크립트를 만들어야 합니다. 자동 최적화 를 위해 이러한 알고리즘을 로봇에 넣는 것이 현실적이라고 생각합니다. 원칙적으로 이것은 자체 제작 수준에서만 기계 학습일 수도 있습니다.

어쩌면 나도 거기에 갈 것이다.

그러던 중 갑자기 누군가가 찾아온다. MT4용 균형 표시기.

 int start()
  {
  
   int     i;
   int     counted_bars= IndicatorCounted ();
//----
   if ( Bars <= 3 ) return ( 0 );
   if (PRED_CHISLO_BAROV == Bars ) return ( 0 );
 
   i= Bars - 1 ; // i присваиваем значение числа баров  .
   if (counted_bars> 1 ) i= Bars -counted_bars- 1 ; // 
   while (i>= 0 )                                
     {

//================================================================================================================================================================================================
   MacdCurrent = iCustom ( NULL , 0 , "_________________" ,
                                                           0 ,i);
   MacdPrevious = iCustom ( NULL , 0 , "_______________" ,
                                                          0 ,i+ 1 );

   SignalCurrent = iCustom ( NULL , 0 , "_____________" ,
                                                          1 ,i); 
   SignalPrevious = iCustom ( NULL , 0 , "_____________" ,
                                                          1 ,i+ 1 );
                                                          
   MacdCurrent_Trend = iCustom ( NULL , 0 , "______________" ,
                                                             0 ,i); 
   MacdPrevious_Trend = iCustom ( NULL , 0 , "___________________" ,
                                                           0 ,i+ 1 );

   SignalCurrent_Trend = iCustom ( NULL , 0 , "__________________" ,
                                                           1 ,i); 
     if (Trend_InpSignalSMA== 0 ) SignalCurrent_Trend = 0 ; 


   SignalPrevious_Trend = iCustom ( NULL , 0 , "_______________" ,
                                                           1 ,i+ 1 );
     if (Trend_InpSignalSMA== 0 ) SignalPrevious_Trend = 0 ; 
                                                         
//================================================================================================================================================================================================
//  Оцениваем в какой позиции мы стояли бы по трендовому MACD  И назначаем Trend =1 восходящий =-1 низходящий

     if ( 
  MacdPrevious_Trend < 0     &&                                                             //1) основная линия MACD ниже 0
  MacdCurrent_Trend > SignalCurrent_Trend && MacdPrevious_Trend < SignalPrevious_Trend &&   //2)  основная линия только что пересекла сигнальную с низу в верх
   MathAbs (MacdPrevious_Trend) > (Trend_MACDOpenLevel* Point )                                 //3) основная линия ниже заданного для открытия значения 
      )                                                             Trend = 1 ;

     if ( 
  MacdPrevious_Trend > 0      &&                                                           // 1) основная линия MACD выше 0
  MacdCurrent_Trend < SignalCurrent_Trend && MacdPrevious_Trend > SignalPrevious_Trend && //-  основная линия только что пересекла сигнальную с низу в верх
   MathAbs (MacdPrevious_Trend) > (Trend_MACDOpenLevel* Point )                               // - основная линия выше заданного для открытия значения 
      )                                                             Trend =- 1 ;

//================================================================================================================================================================================================
//РАСЧЕТ ЛИНИИ БАЛАНСА.

// Закрываем позицию SELL
     if (
  (  
   Posic == - 1 &&                                                 // Если открыта позиция SELL 
  MacdPrevious < 0   &&                                             // 1) основная линия MACD ниже 0
  MacdCurrent > SignalCurrent && MacdPrevious < SignalPrevious && //-  основная линия только что пересекла сигнальную с низу в верх
   MathAbs (MacdPrevious) > (Ind_MACDCloseLevel* Point )               // - основная линия ниже заданного для закрытия значения 
  ) || (
  Posic == - 1 && (Cena_0 - Open [i])/ Point * Naprav >= TakeProfit
  ) || (
  Posic == - 1 && ( Open [i] - Cena_0)/ Point * Naprav >= StopLoss
  )
      )                                              
  {  
     if ( Cena_0 > 0 ) Balans = Balans +(Cena_0 - Open [i])/ Point * Naprav  ; 
        Cena_0 = 0 ;             Posic = 0 ;   Capital = 0 ;
  }

// Открываем позицию BUY
     if (
  Trend == 1 &&
  Posic == 0 &&                                                   // Если позиция зарыта
  MacdPrevious < 0    &&                                           // 1) основная линия MACD ниже 0
  MacdCurrent > SignalCurrent && MacdPrevious < SignalPrevious && //-  основная линия только что пересекла сигнальную с низу в верх
   MathAbs (MacdPrevious) > (Ind_MACDOpenLevel* Point )               // - основная линия ниже заданного для открытия значения 
      )
      {   Cena_0 = Open [i];     Posic = 1 ;  Balans = Balans - Spred; }


// Закрываем позицию BUY
     if (
  (
  Posic == 1 &&                                                     // Если открыта позиция BUY
  MacdPrevious > 0   &&                                             // 1) основная линия MACD выше 0
  MacdCurrent < SignalCurrent && MacdPrevious > SignalPrevious &&   //-  основная линия только что пересекла сигнальную с  верх в низу 
   MathAbs (MacdPrevious) > (Ind_MACDCloseLevel* Point )               // - основная линия выше заданного для закрытия значения 
  ) || (
  Posic == 1 && (Cena_0 - Open [i])/ Point * Naprav >= StopLoss
  ) || (
  Posic == 1 && ( Open [i] - Cena_0)/ Point * Naprav >=  TakeProfit
  )
      )                                               
  {  
     if ( Cena_0 > 0 ) Balans = Balans +( Open [i] - Cena_0)/ Point * Naprav ; 
        Cena_0 = 0 ;             Posic = 0 ;   Capital = 0 ;
  }


// Открываем позицию SELL
     if (
  Trend == - 1 &&
  Posic == 0 &&                                                     // Если  позиция зарыта
  MacdPrevious > 0 &&                                               // 1) основная линия MACD выше 0
  MacdCurrent < SignalCurrent && MacdPrevious > SignalPrevious  && //-  основная линия только что пересекла сигнальную с  верх в низу 
   MathAbs (MacdPrevious) > (Ind_MACDOpenLevel* Point )                 // - основная линия выше заданного для открытия значения 
      ) 
      {   Cena_0 = Open [i];     Posic = - 1 ;  Balans = Balans - Spred;  }
      
    a1_Buffer[i]= Balans;
//================================================================================================================================================================================================
//РАСЧЕТ ЛИНИИ ТЕКУЩЕГО КАПИТАЛЛА.

// При открытой позиции BUY
     if (   Posic >   0   ) 
  {  
     if ( Cena_0 > 0 ) Capital = (( Open [i] - Cena_0)/ Point * Naprav) ; 
  }
// При открытой позиции SELL
     if (  Posic <   0    ) 
  {  
     if ( Cena_0 > 0 ) Capital = ((Cena_0 - Open [i])/ Point   * Naprav) ; 
  }                       
    a2_Buffer[i]=   Balans + Capital;
//================================================================================================================================================================================================
//    a3_Buffer[i]= 
//================================================================================================================================================================================================
//    a4_Buffer[i]=
//================================================================================================================================================================================================
//================================================================================================================================================================================================
     if (i >= Bars -(TOCHKA_VHODA* 2 )) Cena_0 = 0 ; // 

      i--;       PRED_CHISLO_BAROV = Bars ;                                
     } 
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+


추신. 지점에 유사한 지표의 예를 추가해 주시면 감사하겠습니다. 그가 베끼고 있는 Expert Advisor와 함께라면 더 좋습니다.

 
오, 당신은 parache에서 벗어났습니다. 실시간 최적화를 위해 .. 그것도 문제입니다
 
알렉세이 판필로프 :

그리고 속어 없이? :))))))))

글쎄, ODA에 대차 대조표의 현재 매개 변수를 계산합니다. 역사의 깊이, 그리고 그것이 나쁘면 라이브로 수정하고 곡선을 다시 관찰하십시오 .. 최적이 될 때까지 그 다음 다시 악화되기 시작할 때까지 거래하고 다시 매개 변수를 통해 .. 백 테스트는 물론입니다. 이 경우 오래

 
알렉세이 판필로프 :

고맙습니다.

거기에서만 백만 개의 핸들을 얻을 수 있으며 전문가 본문의 모든 지표를 다시 작성해야 합니다.