добавил файлы, но там можно без инклудов обойтись заменив вызовы типа getCurrentPrice() на SymbolInfoDouble() и удалить CSets и CHelpers
#property indicator_separate_window #property indicator_buffers 1 #property indicator_plots 1 #property indicator_label1 "Delta" #property indicator_type1 DRAW_LINE #property indicator_color1 clrBlack #property indicator_width1 1 int iStart; double iDelta[]; void OnDeinit(const int reason) { string symbol = Symbol(); MarketBookRelease(symbol); } void OnInit() { string symbol = Symbol(); SetIndexBuffer(0, iDelta, INDICATOR_DATA); ArraySetAsSeries(iDelta, true); IndicatorSetString(INDICATOR_SHORTNAME, "OrderBook"); IndicatorSetInteger(INDICATOR_DIGITS, Digits()); MarketBookAdd(symbol); } int OnCalculate( const int bars, const int counted, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& ticks[], const long& volume[], const int& spread[] ) { if (iStart == 0) { iStart = 1; ZeroMemory(iDelta); } else if (bars != counted) { iDelta[0] = iDelta[1]; } string symbol = Symbol(); double ask = SymbolInfoDouble(symbol, SYMBOL_ASK); double bid = SymbolInfoDouble(symbol, SYMBOL_BID); MqlBookInfo levels[]; bool book = MarketBookGet(symbol, levels); int indexBuy = 1; int indexSell = 1; long volumeBuy = 0; long volumeSell = 0; if (book) { int size = ArraySize(levels); for (int k = 0; k < size; k++) { if (levels[k].price >= ask) { volumeSell += indexSell * levels[k].volume; indexSell++; } } for (int k = size - 1; k >= 0; k--) { if (levels[k].price <= bid) { volumeBuy += indexBuy * levels[k].volume; indexBuy++; } } } iDelta[0] = (double) (volumeBuy - volumeSell); return bars; }
Приказ директора всех денег
Приказываю Объявить охоту за стопами Andy Sanders Срочно !
Как только этот чел вытсавит стоповый ордер, срочно толкать цены к его стопу.
Эта информация является чисто инсайдерской. Если кто нибудь додумается использовать ее в своих целях то и на его стопы будет объявлена охота.
Число 05,03,2018 Подпись Доллар Рублевич Евров
Прям обстрение весеннее! Одному автовывод подавай. у другого мания преследования ...
Вы хоть на свежий воздух выходите, с противополжным полом почаще общайтесь, кота себе заведите в конце концов...
Если кто не верит в хождение за стопами, то вот вам с вертушки :)
Вот Вам с вертушки, никому Ваши стопы не нужны... Человеческая жадность, отсутствие дисциплины, наивность - сами отнимут у Вас деньги...
А что есть Кукл и вертушка?
- spydell
- spydell.livejournal.com
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Провел миниисследование на тему Кукла :)
Если кто не верит в хождение за стопами, то вот вам с вертушки :)
Конкретно на рисунке, пытался представить информацию о выставленных лимитках, так как уровни там слишком динамичные и смысловой нагрузки не несут.
Не знаю как на Московской, но например, вот это на Американской бирже не прокатит, потому что при выставлении ордера за обьемом обьем тактично начинает уползать :)
https://www.mql5.com/ru/forum/12342/page4#comment_1481479
Поэтому, хотелось представить книгу ордеров в виде не зависящим от уровней.
Возможно у кого-то будут идеи получше, но пока сделал так.
1. весь вертикальный ценовой ряд в книге разбиваем на ряд Buy и Sell
2. начиная от самых крайних цен выставляем весовые коэффициенты, для простоты - порядковый номер уровня, чем ближе к лучшим бандам (ask / bid), тем выше коэффициент и значимее обьем
3. таким образом, не обращаем внимание на фейковые стенки на драконовском расстоянии от текущей цены, которые легко могут сдвигаться, а с помощью весов придаем большее значение тому, что находится ближе к спреду
Мораль читающаяся на рисунке.
Обьемы в книге, по крайней мере на минутках, двигаются прямо противоположно цене, т.е. больше покупателей - начинаются продажи, больше продавцов - идем вверх.
Код индикатора такой, предложение по улучшению приветствуются.