[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 406

 
Grazie! Ma non ha funzionato nemmeno con tutti gli esempi dati nel 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);
  }
Non funziona per qualche motivo, aiutatemi a capire qual è il problema! Grazie!
 
Mr-Franklyn >>:
Почему-то не работает, помогите разобраться в чём проблема! Спасибо!

mancano le parentesi

 

Cercando di fare un trawl di equità per sistemarlo prima che arrivino gli ordini extra:


ha scritto questo codice:

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);           
}

Ma l'EA inizia a funzionare così:


Chi può dirmi qual è il problema?

 
Nail_Saby >>:

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


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

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


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

Sembra che tu stia facendo un paragone sbagliato:

if(Pr2>=ProcentToclose/100.0*AccountEquity())
e dovresti
if(Pr2>=ProcentToclose/100.0*StartBalance)
 
alsu >>:

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

Risolto, ma non ha aiutato...

A proposito, il registro dice sempre che

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

e scrive l'importo del patrimonio netto.

Forse ha a che fare con i cicli?

 
Nail_Saby писал(а) >>

Cercando di fare un trawl di equità per sistemarlo prima che arrivino gli ordini extra:

ha scritto questo codice:

Ma l'EA inizia a funzionare così:

Chi può dirmi qual è il problema?

Dopo la prima esecuzione della funzione, il valore della variabile ClAllFlag prende il valore true e non cambia il suo valore. Il tipo di variabile dovrebbe essere semplicemente bool.

 

Spiegare cosa sto facendo di sbagliato



Ottengo l'errore che non c'è nessuna directory sul server ftp, ma so per certo che è lì, dove ho sbagliato?

 
Vinin >>:

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

intendi rimuovere static prima di bool ClAllFlag?

Ma questa variabile è usata anche in altri punti del codice... dove tutti gli ordini sono chiusi.

Ho provato questo - non aiuta.

Confuso dai continui messaggi nel log...Forse da qualche parte

return
è inutile?
 
Nail_Saby писал(а) >>

intendi rimuovere la statica prima di bool ClAllFlag?

Ma questa variabile è usata in altri posti nel codice... dove tutti gli ordini sono chiusi.

Ho provato questo - non aiuta.

Sono confuso dai continui messaggi nel log... Forse è da qualche parte

>> è inutile?

A cosa è uguale Pr2?

Probabilmente dovrete semplicemente ristampare i valori.