[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 406

 
Obrigado! Mas também não funcionou com todos os exemplos dados no link...
 
int start()
  {
   int i, limit;
   int counted_bars=IndicatorCounted();
//---- 
   if( counted_bars>0) counted_bars--;
   limit=Bars- counted_bars;
//---- 
   for( i= limit; i>=0; i--) 

      if (Close[ i+1]>0) 

         Buffer0[ i]=Close[ i]/Close[ i+1];

   for( i= limit; i>=0; i--) 

      double StdDev=iStdDevOnArray( Buffer0,Bars,16,0,MODE_SMA, i);

      Buffer1[ i]= StdDev;
      

   return(0);
  }
Não está funcionando por alguma razão, ajude-me a descobrir qual é o problema! Obrigado!
 
Mr-Franklyn >>:
Почему-то не работает, помогите разобраться в чём проблема! Спасибо!

faltam parênteses

 

Tentando fazer uma rede de arrasto de equidade para consertá-la antes que os pedidos extras cheguem:


escreveu este código:

int init(){
      //Наиль - фиксируем сумму средств на начало работы советника
       EquityStart=AccountEquity();
       StartBalance=AccountBalance();
       if(GlobalVariableSet("EquityStart", EquityStart)==0)
       if(GlobalVariableSet("StartBalance", StartBalance)==0)
       return(false);
       //---- продолжение обработки
//===============

//трал у  меня выведен в отдельную функцию:
bool fPrEquity(){
   if(! PrEquity)return(true);
   static bool ClAllFlag=false;
   double Pr2=0;

      StartBalance=GlobalVariableGet("StartBalance");
      Pr2=AccountEquity()- StartBalance;
      
       if( Pr2>= ProcentToclose/100.0*AccountEquity()){
      Print ("Средстава возросли. Закрываем все!!!");
         ClAllFlag=true;
            StartBalance=AccountEquity();
            GlobalVariableSet("StartBalans", StartBalance);
         
       }
      if( ClAllFlag){
         if( fOrderCloseMarket(true,true)==0){
            ClAllFlag=false;

            return(true);
         }
         else{
            return(false);
         }
      } 
   return(true);           
}

Mas a EA começa a trabalhar desta forma:


Quem pode me dizer qual é o problema?

 
Nail_Saby >>:

Пытаюсь сделать трал Эквити, чтобы зафиксировать его раньше, чем наберет лишние ордера:


написал такой код:

Но советник начинает работать так:


Кто подскажет, в чем проблема?

Você parece estar fazendo a comparação errada:

if(Pr2>=ProcentToclose/100.0*AccountEquity())
e você deve
if(Pr2>=ProcentToclose/100.0*StartBalance)
 
alsu >>:

Вы, кажется, не с тем сравниваете:

Consertou-o, mas não ajudou...

A propósito, o registro sempre diz que

Средстава возросли. Закрываем все!!!

e escreve o valor do patrimônio líquido.

Talvez seja algo a ver com ciclos?

 
Nail_Saby писал(а) >>

Tentando fazer uma rede de arrasto de equidade para consertá-la antes que os pedidos extras cheguem:

escreveu este código:

Mas a EA começa a trabalhar desta forma:

Quem pode me dizer qual é o problema?

Após a primeira execução da função, o valor da variável ClAllFlag assume o valor verdadeiro e não altera seu valor. O tipo de variável deve ser simplesmente bool.

 

Explicar o que estou fazendo de errado



Eu recebo o erro de que não há diretório no servidor ftp, mas sei com certeza que ele está lá, onde eu errei?

 
Vinin >>:

После первого запуска функции значение переменной ClAllFlag принимает значение true и больше не меняет своего значения. Надо бы тип переменной сделать просто bool.

você pretende remover a estática antes do bool ClAllFlag ?

Mas esta variável também é usada em outros lugares do código. onde todos os pedidos são fechados.

Eu já tentei isto - não ajuda.

Confuso pelas mensagens constantes no diário de bordo...Talvez em algum lugar

return
não vale a pena?
 
Nail_Saby писал(а) >>

você quer dizer remover a estática antes do bool ClAllFlag ?

Mas esta variável é usada em outros lugares no código... onde todos os pedidos são fechados.

Eu tentei isto - não ajuda.

Estou confuso por mensagens constantes no diário de bordo... Talvez esteja em algum lugar

>> não vale a pena?

A que é igual o Pr2?

Provavelmente você terá que apenas reimprimir os valores.