알고리즘 '원심분리기'' - 페이지 8

 
먼저 " 이상적인 진입점 "과 " 이상적인 출구점 "이 무엇인지 정의해야 합니다.
 
Реter Konow :

2. 지그재그는 이상적인 진입점을 표시하지 않습니다. 이것은 아니다. 큰 오류가 있을 것입니다. GA 옵티마이저는 훨씬 더 잘 할 수 있습니다. 임호.

ZigZag는 이상적인 진입점만 표시하고 그 이상은 표시하지 않습니다.

특정 ZZ에 대해 이야기하는 경우 예, 논의할 수 있습니다. 저는 광산을 사용했습니다. 최소 막대 설정이 없습니다. 단지 높음에서 낮음으로 선을 그립니다. 설정은 높음에서 낮음까지의 최소 거리입니다.

https://www.mql5.com/ru/forum/318267#comment_12508440

 
우리는 막대가 아니라 포인트로 지그재그가 필요하며 스프레드보다 1 포인트 더 많은 임계 값과 분입니다 예, 물론 막대 내부의 약간의 변동을 포착하지 못할 것입니다 ... 그리고 이것으로 인한 재앙 !
 

앗! 8888


 
Dmitry Fedoseev :
그리고 잠시

그렇지 않습니다. 저는 이 모든 것을 옵티마이저에서 테스트했습니다.)

최소 설정으로 M1에서 스프레드가 크게 영향을 미치므로 pp 또는 다른 TF에서 설정을 취하는 것이 좋지만 H1보다 오래되지 않고 H4 이상에서 수율이 낮아집니다

 
Igor Makanu :

그렇지 않습니다. 저는 이 모든 것을 옵티마이저에서 테스트했습니다.)

최소 설정으로 M1에서 스프레드가 크게 영향을 미치므로 pp 또는 다른 TF에서 설정을 취하는 것이 좋지만 H1보다 오래되지 않고 H4 이상에서 수율이 낮아집니다

지그재그가 무엇이었습니까?

 
Олег avtomat :
먼저 " 이상적인 진입점 "과 " 이상적인 출구점 "이 무엇인지 정의해야 합니다.

이상적인 진입점은 '완벽한 거래''의 가격과 시간 시작입니다.

이상적인 출구점은 "완벽한 거래"의 가격과 시간 완료입니다.

이상적인 거래는 시간 대비 이익 비율이 가장 좋은 거래입니다.

임호.

 
Dmitry Fedoseev :

지그재그가 무엇이었습니까?

오래전에 만든 MT5용 https://www.mql5.com/en/forum/318267#comment_12508440

 //+------------------------------------------------------------------+
//|                                                     ZigZagZZ.mq5 |
//|                                                            IgorM |
//|                              https://www.mql5.com/ru/users/igorm |
//+------------------------------------------------------------------+
#property copyright "IgorM"
#property link        "https://www.mql5.com/ru/users/igorm"
#property version    "1.00"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots    1

// plot ZigZagZZ
#property indicator_label1    "ZigZagZZ"
#property indicator_type1    DRAW_SECTION
#property indicator_color1    clrDarkBlue
#property indicator_style1    STYLE_SOLID
#property indicator_width1    3
// input parameters
input int    Deviation= 100 ;
// indicator buffers
double          ZZBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
// indicator buffers mapping
   SetIndexBuffer ( 0 ,ZZBuffer, INDICATOR_DATA );
   IndicatorSetInteger ( INDICATOR_DIGITS , _Digits );
   PlotIndexSetDouble ( 0 , PLOT_EMPTY_VALUE , 0.0 );
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int         rates_total,
                 const int         prev_calculated,
                 const datetime    &time[],
                 const double      &open[],
                 const double      &high[],
                 const double      &low[],
                 const double      &close[],
                 const long        &tick_volume[],
                 const long        &volume[],
                 const int         &spread[])
  {
   static bool UP;
   static double max,min;
   static int LastExt= 0 ;
   static const double dev= NormalizeDouble (Deviation* _Point , _Digits );
   int limit=prev_calculated- 1 ;
   if (prev_calculated== 0 )
     {
       ArrayInitialize (ZZBuffer, 0.0 );
      limit= 2 ; LastExt= 0 ;
       if (low[ 0 ]<high[ 1 ]) { min=low[ 0 ];  max=high[ 1 ];   UP= true ;  }
       else                { max=high[ 0 ]; min  = low[ 1 ]; UP= false ; }
     }
   for ( int i=limit; i<rates_total; i++)
     {
      ZZBuffer[i]= 0.0 ;
       if (UP)
        {
         if (low[i]-min<= 0.0 ) { min=low[i]; ZZBuffer[LastExt]= 0.0 ; LastExt=i; ZZBuffer[i]=min; }
         else
           {
             if (high[i]-min-dev> 0.0 ) { max=high[i]; LastExt=i; ZZBuffer[i]=max; UP= false ; }
           }
        }
       else
        {
         if (high[i]-max>= 0.0 ) { max=high[i]; ZZBuffer[LastExt]= 0.0 ; LastExt=i; ZZBuffer[i]=max; }
         else
           {
             if (low[i]-max+dev< 0.0 ) { min=low[i]; LastExt=i; ZZBuffer[i]=min; UP= true ; }
           }
        }
     }
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
Igor Makanu :

오래전에 만든 MT5용 https://www.mql5.com/en/forum/318267#comment_12508440

예, 이 작업에 대한 올바른 지그재그입니다.

 
Igor Makanu :

ZigZag는 이상적인 진입점만 표시하고 그 이상은 표시하지 않습니다.

특정 ZZ에 대해 이야기하는 경우 예, 논의할 수 있습니다. 저는 광산을 사용했습니다. 최소 막대 설정이 없습니다. 단지 높음에서 낮음으로 선을 그립니다. 설정은 높음에서 낮음까지의 최소 거리입니다.

https://www.mql5.com/ru/forum/318267#comment_12508440

ZigZag는 "이상적인 거래"의 원칙에 기반하지 않습니다. 거래 시간과 이익의 최상의 비율입니다. ZZ에 따르면 모든 정점과 바닥에서 출입해야 합니다. 이것은 이상적인 솔루션이 아닙니다.