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

 
Es gibt einen bestehenden MT4-Handelsroboter, ich füge den Code mit dem Link zum Handelskonto hinzu, aber er schlägt immer noch fehl. Wirft einen Fehler. Ich brauche jemanden, der mir hilft, es zu tun. mein Telegramm@Starinkov ich wäre sehr dankbar)))
 

Ich hoffe, dass die Übersetzung originalgetreu sein wird, aber das wird sie natürlich nicht sein...

Aus diesem und anderen Gründen brauchen wir KEINE Global THREADS...

Sonst gäbe es keine Regionalforen...

Bizarrer Schachzug...

:(

 
Hallo! Ich habe einen Computer mit 24 Kernen gebaut, um die Optimierung zu beschleunigen und die Leistung von Strategien auf kleinen TFs wie M1, M2 usw. optimieren zu können. Wenn ich es starte, sehe ich, dass der Prozess gelegentlich einfriert und für eine lange Zeit hängen bleibt. Ich füge drei Bilder davon bei. Auf meinem alten Computer (8 Kerne) passiert so etwas nicht. Außerdem bringt es keinen Vorteil, einen leistungsfähigen Computer zu verwenden, weil er nicht mehr funktioniert. Zurzeit kann ich sehen, dass 8 Kerne ein schnelleres Ergebnis als 24x liefern, und ich wollte eine 10-fache Beschleunigung erreichen. Vielleicht muss ich irgendwo noch etwas anpassen? Wenn jemand weiß, woran es liegen könnte, bitte ich um einen Hinweis.
 

Hallo.

Ich möchte eine universelle Include-Datei erstellen, die in jeden EA eingebunden werden kann. Und es sollte auf eine Aufnahme ohne zusätzlichen Code beschränkt sein.

Das Problem ist, dass die Datei OnTimer() als Eingabepunkt verwendet.

Was ist, wenn EA (mit dem meine Include-Datei verbunden ist) auch OnTimer() verwendet? Gibt es eine Lösung?

 

Guten Tag. Ich handle an der Moex-Börse. Makler Otkritie. Wenn es offene Positionen für mehrere Instrumente gibt, bringt der Roboter sie durcheinander, wenn er eine Aufforderung zur teilweisen Schließung sendet (er kann z. B. eine Aufforderung mit dem Preis von Sberbank-Aktien für Magnit-Aktien senden). D.h. das Instrument in der Anfrage ist für Magnit angegeben, aber die Preise sind für Sberbank angegeben) oder sendet die Anfrage einfach nicht. Code des Schließungsalgorithmus für Long-Positionen (wird ausgeführt, wenn der Preis des Instruments Price_Close_1_Buy erreicht ist):

void Price_Close_1_Buy()
  {

   MqlTradeRequest arequest;
   MqlTradeResult aresult;
   ZeroMemory(arequest);
   ZeroMemory(aresult);

   for(int i=PositionsTotal()-1; i>=0; i--)
      {
       if(Symbol()==PositionGetSymbol(i))
      {
       arequest.action   = TRADE_ACTION_DEAL;
       arequest.position = PositionGetTicket(i);
       arequest.symbol   = Symbol();
       arequest.volume   = NormalizeDouble((Lots_Close_1/100*Lots_current()),0);
       arequest.price    = aposition.PriceCurrent();
       arequest.type_filling = ORDER_FILLING_FOK;
       arequest.type     = ORDER_TYPE_SELL;
       Price_Close_1_Buy_Request_Send = true;
      }
       OrderSend(arequest,aresult);
       Print("=================================================================================================== ");
       Print(asymbol.Name());
       Print("Price_Close_1_Buy_request() ",arequest.price);
       Print("Lots_Close_1_Buy_request() ",arequest.volume);
       Print("Result ", aresult.comment);
       Print("Retcode ",aresult.retcode);
      }
  }
 
leonerd #:

Hallo.

Ich möchte eine universelle Include-Datei erstellen, die in jeden EA eingebunden werden kann. Und es sollte auf eine Aufnahme ohne zusätzlichen Code beschränkt sein.

Das Problem ist, dass die Datei OnTimer() als Eingabepunkt verwendet.

Was ist, wenn EA (mit dem meine Include-Datei verbunden ist) auch OnTimer() verwendet? Gibt es eine Lösung?

Tun Sie das niemals.

Nur ein kleiner Ratschlag. Ich werde meine Meinung nicht ändern.

 
Manter84 es offene Positionen für mehrere Instrumente gibt, bringt der Roboter sie durcheinander, wenn er eine Aufforderung zur teilweisen Schließung sendet (er kann z. B. eine Aufforderung mit dem Preis von Sberbank-Aktien für Magnit-Aktien senden). D.h. das Instrument in der Anfrage ist für Magnit angegeben, aber die Preise sind für Sberbank angegeben) oder sendet die Anfrage einfach nicht. Code des Schließungsalgorithmus für Long-Positionen (wird ausgeführt, wenn der Preis des Instruments Price_Close_1_Buy erreicht):
Zur Frage des Preises - graben
aposition.PriceCurrent()
 
Koldun Zloy #:

Tun Sie das niemals.

Nur ein kleiner Ratschlag. Ich werde Sie nicht umstimmen.

Dies sind die Anforderungen des Projekts.

 

Wie kann ich die Standardfunktion OrderSend() außer Kraft setzen?

#define OrderSend(MqlTradeRequest,MqlTradeResult)  MyOrderSend(MqlTradeRequest,MqlTradeResult)

Ich habe obeneine Zeile hinzugefügt.

In meinem MyOrderSend() führe ich einige Berechnungen durch und rufe OrderSend() erneut auf. Ich möchte die native Funktion OrderSend() aufrufen, aber stattdessen erhalte ich eine Rekursion und MyOrderSend() wird erneut aufgerufen.

Und auch dieser Aufruf hilft nicht weiter::OrderSend()
 
leonerd #:

Wie kann ich die Standardfunktion OrderSend() außer Kraft setzen?

Ich habe obeneine Zeile hinzugefügt.

In meinem MyOrderSend() führe ich einige Berechnungen durch und rufe OrderSend() erneut auf. Ich möchte die native Funktion OrderSend() aufrufen, aber stattdessen erhalte ich eine Rekursion und MyOrderSend() wird erneut aufgerufen.

Das geht so gar nicht. #define ersetzt im Programmcode das Erste (den Aufruf) durch das Zweite, als OrderSend(..) wird bei jedem Auftreten ersetzt durch MyOrderSend(..)

Grund der Beschwerde: