Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 748

 
RogozaIV:
Ich bin vor kurzem von mql4 auf mql5 umgestiegen. Ich teste einen Expert Advisor auf dem RTS Index und habe ein Problem mit der Eröffnung mehrerer Positionen, obwohl eine der Bedingungen für die Eröffnung einer Position ist, wenn (...OrdersTotal()==0). Warum funktioniert diese Bedingung nicht? Was kann ich tun, um nur eine Stelle zu eröffnen?

BestellungenGesamt

OrdersTotal Gibt die Anzahl der aktiven Aufträge zurück.

PositionenGesamt

PositionsTotal Gibt die Anzahl der offenen Positionen zurück.


Hinweis

Es sollte keine Verwechslung zwischen aktivenschwebenden Aufträgen und Positionen geben, die auch auf der Registerkarte "Handel" des Bereichs "Toolbox" angezeigt werden. Ein Auftrag ist ein Auftrag zur Ausführungeines Geschäfts, während eine Position das Ergebnis eines oder mehrererGeschäfte ist.

Beim "Netting" von Positionen (ACCOUNT_MARGIN_MODE_RETAIL_NETTING undACCOUNT_MARGIN_MODE_EXCHANGE) kann für jedesSymbol zu jedem Zeitpunkt nur einePosition eröffnet werden, die das Ergebnis eines oder mehrererGeschäfte ist. Positionen und aktiveschwebende Aufträge, die auch in der Registerkarte "Handel" des "Toolbox"-Panels angezeigt werden, sind nicht miteinander zu verwechseln.

Bei unabhängiger Darstellung von Positionen (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) können für jedes Symbol mehrere Positionen gleichzeitig eröffnet werden.


Das heißt, mitOrdersTotal überprüfen Sie, wie viele RETAILED ORDERS es im Moment gibt:

AUFTRAGSART_KAUF_LIMIT

Pending Buy Limit Auftrag

AUFTRAGSART_VERKAUF_LIMIT

Pending Sell Limit Order

AUFTRAGSART_KAUFEN_STOPP

Ausstehender Kauf-Stop-Auftrag

AUFTRAGSART_VERKAUF_STOP

Pending Sell Stop Auftrag

AUFTRAGSART_KAUFEN_STOPP_LIMIT

Wenn der Auftragspreis erreicht ist, wird ein schwebender Kauf-Limit-Auftrag zum StopLimit-Preis platziert.

AUFTRAGSART_VERKAUF_STOPP_LIMIT

Wenn der Orderpreis erreicht ist, wird eine schwebende Sell-Limit-Order zum StopLimit-Preis platziert.


und Sie müssen prüfen, wie viele offene Stellen es zu diesem Zeitpunkt gibt:

POSITION_TYPE_BUY

Kaufen

POSITION_TYPE_SELL

Verkaufen


- Hierfür sollte PositionsTotal verwendet werden.

 

Vladimir Karputov Vielen Dank!

 
Agat:
Guten Tag. Nach dem letzten MT5-Update auf Build 1604 funktionieren meine Indikatoren nicht mehr richtig. Ich verwende
Sogenannte "flüssige" Indikatoren. Ich habe zum Beispiel mehrere mehrperiodige Stochastiken in einem Fenster. Nun, jetzt sind die Kurzen gezogen
Wie bisher werden die etwas längeren nur wenige Takte gezeichnet und die längsten überhaupt nicht.

Ich habe den Eindruck, dass sie plötzlich keine Geschichte mehr haben. Können Sie mir sagen, woran das liegen könnte?
Es stellte sich heraus, dass die Störung in denjenigen MTs auftrat, in denen die unteren Zeitrahmen nicht geöffnet waren. Ich musste Charts von M1 und höher öffnen und alles war in Ordnung. Die Angelegenheit ist nun abgeschlossen.
 
Ja, du hast dich zu früh gefreut. Wenn du das Terminal neu startest, ist es dasselbe, du musst dich jedes Mal durch alle Charts klicken.
Das ist nicht gut, das kann nicht funktionieren. Kann sich wenigstens jemand zur Sache äußern oder nicht? Offensichtlich ist die Aktualisierung fehlerhaft.

Wohin wenden sich Menschen mit solchen Fragen?
 
Hallo! 2017.06.02_17:45 GMT+3. Ich habe eine Frage. Das .mq5-Programm hat seine Lot-Berechnung geschrieben, -- das Ergebnis, -- das Programm im Strategietester versucht, einen Handel mit einem unzulässig großen Lot zu eröffnen. Risikoprozentsatz 1,09. Der Einlagenbetrag ist größer als die Einlage (standardmäßig 10.000 $). Ich habe versucht, die Standard-OOP-Datei aus dem Ordner Include>Expert>Money>MoneyFixedRisk.mqh zu verwenden. Ergebnis: Das Programm versucht, einen Handel mit Null-Lot zu eröffnen. (0.00). Ich glaube, das ist ein Trick der Firmenprogrammierer. Oder übersehe ich etwas? Nun, machen Sie Ihren EA nutzlos. Biegen Sie die Partie an der Seite. Vielleicht, wer weiß, was ich schreiben sollte, so dass der Expert Advisor würde Geschäfte mit dem berechneten Lot zu öffnen, mit dem angegebenen Prozentsatz des Risikos? Ich kann es nicht selbst tun, ich verschwende meine Zeit. Ich hoffe, die Programmierer unseres Unternehmens werden nicht beleidigt sein. Ich füge die beigefügte Datei Lot.mqh bei. Ich hoffe, dass jemand antworten wird. 18:00 GMT+3. Eingefügt um 18:11 GMT+3.
Dateien:
Lot.mqh  2 kb
 
Agat:
Guten Tag. Nach dem letzten MT5-Update auf Build 1604 funktionieren meine Indikatoren nicht mehr richtig. Ich verwende
Sogenannte "flüssige" Indikatoren. Ich habe zum Beispiel mehrere mehrperiodige Stochastiken in einem Fenster. Nun, jetzt sind die Kurzen gezogen
Wie bisher werden die etwas längeren nur wenige Takte gezeichnet und die längsten überhaupt nicht.

Ich habe den Eindruck, dass sie plötzlich keine Geschichte mehr haben. Können Sie mir sagen, woran das liegen könnte?


Wie erhält man Zugang zur Geschichte einer anderen Epoche? Welche Kontrollen führen Sie für den Zugang durch? Welche Fehlercodes erhalten Sie?

 
Николай Никитюк:
Hallo! 2017.06.02_17:45 GMT+3. Ich habe eine Frage. Das .mq5-Programm hat seine Lot-Berechnung geschrieben, -- das Ergebnis, -- das Programm im Strategietester versucht, einen Handel mit einem unzulässig großen Lot zu eröffnen. Risikoprozentsatz 1,09. Der Einlagenbetrag ist größer als die Einlage (standardmäßig 10.000 $). Ich habe versucht, die Standard-OOP-Datei aus dem Ordner Include>Expert>Money>MoneyFixedRisk.mqh zu verwenden. Ergebnis: Das Programm versucht, einen Handel mit Null-Lot zu eröffnen. (0.00). Ich glaube, das ist ein Trick der Firmenprogrammierer. Oder übersehe ich etwas? Nun, machen Sie Ihren EA nutzlos. Biegen Sie die Partie an der Seite. Vielleicht, wer weiß, was ich schreiben sollte, so dass der Expert Advisor würde Geschäfte mit dem berechneten Lot zu öffnen, mit dem angegebenen Prozentsatz des Risikos? Ich kann es nicht selbst tun, ich verschwende meine Zeit. Ich hoffe, die Programmierer unseres Unternehmens werden nicht beleidigt sein. Ich füge die beigefügte Datei Lot.mqh bei. Ich hoffe, dass jemand antworten wird. 18:00 GMT+3. Eingefügt um 18:11 GMT+3.

Führen Sie diesen EA aus:Money Fixed Risk- ändern Sie beide Eingabeparameter und sehen Sie sich die Ausdrucke auf der Registerkarte "Experts" des Terminals an.
 

Ich kann keine Indikatordaten in meinem Indikator erhalten.

int OnInit()
  {  
   handle1=iMA(NULL,0,per1,0,MODE_LWMA,PRICE_CLOSE);
   handle2=iMA(NULL,0,PLength1,0,MODE_LWMA,PRICE_CLOSE);
  }
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int copied1=CopyBuffer(handle1,0,0,toCount,TMP_Buf1);
   if(copied1<=0)
     {
      Sleep(50);
      for(int i=0;i<100;i++)
        {
         if(BarsCalculated(handle1)>0)
            break;
         Sleep(50);
        }
      copied1=CopyBuffer(handle1,0,0,toCount,TMP_Buf1);
      if(copied1<=0)
        {
         Print(__FUNCTION__+": copying indicator data failed. Error=",GetLastError());
         return(0);
        }
     }  
   int copied2=CopyBuffer(handle2,0,0,toCount,TMP_Buf2);
   if(copied2<=0)
     {
      Sleep(50);
      for(int i=0;i<100;i++)
        {
         if(BarsCalculated(handle2)>0)
            break;
         Sleep(50);
        }
      copied2=CopyBuffer(handle2,0,0,toCount,TMP_Buf2);
      if(copied2<=0)
        {
         Print(__FUNCTION__+": copying indicator data failed. Error=",GetLastError());
         return(0);
        }
     }
  }

Nichts wird kopiert. Die kopierten1/2 -Variablen sind immer kleiner als Null. Im Debugger komme ich nicht weiter als bis zu diesem Code. Wie mache ich es richtig, mein Kopf ist schon kaputt.

 
Hmm... vorher gab es einen Fehler 4806, jetzt ist es 4807, wenn ich die Handle-Erstellung zu OnInit() verschoben habe. Wie macht man das?
 
Ich glaube, ich habe es herausgefunden. Der Griff wurde nicht erstellt. Ich habe nicht alle Daten initialisiert.
Grund der Beschwerde: