[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 143

 
BooGUY:

Auf einem Fraktal! Ich habe es mit einem Stop-Loss probiert - es ist ein Verlust, ich würde es gerne mit Stops auf Fraktalen probieren, aber ich weiß nicht, wie ich es in die Bedingung schreiben soll. Oder wie man es in einem EA zu schreiben, habe ich einen Eintrag Bedingung geschrieben, etwas wie dieses

if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&

iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&

iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&

iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)

{...???

}


Ich bezweifle anhand Ihres Codes, dass es sich um ein Fraktal handelt. einige Eröffnungs- und Schlusskurse für 4 Perioden.
 
BooGUY:

Auf einem Fraktal! Ich habe es mit einem Stop-Loss probiert - es ist ein Verlust, ich würde es gerne mit Stops auf Fraktalen probieren, aber ich weiß nicht, wie ich es in die Bedingung schreiben soll. Oder wie man es in einem EA zu schreiben, habe ich einen Eintrag Bedingung geschrieben, etwas wie dieses

if(iOpen(NULL,PERIOD_H1,1)<iClose(NULL,PERIOD_H1,1)&&

iOpen(NULL,PERIOD_M30,1)<iClose(NULL,PERIOD_M30,1)&&

iOpen(NULL,PERIOD_M15,1)<iClose(NULL,PERIOD_M15,1)&&

iOpen(NULL,PERIOD_M5,1)<iClose(NULL,PERIOD_M5,1)

{...???

}

Um die Strategie zu testen, ist es einfacher, eine Trailing-Stop-Funktion mit Fraktalen zu finden und sie in Ihren EA einzubinden. Oder Sie können sie selbst schreiben.

Die Funktion verschiebt den Anschlag jeder offenen Position auf das erforderliche Fraktal, das in den Einstellungen festgelegt wurde. Auf der Grundlage der Testergebnisse können wir dann bereits darüber nachdenken, ob es ratsam ist, entweder dieses Schleppnetz zu verwenden oder die Marktpositionen zu schließen, wenn der Preis das fraktale Niveau erreicht. Beides ist nicht leicht zu bewerkstelligen.

Die Standardfunktion iFractals() wird Ihnen dabei helfen. Sie gibt den Preis zurück, zu dem das Fraktal gefunden wurde, wie in den Funktionsparametern angegeben.

 

Hilfe bitte, mein Indikator misst die maximale Minute Bewegung für die aktuelle Stunde auf einer Stunde Zeitrahmen, die ersten 6 Stunden (Bars) es misst alles angemessen, und dann beginnt einige illegale Werte kommen unter dem Code selbst und der Indikator, sagen Sie mir, wo ich falsch ging, obwohl ich nicht Pflege Werte über 3 Bars, aber ich befürchte, dass Fehler auf der ersten Bar auftreten können

#property indicator_separate_window
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_minimum 0
#property indicator_maximum 25
double Buf_0[];             // Объявление массивов (под буферы индикатора)
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
SetIndexBuffer(0,Buf_0);         // Назначение массива буферу   
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
//----
int i;                           // Индекс бара       
int Counted_bars;                // Количество просчитанных баров
int m;
int MaxSpeed;
int Speed; 
//--------------------------------------------------------------------   
Counted_bars=IndicatorCounted(); // Количество просчитанных баров    
i=Bars-Counted_bars-1;           // Индекс первого непосчитанного   
while(i>=0)                      // Цикл по непосчитанным барам     
 {
 
 MaxSpeed=0;
 if (Period()==PERIOD_H1)
  {
  m=59;
  while (m>=0)
   {
   Speed=(iOpen(Symbol(),PERIOD_M1,m+60*i)-iClose(Symbol(),PERIOD_M1,m+60*i))/Point;
   if (MaxSpeed<Speed)
    {
    MaxSpeed=Speed;
    }
   m--;
   }
  }
 if (Period()==PERIOD_M1)
  {
  m=0;
  while (m>=0)
   {
   Speed=(iOpen(Symbol(),PERIOD_M1,m+i)-iClose(Symbol(),PERIOD_M1,m+i))/Point;
   if (MaxSpeed<Speed)
    {
    MaxSpeed=Speed;
    }
   m--;
   }
  }      
 Buf_0[i]=MaxSpeed;             // Значение 0 буфера на i-ом баре      
 i--;                          // Расчёт индекса следующего бара     
 }   
//----
   return(0);
  }
//+------------------------------------------------------------------+
Ich glaube, ich habe einige Fehler im ersten Takt.
Dateien:
speed.mq4  3 kb
 
Jede Menge MASD Vielleicht weiß jemand, wo man so etwas biegen kann????
 
LazarevDenis:

Hilfe bitte, mein Indikator misst die maximale Minute Bewegung für die aktuelle Stunde auf einer Stunde Zeitrahmen, die ersten 6 Stunden (Bars) es misst alles angemessen, und dann beginnt einige illegale Werte kommen unter dem Code selbst und der Indikator, sagen Sie mir, wo ich falsch ging, obwohl ich nicht Pflege Werte über 3 Bars, aber ich befürchte, dass Fehler auf der ersten Bar auftreten können

Ursprünglich hatte ich einen anderen Indikator, ich habe ihn auseinandergenommen und meinen Code "eingelötet"


Was wollten Sie kaufen?
 

Vinin:

Was wolltest du holen?


Ich möchte, dass der Indikator den Maximalwert von iOpen-iClose unter den Minutenbalken anzeigt, aber für HOUR, zum Beispiel für eine Stunde von 59 Minutenbalken iOpen-iClose = 3 (zum Beispiel) und ein Minutenbalken iOpen-iClose = 10 und auf einem Stundenzeitrahmen, muss es 10 ohne Abweichungen zeigen und ich brauche den Indikator, um Aufträge zu schließen, wenn ein Minutenkurs zu schnell in die falsche Richtung geht, dann wird der Berater ein Signal zum Schließen sein

Dies ist die erste Version, und später möchte ich, dass sie in der Lage ist, zu erkennen, in welche Richtung sich der Preis entwickelt.

 

Wenn Sie auf ein grafisches Objekt, z. B. eine horizontale Linie, klicken, sehen Sie in dem sich öffnenden Fenster eine "Beschreibung".

- Ist es möglich, im Code eine "Beschreibung" hinzuzufügen?

Ich danke Ihnen!

 
chief2000:

Wenn Sie auf ein grafisches Objekt, z. B. eine horizontale Linie, klicken, sehen Sie in dem sich öffnenden Fenster eine "Beschreibung".

- Ist es möglich, im Code eine "Beschreibung" hinzuzufügen?

Ich danke Ihnen!

https://docs.mql4.com/ru/objects/ObjectSetText
 

Genau das, was ich brauchte! Ich danke Ihnen!

 

LazarevDenis

Die ursprüngliche Zählung beträgt 59 Takte, was nicht korrekt ist. Es kann zu Lücken in den Minuten kommen, und der letzte Stundenbalken kann weniger Minuten enthalten.

Sie sollten die Öffnungs- und Schließzeit der Stundenleiste (Time[i]) nehmen. Verwenden Sie diese Zeit, um die Offsets für die iBarShift-Minuten zu berechnen, und berechnen Sie dann das Maximum innerhalb dieses Offset-Bereichs.

Übrigens, was sollte der Indikator bei einer Minutenperiode anzeigen?

Wenn die Zahl positiv ist, geht der Preis nach oben, wenn die Zahl negativ ist - nach unten, die Rückkehr der Zahl modulo es wird die Stärke der Bewegung zeigen.

Grund der Beschwerde: