[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 289

 
Você precisa determinar se há um valor no buffer do indicador diferente do IndicatorEmptyValue(), que para setas em 90% == 0, haverá sua seta. e remover "verdadeiro" da chamada.
 

Não haverá montanha se:

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 defina o tamanho da aba nas configurações do fórum para 2-3 espaços. Você insere o código e os parênteses vão sabe Deus para onde...
 
O autor precisa obter os valores máximo e mínimo na saída de seu loop, e no EA. melhor código redundante do que gemor redundante.
 

A função deinit() pode ser chamada desde o início()? Por exemplo, quero que o Expert Advisor se descarregue a si mesmo quando as condições especificadas forem cumpridas.

 
FAQ:
O autor precisa obter os valores de máximo e mínimo na saída de seu loop, e no EA. melhor código redundante do que dor redundante.


Estou vendo. Talvez eu tenha lido a tarefa de forma exagerada e desatenta - foi um longo dia - o cansaço está causando seu impacto.

O autor precisa obter os valores de máximo e mínimo na saída de seu loop, melhor código redundante do que confusão redundante.

 
skyjet:
Desculpe-me, alguém pode me ajudar? ))
Aqui está um trecho de código da EA da Integer, que mostra o trabalho com o indicador de seta.
         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:

A função deinit() pode ser chamada desde o início()? Por exemplo, quero fazer com que o Expert Advisor se descarregue quando as condições especificadas forem cumpridas.


Você não pode chamar a desinicialização desde o início da EA, mas você pode dar um comando para parar de usar o retorno
 
granit77:
Aqui está o trecho de código da EA da Integer que mostra o trabalho com o indicador de seta.



Muito obrigado! Tudo se tornou mais claro.

Se entendi corretamente, após criar uma função indicadora e mencioná-la no Expert Advisor, tenho acesso a buffers indicadores usando o iCustom?

 
silhouette:

A função deinit() pode ser chamada desde o início()? Por exemplo, quero fazer com que o Expert Advisor se descarregue quando as condições especificadas forem cumpridas.


Chamando deinit não vai parar a EA. este pedaço de código vai ajudar você :

PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);