Индикатор "Market Profile"

Рыночный профиль был разработан Питером Стидлмайером (Peter Steidlmayer). Он обнаружил естественное проявление рынка (объем) и представил его таким способом (колоколообразная кривая), чтобы можно было читать объективную информацию, генерируемую рынком.

Рыночный профиль использует альтернативное представление информации как о горизонтальном, так и о вертикальном движении рынка, что дает полностью отличный набор моделей. Равновесный рынок, изображенный на графике с помощью рыночного профиля имеет тенденцию сформировать колоколообразную кривую, повернутую на 90 градусов в силу ориентации диаграммы.

Вместо изображения каждого временного сегмента в виде бара (bar), каждый такой сегмент располагается специальным образом. Рисунок ниже показывает, как минутная столбцовая диаграмма может быть преобразована в рыночный профиль, показанный справа.

Длинный профиль показывает, что цена провела много времени на одном уровне. Это происходит, когда рынок находится в относительном равновесии, поскольку со временем, на заданной цене, существовало больше возможностей. Короткий профиль говорит о быстром движении к новому уровню, что происходит, когда рынок неравновесен. Очертание профиля показывает соотношение вертикального и горизонтального движения и является ключом к пониманию того, что делают участники рынка. Рыночный профиль может определить и когда рынок собирается сдвинуться от равновесия к неравновесию, и насколько большим это движение может быть.



Параметры:


// input parameters
extern int   MAX_HISTORY = 500; // Баров для расчета
extern int   STEP        = 1;   // Шаг между линиями
extern color COLOR       = Red; // Цвет линий


P.S. Поправил парочку предупреждений и вывел в настройки цвет линий.
Скачать: www.opentraders.ru/downloads/1207/

Исправленный код с отрисовкой гистограммы слева:


extern int   MAX_HISTORY = 500; // Баров для расчета
extern int   STEP        = 1;   // Шаг между линиями
extern int   START_BAR   = 500; // Начало отрисовки слева
extern color COLOR       = Red; // Цвет линий





//+------------------------------------------------------------------+
//|                                                 Level Sensor.mq4 |
//|                                          Copyright © 2005, Sfen. |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Sfen"
#property indicator_chart_window
// input parameters
extern int   MAX_HISTORY = 500; // Баров для расчета
extern int   STEP        = 1;   // Шаг между линиями
extern int   START_BAR   = 500; // Начало отрисовки слева
extern color COLOR       = Red; // Цвет линий
//----
string OBJECT_PREFIX="LEVELS";
int ObjectId=0;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double CSH(int shift)
  {
   return (MathMax(Open[shift], Close[shift]));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double CSL(int shift)
  {
   return (MathMin(Open[shift],Close[shift]));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string IntToStr(int X)
  {
   return (DoubleToStr(X, 0));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string ObGetUniqueName(string Prefix)
  {
   ObjectId++;
   return (Prefix+" "+IntToStr(ObjectId));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ObDeleteObjectsByPrefix(string Prefix)
  {
   int L = StringLen(Prefix);
   int i = 0;
   while(i<ObjectsTotal())
     {
      string ObjName=ObjectName(i);
      if(StringSubstr(ObjName,0,L)!=Prefix)
        {
         i++;
         continue;
        }
      ObjectDelete(ObjName);
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
   ObDeleteObjectsByPrefix(OBJECT_PREFIX);
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   ObDeleteObjectsByPrefix(OBJECT_PREFIX);
   double HH = 0;
   double LL = 1000000;
   int History=MathMin(Bars,MAX_HISTORY);
   int i;
   for(i=1; i<History; i++)
     {
      HH = MathMax(HH, CSH(i));
      LL = MathMin(LL, CSL(i));
     }
   int NumberOfPoints=(HH-LL)/(1.0*Point*STEP)+1;
   int Count[];
   ArrayResize(Count,NumberOfPoints);
   for(i=0; i<NumberOfPoints; i++)
      Count[i]=0;
   for(i=1; i<History; i++)
     {
      double C=CSL(i);
      while(C<CSH(i))
        {
         int Index=(C-LL)/(1.0*Point*STEP);
         Count[Index]++;
         C+=1.0*Point*STEP;
        }
     }
   for(i=0; i<NumberOfPoints; i++)
     {
      double StartX = Time[START_BAR];
      double StartY = LL + 1.0*Point*STEP*i;
      double EndX   = Time[START_BAR-Count[i]];
      double EndY   = StartY;
      string ObjName= ObGetUniqueName(OBJECT_PREFIX);
      ObjectDelete(ObjName);
      ObjectCreate(ObjName,OBJ_TREND,0,StartX,StartY,EndX,EndY);
      ObjectSet(ObjName,OBJPROP_RAY,0);
      ObjectSet(ObjName,OBJPROP_COLOR,COLOR);
     }
   return(0);
  }
//+------------------------------------------------------------------+

  • +7
  • Просмотров: 9641
  • 13 июня 2016, 10:49
  • AM2
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

  Предыдущая запись в моем блоге
Что на самом деле двигает цены на нефть
15 апреля 2016
05 октября 2016

Брокер для ваших роботов, 15 лет на рынке

Комментарии (35)

+
0
Андрей приветствую, а можно немного ликбеза по данному индюку, думаю если более подробно описать как им пользоваться и что это нам дает, то многие поймут для чего и зачем и возьмут на заметку… а может и кто систему создаст или сову…
avatar

  8  WolfTraderS Сообщений: 142

  • 13 июня 2016, 14:34
+
+2
Если немного, то цена ходит от сиськи к сиське :D 

avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 13 июня 2016, 14:51
+
0
:D 
avatar

  17  oyama Сообщений: 350 - Александр

  • 13 июня 2016, 15:05
+
0
Я сегодня первый день взял в руки этот индюк, торговал на отбой, цена несколько раз сбивала короткий стоп, как только верхняя сиська стала больше цена пошла куда надо, только надолго ли?



avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 13 июня 2016, 15:37
+
0
Демка, заведённая с 200 голдов в 11.00 по терминальному для проверки советника:

avatar

  20  Anatoly74 Сообщений: 3710 - Анатолий

  • 13 июня 2016, 17:16
+
0
И сейчас левая больше :) 

avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 13 июня 2016, 19:32
+
0
все равно ничего мне это не дало, из каких ориентиров ты входил в селл как он наглядно показывает что нужно в селл
avatar

  8  WolfTraderS Сообщений: 142

  • 13 июня 2016, 20:23
+
+1
Мой первый день с этим индюком. Наблюдай за сиськами :D 
Последняя сделка, как только правая сиська больше стала, я закрыл и закупиться еще можно было. И другие сделки также открывал.

avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 13 июня 2016, 20:34
+
0
Доброго времени суток.
Написание советника реалистично на основе этого индюка???
avatar

  13  Pesha Сообщений: 222 - ¯\_(ツ)_/¯

  • 13 июня 2016, 23:08
+
0
Написание советника реалистично на основе этого индюка???

Он только рисует.
avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 14 июня 2016, 06:33
+
0
Если взять за основу входа размер сиськи??? те идёт сравнение в каком соотношении правая к левой или какой то определенный размер её, был 2 стал 5 или 6 тут сразу жмём бай, селл.
avatar

  13  Pesha Сообщений: 222 - ¯\_(ツ)_/¯

  • 14 июня 2016, 07:41
+
0
Я не представляю себе как я буду это реализовывать, а когда нет такой ясности это долго будет.
avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 14 июня 2016, 07:55
+
0
Если взять за основу входа размер сиськи???
Тут вот и формула есть подходящая:

avatar

  20  Anatoly74 Сообщений: 3710 - Анатолий

  • 15 июля 2016, 16:16
+
0
Как один из вариантов это добавление уровня на гистограмме, те высота гистограммы и там уже пробовать настройки высоты уровня, при выходе за этот уровень начинает продавать или покупать.
Но уже как то все сложно становиться, тк нужна будет нулевая точка ниже покупаем выше продаём, можно даже с усреднением))))) через свечу, если все также гистограмма находится выше уровня.
avatar

  13  Pesha Сообщений: 222 - ¯\_(ツ)_/¯

  • 14 июня 2016, 09:29
+
0
Поболтались на одной пошли к другой. Теперь ближайшая 1.12693
avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 14 июня 2016, 10:39
+
0
Я как раз в пятницу изучала все индикаторы, которые рисуют market profile. Даже сама задумывалась создать что-то подобное.
Но потом удовлетворилась этим: www.mql5.com/ru/code/8115
Чуть чуть его подправила, чтобы компилировался без ошибок в новом билде.
А так, в третьем параметре CountProfile, можно задать число дней, сколько отображать индикатор в прошлое. Что удобно для анализа.
Но пока не придумала, как полученные знания применить в торговле.
avatar

  27  Oxy Сообщений: 3430 - ..ιllιlι.lι.ιllι.ιlι..

  • 14 июня 2016, 15:24
+
+1
Из книги «На волне валютного тренда» Грега Михайловски.
«Чаще всего встречаются дни с нормальным распределением. Они составляют примерно 70%»
Выражаясь вашим языком — «сиська» одна и посередине. Сверху максимум, снизу минимум:
1
11
111
11111
111
11
1
Классификация трейдеров по Грегу:
1. «трейдеры из дядюшкиной фирмы» — во время торговых дней с нормальным распределением средний трейдер торгует в основном примерно в середине области стоимости, немного выигрывая и немного проигрывая (работая в ноль)
2. «трейдеры из маминой фирмы» — продают на минимумах, покупают на максимумах. Получают убытки.
3. «владельцы собственной фирмы» — продают на максимумах, покупают на минимумах. Зарабатывают.
4. «гибрид дядиной и маминой фирм» — торгуют в середине диапазона, но не удовлетворившись прибылью, получаемой на экстремуме, держат позицию, и только когда оказываются на противоположном экстремуме, закрывают и получают убыток.
5. «чуть лучше, чем трейдеры дядиной фирмы» — торгуют в середине и удовлетворяются взятием быстрой прибыли вблизи экстремумов.

К какому типу трейдеров вы относитесь?


Редактирован: 14 июня 2016, 15:46
avatar

  27  Oxy Сообщений: 3430 - ..ιllιlι.lι.ιllι.ιlι..

  • 14 июня 2016, 15:45
+
0
Индикатор «Market Profile»

Андрей, неужели ты ранее не видел это: fxcoder.blogspot.com/2009/09/volume-profile-indicator.html#download?
avatar

  20  Anatoly74 Сообщений: 3710 - Анатолий

  • 14 июня 2016, 17:05
+
0
Если приглядеться, то можно увидеть копирайты инидкатора из топика АМ2
Level Sensor.mq4 |
//|                                          Copyright © 2005, Sfen. |
avatar

  45  Bishop Сообщений: 5802 - АЛЬФАХАМЕЦ-Машковод

  • 14 июня 2016, 17:18
+
+1
Андрей, неужели ты ранее не видел это:

Я как то один раз правил индикатор, который просили поправить в столе заказов. Тот что в этом топике скачал с кодобазы мкл и чуть чуть подправил.
Хочу создать ручную ТС с короткими стопами, здесь мои первые шаги.
avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 14 июня 2016, 17:29
+
+1
Мой результат за неделю, при полном отсутствии системы и навыков ручной торговли.

avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 17 июня 2016, 22:05
+
0
ну почему отсутствие системы? ты же по market profile торговал — а это и есть система
avatar

  27  Oxy Сообщений: 3430 - ..ιllιlι.lι.ιllι.ιlι..

  • 17 июня 2016, 23:13
+
0
Андрей, большая просьба по индикатору сделать скрин(ы, где стрелочками, метками, комментами указать — где по индикатору какие сигналы: Buy, Sell, другое — напр. флет, «средний уровень-зона», ожидание разворота (зона приближения экстремума) и т.п.
avatar

  11  preasto Сообщений: 445

  • 18 июня 2016, 10:50
+
0
ну почему отсутствие системы? ты же по market profile торговал — а это и есть система


ТС еще только формируется. У меня получилось 2-4 трейда в день, оптимальные стопы по результатам недели сл — 125 тп -250.
avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 18 июня 2016, 14:05
+
0
Buy, Sell, другое — напр. флет, «средний уровень-зона», ожидание разворота (зона приближения экстремума) и т.п.

Это все очень идивидуально, наблюдайте, стройте свою ТС. Моей всего 5 дней от роду :) 
avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 18 июня 2016, 14:15
+
0
интригуешь? :D 
avatar

  27  Oxy Сообщений: 3430 - ..ιllιlι.lι.ιllι.ιlι..

  • 19 июня 2016, 00:16
+
0
Вижу всего лишь нежелание принимать чужие косяки на свой счёт.
avatar

  20  Anatoly74 Сообщений: 3710 - Анатолий

  • 19 июня 2016, 14:45
+
0
Сегодня открывался в сторону закрытия гепа. Желательно держать сделку до тейка и мониторить.



avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 20 июня 2016, 20:51
+
0
а где индикатор на картинке? или ты не по market profile сегодня торговал?
avatar

  27  Oxy Сообщений: 3430 - ..ιllιlι.lι.ιllι.ιlι..

  • 21 июня 2016, 02:02
+
+1
Индикатор слева :) 

avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 21 июня 2016, 07:49
+
+2
Еще одна в плюс закрылась. А сейчас думаю входить или нет?

avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 21 июня 2016, 07:55
+
0
удачи!
avatar

  27  Oxy Сообщений: 3430 - ..ιllιlι.lι.ιllι.ιlι..

  • 21 июня 2016, 12:55
+
+1
Слишком ранние входы. Цена еще недостаточно поболталась на уровне, срывает стопы и идет куда положено.

avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 22 июня 2016, 06:59
+
0
Результаты за вчерашний день. По итогам торгов оптимальные стопы 125 на 800 пунктов. Я ставил максимум 350. Скоро я приду к тому как Дима торгует! :D 


avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 23 июня 2016, 07:45
+
0
Эх не зашел, а ведь хороший вход был.

avatar

  35  AM2 Автор Сообщений: 16254 - Андрей

  • 23 июня 2016, 17:59

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий