[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 218

 
ViktorF:

Wenn der EA läuft, tauchen diese Fehler auf:

Es gab Zeiten, in denen Aufträge entweder nicht geschlossen oder zu bestimmten Zeitpunkten nicht geöffnet wurden.

Inwieweit hängen die Fehler beim Schließen/Öffnen mit diesen Fehlern zusammen? Wie kann man sie vermeiden (möglichst ohne MT5-Terminalwechsel)?

Siehe hier und hier... und hier...

Warum geben Sie nicht den Namen des Fehlers in das Suchfeld ein und erhalten sofort eine Antwort?

 
Roman.:


Bringen Sie Ihren Broker dazu, den automatisierten Handel für Sie durch häufige Anfragen im realen Handel zu unterbinden - Sie müssen dann nur noch selbst per Telefon handeln.

Ändern Sie Aufträge nach einer bestimmten Anzahl von Punkten (Intervall), z. B. 50 oder 100 - das ist mit einem Pentameter (sagen wir, wenn sich der Preis in Ihre Richtung bewegt - ändern Sie den Auftrag), und alles wird gut sein. :-))) IMHO, natürlich.

Ähm ...


Ich stimme voll und ganz zu...
 

Guten Tag! Zitat aus dem Lehrbuch:

Eine oder mehrere Konstanten können in der Initialisierungssequenz übersprungen werden. In diesem Fall werden die entsprechenden Array-Elemente numerischer Typen mit Null initialisiert, und Array-Elemente vom Typ String werden mit dem String-Wert "" (öffnendes und schließendes Anführungszeichen ohne Leerzeichen) initialisiert, d.h. mit einem leeren String (nicht zu verwechseln mit Leerzeichen).

Frage 1: Was geschieht mit Elementen vom Typ bool, wenn ein Leerzeichen weggelassen wird?

Die Idee ist die folgende: Wir erstellen ein eindimensionales Array von Flaggen für die Parameter der Handelseröffnung, also

bool Open[20] {par1,par2,par3....,par20}

wenn (MA1>MA2) par1=true;

if (MA7>MA8) par2=true; ...

wenn (ma33>ma55) par20=true;

Wer auf solche Lösungen gestoßen ist - beraten:

2- Ist die Richtung richtig?

3- wie man weitere Parametervarianten wie if (Open [12] {1,0,0,1,1...,0 } ) OrderSend() usw. schreibt. - oder?

 
ilmur:

Hilfe bitte... mein Expert Advisor prüft offene Orders ...eine Order kann gleichzeitig offen sein ...aber wenn ich einen Stop auf einer geraden Linie im Moment der Ordereröffnung eingebe, gibt er Fehler 130 aus...zum Beispiel war es so

if(ab>0)

{

ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,0,Bid-TakeProfit*Point,0,16384,0,Red);

Ich gebe einen Anschlag der Größe 100 ein

ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,100,Bid-TakeProfit*Point,0,16384,0,Red); ...ergibt Fehler 130 im Testgerät

alpari...vielleicht sollte ich den Auftrag nach der Eröffnung modifizieren und einen Stop setzen...raten Sie mir, wie man das macht oder verweisen Sie mich auf einen Ratgeber, wo das gemacht wird...bitte


Alpari eröffnet keine Geschäfte mit Stop-Losses und Übernahmen
 
100yan:

Die Idee ist folgende: Erstellen Sie ein eindimensionales Array von Flaggen der Handelseröffnungsparameter, also

bool Open[20] {par1,par2,par3....,par20}

wenn (MA1>MA2) par1=true;

if (MA7>MA8) par2=true; ...

wenn (ma33>ma55) par20=true;

Wer auf solche Lösungen gestoßen ist - beraten:

2 Ist die Richtung richtig?

3- wie man weitere Parametervarianten wie if (Open [12] {1,0,0,1,1...,0 } ) OrderSend() usw. schreibt. - oder?

welche Richtung und was meinen Sie mit richtig?

Und wie kann ich Ihnen sagen, wie Sie es richtig machen, wenn ich das Problem nicht verstehe?

 
int OrderStatus() {
   int z1=0, z2=0;  // порядок для массива
   int i, k=OrdersTotal();
      for (i=1; i<=k; i++) {
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketBS[z1]=OrderTicket(); // присваем массиву под 1 ячейкой первый найденный ордер тикет
            z1++;
            }
            if (OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketSS[z2]=OrderTicket();
            z2++;
            }
         }
      }
}
Wer kann mir helfen, warum TicketBS[] und TicketSS[] dem Array TicketBS[] keine Werte zuweisen? schreibt immer 0...
 
eddy:

welche Richtung und was ist richtig?

Und wie kann ich Ihnen sagen, wie man etwas richtig aufschreibt, wenn Sie die Aufgabe selbst nicht verstehen?

1. ist die Richtung des Denkens richtig?

2. Wie kann man Parametervarianten mit einem gegebenen Array vergleichen? D.h. ein Array mit den richtigen Parametern erstellen. Anstatt zum Beispiel if((MA1>MA2)&&(MA7>MA8)&& ....) zu schreiben, sollten wir eine Array-Variante für die Eröffnung einer Order des Typs12 Open [12] {1,1,1,0,1...,0 } verwenden, wobei die Menge der Parameter jeweils eine Bedingung für die Eröffnung einer Order des Typs12 ist.

 

тип12 Open [12] {1,1,1,0,1...,0 }

Die Elemente von benutzerdefinierten Arrays sind Variablen, aber Sie haben hier aus irgendeinem Grund einen Körper (geschweifte Klammern).

 
eddy:

Die Elemente von benutzerdefinierten Arrays sind Variablen, und Sie haben hier aus irgendeinem Grund einen Körper (geschweifte Klammern)


Initialisierung eines Arrays


Ein Array kann nur mit Konstanten des entsprechenden Typs initialisiert werden. Ein- und mehrdimensionale Arrays werden mit einer durch Komma getrennten Folge von Konstanten initialisiert. Die Folge ist in geschweifte Klammern eingeschlossen:
bool Mas_b[5] = { false, true, false, true, true }

 
Wenn Sie sich die Parameter für die Eröffnung eines Auftrags merken wollen, müssten Sie mehrere bool-Variablen für jeden Parameter haben, um zu prüfen, ob der Markt ihnen entspricht
Grund der Beschwerde: