[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 148

 

oder besser gesagt, er öffnete überhaupt keine Positionen mehr und meldete einen Fehler 138

 

Vielen Dank für den Tipp aber - ich korrigiert den Code ein bisschen und in der Tat ohne die Code-Zeile unten, die EA wurde Positionen auf jedem Tick öffnen

und nachdem ich die Code-Zeile eingefügt hatte = EA öffnete eine Position genau so, wie ich es geplant hatte.

int start()
   {
// начало открытия ордеров 
   if (OrdersTotal()>0)return(0);
 
first_may:

CME ist was?

o_o - CME
 
BeerGod:
Das ist schon einmal passiert, und ich glaube, das ist die Intrige von DC, so dass es problematisch wäre, etwas zu testen.
Der DC hat nichts mit den vom Server für historische Daten heruntergeladenen Kursen zu tun.
 
Der DC hat nichts mit den vom Server für historische Daten heruntergeladenen Kursen zu tun.

Nun, alles wird "angeblich" von einem einzigen Server heruntergeladen... Außerdem dachte ich, dass im Testgerät die Hebelwirkung des aktuellen Kontos keine Auswirkungen hat... Aber einige Maklerunternehmen verfügen über eine solche Straßenmagie... Vielleicht können einige Maklerunternehmen auch mit Kursen spielen? (Obwohl wahrscheinlich alle von ihnen hier Probleme haben)...
 
alex12:

Vielen Dank für den Tipp aber - ich korrigiert den Code ein bisschen und in der Tat ohne die Code-Zeile unten, die EA wurde Positionen auf jedem Tick öffnen

und nachdem ich die Code-Zeile eingefügt hatte = EA öffnete eine Position genau so, wie ich es geplant hatte.

Na ja... dies ist nur eine scheinbare Übereinstimmung mit der geplanten. Bei dieser Konstruktion werden das Symbol, die Art des Ordens und seine Magie nicht berücksichtigt. D.h., wenn ein anderer EA auf dem Konto für ein anderes Symbol arbeitet, dann wird dieser nicht funktionieren, weil wir bereits eine Position haben. Wenn nur dieser EA funktioniert, aber es gibt eine Sell-Position und die Buy-Position geöffnet werden muss, wird es nicht öffnen - die Position bereits vorhanden ist und es gibt viele andere mögliche Regeln, zum Beispiel, Sie haben manuell eine Position geöffnet oder eine Pending Order gesetzt - das ist es, der EA ist gestiegen...

Sie müssen konkret prüfen: Gibt es bereits eine offene Stelle auf diesem und jenem Symbol, mit diesem und jenem Magier, von diesem und jenem Typ? Wenn nicht - öffnen.

 
artmedia70:

Na ja... es ist nur eine scheinbare Übereinstimmung mit der geplanten. Dieser Entwurf berücksichtigt weder das Symbol noch die Art des Ordens oder seine Magie. Das bedeutet, dass, wenn ein anderer EA für ein anderes Symbol im Konto arbeitet, dieser nicht funktionieren wird, weil es bereits eine Position gibt. Wenn nur dieser EA funktioniert, aber es gibt eine Sell-Position und die Buy-Position geöffnet werden muss, wird es nicht öffnen - die Position bereits vorhanden ist und es gibt viele andere mögliche Regeln, zum Beispiel, Sie haben manuell eine Position eröffnet oder eine Pending Order gesetzt - das ist es, der EA ist gestiegen...

Sie müssen konkret prüfen: Gibt es bereits eine offene Stelle auf diesem und jenem Symbol, mit diesem und jenem Magier, von diesem und jenem Typ? Wenn nicht - öffnen.

Ja, das stimmt, denn dieser EA eröffnet nur Kaufpositionen, um die Bewegung fortzusetzen, und
erst nach Schließung der Kaufposition durch Take. Wenn zum Beispiel eine Kaufposition geöffnet ist und der Preis auf das unter
festgelegte Niveau fällt, wird keine weitere Kaufposition eröffnet (und hätte von TS eröffnet werden müssen).
Ich habe einen bestimmten Preis in der Sektion "Send order lines - price" vorgeschrieben, siehe den unten stehenden Code.
Meine Aufgabe ist es, den richtigen Code in den EA zu schreiben = um eine weitere Kaufposition nach dem Öffnen der Kaufposition zu öffnen,
, wenn der Preis auf ein vordefiniertes Niveau sinkt - öffnen Sie eine weitere Kaufposition. Und so was auch immer Ebene
der Preis nicht in den Code überschritten hat - immer öffnen Kaufposition, egal wie viele

Zurzeit sind noch Stellen zu besetzen.

extern double Lot=1;

int g=20; //тейкпрофит

double price[10];   // Заданный уровень 

//-----------------------
 
int init()
  {
  
double price[10];   // объявляем массив из 5 элементов  
           
price[0] = 1.2100; // обращаемся к первому элементу массива и 
                   // присваиваем ему цену. Обратите внимание 
                   // на то, что индекс первого элемента 
                   // начинается с 0. Это важная особенность,
                   // к которой нужно привыкнуть.   
 
price[1] = 1.2200;  // обращаемся ко второму элементу 
price[2] = 1.2300;  // и так далее 
price[3] = 1.2400; 
price[4] = 1.2500;
price[5] = 1.2600; 
price[6] = 1.2700;  
price[7] = 1.2800; 
price[8] = 1.2900;
price[9] = 1.3000;  

   return(0);
  }
//---------------
int start()
   {
// начало открытия ордеров 
   if (OrdersTotal()>0)return(0);
   
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)//проверка наличия откр.поз
   price[0]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2100,10,0,Ask+g*Point,"My order #",11);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[1]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2200,10,0,Ask+g*Point,"My order #",12);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[2]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2300,10,0,Ask+g*Point,"My order #",13);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[3]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2400,10,0,Ask+g*Point,"My order #",14);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[4]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2500,10,0,Ask+g*Point,"My order #",15);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[5]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2600,10,0,Ask+g*Point,"My order #",16);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[6]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2700,10,0,Ask+g*Point,"My order #",17);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[7]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2800,10,0,Ask+g*Point,"My order #",18);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[8]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.2900,10,0,Ask+g*Point,"My order #",19);
   }
   if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   price[9]=Ask;
   {
   OrderSend (Symbol(),OP_BUY,Lot,1.3000,10,0,Ask+g*Point,"My order #",20);
   }
      return(0);
  }
//+------------------------------------------------------------------+
 
Guten Tag. Ich würde den Code gerne optimieren. Ich habe dem Indikator drei Puffer hinzugefügt. Dann habe ich eine lange Suche nach Signalen in ihnen. Zuerst suche ich MA1[], dann МА2[] und МА3[]. Der Unterschied ist nur eine Ziffer des Puffernamens, die für Berechnungen verwendet wird. Ist es möglich, den Code zu wiederholen.
 
alex12:
Ja, das ist richtig, weil dieser EA öffnet nur bai auf die Fortsetzung der Bewegung und
erst nach Schließung der Kaufposition auf dem Take ....
Die öffnende geschweifte Klammer { muss vor price[...]=Ask; stehen (siehe unten). Lesen Sie noch einmal über den "if"-Operator. Wenn keine Klammer unmittelbar nach if steht, wird nur eine Aktion behandelt (Sie haben price[...]=Ask;), wenn Sie mehrere Aktionen benötigen, sollten diese in {...} unmittelbar nach if stehen.
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)//проверка наличия откр.поз
   { 
      price[0]=Ask;
      OrderSend (Symbol(),OP_BUY,Lot,1.2100,10,0,Ask+g*Point,"My order #",11);
   }
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==True)//проверка наличия откр.поз
   {
      price[1]=Ask;
      OrderSend (Symbol(),OP_BUY,Lot,1.2200,10,0,Ask+g*Point,"My order #",12);
   }
 

Nachmittags.

Ich brauche eine EURUSD m5/m15 Geschichte von vor 2009, kann jemand ihre teilen? (d.h. diejenige, auf der Sie Ihre Experten debuggen).

Dafür wäre ich sehr dankbar.

Grund der Beschwerde: