Pergunta para os conhecedores - página 14

 
Спасибо большое!
 
rid писал(а) >>

Boa tarde. Parece que não consigo entender o uso de um indicador na EA.

Aqui está o próprio indicador:



Chamo assim o indicador no Expert Advisor ( valores de 2 buffers)-

No entanto, embora no modo visual eu possa ver que os valores do indicador de ambos os amortecedores mudam de zero para mais/menos cinco, mas a Alfândega mostra persistentemente (retorno) zeros .....

Posted in comment. - A linha verde =5, mas o comentário mostra zero.

Estou tentando descobrir isso durante a última hora. Por favor, me dê uma dica de onde está o erro.

Eu mesmo fiz o download da ferramenta.

Eu encontrei o erro. Eu enviei um roteiro de teste para Misha.

De fato, todos os parâmetros devem ser passados. As cordas também.

Arquivos anexados:
level_1.mq4  2 kb
 
Obrigado Vinin !
 

Boa tarde, por favor, ajude os conhecedores a inventar um oscilador na fórmula heiken ashi mostrando a diferença entre haOpen e haClose. Obrigado de antemão!

 

Olá a todos!

Por favor, informe. aqui está o código:

// Проверка условий для совершения сделки селл 
  if( если условия соотв.- ют заданным){ //продаем
StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
   
      SL=0; TP=0;
      if( StopLoss>0    && StopLoss> StopLevel)   SL=Bid+Point* StopLoss;
      if( TakeProfit>0 && TakeProfit> StopLevel) TP=Bid-Point* TakeProfit;
      if( StopLoss  < StopLevel && StopLoss>0)   SL = Bid+Point* StopLevel; 
      if( TakeProfit< StopLevel && TakeProfit>0) TP = Bid-Point* StopLevel; 
   ticket=OrderSend(Symbol(),OP_SELL, lots,Bid,3, SL, TP,"Name_Expert", Magic,0, clOpenSell);

                                                   }

Não consigo descobrir o que está errado! O registro de teste retorna o erro 130 (paradas erradas) se eu definir o stoploss e o takeprofit menos do que o permitido!

Mas eu previ especificamente que este erro não aconteceu!

Por favor, informe por que as condições não funcionam? -


 if( StopLoss  < StopLevel &&   StopLoss>0)   SL = Bid+Point* StopLevel; 
 if( TakeProfit< StopLevel  && TakeProfit>0)   TP = Bid-Point* StopLevel; 
 
Que tal adicionar um dois ao StopLevel para liberação? Funcionou para mim uma vez.
 
Muitos iniciantes têm um problema ao comparar números de pontos flutuantes. Granit77 está certo, normalmente adiciono 0,1 pips ao invés de 1-2 pips para manter a precisão do Expert Advisor
 
granit77 >> :
Que tal acrescentar um dois ao StopLevel para a lacuna? Funcionou para mim uma vez.

Assim ? :

 if( StopLoss  < StopLevel &&   StopLoss>0)   SL = Bid+Point*( StopLevel+1); 
 if( TakeProfit< StopLevel  && TakeProfit>0)   TP = Bid-Point*( StopLevel+1); 

>> Não funciona.

Além disso, no testador, estas condições devem funcionar mesmo sem a lacuna. Mas eles não o fazem. - O erro 130 está surgindo

 
rid >> :

Não ajuda.

Além disso, no testador, estas condições devem funcionar mesmo sem uma lacuna. Mas eles não o fazem. - O erro 130 está mostrando

Não é um especialista, mas imprimiria os valores das variáveis StopLoss, TakeProfit, StopLevel, SL e TP.

Não consegue ver como eles são declarados ou porque são necessários

 SL=0; TP=0
 
goldtrader >> :

Não é um especialista, mas imprimiria os valores das variáveis StopLoss, TakeProfit, StopLevel, SL e TP.

Não vejo como eles são declarados e para que

É assim que se faz:

extern int     StopLoss=1;
extern int     TakeProfit=1;
double SL, TP;
int StopLevel;

//---------------
StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);

  if( УСЛОВИЯ ВХОДА ){ //продаем
   
      SL=0; TP=0;
      if( StopLoss>0    && StopLoss> StopLevel)   SL=Bid+Point* StopLoss;
      if( TakeProfit>0 && TakeProfit> StopLevel) TP=Bid-Point* TakeProfit;

      if( StopLoss  < StopLevel && StopLoss>0)   SL = Bid+Point* StopLevel; 
      if( TakeProfit< StopLevel && TakeProfit>0) TP = Bid-Point* StopLevel;
 
   ticket=OrderSend(Symbol(),OP_SELL, lots,Bid,3, SL, TP,"Name_Expert", Magic,0, clOpenSell);
   if( ticket < 0){
            Print("Ошибка открытия ордера SELL #", GetLastError()); 
            Sleep(10000);  
            prevtime = Time[1]; 
            return (0); 
         } 
       }

As posições são abertas, mas em vez de paradas, há um erro 130 .....

Exibido todas as paradas e níveis no comentário . - tudo parece ser exibido corretamente... - mas o erro 130 está vindo à tona

Razão: