Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 601

 
AlexeyVik:
Wahrscheinlich habe ich es nicht genau so versucht.
Ich habe den Code in EA neu kompiliert und ihn ausgeführt. Wenn ich den Parameter Sys im Kommentar ändere, ändert sich dieser Wert.

Ich habe versucht, wieder zu Ihrer Version zu wechseln... funktioniert immer noch nicht... Es ist im EA, und es ist als EA sichtbar...
 
peace1984:

Ich habe erneut versucht, zu Ihrer Version zu wechseln... funktioniert immer noch nicht... es ist im EA, und es ist als EA sichtbar...


Oder habe ich es falsch verstanden?

Dateien:
11_1_1.mq4  8 kb
 
AlexeyVik:


Oder habe ich etwas missverstanden?



Ich verstehe, dass die Meldung "sys sollte nicht 1 sein" erscheint, wenn sys!=1, aber wenn Sie den Benutzer von 0 ändern, sollte er 1 sein. und "sys sollte 1 sein" sollte erscheinen

in Ihrer Version des EA steht beim Testen in der oberen linken Ecke sys=0 und das sollte nicht der Fall sein...

 
peace1984:

Ich verstehe, dass die Meldung "sys sollte nicht 1 sein" erscheint, wenn sys!=1 und wenn Sie den Benutzer von 0 ändern, sollte er 1 sein und "sys sollte 1 sein" sollte erscheinen

Hier ist ein Blick auf die Neueinführung. Von unten aufgereiht.


Experte ist geladen.

Liste der externen Variablen: Sys = 0

Initialisierung bestanden.

Die nächsten 3 Zeilen werden von EA gedruckt.

Deinitialisierungsgrund 5(Eingabeparameter wurden vom Benutzer geändert)

Liste der externen Variablen: Sys = 1

Initialisierung übergeben

Die folgenden 3 Zeilen, der Druck aus dem Expert Advisor.

Deinitialisierungsgrund 1(Programm wurde aus der Tabelle entfernt)


Was wollen Sie klären? Ich verstehe nicht, was da nicht funktioniert...

ps: Achten Sie nicht auf solche Symbole. Es handelt sich um ein Optionskonto, daher auch die Symbolnamen.

 
AlexeyVik:

Das ist nicht der Punkt. Niemand will Ihren vollständigen Geheimcode. Schreiben Sie einfach einen vollständigen Testcode mit dem Missverständnis. Wie wäre es damit?

Wann haben Sie die hervorgehobene Zeile gelöscht? Telepathen werden nicht helfen, Normalsterbliche noch weniger...

Und dann ist da noch dieser Teil.

Ich weiß nicht, welcher Programmierer das geschrieben hat, aber es ist völlig unzureichend... Es ist nicht deine Schuld. Sie haben, wie viele andere auch, einfach den Code genommen und versucht, ihn zu reparieren...

Wenn die Variable counted_bars gleich der Anzahl der seit dem letzten Aufruf des Indikators unveränderten Balken ist (die erste Zeile)

Wie sie kleiner als Null werden kann, wenn (gezählte Balken < 0), werde ich nie verstehen können...

Der Rest ist auch Unsinn, aber ich bin zu faul, ihn auseinander zu nehmen...


Ich stimme mit Ihnen völlig überein. Warum haben Sie nicht daran gedacht? )

Ich füge den Code und die Datei eines solchen unglücklichen Indikators bei.

Werfen Sie auf Diagramm, Terminal natürlich hängt, lassen Sie für 10 Minuten (je nach PC-Leistung. Ich habe i5 3.1 Ghz), zwangsweise schließen MT, öffnen Sie Log-Datei mit dem Namen "bug log.csv", beobachten Sie die Tatsache der Fehler IndicatorCounted().

#property indicator_separate_window
#property indicator_buffers 1

double Buffer_1[];

bool busy=false;
int han;

int init()
{
   han=FileOpen("bug log.csv", FILE_CSV|FILE_WRITE);
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1);       
   SetIndexBuffer(0,Buffer_1); 
   return(0);
}

