Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 972

 
rapid_minus:

Buon pomeriggio!

Ancora una volta non riesco ad uscire da quella che sembra essere una cosa elementare - perché tutto sembra essere secondo l'aiuto, ma il risultato stampa 0.0?

Perché il valore frattale non viene estratto?

Hai bisogno di almeno tre barre per un frattale
 

//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#proprietà link "https://www.mql5.com"
#proprietà versione "1.00"
#proprietà rigorosa

doppio gdClose_array[1];

//+------------------------------------------------------------------+
//| Funzione di inizializzazione dell'esperto |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEED);
}
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione dell'esperto |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| funzione tick esperto |
//+------------------------------------------------------------------+
void OnTick()
{
//---
int x=Fr_sign();
Stampa(x);
}
//+------------------------------------------------------------------+

int Fr_sign()
{
int iX;
doppio dX=0;
int giResult=0;
iX=CopyClose(Symbol(),PERIOD_CURRENT,1,1,gdClose_array);
dX=gdClose_array[0];
Stampa ("dX ", dX);
dX=NormalizeDouble(gdClose_array[0],Digits);
Print ("NormalizeDouble(dX,Digits) ", dX);
ritorno(0);
}
//+------------------------------------------------------------------+

Come risultato ottengo

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

stesso valore per test

 
Vinin:
Hai bisogno di almeno tre barre per un frattale
Devo venire dalla parte sbagliata. Qualsiasi consiglio - ecco un frattale su 1 barra. Ho bisogno di confrontare il suo valore con i valori delle linee di Bollinger per determinare se il frattale è dentro o fuori. Come posso rappresentare questo nel codice?
 
Capito - non hai affatto bisogno di frattali, almeno non per i miei scopi. Devi confrontare il prezzo minimo o massimo della barra con il valore superiore o inferiore delle linee di Bollinger, poiché un frattale ha il valore del massimo o del minimo della barra in cui è apparso. Giusto?
 

Un frattale è il valore del massimo o del minimo su 5 barre.

Avere i dati su una singola barra non vi darà il corretto valore frattale.

 
n0name:

Un frattale è il valore del massimo o del minimo su 5 barre.

Avere i dati su una singola barra non vi darà il corretto valore frattale.

Posizionando l'indicatore "frattali" sul grafico, vedrete immediatamente che le frecce dell'indicatore sono posizionate sulla barra massima o minima, e i loro valori sono uguali al massimo o al minimo di quella barra. Non importa su quante barre vengono calcolati i frattali. Comunque, non è importante per la mia strategia.

Grazie comunque.

 
n0name:

...

come risultato ottengo

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

stesso valore per test

A) Per incollare correttamente il codice qui sul forum, clicca su SRC e poi nel campo che si apre il codice stesso.


B) Prova il seguente codice.

#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: Prezzo di chiusura = 1,06181

2015.12.01 22:24:09.433 2015.11.27 10:04 111 EURUSD,H1: Prezzo di chiusura = 1,06181

2015.12.01 22:24:09.701 2015.11.30 23:59 111 EURUSD,H1: Prezzo di chiusura = 1,06181

provato un altro paio

2015.12.01 22:35:58.830 2015.11.30 23:59 111 GBPUSD,H1: Prezzo di chiusura = 1,50718

2015.12.01 22:35:58.683 2015.11.27 20:59 111 GBPUSD,H1: Prezzo di chiusura = 1,50718

2015.12.01 22:35:50.434 2015.09.17 21:55 111 GBPUSD,H1: Prezzo di chiusura = 1,50718

 
n0name:

2015.12.01 22:24:01.683 2015.10.02 17:49 111 EURUSD,H1: Prezzo di chiusura = 1,06181

2015.12.01 22:24:09.433 2015.11.27 10:04 111 EURUSD,H1: Prezzo di chiusura = 1,06181

2015.12.01 22:24:09.701 2015.11.30 23:59 111 EURUSD,H1: Prezzo di chiusura = 1,06181

provato un altro paio

2015.12.01 22:35:58.830 2015.11.30 23:59 111 GBPUSD,H1: Prezzo di chiusura = 1,50718

2015.12.01 22:35:58.683 2015.11.27 20:59 111 GBPUSD,H1: Prezzo di chiusura = 1,50718

2015.12.01 22:35:50.434 2015.09.17 21:55 111 GBPUSD,H1: Prezzo di chiusura = 1,50718

Non riesco a riprodurre, non è chiaro da dove viene la seconda data, ho questo

2015.12.01 22:10:04.250 111 EURUSD,H1: Prezzo di chiusura = 1,06336
2015.12.01 22:10:00.531 111 EURUSD,H1: Prezzo di chiusura = 1.06336

2015.12.01 22:10:00.531 è la data e l'ora;

111 - nome dell'Expert Advisor;

EURUSD,H1 - nome del simbolo e timeframe;

Prezzo di chiusura = 1,06336 - prezzo di chiusura della candela con indice 1 (l'ora precedente), quindi lo otterrai fino all'arrivo della nuova ora.

 
Mislaid:

Non riesco a riprodurre, non è chiaro da dove viene la seconda data, ho questo

2015.12.01 22:10:04.250 111 EURUSD,H1: Prezzo di chiusura = 1,06336
2015.12.01 22:10:00.531 111 EURUSD,H1: Prezzo di chiusura = 1.06336

2015.12.01 22:10:00.531 è la data e l'ora;

111 - nome dell'Expert Advisor;

EURUSD,H1 - nome del simbolo e timeframe;

Prezzo di chiusura = 1.06336 - prezzo di chiusura della candela con indice 1 (ora precedente), lo riceverai fino alla nuova ora.

Tutto corretto, fate una prova selezionando alcuni giorni. Quale sarà il risultato?