HistoryBase: 6 errors in ... - страница 2

 
costy_:

Увеличьте Дижитс до 8, наверно в расчетах ошибка, и проверьте high >= low уменьшить колво Bars - 10

терминал ест только high < low и считает их колво потом пишет в журнал .

"хотя изначально в файл записывается" читали файл после создания но перед открытием оффлайн граф?!!

А я, ничего специально не менял и точность какая нужна, ту и ставлю.

//+------------------------------------------------------------------+
//|                                                                  |
//|      Записываем заголовок в Файл *.hst(история)                  |
//|                                                                  |
//| fiHandle      -  Хэндл открытого файла                           |
//| fsSymbolName  -  Наименование символа                            |
//| fiPeriod      -  Период чарта                                    |
//| fiDigits      -  Количество цифр после десятичной точки          |
//+------------------------------------------------------------------+
void WriteHistoryHeader(int fiHandle, string fsSymbolName, int fiPeriod, int fiDigits) {
   int Tmp[15];
   FileWriteInteger(fiHandle, 400);
   FileWriteString(fiHandle, "Created by " + WindowExpertName(), 64);
   FileWriteString(fiHandle, fsSymbolName, 12);
   FileWriteInteger(fiHandle, fiPeriod);
   FileWriteInteger(fiHandle, fiDigits);
   FileWriteArray(fiHandle, Tmp, 0, 15);
   FileFlush(fiHandle);
   return;
}
 

Про точность это для поиска ошибки.

Нулевых баров быть не должно, зачем менять нерасчетные бары, лучше найти причину ошибки ... неправильный расчет индикаторов, т.к. именно на этом баре поступил сигнал.

Если пред. картинка это индекс, то у меня совершенно отличен (жмт+2)

Файлы:
qgbp1.zip  918 kb
 
costy_:

Увеличьте Дижитс до 8, наверно в расчетах ошибка, и проверьте high >= low уменьшить колво Bars - 10

--> Ничего не меняет

терминал ест только high < low и считает их колво потом пишет в журнал .

--> Похоже, что не только это.

"хотя изначально в файл записывается" читали файл после создания но перед открытием оффлайн граф?!!

--> Да, читал. Я уже куда только не заглядывал. Голова лопается.

Вот, скрины логов с добавкой 0.0000001 и без неё.

Цветом выделены свечи которые отображаются, не подсвеченные вырезаются терминалом.



здесь все ОК.


 
costy_:

Про точность это для поиска ошибки.

Нулевых баров быть не должно ... неправильный расчет индикаторов, т.к. именно на этом баре поступил сигнал.

Если пред. картинка это индекс, то у меня совершенно отличен (жмт+2)

Вопрос в поставщике котировок, у меня здесь Альпари. И методов расчета, для меня в принципе некоторые пропуски в минутках не существенны. В конечном итоге все пересчитывается в H6 и старше, но минутки важны для получения более или менее корректных High и Low.
 
lasso:

Вот, скрины логов с добавкой 0.0000001 и без неё.


Попробуйте нормализовать значения до Digits.
 
BoraBo:
Попробуйте нормализовать значения до Digits.

Я конечно могу попробовать и думал об этом....

Но, битовые записи чисел в файле одинаковые!!!

..........

Правда, билд 220 :-О

 
lasso:

Я конечно могу попробовать и думал об этом....

Но, битовые записи чисел в файле одинаковые!!!

..........

Правда, билд 220 :-О

Тогда попробуйте последний билд :)
 

Я не так выразился, все тоже самое, но в заголовке Дижитс ставьте 8, создайте заново инструмент и убедитесь что на графике 8-мизнак.

закомментируйте то что сделано на скринах, Н=1,46521555 С=1,45505555 и т.д.

Было похожее, в дижите говорю считать до 4 диж, а он только выдает данные визуал и коммент с точностью 4 а счет ведет по 8!

 
hrenfx:

Немного исправил ваш вариант:

#define AMOUNT_OHLCV 5

//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
// записывает в файл данные начиная от текущего положения
//+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
void WriteBar( int Pos ){
  static double OLHCV[AMOUNT_OHLCV];
  
  for (int i = 0; i < AMOUNT_OHLCV - 1; i++)
    OLHCV[i] = iCustom(0,0,"Grafic_for_History",ener,speed,i,Pos);

  double Tmp = OLHCV[ArrayMaximum(OLHCV, AMOUNT_OHLCV - 1, 0)];
  OLHCV[1] = OLHCV[ArrayMinimum(OLHCV, AMOUNT_OHLCV - 1, 0)];
  OLHCV[2] = Tmp;
  
  OLHCV[AMOUNT_OHLCV - 1] = 600;
  
  FileWriteInteger(handle, Time[Pos]);  //4 байта, по умолчанию
  FileWriteArray(handle, OLHCV, 0, AMOUNT_OHLCV);

  FileFlush(handle);
}

Или используйте поиск макс. мин.
 
costy_:

Я не так выразился, все тоже самое, но в заголовке Дижитс ставьте 8, создайте заново инструмент и убедитесь что на графике 8-мизнак.

закомментируйте то что сделано на скринах, Н=1,46521555 С=1,45505555 и т.д.

Было похожее, в дижите говорю считать до 4 диж, а он только выдает данные визуал и коммент с точностью 4 а счет ведет по 8!

Не помогает.


Во вложении сгенерированный, не порезанный терминалом HST (399 бар)

После открытия остается 238 бар.

Файлы:
_eurusd1.zip  6 kb