[ARCHIVE!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 4. - 페이지 265

 
여러분, 도움이 필요합니다. EA의 iMAOnArray 함수를 사용하여 RSI를 평균화할 수 없습니다. 누군가 이 주제에 대해 코드를 던질 수 있습니까? 고맙습니다.
 
kwadrad :
여러분, 도움이 필요합니다. EA의 iMAOnArray 함수를 사용하여 RSI를 평균화할 수 없습니다. 누군가 이 주제에 대해 코드를 던질 수 있습니까? 고맙습니다.
 //+------------------------------------------------------------------+
//|                                         Heiken Ashi Smoothed.mq4 |
//+------------------------------------------------------------------+
//|                                                      mod by Raff |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Forex-TSD.com "
#property link       "https://www.forex-tsd.com/"

#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Magenta
#property indicator_color2 MediumSpringGreen
#property indicator_color3 Magenta
#property indicator_color4 MediumSpringGreen
//---- parameters
extern int MaMetod  = 2 ; /*

0 - MODE_SMA Простое скользящее среднее 
1 - MODE_EMA 1 Экспоненциальное скользящее среднее 
2 - MODE_SMMA 2 Сглаженное скользящее среднее 
3 - MODE_LWMA 3 Линейно-взвешенное скользящее среднее 


*/
extern int MaPeriod = 6 ;
extern int MaMetod2  = 3 ;
extern int MaPeriod2 = 2 ;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];

double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
double ExtMapBuffer8[];
//----
int ExtCountedBars= 0 ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//|------------------------------------------------------------------|
int init()
  {
//---- indicators
   IndicatorBuffers ( 8 );

   SetIndexStyle ( 0 , DRAW_HISTOGRAM , 0 , 1 , Magenta ); // Хай/лоу отрисованной свечи
   SetIndexBuffer ( 0 , ExtMapBuffer1);
   SetIndexStyle ( 1 , DRAW_HISTOGRAM , 0 , 1 , MediumSpringGreen ); // Хай/лоу отрисованной гистограммы
   SetIndexBuffer ( 1 , ExtMapBuffer2);
   SetIndexStyle ( 2 , DRAW_HISTOGRAM , 0 , 3 , Magenta ); // Оупен/Клоуз отрисованной гистограммы
   SetIndexBuffer ( 2 , ExtMapBuffer3);
   SetIndexStyle ( 3 , DRAW_HISTOGRAM , 0 , 3 , MediumSpringGreen ); // Оупен/Клоуз отрисованной гистограммы
   SetIndexBuffer ( 3 , ExtMapBuffer4);
//----
   SetIndexDrawBegin ( 0 , 5 );
//---- indicator buffers mapping
   SetIndexBuffer ( 0 ,ExtMapBuffer1);
   SetIndexBuffer ( 1 ,ExtMapBuffer2);
   SetIndexBuffer ( 2 ,ExtMapBuffer3);
   SetIndexBuffer ( 3 ,ExtMapBuffer4);
   
   // Накопительные массивы - они подготавливаются, а затем усредняются второй скользящей
   // результат усреднения вносится в индикаторный буффер и отрисовывается на графике
   SetIndexBuffer ( 4 ,ExtMapBuffer5);
   SetIndexBuffer ( 5 ,ExtMapBuffer6);
   SetIndexBuffer ( 6 ,ExtMapBuffer7);
   SetIndexBuffer ( 7 ,ExtMapBuffer8);
//---- initialization done
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//---- TODO: add your code here
   
//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   double maOpen, maClose, maLow, maHigh; // переменные для показаний скользящих, построенных по разным ценам
   double haOpen, haHigh, haLow, haClose; // переменны вычисленные 
   if ( Bars <= 10 ) return ( 0 );
   ExtCountedBars= IndicatorCounted ();
//---- check for possible errors
   if (ExtCountedBars< 0 ) return (- 1 );
//---- last counted bar will be recounted
   if (ExtCountedBars> 0 ) ExtCountedBars--;
   int pos= Bars -ExtCountedBars- 1 ;
   int pos2=pos;
   while (pos>= 0 )
     {
      maOpen= iMA ( NULL , 0 ,MaPeriod, 0 ,MaMetod,MODE_OPEN,pos);
      maClose= iMA ( NULL , 0 ,MaPeriod, 0 ,MaMetod,MODE_CLOSE,pos);
      maLow= iMA ( NULL , 0 ,MaPeriod, 0 ,MaMetod,MODE_LOW,pos);
      maHigh= iMA ( NULL , 0 ,MaPeriod, 0 ,MaMetod,MODE_HIGH,pos);

      haOpen=(ExtMapBuffer5[pos+ 1 ]+ExtMapBuffer6[pos+ 1 ])/ 2 ;
      haClose=(maOpen+maHigh+maLow+maClose)/ 4 ;
      haHigh= MathMax (maHigh, MathMax (haOpen, haClose));
      haLow= MathMin (maLow, MathMin (haOpen, haClose));

       if (haOpen<haClose) 
        {
         ExtMapBuffer7[pos]=haLow;
         ExtMapBuffer8[pos]=haHigh;
        } 
       else
        {
         ExtMapBuffer7[pos]=haHigh;
         ExtMapBuffer8[pos]=haLow;
        } 
      ExtMapBuffer5[pos]=haOpen;
      ExtMapBuffer6[pos]=haClose;

           pos--;
     }
     
   int i;
   for (i= 0 ; i<pos2; i++) ExtMapBuffer1[i]= iMAOnArray (ExtMapBuffer7, Bars ,MaPeriod2, 0 ,MaMetod2,i);
   for (i= 0 ; i<pos2; i++) ExtMapBuffer2[i]= iMAOnArray (ExtMapBuffer8, Bars ,MaPeriod2, 0 ,MaMetod2,i);
   for (i= 0 ; i<pos2; i++) ExtMapBuffer3[i]= iMAOnArray (ExtMapBuffer5, Bars ,MaPeriod2, 0 ,MaMetod2,i);
   for (i= 0 ; i<pos2; i++) ExtMapBuffer4[i]= iMAOnArray (ExtMapBuffer6, Bars ,MaPeriod2, 0 ,MaMetod2,i);

//----
   return ( 0 );
  }
//+------------------------------------------------------------------+
 

질문 하나 더. 이미 논의되었을 수도 있지만 여전히. 시각화 모드(모든 틱)의 테스터에서 견적 수신 속도를 설정할 수 있습니다. 최대 = 32. 최대 31을 입력했는데 테스트가 상대적으로 느립니다. 나는 최대 32개를 넣고 매우 빠르게 날아갑니다. 이 문제를 어떻게 해결하시겠습니까? 다음은 발생합니다.

>
 
그리고 나는 보지 않을 것이다. 이 질문은 포럼만큼 오래되었습니다. 어떤 이유로 여전히 개선되지 않았습니다.
 
granit77 :
그리고 나는 보지 않을 것이다. 이 질문은 포럼만큼 오래되었습니다. 어떤 이유로 여전히 개선되지 않았습니다.

이것은 테스터의 "하이라이트"입니다!

;)

 
drknn :

질문 하나 더. 이미 논의되었을 수도 있지만 여전히. 시각화 모드(모든 틱)의 테스터에서 견적 수신 속도를 설정할 수 있습니다. 최대 = 32. 최대 31을 입력했는데 테스트가 상대적으로 느립니다. 나는 최대 32개를 넣고 매우 빠르게 날아갑니다. 이 문제를 어떻게 해결하시겠습니까? 다음과 같은 일이 발생합니다.


https://www.mql5.com/ru/forum/131853/page5#548438 로 이동하여 필요한 지점 또는 특정 간격으로 정차하고 속도를 "32"로 설정하고 즐기십시오.
 
유감스럽게도 이것으로 인해 많은 시간 이 돌이킬 수 없을 정도로 죽었습니다. 그리고 나뿐만이 아닙니다.
 
FAQ :

https://www.mql5.com/ru/forum/131853/page5#548438 로 이동하여 필요한 지점 또는 특정 간격으로 정차하고 속도를 "32"로 설정하고 즐기십시오.

나는 물리적으로 shift를 누를 수 없습니다 :(
 
젠장, 이것은 고문이 해야 합니다. 각 촛불이 시작될 때 몇 밀리초 동안 속도를 줄이는 것이 어렵습니까? 아니면 복잡한 소프트웨어 설계입니까?
 
고맙습니다. 질문이 제거되었습니다 - 시작 가격으로 테스트하겠습니다 :(