[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 19

 
nadya:
Und wenn ich sie als globale Variable schreibe, sollte ich ihr dann direkt einen Wert zuweisen?

Dies gilt umso mehr, als sie ihren Zustand nach deinit() nicht auf die gewünschte 0 zurücksetzen.

ist es besser, sie in init() zu initialisieren.

 
nadya:
Ich muss die Ideologie des Programms ändern. Wenn der mittlere SL an stoploss gesendet wird, wird er normalisiert, d.h. auf ein bestimmtes Zeichen gerundet, wenn er durch 2 geteilt wird, ist das unvermeidlich.
int z;
z=MathMod(Close[0]*10000,2.0);
if ((z==0)&&High[0]>H)
{
H=High[0];
middleSL=OrderOpenPrice()+(Close[0]-OrderOpenPrice())/MIDDLESL;
}

Ich leicht kompliziert den Code, für die gesamte Transaktion von der Eröffnung bis zur Schließung nur 3 mal gab einen Fehler, jetzt in Echtzeit werde ich auf die Bedingungen, unter denen sie auftreten, sie im Grunde nicht stören mich, alles funktioniert wie am Schnürchen, aber ich habe Angst, dass der Server zu verbannen, wenn ich auf ein echtes Konto gehen wird

 
nadya:
und wenn ich sie als globale Variable schreibe, sollte ich den Wert direkt dort zuweisen?


Das kann man, aber es macht keinen Sinn, weil es nicht dasselbe ist wie eine normale Variable. Wenn Sie den Svetnic auf das Diagramm ziehen, öffnet sich ein Fenster. Gehen Sie auf die nächste Registerkarte "Eingabeparameter" und geben Sie die gewünschten Werte ein, und der Svetnic wird sie sich merken

Wenn Sie möchten, dass der Wert für jeden Zyklus des EA konstant bleibt, geben Sie ihn einfach direkt nach dem Start ein, z. B.

int N=5; //одновременно объявляется переменная и присваивается ей значение
double K=3,5; //то же самое
 

Bitte sag es mir, sonst platze ich gleich!!!

Kann ein EA schwebende Aufträge löschen, weil er nicht genügend Geld hat?

 
nadya:

Bitte sag es mir, sonst platze ich gleich!!!

Kann ein EA schwebende Aufträge löschen, weil er nicht über genügend Mittel verfügt?


wenn Sie verlangen, dass es den Saldo prüft und bei Unzulänglichkeit die Bestellung schließt, dann ja, andernfalls wird es eine Fehlermeldung oder etwas anderes ausgeben und vielleicht sogar schließen, aber es ist immer besser, alle Optionen bereitzustellen und sie im Code vorzuschreiben

"ERR_NOT_ENOUGH_MONEY 134 Nicht genug Geld für die Ausführung einer Transaktion" kann er ausgeben, aber wird der Auftrag gelöscht oder bleibt er bestehen, ich weiß es nicht

 
LazarevDenis:

Ich habe den Code ein wenig komplizierter, für die gesamte Transaktion von der Eröffnung bis zur Schließung gab es nur 3 Fehler, jetzt in Echtzeit werde ich auf die Bedingungen, unter denen sie auftreten, sie stören mich nicht im Prinzip, alles funktioniert wie am Schnürchen, aber ich habe Angst, dass der Server zu sperren, wenn ich auf ein echtes Konto gehen wird

Ja, es ist zu kompliziert, gibt es einen solchen prinzipiellen Ansatz?
 
LazarevDenis:

Wenn Sie verlangen, dass es den Saldo prüft und den Auftrag schließt, wenn es einen Fehlbetrag gibt, dann ja, andernfalls wird es entweder einen Fehler oder etwas anderes melden, oder es wird ihn vielleicht schließen, aber es ist immer besser, alle Optionen in Betracht zu ziehen und es im Code vorzuschreiben.
Ich brauche es eigentlich nicht, aber meine Bestellungen werden auf seltsame Weise gelöscht, ich suche den ganzen Abend nach einem Fehler.
 
nadya:
Die Sache ist die, dass ich es eigentlich nicht brauche, aber meine Bestellungen werden auf eine seltsame Art und Weise gelöscht, ich suche den ganzen Abend nach einem Fehler.


Ich bin mir sicher, dass es sich um eine große Menge handelt und nicht genug freies Geld vorhanden ist, oder es wurden bereits viele Bestellungen geöffnet (wenn Sie mehr als eine öffnen lassen).

Wenn Sie mit einem Tester oder einer Demo arbeiten, versuchen Sie, den Geldbetrag zu erhöhen und ein Mindestlos festzulegen

 
nadya:

Bitte sag es mir, sonst platze ich gleich!!!

Kann ein EA schwebende Aufträge löschen, weil er nicht über genügend Mittel verfügt?


Ja! Schauen Sie sich das Protokoll an.
 
LazarevDenis:


mehr als sicher, dass ein zu großes Los eingestellt ist und er nicht genug freies Geld hat, oder ein Los bereits offen ist (wenn Sie ihm erlauben, mehr als einen Auftrag zu eröffnen)

wenn Sie in einem Tester oder Demo arbeiten, versuchen Sie, den Geldbetrag zu erhöhen und setzen Sie die Mindestmenge

Das habe ich bereits getan und es hat sofort funktioniert! Hurra!
Grund der Beschwerde: