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

 
Vladimir Baskakov:

Danke, es funktioniert, nur eine Bedingung ist erfüllt:

Und ich brauche

Aus irgendeinem Grund wird keine Position eröffnet.

int barfrup_1 = GetLastFractals(1,MODE_UPPER);
int barfrup_2 = GetLastFractals(barfrup_1+1,MODE_UPPER);
int barfrdn_1 = GetLastFractals(1,MODE_LOWER);
int barfrdn_2 = GetLastFractals(barfrdn_1+1,MODE_LOWER);

if(High[barfrup_1] < High[barfrup_2] && Low[barfrdn_1] < Low[barfrdn_2] )
if(High[barfrup_1] < High[barfrup_2] && Low[barfrdn_1] > Low[barfrdn_2] )
 
Igor Makanu:

Es funktioniert, aber es öffnet Positionen, nicht nach Bedingung, wo immer es will, in Ordnung

 
Vladimir Baskakov:

Es funktioniert, aber öffnet Positionen, nicht nach Bedingung, wo immer es will, ok

es kann nicht so sein, mein Code ist einfach, wie ZigZag, Fraktal hat Werte nur auf die Bars mit Pfeilen in der Schleife, suchen Sie nach Indikator-Werte, bevor der Pfeil erscheint und die Schleife zu verlassen, geben Sie die fraktale Bar Nummer

Ich habe gerade einen Expert Advisor von Fraktalen gemacht - der Code überprüft wird, und es stellte sich heraus, während des Tests, dass Fraktal auf die Bar Nummer 1 kann überzeichnen - schalten Sie den Visualisierungsmodus des Testers und fügen Sie einen Indikator für Fraktal

 
Igor Makanu:

es kann nicht sein, mein Code ist einfach, das Fraktal, wie ZigZag, hat Werte nur auf den Balken mit Pfeilen, in der Schleife, gehen Sie durch die Indikatorwerte, bis der Pfeil erscheint und die Schleife verlassen, geben Sie die Anzahl der Bar, auf dem das Fraktal ist

Ich habe gerade einen Expert Advisor von Fraktalen gemacht - der Code überprüft wird, und es stellte sich heraus, während des Tests, dass Fraktal auf die Bar Nummer 1 kann überzeichnen - schalten Sie den Visualisierungsmodus des Testers und fügen Sie einen Indikator für Fraktal

Vielleicht sollte das Ergebnis auf 0 oder einen leeren Wert geprüft werden.
 
Aleksei Beliakov:
Vielleicht sollte das Ergebnis auf 0 oder einen leeren Wert geprüft werden

es gibt 0 in leeren Werten, also irgendwie nicht der beste Weg, um mit _Point zu vergleichen

es funktioniert, ich will es nicht beweisen, aber fraktale Indikatorwerte sollten mit diesem Teil des Codes funktionieren

SZY: wieder einmal diskutiere ich aus irgendeinem Grund meinen Code.... je mehr der Code funktioniert, sehe ich den Code der anderen Teilnehmer nicht, ich verstehe nicht, wer ihn am Ende braucht? ))))


PS:Geprüft, weil ich weiß, dass die Frage nicht ruhen wird, alles funktioniert, der Code ist schnell:

#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot Label1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot Label2
#property indicator_label2  "Label2"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrBlue
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- indicator buffers
double         Label1Buffer[];
double         Label2Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Label1Buffer);
   SetIndexBuffer(1,Label2Buffer);
   SetIndexArrow(0,SYMBOL_ARROWUP);
   SetIndexArrow(1,SYMBOL_ARROWDOWN);
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--
   static int limit=0;   
   if(limit>=10) return(rates_total);
   int b_up = 0, b_dn = 0;
   while(limit<=10)
     {
      b_up = GetLastFractals(b_up,MODE_UPPER);
      Label1Buffer[b_up] = high[b_up];
      b_up++;
      b_dn = GetLastFractals(b_dn,MODE_LOWER);
      Label2Buffer[b_dn] = low[b_dn];
      b_dn++;
      limit++;
      }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//_______________________________________________________________________
int GetLastFractals(int bar,int mode) // bar - с какого бара начинать поиск, mode = MODE_UPPER или MODE_LOWER , результат № бара где найден фрактал
  {
   int i=bar; 
   while(i<Bars && iFractals(NULL,0,mode,i)<_Point) i++;
   return(i);
  }
//_______________________________________________________________________

Ergebnis


 
Artyom Trishkin:

ArraySetAsSeries(true) für Indikatorpuffer.

Hat. Ich habe gemäß dem Handbuch
 
Igor Makanu:

es kann nicht sein, mein Code ist einfach, das Fraktal, wie ZigZag, hat Werte nur auf den Balken mit Pfeilen, in der Schleife, gehen Sie durch die Indikatorwerte, bis der Pfeil erscheint und die Schleife verlassen, geben Sie die Anzahl der Bar, auf dem das Fraktal ist

Ich habe gerade einen Expert Advisor von Fraktalen gemacht - der Code ist überprüft, und es stellte sich heraus, während des Tests, dass Fraktal auf der Bar Nummer 1 kann überzeichnen - schalten Sie den Visualisierungsmodus des Testers und fügen Sie einen Indikator für Fraktal,

Nein, meine Position ist offen. Wie es sich gehört, im dritten Takt ein Fraktal. Aber darüber hinaus ist es noch schlimmer. Durch meine Bedingung (fr1_up<fr_2 && fr1_down>fr2_down) wird er nicht gefunden. Das Wesentliche ist die Verdichtung der Preise, die wir durch zwei Fraktale feststellen
 

Ich glaube, ich habe es geschafft!

999

Dateien:
IgorM.mq5  17 kb
 
Aleksandr Klapatyuk:

Ich glaube, ich habe es geschafft!

Was ist das?
 
Vladimir Baskakov:
Welcher ist es?

Objektname über iFractals verschieben

Grund der Beschwerde: