Индикаторы: Лента всех сделок - страница 3

 
Konstantin Seredkin:

Я себе сделал так.  Решил немного написать букв и выразить благодарность автору за ссылку на свой индикатор.

Данный индикатор помог понять как собирать данные о покупках продажах и их объёме + суммировать все данные

Вывел сначала все в комменты и получил такую табличку ,которая показывает кол-во покупок - продаж, объем на продажу и покупку ну и суммирует все данные. Обновление данных происходит каждую минуту.

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

Получился неплохой анализатор, по которому видно как на каких то уровнях люди закупаются или же продают, отслеживая проторгованные объемы больше 2000 лотов за минуту, на основе этого можно анализировать куда собственно пытается торговать народ... если же торговалось меньше 2000 (параметр настраиваемый) то не чего не рисуется, значит флет, шумим   - это в теории.



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

Добавил ту да же определение уровней поддержки и сопротивления и до кучи завел туда же еще определение больших плотностей заявок из стакана - плотности ищутся по аск и бид в стакане, но ищутся по определенному алгоритму, сначала находим по цене Аск ближайшую к цене выбранную плотность 2000 заявок и более, далее по глубине стакана сверху вниз ищем такую же плотность выше, таким образом находим нижнюю и верхнюю, когда цена верхней = нижней плотности, то линия перекрашивается что означает что на всю глубину стакана в 20 цен стоит лишь одна плотность ордеров и выше нее больше 2000 заявок нет - то мы можем от нее сделать вход или ее как то интерполировать... все тоже самое и для цены бид в стакане...



Автору огромная благодарность за предоставленную пример, как видно из идеи простого индикатора появляется множество интересных идей

Вы молодец. Только Ваша работа не будет иметь большой прибыли, если торговать на анализируемом инструменте.

Гораздо больше пользы можно извлечь, если этот анализ производить, например, на BRENT, а торговать на Si.

Зная по BRENT куда "ломанётся" рынок, у Вас будет немного времени, чтобы (купить/продать) Si

Добавлено

Еще в 2016 году я пробовал использовать BRENT и Si, чтобы торговать RTS

Посмотрите индикатор, может быть будет интересно (Ваш анализ более глубокий)

(Не помню почему забросил эту идею)

Добавлено

Смотреть нужно на реале и ставить на текущий RTS M1

 
prostotrader:

Вы молодец. Только Ваша работа не будет иметь большой прибыли, если торговать на анализируемом инструменте.

Гораздо больше пользы можно извлечь, если этот анализ производить, например, на BRENT, а торговать на Si.

Не у меня как раз анализируется 2 инструмента

К примеру торгуя фьючерс сбербанка, я для анализа цепляю акцию сбербанка

Акция сбербанка идет как поводырь

Условия - если спрос и предложение давит в продажи, а так же дельта между этими данными больше установленной, к примеру для акции я ставлю 10000, если перевес в продажи больше на 10тыс чем покупки, то мы начинаем смотреть на фьючерс, там должна быть идентичная ситуация, только я там перевес ставлю уже 3000 на объем и 300 на сами заявки.

Как все условия выполнены, мы определили направление в шорты, то робот начинает выше цены искать плотность заявок размером больше 1000, как только он ее находит, то начинает тестирование, если после теста и анализа она удовлетворят всем заложенным условиям, под нее ставиться заявка, она срабатывает и мы забираем прибыль.

Тоже самое и для Si его я фильтрую нефтью, но только в реверсивном направлении т.к. это разнонаправленные инструменты, если нефть растет то сишка падает


Я мануал приложу, там все подробно расписано, просто там куча всего в роботе, я его писал и тестировал все реализованные методы 8 месяцев т.к. в тестре ене прогнать, там стакана нет, приходилось писать и 2-3 дня обкатывать, писать и снова окатывать ,потом на месяц в торговлю ставить, дополнять и т.д.

Мне этот алгоритм интересен.... за робота спасибо, посмотрю, может какие идеи на его основе появятся.

Файлы:
 
Konstantin Seredkin:

Не у меня как раз анализируется 2 инструмента

К примеру торгуя фьючерс сбербанка, я для анализа цепляю акцию сбербанка

Акция сбербанка идет как поводырь


СПОТ - не очень хороший поводырь, так как зависит от других.

Например изменение цены нефти приводит:

1. Изменение СПОТ USDRUB_TOD

2. Изменение Si

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

Добавлено

А ещё лучше торговать золотом (8 лет торгую)

Оно не подвержено резким сменам тренда, коль поперло вверх или вниз, то не остановишь.


Но в МТ-5 нет Индекса доллара - поводырь золота.

Но по косвенным данным можно строить USD index

 
prostotrader:

СПОТ - не очень хороший поводырь, так как зависит от других.

Например изменение цены нефти приводит:

1. Изменение СПОТ USDRUB_TOD

2. Изменение Si

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

Добавлено

А ещё лучше торговать золотом (8 лет торгую)

Оно не подвержено резким сменам тренда, коль поперло вверх или вниз, то не остановишь.


Но в МТ-5 нет Индекса доллара - поводырь золота.

Но по косвенным данным можно строить USD index

Сегодня завтра попишу код, возьму для анализа сразу 3 инструмента, текущий RTS сишку и нефть и буду на них считать объемы, если будет резкий всплеск объема выше значений которые я укажу для каждого, то по РТС будет вход в обратку, но по направлению спроса и предложения... посмотрю чего получиться, сейчас у меня только по одному инструменту объемы тикауют, туда сюда 2000 гоняет прибыли каждый день, думаю если снять объемы как у Вас в индикаторе ток по моему методу, сигнал будет более точным, 3 объема с разных инструментов это уже вероятность, а с одного только предположение какого то либо отскока.

Посмотрю чего получится.

 
Konstantin Seredkin:

Сегодня завтра попишу код, возьму для анализа сразу 3 инструмента, текущий RTS сишку и нефть и буду на них считать объемы, если будет резкий всплеск объема выше значений которые я укажу для каждого, то по РТС будет вход в обратку, но по направлению спроса и предложения... посмотрю чего получиться, сейчас у меня только по одному инструменту объемы тикауют, туда сюда 2000 гоняет прибыли каждый день, думаю если снять объемы как у Вас в индикаторе ток по моему методу, сигнал будет более точным, 3 объема с разных инструментов это уже вероятность, а с одного только предположение какого то либо отскока.

Посмотрю чего получится.

Отлично, всё правильно поняли.

Если что-то прояснится в положительную сторону, с меня советник.

Добавлено

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

не очень большим.

 
prostotrader:

Отлично, всё правильно поняли.

Если что-то прояснится в положительную сторону, с меня советник.

Добавлено

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

не очень большим.

У меня немного по другому, при появлении нового бара, у меня все сбрасывается и начинается новый подсчет, это практически тоже самое что индикатор Volume в терминале, только тот нам кажет уже суммарный объем покупок и продаж, я же считаю все по отдельности что бы знать куда и в какую сторону был перевес и общий объем.

Так же считаю сами сделки, общий их объем + перевес.


Далее идет сама логика

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

Единственный косяк чего я увидел, это при контроле нового бара

void TimeZero()
{
// Производим расчет сигнала по времени если включен этот режим.
   static datetime PrevBars=0;
   datetime time_0=iTime(Symbol(),PERIOD_M1,0);
   if(time_0==PrevBars)
      return;
   PrevBars=time_0;
   //+------------------------------------------------------------------+

   start_time_1=0;   // Обнуляем время 
   start_time_2=0;   // Обнуляем время
   start_time_3=0;   // Обнуляем время
}

Я обнуляю переменную времени, что бы расчет начался заново на новой минуте, но по наблюдениям - сравнению с индикатором Volume мои данные не всегда совпадают с ним, видно какая то задержка в этом контроле происходит, может из за пинга, пока не разобрался, но данные могут на 50-100 объема отличаться, значит счетчик включается на новом баре с задержкой, я грешу на мой пинг в пол секунды, если смотреть на время которое в терминале тикает ,там часто вижу такую картину секунды 15, замирает, дальше сразу 18, может снова замереть, 25
В принципе для алгоритма это не критично
Завтра сигнальщика завяжу на алгоритм торговли, посмотрю чего получилось, хочу проверить следующее
- Торговый инструмент РТС, его фильтра Si- BR
- Для каждого инструмента задаем объем, кпрмеру РТС = 1000, Si = 5000, BR=10000
- Если за минуту времени пролетает в каждом инструменте такой объем, но с направлением РТС - перевес в лонги, Нефть перевес в лонги, Si перевес в шорты
- То на следующем баре входим в шорты на РТС, типо на коррекцию после всплеска.
- Но вход по РТС будет в том случае если это направление совпадает с данными спроса и предложения

Пока так хочу проверить, потом посмотрю

 

Нет, Константин. Нельзя скальпировать по интервалу между барами (сами бары на ФОРТС могут появляться с задержкой  и это нормально ).

Бывают очень резкие скачки цен в ту или иную сторону.

Мы же получаем инфу правктически без задержек (обрабатываем 3 стакана высоколиквидных инструментов).

Поэтому, после установки индикатора (когда prev_calc = 0) мы все обнуляем и считаем с заданым нами промежутками

по GetMicrosecondCount() это позволит "отлавливать" быстрое изменение тренда + мы можем сохранять "непрерывную" историю (для последующей обработки на перспективу)

#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
ulong start_time, cur_time;
double a_buff[]; 

input ulong TimeGap = 100000; //Период вычисления

struct A_TICKS_DATA
{
  double prise;
  long volume;
  //Другие данные
};

A_TICKS_DATA a_data[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   ArrayResize(a_data, INT_MAX, INT_MAX); 
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {

  if(prev_calculated == 0)
  {
    ArrayInitialize(a_buff, EMPTY_VALUE);
    start_time = GetMicrosecondCount();
  }
  else
  {
    cur_time = GetMicrosecondCount();
    //Сравниваем с периодом TimeGap
  }
   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

Да совсем забыл...

Так как GetMicrosecondCount() "переполняется" сравнение с нашим гапом нужно делать так:

//+------------------------------------------------------------------+
// Expert Check Orders time period function                          |
//+------------------------------------------------------------------+
bool CheckOrderTime(const ulong start_time, const ulong end_time)
{
  if(start_time <= end_time)
  {
    if((end_time - start_time) >= TimeGap) return(true);
  }
  else
  if(start_time > end_time)
  {
    if((start_time - end_time) >= TimeGap) return(true);
  }
  return(false);
}

Не использую MathAbs потому что там значения типа double

 
prostotrader:

Нет, Константин. Нельзя скальпировать по интервалу между барами (сами бары на ФОРТС могут появляться с задержкой  и это нормально ).

Бывают очень резкие скачки цен в ту или иную сторону.

Мы же получаем инфу правктически без задержек (обрабатываем 3 стакана высоколиквидных инструментов).

Поэтому, после установки индикатора (когда prev_calc = 0) мы все обнуляем и считаем с заданым нами промежутками

по GetMicrosecondCount() это позволит "отлавливать" быстрое изменение тренда + мы можем сохранять "непрерывную" историю (для последующей обработки на перспективу)

Завтра посмотрю что покажет, можно сделать вход на новом баре ,а можно сделать вход после превышения заданных объемов, это не принципиально, тут предположения одинаковы
- Имеем всплеск, бар летит на 300 пунктов, потом откатывается на 200, открывается новый бар, мы входим на откат, но цена откатила уже и мы ловим стоп.
- Та же ситуация, но после того как бар пролетел 300 пунктов у нас условия что прошел заданный объем по нашим инструментам ,мы входим на откат,но цена продолжила лететь дальше и мы ловим стоп.

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

 
Хозяин - барин :)
Причина обращения: