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

 
MakarFX:

Ich denke, es sollte folgendermaßen aussehen

Wenn wir in OnTick() jedes Mal ein neues Objekt erstellen, wird die Zeit des vorherigen Ticks nirgendwo gespeichert.
Der Sinn des Erstellens eines globalen Objekts ist es, die Zeit des vorherigen Ticks zu speichern, und durch den Vergleich mit der Zeit des neuen Ticks wissen wir, ob es einen neuen Balken gibt oder nicht...

 
MakarFX:
Warum brauchen wir diese Variable NB_M1?
Ihr einziger Zweck ist es, die Zeit des letzten verarbeiteten Ticks für jedes Symbol und jeden Zeitrahmen zu speichern:
protected:
   datetime          m_TOld;        // Время хранится 
   ENUM_TIMEFRAMES   m_TimeFrame;   //    для каждого таймфрейма
   string            m_Symbol;      //    каждого символа

 
Mikhail Tkachev:
class CIsNewBar

gibt true/false zurück, um welche Uhrzeit geht es?

 
MakarFX:

Probieren Sie es aus, im Testgerät ist es in Ordnung.

Nein, das ist es nicht. Jetzt wird ein Vertrag nach dem anderen geöffnet und geschlossen.

Die Idee ist, einen zusätzlichen Kontrakt zu eröffnen, wenn der Trailing-Stopp von Brake selbst nachgezogen wird.

Es tut alles gehorsam. Aber ich sehe den Nachteil, dass bei Stop-Loss=150 Pips und Take-Profit=500 Pips bis zu fünf Kontrakte geöffnet werden und auch oft der Stop-Loss nachgezogen wird.
Ich habe jedoch festgestellt, dass der Kauf von fünf Kontrakten zu einem Rückgang des Markteintrittspreises führt und somit das Risiko/die Marge viel höher ist.
Aus diesem Grund möchte ich es Trailing einen Vertrag zu machen, und es zieht bis zu Take Profit maximal zwei Verträge, und Trailing Stop Loss passt bis zu fünf Mal.
Aus diesem Grund sind Trailingorder (zusätzlicher Kauf und zusätzlicher Verkauf) und Trailing (Trailing Stop Loss) in meinem Roboter
 
Eugen8519:
Nein, das ist es nicht, es wird jeweils ein Vertrag geöffnet und geschlossen.

Die Idee ist, dass sich der Trailing-Kontrakt öffnet und der Trailing-Stopp von Brake even nach oben gezogen wird.

Es tut alles gehorsam. Aber ich sehe einen Nachteil darin, dass bei Stop Loss=150 Pips und Take Profit=500 Pips bis zu fünf Kontrakte geöffnet werden und auch oft ein Stop Loss gezogen wird.
Ich habe jedoch festgestellt, dass der Kauf von fünf Kontrakten zu einem Rückgang des Markteintrittspreises führt und somit das Risiko/die Marge viel höher ist.
Aus diesem Grund möchte ich es Trailing einen Vertrag zu machen, und es zieht bis zu Take Profit maximal zwei Verträge, und Trailing Stop Loss passt bis zu fünf Mal.
Daher wurden dem Roboter Trailing-Order (zusätzlicher Kauf und zusätzlicher Verkauf) und Trailing (Trailing Stop Loss) hinzugefügt

Korrigieren Sie hier "0" auf "2".

   if(pos_total<=0 )
      {TrailingOrder();}
   Trailing();
 

ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN wie kann man dieses Problem automatisch lösen?

Vielleicht hat jemand ein fertiges Exemplar?

 
Aleksandr Egorov:

ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN wie kann man dieses Problem automatisch lösen?

Vielleicht hat jemand ein fertiges Beispiel?

In der Dokumentation finden Sie ein fertiges Beispiel. Zunächst müssen Sie jedoch eine Ausfüllrichtlinie für ein Symbol festlegen. Suche nach SYMBOL_FILLING_FOK

 
Aleksandr Egorov:

ORDER_FILLING_FOK ORDER_FILLING_IOC ORDER_FILLING_RETURN wie kann man dieses Problem automatisch lösen?

Vielleicht hat jemand ein fertiges Modell?

MqlTradeRequest direkt selbst ausfüllen?

Es gibt zu viele Fallstricke!

Sehen Sie sich CTrade::FillingCheck() an - wie die Entwickler empfehlen, die Füllung zu definieren

 
Guten Tag zusammen. Ist jemandem eine ähnliche Situation begegnet? Im Allgemeinen gibt es einen skalierbaren Oszillator. Ich muss programmatisch wissen, was die aktuellen Extremwerte der Skala des sichtbaren Fensters dieses Oszillators sind. Ich hoffe, ich verstehe, was ich sage.) Für Hilfe wäre ich sehr dankbar!
 
AMarkov:
Guten Tag zusammen. Vielleicht hat jemand eine ähnliche Situation erlebt? Im Allgemeinen gibt es einen skalierbaren Oszillator. Ich muss programmatisch wissen, was die Extremwerte der Skala des sichtbaren Fensters dieses Oszillators im Moment sind. Ich hoffe, ich verstehe, was ich sage.) Für Hilfe wäre ich sehr dankbar!
bool  ChartGetInteger( 
   long    chart_id,        // идентификатор графика 
   int     prop_id,         // идентификатор свойства 
   int     sub_window,      // номер подокна 
   long&   long_var         // сюда примем значение свойства 
   );

mit den Bezeichnungen CHART_PRICE_MIN und CHART_PRICE_MAX

Grund der Beschwerde: