[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 289

 
Tienes que determinar si hay un valor en el buffer del indicador que no sea IndicatorEmptyValue(), que para las flechas en 90% == 0, estará tu flecha. y eliminar "true" de la llamada.
 

No habrá montaña si:

int start(){
 if(Depth>Bars-1) Depth=Bars-1;
 double RVI=0;// Обратите внимание - нет нужды объявлять переменную на каждой итерации цикла!
        for(int i=1; i<Depth; i++){
                RVI = iRVI(NULL,0,ExtRVIPeriod,MODE_MAIN,i); 
                if(RVI < mini){
                        mini=RVI;
                        Alert("На свече ",i," mini = ",mini);
                }
                if(RVI > maxi){
                        maxi=RVI;
                        Alert("На свече ",i," maxi = ",maxi);
                }
        }
return(0);
}// Автору ведь нужно всего лишь небольшой период, а не все барсы :)
 
Manual, por favor, ajuste el tamaño de las pestañas en la configuración del foro a 2-3 espacios. Insertas el código y los paréntesis van Dios sabe dónde...
 
El autor necesita obtener los valores máximos y mínimos a la salida de su bucle, y en el EA. mejor código redundante. que gemor redundante.
 

¿Se puede llamar a la función deinit() desde la función start()? Por ejemplo, quiero hacer que el Asesor Experto se descargue a sí mismo cuando se cumplan las condiciones especificadas.

 
FAQ:
El autor necesita obtener los valores de máximo y mínimo a la salida de su bucle, y en el EA. mejor código redundante. que dolor redundante.


Ya veo. Tal vez me excedí y no leí con atención la tarea - ha sido un día largo - el cansancio hace mella.

El autor necesita obtener los valores de máximo y mínimo en la salida de su bucle, más vale código redundante que lío redundante.

 
skyjet:
Disculpe, ¿alguien puede ayudarme? ))
Aquí hay un fragmento de código del EA de Integer, que muestra el trabajo con el indicador de flecha.
         double bv=iCustom(NULL,0,"MaSignalFunction",0,1);//стрелка "Вверх" в буфере №0
         double sv=iCustom(NULL,0,"MaSignalFunction",1,1);//стрелка "Вниз"  в буфере №1
         bool BuySignal=false;
         bool SellSignal=false;
            if(bv!=0 && bv!=EMPTY_VALUE){
               BuySignal=true;
            }
            if(sv!=0 && sv!=EMPTY_VALUE){
               SellSignal=true;
            }
            
            if(BuySignal || SellSignal){
               //если разрешено обратное закрытие, вызывается ф-ия закрытия встречных ордеров 
               if(CloseOnRev)fOrderCloseMarket(SellSignal,BuySignal);
               int BuyCount,SellCount;
               int Total=fMarketOrdersTotal(BuyCount,SellCount);
                  if(Total==-1){
                     return(0);
                  }
                  if(Total<MaxCount || MaxCount==-1){
                     if(BuySignal){
                        if(BuyCount<MaxBuyCount || MaxBuyCount==-1){
                           if(LastBuyTime!=iTime(NULL,TimeFrame,0)){
                              Print("BuySignal ",CommentOrder);                          
                              fOrderOpenBuy();//вызывается ф-ия открытия buy
                           }  
                        }
                     }
                     if(SellSignal){
                        if(SellCount<MaxSellCount || MaxSellCount==-1){
                           if(LastSellTime!=iTime(NULL,TimeFrame,0)){
                              Print("SellSignal ",CommentOrder);
                              fOrderOpenSell();//вызывается ф-ия открытия sell                           }
                        }
                     }
                  }
                  
            }
            
  
 
silhouette:

¿Se puede llamar a la función deinit() desde la función start()? Por ejemplo, quiero hacer que el Asesor Experto se descargue a sí mismo cuando se cumplan las condiciones especificadas.


No se puede llamar a la desinicialización desde el inicio de EA, pero sí se puede dar una orden de parada utilizando return
 
granit77:
Aquí está el fragmento de código del EA de Integer que muestra el trabajo con el indicador de flecha.



¡Muchas gracias! Todo se ha vuelto más claro.

Si he entendido bien, después de crear una función de indicador y mencionarla en el Asesor Experto, ¿accedo a los búferes del indicador utilizando iCustom?

 
silhouette:

¿Se puede llamar a la función deinit() desde la función start()? Por ejemplo, quiero hacer que el Asesor Experto se descargue a sí mismo cuando se cumplan las condiciones especificadas.


Llamar a deinit no detendrá el EA. este trozo de código le ayudará :

PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);
Razón de la queja: