Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 972

 
rapid_minus:

Добрый день!

Опять не могу выпутаться из наверное элементарной вещи - почему вроде бы все по справке, а результат печатает 0.0 ?

 Почему не извлекается значение фрактала?

Для фрактала надо минимум три бара
 

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

double         gdClose_array[1];

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
   }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
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];
  Print  ("dX    ", dX);
  dX=NormalizeDouble(gdClose_array[0],Digits);
  Print  ("NormalizeDouble(dX,Digits)  ", dX);
       
  return(0); 
  }
//+------------------------------------------------------------------+  

  

  в результате получаю

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

 одно и тоже значение по тесту 

 
Vinin:
Для фрактала надо минимум три бара
Наверное я не с той стороны иду. Подскажите, кто знает - вот появился фрактал на 1 баре. Мне надо сравнить его значение со значениями линий Боллинджера, чтобы определить, внутри или снаружи находится фрактал. Как это изобразить в коде?
 
Ха! Докопался - фракталы вообще не нужны, во всяком случае для моих целей. Нужно сравнивать минимальную или максимальную цену бара с верхним или нижним значением линий Боллинджера, т.к. фрактал имеет значение хай или лоу бара, на котором он появился. Правильно?
 

фрактал -это значение  максимума или минимума по 5 барам.

 Имея данные по одному бару вы не получите правильное значение фрактала. 

 
n0name:

фрактал -это значение  максимума или минимума по 5 барам.

 Имея данные по одному бару вы не получите правильное значение фрактала. 

Поместив индикатор "фракталы" на график, сразу видно, что стрелки индикатора располагаются на максимальном или минимальном баре и их значения равны хаю или лоу этого бара. И неважно по скольким барам рассчитываются фракталы. Во всяком случае для моей стратегии это несущественно.

Но все равно - спасибо. 

 
n0name:

... 

  в результате получаю

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

 одно и тоже значение по тесту 

А) Что бы правильно вставить код тут на форуме, нажмите на SRC, а потом в открывшемся поле сам код.


Б) Попробуйте такой вот код.

#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: Close price = 1.06181

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

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

 

попробовал на другой паре

 

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

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

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

 

 
n0name:

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

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

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

 

попробовал на другой паре

 

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

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

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

 

Не удается воспроизвести, непонятно, откуда вторая дата, у меня так

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

2015.12.01 22:10:00.531 - это дата и время;

111  - имя эксперта; 

EURUSD,H1 - имя символа и таймфрейм; 

Close price = 1.06336 - цена закрытия свечи с индексом 1 ( предыдущего часа ), так и будете получать, пока новый час не наступит. 

 
Mislaid:

Не удается воспроизвести, непонятно, откуда вторая дата, у меня так

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

2015.12.01 22:10:00.531 - это дата и время;

111  - имя эксперта; 

EURUSD,H1 - имя символа и таймфрейм; 

Close price = 1.06336 - цена закрытия свечи с индексом 1 ( предыдущего часа ), так и будете получать, пока новый час не наступит. 

Все верно, прошу провести тест выбрав несколько дней. Какой будет результат?