[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 406

 
Ich danke Ihnen! Aber es funktionierte auch nicht mit allen Beispielen, die in dem Link angegeben sind...
 
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);
  }
Es funktioniert aus irgendeinem Grund nicht, helfen Sie mir herauszufinden, was das Problem ist! Ich danke Ihnen!
 
Mr-Franklyn >>:
Почему-то не работает, помогите разобраться в чём проблема! Спасибо!

Es fehlen Klammern

 

Ich versuche, das Problem mit einem Equity-Trawl zu beheben, bevor die zusätzlichen Bestellungen eintreffen:


hat diesen Code geschrieben:

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

Aber der EA beginnt so zu arbeiten:


Wer kann mir sagen, was das Problem ist?

 
Nail_Saby >>:

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


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

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


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

Sie scheinen den falschen Vergleich zu ziehen:

if(Pr2>=ProcentToclose/100.0*AccountEquity())
und Sie sollten
if(Pr2>=ProcentToclose/100.0*StartBalance)
 
alsu >>:

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

Ich habe es repariert, aber es hat nicht geholfen...

Im Protokoll steht übrigens immer, dass

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

und schreibt den Betrag des Eigenkapitals.

Vielleicht hat es etwas mit Zyklen zu tun?

 
Nail_Saby писал(а) >>

Ich versuche, das Problem mit einem Equity-Trawl zu lösen, bevor die zusätzlichen Bestellungen eintreffen:

hat diesen Code geschrieben:

Aber der EA beginnt so zu arbeiten:

Wer kann mir sagen, was das Problem ist?

Nach der ersten Ausführung der Funktion nimmt der Wert der Variablen ClAllFlag den Wert true an und ändert seinen Wert nicht mehr. Der Variablentyp sollte einfach bool sein.

 

Erklären Sie mir, was ich falsch mache



Ich erhalte die Fehlermeldung, dass es kein Verzeichnis auf dem FTP-Server gibt, aber ich bin mir sicher, dass es dort ist, was habe ich falsch gemacht?

 
Vinin >>:

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

Sie meinen, dass Sie static vor bool ClAllFlag entfernen sollten?

Aber diese Variable wird auch an anderen Stellen des Codes verwendet... wo alle Aufträge abgeschlossen sind.

Ich habe das schon versucht - es hilft nicht.

Verwirrt durch die ständigen Meldungen im Protokoll... Vielleicht irgendwo

return
ist sie wertlos?
 
Nail_Saby писал(а) >>

Sie meinen, static vor bool ClAllFlag entfernen?

Aber diese Variable wird an anderen Stellen im Code verwendet... wo alle Aufträge abgeschlossen sind.

Ich habe das versucht - es hilft nicht.

Die ständigen Meldungen im Protokoll verwirren mich... Vielleicht ist es irgendwo

>> ist sie wertlos?

Was ist Pr2 gleich?

Wahrscheinlich müssen Sie die Werte einfach neu drucken.