int deinit()
{
   FileClose(han);
   return(0);
}

int start()
{
   //if(busy) return(0);
   int limit=3000;
   if(IndicatorCounted()>0) limit=1;
   
   for (int i=0; i<limit; i++)
   { 
      busy=true;
      FileWrite(han, TimeToStr(TimeCurrent(), TIME_MINUTES|TIME_SECONDS), DoubleToStr(i, 0), DoubleToStr(IndicatorCounted(), 0));
      FileFlush(han);
      
      for(int j=1; j<7000; j++)
        for(int k=1; k<7000; k++)
          double var=2*0.34*MathArccos(0.5)+1.33*MathArcsin(0.23)+1.53*MathArctan(0.11)+2.33*MathCos(0.23)+1.22*MathLog(12)+1.22;
      
      Buffer_1[i]=var;
   }
   
   busy=false;
   return(777);
}
Dateien:
bugqtest.mq4  2 kb
 

Hallo alle, können Sie beraten, was im Skript fehlt, wenn es alle offenen Aufträge schließt, wenn (AccountProfit()>1) Bedingung erfüllt ist, jetzt schließt es nur einen Teil der Aufträge, bis die Bedingung i

f(KontoGewinn()>1)

{ for (i=BestellungenGesamt()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(Auftragsart()==OP_BUY)
{ OrderClose(OrderTicket(),OrderLots(),Bid,10,Green); return(0);
} else { OrderClose(OrderTicket(),OrderLots(),Ask,10,Red); return(0);
}}}
 
Expert:


Ich stimme mit Ihnen völlig überein. Warum haben Sie nicht daran gedacht? )

Ich füge den Code und die Datei des woe-is-me-Indikators selbst bei.

Werfen Sie auf Diagramm, Terminal natürlich hängt, lassen Sie es für 10 Minuten (je nach Geschwindigkeit des PCs. Ich habe i5 3.1 Ghz), zwangsweise schließen MT, öffnen Sie Log-Datei mit dem Namen "bug log.csv", beobachten Sie die Tatsache der Fehler IndicatorCounted().

Ich weiß es nicht. Ich habe einen Indikator, der eine Datei wie diese aufgezeichnet hat.

Dateien:
test.zip  21 kb
 
AlexeyVik:

Ich weiß es nicht. Ich habe diesen Indikator eine Datei wie diese schreiben lassen.




Herzlichen Dank für Ihr Feedback!

Habe Ihre Version ausprobiert - gleiches Ergebnis ((

Haben Sie eine Ahnung, warum das so ist?
Es geht nicht nur mir so. Ich habe einen anderen PC ausprobiert, der leistungsfähiger ist als meiner, und es ist das gleiche Problem.

Dateien:
bugflog.zip  122 kb
 
i999i:

Hallo alle, können Sie beraten, was im Skript fehlt, wenn es alle offenen Aufträge schließt, wenn (AccountProfit()>1) Bedingung erfüllt ist, jetzt schließt es nur einen Teil der Aufträge, bis die Bedingung i

f(KontoGewinn()>1)

{ for (i=BestellungenGesamt()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(Auftragsart()==OP_BUY)
{ OrderClose(OrderTicket(),OrderLots(),Bid,10,Green); return(0);
} else { OrderClose(OrderTicket(),OrderLots(),Ask,10,Red); return(0);
}}}
return(0); war überflüssig, ich danke Ihnen allen
 
Expert:


Herzlichen Dank für Ihr Feedback!

Habe Ihre Version ausprobiert - gleiches Ergebnis ((

Haben Sie eine Idee, warum das so ist?
Ich bin nicht der Einzige. Ich habe es auf einem anderen PC versucht, der leistungsfähiger ist als meiner, und es ist das gleiche Problem.

Entweder verstehe ich dich nicht, oder du verstehst etwas nicht... Was ist mit der .csv-Datei nicht in Ordnung? Bis der erste Balken gezählt wird, wird prev_calculated oder IndicatorCounted() (in der alten Version) Null sein, und das ist korrekt.
Grund der Beschwerde: