Доступна ли тиковая история на сервере? - страница 4

 
Я думаю в предложенном solandrом есть рациональное зерно, но лично мне они нужны для исследований и я боюсь что за неделю врядли что то серьезное смогу предоставить, а заготовка индикатора такого у меня есть как раз за неделю до возникновения ветки один мой товарищ написал, только там проблемма он затирает файл с тиками после каждой инициализации, а доделать руки ни у него и ни у меня не дошли. Формирует бары по фиксированному объему, так как иногда тик приходит а объем поменялся не на 1.
//+------------------------------------------------------------------+
//|                                                    TickSaver.mq4 |
//|                               Copyright © 2006, Cherednikov K.M. |
//|                                            mailto:chkm76@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Cherednikov K.M."
#property link      "mailto:chkm76@mail.ru"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black

#include <WinUser32.mqh>
//---- input parameters
extern int NumTicksPerBar=3;
extern int Minutes_for_HSTfilename=3;

//---- buffers
double ExtMapBuffer1[];

//---- глобальные переменные
int hFile=-1;
int iFilePos;
int CurrTickNumber=0;
datetime i_time, i_time_bar0;
double d_open, d_low, d_high, d_close, d_volume;
double d_low_bar0, d_high_bar0, d_volume_bar0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   int    nVersion=400;
   string szCopyright;
   string szSymbol=Symbol();
   int    iDigits=Digits;
   int    iUnused[13];

   //---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   hFile=FileOpenHistory(szSymbol + Minutes_for_HSTfilename + ".hst", FILE_READ);
   if(FileSize(hFile)<0){
   // Дабы не затереть реальные файлы историй, в имя файла добавлен "0" перед периодом
   hFile=FileOpenHistory(szSymbol + Minutes_for_HSTfilename + ".hst", FILE_BIN|FILE_WRITE);
   if(hFile < 0) return(-1);
   //---- Записать заголовок hst-файла
   szCopyright="(C)opyright 2003, MetaQuotes Software Corp.";
   FileWriteInteger(hFile, nVersion, LONG_VALUE);
   FileWriteString(hFile, szCopyright, 64);
   FileWriteString(hFile, szSymbol, 12);
   FileWriteInteger(hFile, Minutes_for_HSTfilename, LONG_VALUE);  //  файл - М2
   FileWriteInteger(hFile, iDigits, LONG_VALUE);
   FileWriteInteger(hFile, 0, LONG_VALUE);
   FileWriteInteger(hFile, 0, LONG_VALUE);
   FileWriteArray(hFile, iUnused, 0, 13);
   FileFlush(hFile);
   iFilePos=FileTell(hFile);
    }
    
    else{ iFilePos=FileTell(hFile); }
   i_time = CurTime();
   i_time_bar0 = Time[0];
   d_open = Close[0];
   d_low = d_open;
   d_high = d_open;
   d_close = d_open;
   d_volume = 1;
   d_volume_bar0 = Volume[0];

   /*d_low_bar0 = Low[0];
   d_high_bar0 = High[0];*/
   
   //----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   if(hFile>=0)
    { 
      FileClose(hFile); 
      hFile=-1; 
    }
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   CurrTickNumber++;
   //********* Обновление данных в переменных текущего бара **************
   d_close = Close[0];
   if (d_low > d_close) d_low = d_close;
   if (d_high < d_close) d_high = d_close;

   // Объем
   if (i_time_bar0!=Time[0])  // если на реальном графике появился новый бар, а для 
                              //   нас еще не набралось тиков закончить тиковый бар...
    { //расчитать изменение объема с учетом пополнения предыдущего реального бара
      d_volume += Volume[1] + Volume[0] - d_volume_bar0;
      i_time_bar0 = Time[0];
    }
   else
    { //расчитать изменение объема только с учетом текущего реального бара
      d_volume += Volume[0] - d_volume_bar0;
    }
   d_volume_bar0 = Volume[0];

   // Обновление данных последнего бара
   FileSeek(hFile, iFilePos, SEEK_SET);
   FileWriteInteger(hFile, i_time, LONG_VALUE);
   FileWriteDouble(hFile, d_open, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_low, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_high, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_close, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_volume, DOUBLE_VALUE);

   if (CurrTickNumber==NumTicksPerBar)
   {
      iFilePos=FileTell(hFile);
      CurrTickNumber=0;
      i_time = CurTime();// / 60 / Minutes_for_HSTfilename;
      //i_time *= 60 * Minutes_for_HSTfilename;
      d_open = Close[0];
      d_low = d_open;
      d_high = d_open;
      d_close = d_open;
      d_volume = 1;
      FileWriteInteger(hFile, i_time, LONG_VALUE);
      FileWriteDouble(hFile, d_open, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_low, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_high, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_close, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_volume, DOUBLE_VALUE);
   }
   FileFlush(hFile);

   // Обновление окна автономно открытого файла
   int hwnd=WindowHandle(Symbol(), Minutes_for_HSTfilename);
   if (hwnd!=0) PostMessageA(hwnd, WM_COMMAND, 33324, 0);

   Comment("Отладочная Инфа: \n"+
           "Тиков в баре: " + CurrTickNumber +
           "\nOpen=" + d_open + "    Close=" + d_close +
           "\nHigh=" + d_high + "    Low=" + d_low +
           "\nVol=" + d_volume +
           "\nПозиция файла: " + iFilePos
   );

   return(0);
  }
//+------------------------------------------------------------------+


 
лично мне кажется, что разработчики искусственно придумывают тех. проблемы чтобы оправдаться перед нежеланием (или невозможностью) доработки МТ в плане тиковой истории.
Строка тикового файла (Time,Close,Volume) = (int,double,double) = (4,8,8,) = 20 байт.


Котировки можно хранить в целых числах, умножив их на 10000 и 100(для Японцев) соответственно.
Кроме того можно хранить ключевые точки и смещение относительно последней котировки.
Это все - технические проблемы.
Главная же проблема - стратегическая.
Квотовцы НЕ ХОТЯТ и, я думаю, не будут этого делать. Только, если терминал потеснят конкуренты, возникнут предпосылки к созданию тикового терминала.
Есть еще одна проблема. Клиенты не платят за терминал.
Он оплачивается ДЦ, которые покупают сервера, а ДЦ НЕ ЗАИНТЕРЕСОВАНЫ в тиковом терминале, т.к. появяться умельцы-пипсовики, работающие на особенностях котировок ДЦ.
 
ДЦ НЕ ЗАИНТЕРЕСОВАНЫ в тиковом терминале, т.к. появяться умельцы-пипсовики, работающие на особенностях котировок ДЦ.

Вряд ли ДЦ думают о том каким вообще должен быть терминал (таймовый или тиковый). У них сугубо другие интересы. Всё что нужно ДЦ наверное разработчики, думаю, что уже всё предоставили (разрешение/запрет автотрейдинга, отмена сделок по нерыночным ценам и т.д. и т.п.). Статистика чемпионата показывает, что любой ДЦ может организовать неплохую "кухню" и появление какого-то особого тикового терминала ничего принципиального не поменяет, по крайней мере ДЦ вряд ли будут сопротивляться его введению в эксплуатацию, если таковой будет разработан. Ну а поскольку детальных доказательств необходимости введения тиковых серий пока что нет, то и вопрос будет там же, где и сейчас.
Было бы интересно взглянуть на результаты тиковых доказательств с платформы Omega, которая "делает что угодно - любые тик и тайм-фреймы".

Хотя обсуждение брокеров уже выходит за рамки форума. Сейчас наверное всё тут подчистят?:o)
 
Я думаю в предложенном solandrом есть рациональное зерно, но лично мне они нужны для исследований и я боюсь что за неделю врядли что то серьезное смогу предоставить...

"MQL4: Сборщик тиков"
Эксперт сохраняет тиковую историю по указанным символам
 
Предлагаю от бесконечной и бессмысленной словесной полемики по вопросу тик-серий перейти к детальным доказательствам. Для это нужно сделать следующее. Желающие могут написать незамысловатый скрипт, который формирует тик-серии с выбранным объёмом тиков и записывает данные в CSV файл. Далее открыв этот файл в EXCEL можно будет стандартными средствами EXCEL построить график тик-серий. При наличии такого графика за неделю например при заданном тик-фрейме можно провести его сравнение со стандартным графиком МТ4 и показать что вот тик-график дал такие-то дополнительные точки входа/выхода, которые не могли быть никоим образом получены из стандартных таймсерий например при использовании трендовых линий поддержки/сопротивления, ну или ещё чего-нибудь там.

Уважаемый solandr !
Почему Вас так раздражает эта полемика ? Почему Вы упорно считаете, что про будущее Вам все известно - и что надо делать, и что не надо ?

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

Сообщаю Вам. Взяв за основу period_converter, я давно уже написал эксперта, который не только пишет тиковую историю, но и отображает в реальном времени ее на графике. Таким образом, все, что можно делать на других т/ф, можно делать и на тиковом графике. Это еще раз говорит о том, какой мощный инструмент МТ4+МКЛ4. А также и о том, что сделать этот сервис встроенным не так уж сложно.

Кроме того, я немало времени потратил на исследование тиковых данных. Абсолютно не имеет никакого значения, добился я благодаря этому успехов на рынке или нет. Люди добиваются чего-то или нет, благодаря их способностям и труду. Но для того, чтобы результат был получен, В ПЕРВУЮ очередь они должны иметь возможность. Это условие не достаточное, но необходимое ! :-)

Почему спрашивается возможность для работы с тайм-фреймами есть, а с тик-фреймами нет ? Эта ситуация вполне объяснима ограниченностью возможностей (временнЫх, людских, или т.п.) разработчиков. Но она совершенно неприемлема с точки зрения полноты сервиса и его стратегии. Поэтому если на сегодняшний день она более-менее устраивает рынок, то завтра этого уже не будет.
 
2 Jhonny
Я думаю в предложенном solandrом есть рациональное зерно, но лично мне они нужны для исследований и я боюсь что за неделю врядли что то серьезное смогу предоставить, а заготовка индикатора такого у меня есть


Вот-вот !. И я о том же.

Кстати, эту штуку нужно реализовывать как эксперта. Индикатор пропускает тики !
Чтобы файл не затирался его надо открывать так : FILE_BIN|FILE_READ|FILE_WRITE
А перед тем как писать в него надо установить указатель записи в конец файла.
 
Yurixx, я всего навсего высказал свою точку зрения! Это ведь свободный форум и каждый имеет право на высказывание своего мнения? Или же надо всегда слушать мнение большинства? Но ведь большинство "сливает" - посмотрите на Чемпионат!

Люди попросили разработчиков сделать тиковую историю, разработчики ответили категорическим отказом. Ну и что дальше? Вы будете просто писать здесь горы жалоб на то, что разработчики не прислушались к "пожеланиям трудящихся"? Я со своей стороны просто предложил рациональный вариант давления на разработчиков - всего навсего! Если всем нужны просто бесконечные словесные жалобы без реальных подвижек в вопросе, то, пожалуйста, я лично ничего против не имею.
 
"MQL4: Сборщик тиков"
Эксперт сохраняет тиковую историю по указанным символам


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

"MQL4: simple_csv2fxt"
Простой конвертер из csv в fxt.


Надо объединить моего эксперта и этот скрипт, и чуток подлатать - будет то, что надо ;)
 
Мне кажется что спроить нужны ли тиковые данные бесполезно потому что ответ очевиден - чем больше предоставляется возможностей, тем более полон и качественен сервис и всегда найдутся люди которым нужно одно или совсем другое... Ответ же на вопрос будет ли эта возможность реализована в скором времени? - так же очевидно будет "нет"... На то есть на мой взгляд одна важная причина... А именно - реализовано будет только то что приносит компании Метаквотес доход на данном этапе в форме заключения новых контрактов и это логично и правильно... Так как доход приносят посреднические компании (брокеры, ДЦ и т д) то и будет реализовано то что упрощает им жизнь, а отнюдь не то что им жизнь усложнит...
Тиковые же данные усложнят им жизнь по следующим причинам:
1. При доступности тиковых данных неизбежно возникнут эксперты торгующие на тиковом ТФ и соответственно возникнут ОГРОМНЫЕ трудности с перекрытием таких экспертов
2. Также при наличии достоверных тиковых данных станет доступной возможность обкатывать тиковых экспертов в тестере (что также повысит их число)
3. После доступа к тиковым данным общественность потребует доступа к РЕАЛЬНЫМ объемам :))))))
4. И аж на 4-м месте нежелание или занятость разработчиков (был бы спрос со стороны ДЦ сделали бы за две недели :))
5. И наконец "козырный" аргумент про сумасшедший траффик и место на диске...
Причина обращения: