Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 972

 
rapid_minus:

Guten Tag!

Wieder kann ich nicht verstehen, was eine elementare Sache zu sein scheint - warum scheint alles gemäß der Hilfe zu sein, aber das Ergebnis druckt 0,0 ?

Warum wird der fraktale Wert nicht extrahiert?

Für ein Fraktal benötigen Sie mindestens drei Balken.
 

//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#Eigenschaft Version "1.00"
#Eigenschaft streng

double gdClose_array[1];

//+------------------------------------------------------------------+
Experten-Initialisierungsfunktion //|.
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Experten-Tick-Funktion |
//+------------------------------------------------------------------+
void OnTick()
{
//---
int x=Fr_sign();
Print(x);
}
//+------------------------------------------------------------------+

int Fr_sign()
{
int iX;
double dX=0;
int giResult=0;
iX=CopyClose(Symbol(),PERIOD_CURRENT,1,1,gdClose_array);
dX=gdClose_array[0];
Drucken ("dX", dX);
dX=NormalizeDouble(gdClose_array[0],Digits);
Print ("NormalizeDouble(dX,Digits) ", dX);
zurück(0);
}
//+------------------------------------------------------------------+

Als Ergebnis erhalte ich

2015.11.30 23:30:37.645 2015.10.30 22:54 111 EURUSD,H1: NormalizeDouble(dX,Digits) 1.05934

gleicher Wert beim Test

 
Vinin:
Für ein Fraktal benötigen Sie mindestens drei Balken.
Ich komme wohl von der falschen Seite. Jede Beratung - hier ist ein Fraktal auf 1 bar. Ich muss seinen Wert mit den Werten der Bollinger-Linien vergleichen, um festzustellen, ob das Fraktal innerhalb oder außerhalb liegt. Wie kann ich dies im Code darstellen?
 
Ha! Verstanden - Fraktale werden überhaupt nicht benötigt, zumindest nicht für meine Zwecke. Sie müssen den Mindest- oder Höchstkurs des Balkens mit dem oberen oder unteren Wert der Bollinger-Linien vergleichen, da ein Fraktal den Wert des Höchst- oder Tiefstkurses des Balkens hat, auf dem es erschienen ist. Richtig?
 

Ein Fraktal ist der Wert des Hochs oder Tiefs auf 5 Balken.

Mit Daten auf einem einzelnen Balken erhalten Sie nicht den richtigen Fraktalwert.

 
n0name:

Ein Fraktal ist der Wert des Hochs oder Tiefs auf 5 Balken.

Mit Daten auf einem einzelnen Balken erhalten Sie nicht den richtigen Fraktalwert.

Wenn Sie den Indikator "Fraktale" auf dem Chart platzieren, sehen Sie sofort, dass die Pfeile des Indikators auf dem Höchst- oder Tiefstwert des Balkens positioniert sind und ihre Werte dem Höchst- oder Tiefstwert dieses Balkens entsprechen. Es spielt keine Rolle, auf wie vielen Balken die Fraktale berechnet werden. Wie auch immer, für meine Strategie ist das nicht wichtig.

Trotzdem vielen Dank.

 
n0name:

...

Als Ergebnis erhalte ich

2015.11.30 23:30:37.645 2015.10.30 22:54 111 EURUSD,H1: NormalizeDouble(dX,Digits) 1.05934

gleicher Wert beim Test

A) Um den Code korrekt hier im Forum einzufügen, klicken Sie auf SRC und dann in das Feld, das den Code selbst öffnet.


B) Probieren Sie den folgenden Code aus.

#property strict

int OnInit()
  {
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   Fr_sign();
  }
//+------------------------------------------------------------------+

void Fr_sign()
  {
   double gdClose_array[1];
   if(CopyClose(_Symbol,PERIOD_CURRENT,1,1,gdClose_array)!=1) return;

   Print("Close price = ",DoubleToStr(gdClose_array[0],_Digits));
  }
 
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
   }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  Fr_sign();
  }
//+------------------------------------------------------------------+
 void Fr_sign()
  {
   double gdClose_array[1];
   if(CopyClose(_Symbol,PERIOD_CURRENT,1,1,gdClose_array)!=1) return;

   Print("Close price = ",DoubleToStr(gdClose_array[0],_Digits));
  }
//+------------------------------------------------------------------+ 

2015.12.01 22:24:01.683 2015.10.02 17:49 111 EURUSD,H1: Schlusskurs = 1.06181

2015.12.01 22:24:09.433 2015.11.27 10:04 111 EURUSD,H1: Schlusskurs = 1.06181

2015.12.01 22:24:09.701 2015.11.30 23:59 111 EURUSD,H1: Schlusskurs = 1.06181

ein anderes Paar anprobiert

2015.12.01 22:35:58.830 2015.11.30 23:59 111 GBPUSD,H1: Schlusskurs = 1.50718

2015.12.01 22:35:58.683 2015.11.27 20:59 111 GBPUSD,H1: Schlusskurs = 1.50718

2015.12.01 22:35:50.434 2015.09.17 21:55 111 GBPUSD,H1: Schlusskurs = 1.50718

 
n0name:

2015.12.01 22:24:01.683 2015.10.02 17:49 111 EURUSD,H1: Schlusskurs = 1.06181

2015.12.01 22:24:09.433 2015.11.27 10:04 111 EURUSD,H1: Schlusskurs = 1.06181

2015.12.01 22:24:09.701 2015.11.30 23:59 111 EURUSD,H1: Schlusskurs = 1.06181

ein anderes Paar anprobiert

2015.12.01 22:35:58.830 2015.11.30 23:59 111 GBPUSD,H1: Schlusskurs = 1.50718

2015.12.01 22:35:58.683 2015.11.27 20:59 111 GBPUSD,H1: Schlusskurs = 1.50718

2015.12.01 22:35:50.434 2015.09.17 21:55 111 GBPUSD,H1: Schlusskurs = 1.50718

Ich kann es nicht reproduzieren, es ist nicht klar, woher das zweite Datum stammt, ich habe dies

2015.12.01 22:10:04.250 111 EURUSD,H1: Schlusskurs = 1.06336
2015.12.01 22:10:00.531 111 EURUSD,H1: Schlusskurs = 1.06336

2015.12.01 22:10:00.531 ist das Datum und die Uhrzeit;

111 - Name des Expertenberaters;

EURUSD,H1 - Symbolname und Zeitrahmen;

Schlusskurs = 1,06336 - Schlusskurs der Kerze mit dem Index 1 (der vorangegangenen Stunde), also bis zur neuen Stunde.

 
Mislaid:

Ich kann es nicht reproduzieren, es ist nicht klar, woher das zweite Datum kommt, ich habe dies

2015.12.01 22:10:04.250 111 EURUSD,H1: Schlusskurs = 1.06336
2015.12.01 22:10:00.531 111 EURUSD,H1: Schlusskurs = 1.06336

2015.12.01 22:10:00.531 ist das Datum und die Uhrzeit;

111 - Name des Expert Advisors;

EURUSD,H1 - Symbolname und Zeitrahmen;

Schlusskurs = 1,06336 - Schlusskurs der Kerze mit dem Index 1 ( vorherige Stunde ), Sie erhalten diesen bis zur neuen Stunde.

Alles richtig, bitte machen Sie einen Test, indem Sie ein paar Tage auswählen. Was wird das Ergebnis sein?