Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1223

 
Yurij Kozhevnikov:

Statische Variablen werden nicht neu initialisiert, wenn die Eingabeparameter, der Zeitraum der Kurve usw. geändert werden.

Gibt es nicht irgendeinen Ohrentrick, um sie zwangsweise zu reinitialisieren? Längerer Weg grob gedacht, gibt es nicht einen einfachen und kurzen?

Initialisieren Sie bei oninit und machen Sie sie nicht statisch. Plötzlich

 
Ich danke Ihnen. Ein Lächeln ist immer besser als ein negatives Lächeln.
 
Hallo! Der Server des MT5 von AMP Global ist ausgefallen. Ein erneutes Scannen des Netzwerks hilft nicht. Auch ein erneutes Logging hilft nicht.
Dateien:
 

Salud!

Was bedeuten "ungültige ex4-Datei (7)" und "globale Initialisierung fehlgeschlagen"?

 
Yurij Kozhevnikov:
Ich danke Ihnen. Ein Lächeln ist immer besser als eine Absage.
Ich kann mich nicht erinnern, etwas Negatives gesagt zu haben, das nicht beabsichtigt war, aber egal.

MQL ist nicht ganz (überhaupt nicht) C plus. Statische Klassenmitglieder oder Variablen sollten nicht in Funktionen enthalten sein. Sie verursachen viele Probleme, und diese Probleme sind dann schwer zu lokalisieren.

Nur auf allerhöchstem Niveau, in einem bestimmten EA, durch intensives Nachdenken.
 

Hallo zusammen!!!

  1. Es gibt eine Reihe von Werten - 500 MA für jeden Balken

Wie können wir die resultierenden Gurtzeuge berechnen?:

- Beim Richtungswechsel ?

Es wurde mir empfohlen, in die Kohonen-Karten einzutauchen, aber ich konnte es nicht herausfinden!

 
Top2n:

Hallo zusammen!!!

  1. Es gibt eine Reihe von Werten - 500 MA für jeden Balken

Wie können wir die resultierenden Gurtzeuge berechnen?:

- Beim Richtungswechsel ?

Mir wurde geraten, in Kohonen Maps einzutauchen, aber ich konnte es nicht herausfinden!

Was sind Ihre mAs?

Wenn SMA, können Sie wahrscheinlich mit der Schularithmetik auskommen. Merken Sie sich einfach die Formel :-)

 

Salud!
Es gibt einen Code, der einen Stop in Breakeven (z.B. für Verkäufe) umsetzt:

if(PositionGetDouble(POSITION_SL)>PositionGetDouble(POSITION_PRICE_OPEN) && ask()<PositionGetDouble(POSITION_PRICE_OPEN)-BreakEven) {
                     //Comment("Modify sell");
                     MqlTradeRequest request;
                     MqlTradeResult  result;
                     ulong  position_ticket  = PositionGetTicket(i);// тикет позиции
                     string position_symbol  = PositionGetString(POSITION_SYMBOL); // символ
                     int    digits           = (int)SymbolInfoInteger(position_symbol,SYMBOL_DIGITS); // количество знаков после запятой

                     double sl               = PositionGetDouble(POSITION_PRICE_OPEN);  // Stop Loss позиции

                     double tp               = PositionGetDouble(POSITION_TP);  // Take Profit позиции
                     ENUM_POSITION_TYPE type = (ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);  // тип позиции
                     ZeroMemory(request);
                     ZeroMemory(result);
                     request.action          = TRADE_ACTION_SLTP; // тип торговой операции
                     request.position        = position_ticket;   // тикет позиции
                     request.symbol          = position_symbol;     // символ
                     request.sl              = NormalizeDouble(sl,digits);                // Stop Loss позиции
                     request.tp              = tp;                // Take Profit позиции
                     request.magic = Magic;

                     //--- вывод информации о модификации
                     PrintFormat("BreakEven POSITION_TYPE_SELL Modify #%I64d %s %s",position_ticket,position_symbol,EnumToString(type));
                     //--- отправка запроса
                     if(!OrderSend(request,result))
                        PrintFormat("BreakEven POSITION_TYPE_SELL OrderSend error %d",GetLastError());  // если отправить запрос не удалось, вывести код ошибки
                     //--- информация об операции
                     PrintFormat("BreakEven POSITION_TYPE_SELL retcode=%u  deal=%I64u  order=%I64u",result.retcode,result.deal,result.order);
                  }

Wenn die Stop-Definitionslinie auf dem Niveau des Eröffnungskurses liegt, wie folgt:

double sl               = PositionGetDouble(POSITION_PRICE_OPEN);  // Stop Loss позиции

dann ok, es überträgt die Haltestelle ohne Probleme.

Aber wie kann ich hier hinzufügen, dass es nicht zum Eröffnungskurs, sondern darunter liegt?

double sl               = PositionGetDouble(POSITION_PRICE_OPEN)-SymbolInfoDouble(_Symbol,SYMBOL_POINT);  // Stop Loss позиции

oder:

double sl               = PositionGetDouble(POSITION_PRICE_OPEN)-1.0;  // Stop Loss позиции (для РТС например и других фондовых штуковин)

Dann fliegen sofort Probleme auf. Sagt, es sind falsche Haltestellen:

2020.07.29 13:06:24.127 Trades  '723763': failed modify #16003799 sell 1 RTS-9.20 sl: 126900, tp: 124470 -> sl: 126379, tp: 124470 [Invalid stops]

Sie können zwar die Zeiger bewegen und den Anschlag unterschreiten. Bitte beraten Sie mich, wie ich diesen Fall lösen kann?

 

Guten Tag zusammen!


Ich bin ein Neuling - habe mich gerade mit dem Broker "opening" verbunden - habe MT5 auf meinem iPhone installiert und kann mich nicht mit meinem Handelskonto verbinden. Mein iPhone benötigt ein Zertifikat. Mein Makler hat mir auch die Bescheinigung geschickt. Ich weiß nicht, wie ich es auf dem iPhone installieren kann. Können Sie mir sagen, wie man es installiert? Vielen Dank im Voraus!

 
Guten Tag, wie kann eine Bedingung in OnTimer gesetzt werden? Kann Time[0] TimeCorrect verglichen werden?
Grund der Beschwerde: