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

 
HoBu4ek >> :
Können Sie bitte beraten, wie man einen EA eine Bestellung für mehrere Symbole auf einmal öffnen zu machen? >> Vielen Dank im Voraus!

Dies ist nicht möglich, da der EA nur für ein Symbol eine Order eröffnen kann, und Sie dann auf den Abschluss warten müssen (und dieser ist nicht immer erfolgreich und nicht immer schnell), um den Handelsfluss für andere Orders freizugeben.

 
Drugoy писал(а) >>

Meine Herren, bitte beraten Sie einen Neuankömmling! Ich lud das Tutorial MQl4BookRussian.chm (Autor Sergey Kovalev), das Problem ist, dass das Drucken von diesem Format ist sehr unordentlich. Probyby hat diesen Text in das doc-Format kopiert, die Bilder verschwinden. Wissen Sie, ob das Lehrbuch in einem Format erhältlich ist, das sich zum Ausdrucken eignet (zum Lesen am Bildschirm, die Augen werden müde)?

Testen Sie die Online-Version des Lehrbuchs direkt auf der Website https://book.mql4.com/ru/. Und Sie können es ohne Probleme in ein Dokument übertragen.

 
Reshetov >> :

Dies ist nicht möglich, da ein EA nur einen Auftrag für ein Symbol eröffnen kann. Danach müssen Sie warten, bis der Handelsvorgang abgeschlossen ist (und das ist nicht immer erfolgreich und nicht immer schnell) und der Handelsfluss für andere Aufträge verfügbar wird.

Mit dem Handelsfluss verstehe ich alles, aber wie kann man nacheinander auf 3 Instrumenten mit minimalen Intervallen Eröffnungsgeschäfte machen (laut dem Algorithmus des Beraters sollte die Eröffnung in einer bestimmten Sekunde auf drei Währungen gleichzeitig beginnen)? Wenn es Ihnen nichts ausmacht, könnten Sie einen Codeschnipsel als Beispiel veröffentlichen? Ich wäre Ihnen sehr dankbar!

 
Dimoncheg >> :

int start()
{
if (OrdersTotal() == 0
&& TimeDayOfWeek(TimeCurrent()) == 5
&& TimeHour(TimeCurrent()) == 12
&& TimeMinute(TimeCurrent()) == 30
&& TimeSeconds(TimeCurrent()) >= 00)
{
Alert("Тра ляля");
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"sell",999999,0,Red);
}


Keiner weiß, warum hier kein Auftrag eröffnet wird? Was mache ich falsch?

Wenn dies der gesamte Code ist, lässt er sich nicht einmal kompilieren. Wenn Sie eine Zahl anstelle von Lot einsetzen, funktioniert der EA einwandfrei.


 
HoBu4ek >> :

Ich verstehe alles mit dem Handelsfluss, aber wie zu machen Geschäfte öffnen nacheinander auf 3 Symbole mit minimalen Abständen (nach dem EA-Algorithmus, die Eröffnung sollte in einer bestimmten Sekunde auf drei Währungen auf einmal starten)? Wenn es Ihnen nichts ausmacht, könnten Sie einen Codeschnipsel als Beispiel veröffentlichen? Ich werde Ihnen sehr dankbar sein!

Ich vermute, Sie brauchen nur 3 Aufträge für verschiedene Instrumente zu öffnen? Warum nicht eine Flaggenvariable erstellen, zum Beispiel

In globalen Variablen erstellen

int flag=0;
string Symb;

///////////////

weiter

int start()
{
if (условие открытия)
{flag=1;}

if (flag==1)
{
Symb="EURUSD";
OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и
flag=2; ///выходим тк больше мы ни чего не можем сделать
return(0);
}

if (flag==2)
{
Symb="AUDUSD";
OrderSend(Symb,...)
flag=3;
return(0);
}

if (flag==3)
{
Symb="USDJPY";
OrderSend(Symb,...)
flag=0;//Возвращаем флаг в начальное состояние..
return(0);
}
return(0);}


Es wäre auch schön, eine offene Prüfung hinzuzufügen und die Fahne erst zu bewegen, wenn die Prüfung erfolgreich war.

 
Inzer >> :

Wenn dies der gesamte Code ist, lässt er sich nicht einmal kompilieren. Wenn Sie eine Zahl anstelle von Lot einsetzen, funktioniert der EA einwandfrei.


Überprüfen Sie den Datentyp von Lot. Es sollte das Doppelte sein.

 
TheXpert >> :

Also, nur ein kurzer Blick. Ich habe die Begriffe nicht verstanden, aber bei der zweiten Variante gibt es keine Kreuzung.

Und noch etwas: Die Funktion OrderSend gibt ein int-Ticket zurück, so dass es korrekt ist, den Erfolg auf diese Weise zu überprüfen:

In Ihrem Fall müssen Sie prüfen, ob die Angaben falsch sind:

______

Ja, ich weiß nicht, wie es anderen geht, aber für mich klingt das Wort "Experten" wie eine Verhöhnung. Vielleicht ist das der Grund, warum Sie so lange keine Antwort erhalten haben. ;)

Hallo!!!!!!!!!!!!!!

Ja, was auch immer Sie........ sagen, nennen Sie es nicht so..... Experten ist eine Abkürzung für Spezialisten (Menschen mit Wissen, sozusagen Lehrer).

Es ist mir egal...... Ich meinte nur positiv und freundlich ........

Aber keine Sorge........

Ganz am Anfang dieses Threads habe ich nach den MA gefragt. Die Antworten waren sehr clever. Jetzt bin ich wieder dabei.

Eine Idee kam auf.....

int start()
  {
//----
    double MA_0=iMA(NULL, 0, pMA, pSh, mode, price,0);
    double MA_1=iMA(NULL, 0, pMA, pSh, mode, price,1);
        
    if( MA_1< Open[1] && MA_0>Open[0])
     if( CheckOrders(OP_SELL))//продажа
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if( MA_1>Open[1] && MA_0<Open[0])
     if( CheckOrders(OP_BUY))//покупка
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }
//----
   return(0);
  }

Ich habe beschlossen, die Handelsbedingungen ein wenig zu ändern. Aber es funktionierte nicht(((((((( Ich wollte open_1 und open_0 (Eröffnungskurs am ersten Takt und

Open price on a zero bar) Als ich es überprüfte, gab es Fehler, ich musste zur ursprünglichen Version zurückkehren (die ich oben angegeben habe).

Wie mir erklärt wurde, ist open[1] ein Aufruf von array cell mit dem Namen open und dem Index [1]. All dies ist gut...... aber brauchen nur einen offenen Preis auf 1(2,0) bar

Tipps für den Dummy.....)))))))).....

 
Wie kann ich verfolgen, ob ein schwebender Auftrag ausgelöst wurde (z. B. ein Kaufauftrag)? Ist es besser, in der Historie nach der ID zu suchen, oder gibt es eine kürzere Option?
 
fima_ >> :
Wie kann man nachverfolgen, dass der schwebende Auftrag ausgelöst wurde (z. B. beim Kauf)? Ist es besser, ihn anhand seiner ID in der Historie zu suchen, oder gibt es eine kürzere Option?

Versuchen Sie dies

OrderSelect(1, SELECT_BY_POS)

if(OrderOpenTime()!=0)

{

///необходимая операция

}

Dies ist jedoch nur möglich, wenn Sie nur 1 Auftrag haben!

 
Welche Funktion wird verwendet, um den Pip-Wert eines Finanzinstruments zu bestimmen? Zum Beispiel für EURUSD ist der Wert von 0.0001 $10 (beim Handel mit 1 Lot)