Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 127

 
nsd63 Ist es möglich, mit diesem Indikator zu tun

Benötige MQ4-Quellcode

 

Bürger, bitte beraten Sie, wie die Logik im Code ausgedrückt werden kann!

Ich habe auf dem Diagramm MA.... und ich brauche es, um SELL auslösen, wenn die Kerze überquerte die MA nach oben nach unten und BUY, wenn die Kerze von unten nach oben gekreuzt....

Vielen Dank im Voraus!

 
sviter-pro:

Bürger, bitte beraten Sie, wie die Logik im Code ausgedrückt werden kann!

Ich habe auf dem Diagramm MA.... und ich brauche es, um SELL auslösen, wenn die Kerze überquerte die MA nach oben nach unten und BUY, wenn die Kerze von unten nach oben gekreuzt....

Vielen Dank im Voraus!

Es gibt einen Expert Advisor im Terminal, Moving Average.mq4 - dort ist es bereits erledigt. Es funktioniert perfekt

 

Grüße.

Können Sie mir bitte sagen, wie ich eine erstellte Historiendatei mit einem Zeitrahmen, der sich nicht im Tester befindet, in den MT4-Tester "einschleusen" kann (oder andere Optionen)?

Der Punkt ist, dass es einen Expert Advisor, von hier http://tradelikeapro.ru/grafiki-renko/, die eine Echtzeit-Geschichte Datei in der Renko-Kerzen mit einem Nicht-Standard-Zeitrahmen erstellt. Wir müssen es mit der erstellten Datei testen. Die Umbenennung der resultierenden Verlaufsdatei mit einem nicht standardisierten Zeitrahmen hilft jedoch nicht. Der Tester zeigt TestGenerator: keine Verlaufsdaten 'GBPUSD5' von 2017.01.05 bis 2017.06.14 Es wird in Echtzeit erstellt, nicht aus dem Verlauf, weil der Verlauf nicht sehr korrekt wird. Oder Sie können den Indikator selbst so anpassen, dass er ein Diagramm mit dem Standard-Zeitrahmen erstellt und den entsprechenden Zeitrahmen vorher aus der Historie entfernt. Bisher habe ich es nur geschafft, es so zu korrigieren, dass es eine Datei erstellt, die aber leer ist.

Торгуй с удовольствием! Свечи Ренко — построение графика «по кирпичику»
Торгуй с удовольствием! Свечи Ренко — построение графика «по кирпичику»
  • tradelikeapro.ru
Здравствуйте, друзья! На нашем сайте уже было несколько форекс стратегий для торговли по графикам Ренко (Renko), думаю стоит рассмотреть этот тип графиков отдельно, обсудить плюсы и минусы такого подхода к торговле. Также в рамках этого обзора мы познакомимся с альтернативным индикатором для построения графиков Ренко, т.к. часть старых утилит...
 
Andrey Sokolov:

Grüße.

Können Sie mir bitte sagen, wie ich eine erstellte Historiendatei mit einem Zeitrahmen, der sich nicht im Tester befindet, in den MT4-Tester "einschleusen" kann (oder andere Optionen)?

Der Punkt ist, dass es einen Expert Advisor, von hier http://tradelikeapro.ru/grafiki-renko/, die eine Echtzeit-Geschichte Datei in Renko Candlesticks mit einem Nicht-Standard-Zeitrahmen erstellt. Wir müssen es mit der erstellten Datei testen. Die Umbenennung der resultierenden Verlaufsdatei mit einem nicht standardisierten Zeitrahmen hilft jedoch nicht. Der Tester zeigt TestGenerator: keine Verlaufsdaten 'GBPUSD5' von 2017.01.05 bis 2017.06.14 Es wird in Echtzeit erstellt, nicht aus dem Verlauf, weil der Verlauf nicht sehr korrekt wird. Oder Sie können den Indikator selbst so anpassen, dass er ein Diagramm mit dem Standard-Zeitrahmen erstellt und den entsprechenden Zeitrahmen vorher aus der Historie entfernt. Ich habe es bisher nur geschafft, es so zu korrigieren, dass zwar eine Datei erstellt wird, diese aber leer ist.

Das Renko-Diagramm ist das Ergebnis der Überlagerung eines Tiefpassfilters mit einem Backlash auf die Historie. MA ergibt eine glatte Kurve, aber Renko ergibt wegen des Backlashs eine gestufte Kurve. Speichern Sie das Ergebnis der Filterung in einem Array und arbeiten Sie weiter... In ein oder zwei Wochen bin ich frei und werde mich an die Arbeit machen.

 

Können Sie mir sagen, wie man in den Code des Expert Advisor zu schreiben, um 3 Trades auf einmal mit der Möglichkeit der Einstellung LS öffnen?

Hier ist mein Zustand

if(MA_1>MA_2)
ticket=OrderSend(_Symbol,OP_BUY,Lots,Ask,0,Ask-SL*Point,Bid+TP*Point,NULL,0,0,clrGreen);
if(MA_1<MA_2)
ticket=OrderSend(_Symbol,OP_SELL,Lots,Bid,0,Bid+SL*Point,Ask-TP*Point,NULL,0,0,clrRed);

Mir wurde geraten, die Funktion(OrdersTotal()) zu verwenden, aber sie passt nicht zu meinem Fall. Ich habe es so geschrieben

void OnTick()
  {
//---
   double MA_1;
   MA_1=iMA(_Symbol,0,1,0,1,0,0);
   double MA_2;
   MA_2=iMA(_Symbol,0,6,0,1,0,0);
   int ticket=0;
   if(OrdersTotal()<=3)
     {
      if(MA_1>MA_2)
         ticket=OrderSend(_Symbol,OP_BUY,Lots,Ask,0,Ask-SL*Point,Bid+TP*Point,NULL,0,0,clrGreen);
      if(MA_1<MA_2)
         ticket=OrderSend(_Symbol,OP_SELL,Lots,Bid,0,Bid+SL*Point,Ask-TP*Point,NULL,0,0,clrRed);
     }
//---
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }

Es kompiliert gut, keine Fehler, aber es ist nicht geeignet für meinen Fall.

 
Bürgerinnen und Bürger, bitte raten Sie mir, wo ich einen EA (Order Flipper) finden kann...
D.h. die Logik ist wie folgt:
Der erste Auftrag wird durch eine Bedingung eröffnet, und wenn andere Bedingungen auftreten, wird der erste Auftrag geschlossen und der zweite Auftrag durch andere Bedingungen eröffnet!!! Vielleicht gibt es irgendwo etwas darüber zu lesen?

Ich habe getan, was ich konnte, aber die Bestellungen werden nicht geschlossen...

MA1_0 = iMA(_Symbol, _Periode, ma1, 0, ma1_method, ma1_Price, 1);
MA1_1 = iMA(_Symbol, _Periode, ma1, 0, ma1_method, ma1_Price, 2);

MA2_0 = iMA(_Symbol, _Periode, ma2, 0, ma2_method, ma2_Price, 1);
MA2_1 = iMA(_Symbol, _Periode, ma2, 0, ma2_method, ma2_Price, 2);

if(MA1_0 < MA2_0 && MA1_1 >= MA2_1) //verkaufen
{
if(tp > 0) TP = NormalizeDouble(Bid - tp * _Point, _Digits); sonst TP = NULL;
ticket = OrderSend(_Symbol, OP_SELL, lot, Bid, slippage, 0, TP, NULL, Magic, 0, clrRed); //verkaufen
Print("Fehler beim Öffnen einer Verkaufsorder");
}
sonst
{
Print("Erfolgreiche Eröffnung des Verkaufsauftrags");
}
sonst if(MA1_0 > MA2_0 && MA1_1 <= MA2_1)//kaufen
{
ticket_close = OrderClose (ticket, lot, Bid, slippage, clrRed);
Print("Verkaufsauftrag erfolgreich abgeschlossen");
}
sonst
{
Print("Fehler beim Schließen des Verkaufsauftrags");
}
 
Können Sie bitte mitteilen, warum der EA seine Aufträge nicht mehr sieht (öffnet mehrere Aufträge statt einem), wenn es neben seinen Aufträgen noch andere Aufträge gibt? Wenn nur EA's Aufträge - keine Probleme. Bei der Eröffnung einer Bestellung wird die "Medjik" festgelegt, und nur Bestellungen mit dieser "Medjik" werden gemäß den Bedingungen für die Eröffnung der Bestellung ausgewählt.
 
sviter-pro:
Bürgerinnen und Bürger, bitte raten Sie mir, wo ich einen EA (Order Flipper) finden kann...
D.h. die Logik ist wie folgt:
Der erste Auftrag wird durch eine Bedingung eröffnet, und wenn andere Bedingungen auftreten, wird der erste Auftrag geschlossen und der zweite Auftrag durch andere Bedingungen eröffnet!!! Vielleicht gibt es irgendwo etwas darüber zu lesen?

Ich habe getan, was ich konnte, aber die Bestellungen werden nicht geschlossen...

MA1_0 = iMA(_Symbol, _Periode, ma1, 0, ma1_method, ma1_Price, 1);
MA1_1 = iMA(_Symbol, _Periode, ma1, 0, ma1_method, ma1_Price, 2);

MA2_0 = iMA(_Symbol, _Periode, ma2, 0, ma2_method, ma2_Price, 1);
MA2_1 = iMA(_Symbol, _Periode, ma2, 0, ma2_method, ma2_Price, 2);

if(MA1_0 < MA2_0 && MA1_1 >= MA2_1) //verkaufen
{
if(tp > 0) TP = NormalizeDouble(Bid - tp * _Point, _Digits); sonst TP = NULL;
ticket = OrderSend(_Symbol, OP_SELL, lot, Bid, slippage, 0, TP, NULL, Magic, 0, clrRed); //verkaufen
Print("Fehler beim Öffnen einer Verkaufsorder");
}
sonst
{
Print("Erfolgreiche Eröffnung des Verkaufsauftrags");
}
sonst if(MA1_0 > MA2_0 && MA1_1 <= MA2_1)//kaufen
{
ticket_close = OrderClose (ticket, lot, Bid, slippage, clrRed);
Print("Verkaufsauftrag erfolgreich abgeschlossen");
}
sonst
{
Print("Fehler beim Schließen des Verkaufsauftrags");
}

Verkaufsauftrag wird zum Briefkurs geschlossen

 
Anatoliy Ryzhakov:
Können Sie bitte mitteilen, warum der EA nicht mehr seine eigenen Aufträge sieht (öffnet mehrere Aufträge statt einem), wenn es andere Aufträge neben seinen eigenen gibt? Wenn die Aufträge nur die des EA sind, gibt es kein Problem. Bei der Eröffnung einer Bestellung wird die "Medjik" festgelegt, und nur Bestellungen mit dieser "Medjik" werden gemäß den Bedingungen für die Eröffnung der Bestellung ausgewählt.

Sie haben eine Pause und müssen weitermachen

Grund der Beschwerde: