Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 972

 
rapid_minus:

Bonjour !

Encore une fois, je n'arrive pas à comprendre ce qui semble être une chose élémentaire - pourquoi tout semble être conforme à l'aide, mais le résultat imprime 0.0 ?

Pourquoi la valeur fractale n'est-elle pas extraite ?

Il faut au moins trois barres pour une fractale.
 

//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#lien de propriété "https://www.mql5.com"
#propriété version "1.00"
#propriété stricte

double gdClose_array[1] ;

//+------------------------------------------------------------------+
//| Fonction d'initialisation de l'expert |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED) ;
}
//+------------------------------------------------------------------+
//| Fonction de désinitialisation experte |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| fonction tick expert |
//+------------------------------------------------------------------+
void OnTick()
{
//---
int x=Fr_sign() ;
Imprimer(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] ;
Imprimez ("dX ", dX) ;
dX=NormalizeDouble(gdClose_array[0],Digits) ;
Print ("NormalizeDouble(dX,Digits) ", dX) ;
retour(0) ;
}
//+------------------------------------------------------------------+

En conséquence, j'obtiens

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

même valeur par test

 
Vinin:
Il faut au moins trois barres pour une fractale.
Je dois venir du mauvais côté. Tout conseil - voici une fractale sur 1 barre. Je dois comparer sa valeur avec les valeurs des lignes de Bollinger pour déterminer si la fractale est à l'intérieur ou à l'extérieur. Comment puis-je représenter cela dans le code ?
 
Ha ! J'ai compris - les fractales ne sont pas nécessaires du tout, du moins pas pour mes objectifs. Vous devez comparer le prix minimum ou maximum de la barre avec la valeur supérieure ou inférieure des lignes de Bollinger, car une fractale a la valeur du haut ou du bas de la barre sur laquelle elle est apparue. N'est-ce pas ?
 

Une fractale est la valeur du haut ou du bas sur 5 barres.

Le fait d'avoir des données sur une seule barre ne vous donnera pas la valeur fractale correcte.

 
n0name:

Une fractale est la valeur du haut ou du bas sur 5 barres.

Le fait d'avoir des données sur une seule barre ne vous donnera pas la valeur fractale correcte.

En plaçant l'indicateur "fractals" sur le graphique, vous verrez immédiatement que les flèches de l'indicateur sont positionnées sur la barre maximale ou minimale, et que leurs valeurs sont égales au haut ou au bas de cette barre. Le nombre de barres sur lesquelles les fractales sont calculées n'a pas d'importance. De toute façon, ce n'est pas important pour ma stratégie.

Merci quand même.

 
n0name:

...

En conséquence, j'obtiens

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

même valeur par test

A) Pour coller correctement le code ici sur le forum, cliquez sur SRC et ensuite dans le champ qui s'ouvre le code lui-même.


B) Essayez le code suivant.

#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 : Prix de clôture = 1.06181

2015.12.01 22:24:09.433 2015.11.27 10:04 111 EURUSD,H1 : Prix de clôture = 1.06181

2015.12.01 22:24:09.701 2015.11.30 23:59 111 EURUSD,H1 : Prix de clôture = 1.06181

essayé une autre paire

2015.12.01 22:35:58.830 2015.11.30 23:59 111 GBPUSD,H1 : Prix de clôture = 1.50718

2015.12.01 22:35:58.683 2015.11.27 20:59 111 GBPUSD,H1 : Prix de clôture = 1.50718

2015.12.01 22:35:50.434 2015.09.17 21:55 111 GBPUSD,H1 : Prix de clôture = 1.50718

 
n0name:

2015.12.01 22:24:01.683 2015.10.02 17:49 111 EURUSD,H1 : Prix de clôture = 1.06181

2015.12.01 22:24:09.433 2015.11.27 10:04 111 EURUSD,H1 : Prix de clôture = 1.06181

2015.12.01 22:24:09.701 2015.11.30 23:59 111 EURUSD,H1 : Prix de clôture = 1.06181

essayé une autre paire

2015.12.01 22:35:58.830 2015.11.30 23:59 111 GBPUSD,H1 : Prix de clôture = 1.50718

2015.12.01 22:35:58.683 2015.11.27 20:59 111 GBPUSD,H1 : Prix de clôture = 1.50718

2015.12.01 22:35:50.434 2015.09.17 21:55 111 GBPUSD,H1 : Prix de clôture = 1.50718

Je ne peux pas reproduire, je ne sais pas d'où vient la deuxième date, j'ai ceci

2015.12.01 22:10:04.250 111 EURUSD,H1 : Prix de clôture = 1.06336
2015.12.01 22:10:00.531 111 EURUSD,H1 : Prix de clôture = 1.06336

2015.12.01 22:10:00.531 est la date et l'heure ;

111 - nom du conseiller expert ;

EURUSD,H1 - nom du symbole et cadre temporel ;

Prix de clôture = 1.06336 - prix de clôture de la bougie avec l'indice 1 (l'heure précédente), donc vous l'aurez jusqu'à ce que la nouvelle heure arrive.

 
Mislaid:

Je ne peux pas reproduire, je ne sais pas d'où vient la deuxième date, j'ai ceci

2015.12.01 22:10:04.250 111 EURUSD,H1 : Prix de clôture = 1.06336
2015.12.01 22:10:00.531 111 EURUSD,H1 : Prix de clôture = 1.06336

2015.12.01 22:10:00.531 est la date et l'heure ;

111 - nom du conseiller expert ;

EURUSD,H1 - nom du symbole et cadre temporel ;

Prix de clôture = 1.06336 - prix de clôture de la bougie avec l'indice 1 (heure précédente), vous recevrez ceci jusqu'à la nouvelle heure.

Tout est correct, veuillez faire un test en sélectionnant quelques jours. Quel sera le résultat ?