• Тинькофф Банк-лучшие банковские продукты еще выгоднее
    Выбирайте продукт от банка Тинькофф
  • Уважаемые форумчане, друзья и посетители!
    Поступило предложение ( ссылка на обсуждение ) на сбор средств поддержания форума в рабочем состоянии с 1 июня ( оплата хостинга, бэкап ежедневный на другой хостинг и тд), отчетность будет предоставляться ежемесячно. Пока на ЮMoney ( яндекс деньги), доступно картой перевод, далее добавлю другие способы. Сумму перевода указывайте на ваш выбор исходя из своих возможностей.
    Форум продолжает свою работу благодаря Вашим пожертвованиям.

NinjaTrader 8 Существует ли индюк, позволяющий сильнее сжимать график по горизонтали?

На самом деле, вопрос сжатия графика болезненный для многих. И рано или поздно всплывает на форумах разных платформ с нулевым результатом. Разработчики
либо прямо говорят, что такого не будет, либо кормят завтраками. На сегодняшней день такой функционал в нормальном виде реализовал видимо только в Multicharts. Есть еще в TSLab, но там так тормозит, что воспользоваться этим почти не реально. Эх, если бы кто-нибудь донес до разработчиков нинзи, что это нужная фича.
Вот этот вопрос на англоязычном форуме нинзи:
 
Последнее редактирование:
Всем привет! Для сжатия графика (в NT7) по горизонтали я пользуюсь следующим приемом:
1) Открытый график выглядит так... Первоначальный вариант.png

2) Левой кнопкой мыши цепляю правый край графика и сжимаю график к левому краю.
2 вариант.png

3) Сжимаю "до упора". А часть графика, которая на предыдущей картинке над датой (3/21) - левой кнопкой мыши завожу полностью за левую рамку графика. Не должно быть видно ни одного тика.
3 вариант.png

4) Левой кнопкой мыши встаю к левому краю горизонтальной шкалы (время) и тяну до правого края таблицы графика.
4 вариант.png

5) При должной тренировке не всё так сложно. И последнее - левой кнопкой мыши цепляю за правый край таблицы графика и растягиваю до правого края второго монитора.
Окончательный результат2.png

6) ВАЖНО! На получившемся графике нельзя для расширения графика пользоваться горизонтальной шкалой - всё опять собьется к первоначальному варианту. Можно пользоваться значками "Лупа" (+/-).
У меня подключены два монитора, чем больше диагональ - тем больше участок можно сжать.
На NT8 не пробовал - не пользуюсь.
Настройка горизонтальной шкалы должна быть с какими-то промежутками между барами (выходные/праздники).

Настройка.png
 
Это я писал про 1 пиксель. И метод с потерей данных конечно же мне известен.
Реализовать это именно как сжатие не получится. Тут нужно новый тип баров сделать.


Если бы кто с форума смог оплатить это - было бы здорово!

Думаю это не проблема.
Есть уже наработанный опыт вроде и на этом форуме тоже.
Если у вас есть желание и умение, делаете продукт, назначаете адекватную цену, покупаем.
 
Думаю это не проблема.
Есть уже наработанный опыт вроде и на этом форуме тоже.
Если у вас есть желание и умение, делаете продукт, назначаете адекватную цену, покупаем.
Я правда не знаю как вы себе представляете такой метод сжатия. Но что я знаю точно, это не простая подмена свечей на более старшый ТФ.
Тоесть если открыть в мультичартс два графика, на одном секунда, на втором м5.
И сжать секунду, чтобы по временной шкале была идентичной м5 - то графики не одинаковы. на секундах видны многие ценовые движения которых не видно на м5.
 
По опыту могу сказать, что никто не будет организовываться. Это не вещи первой необходимости.
Нет, стоимость не известна. Даже ТЗ еще нет, чтобы говорить о стоимости.
 
Предлагаю взглянуть на проблему сжатия графика по времени немного нестандартно. Думаю, многие программные библиотеки для работы с графиками (именно библиотеки, а не готовые программы и торговые терминалы) позволяют сжимать график без каких-либо ограничений. В том числе, свечи или линии меньше пикселя. Видимо, автоматически, идет сжатие всего изображения как растровой картинки. Я, например, для построения графиков иногда использую питон и библиотеку matplotlib. Там такого ограничения нет. Предполагаю возможность, что внутри самой нинзи, на низком уровне, внутри какой-либо используемой библиотеки для отрисовки графиков тоже нет такого ограничения. Это ограничение появляется где-то на более высоком уровне, на уровне пользовательского API, и не дает (принудительно возвращает) параметр масштаба в нужный диапазон при выходе его за установленные границы. Это значит, что нинзю можно пропатчить, что бы убрать это ограничение. Соответственно, нужно нанимать не программиста, занимающегося написанием индикаторов, а специалиста по реверс инжинирингу. Но боюсь, это может нарушить пользовательское соглашение
 
Здравствуйте. Тема сжатия по прежнему очень актуальна. Если бы кто с форума смог реализовать, было бы здорово!

Понравилось кодить.
Ветка называется Существует ли индюк для горизонтального сжатия графика.
Ответ, уже да )


https://i.piccy.info/i9/2a573cfb8fe09e2131681b91fd7e8fe9/1591588431/54971/1382473/1s.png
 
Последнее редактирование:
Понравилось кодить.
Ветка называется Существует ли индюк для горизонтального сжатия графика.
Ответ, уже да )


https://i.piccy.info/i9/2a573cfb8fe09e2131681b91fd7e8fe9/1591588431/54971/1382473/1s.png

Каверзный вопрос... ))) А если снизу прицепить индикатор VOL (гисторграмма объемов), как будет отрисовывать при сжатии? ))
 
Да нет каверзности не вижу.
Индюк обьема тоже смотрю. Показывает без глюков.
скрин

Хм... что-то прямо заинтересовался технической стороной. Когда я раньше смотрел код тех ChartStyles, что поставляются с NinjaTrader сложилось впечатление,
что число сэймплов (баров, точек, свечей) на экран не подлежит изменению в ручную, а автоматически выдается окружением, и выйти за размеры экрана не получается.
Вот кусок кода внутри функции OnRender за это отвечающий (стиль LineOnCloseStyle):

C#:
sink.BeginFigure(new Vector2(chartControl.GetXByBarIndex(chartBars, chartBars.FromIndex > -1 ? chartBars.FromIndex : 0), chartScale.GetYByValue(bars.GetClose(chartBars.FromIndex > -1 ? chartBars.FromIndex : 0))), FigureBegin.Filled);
for (int idx = chartBars.FromIndex + 1; idx <= chartBars.ToIndex; idx++)
{
    double    closeValue    = bars.GetClose(idx);
    float    close        = chartScale.GetYByValue(closeValue);
    float    x            = chartControl.GetXByBarIndex(chartBars, idx);
    sink.AddLine(new Vector2(x, close));
}
sink.EndFigure(FigureEnd.Open);


Но видимо, я что-то не так понимаю...
 
Я еще не решил что с ним делать.
Я ведь новичек в C#
Кое какие моменты хочу улучшить. Но пока не знаю как.
Раздавать просто так, я пока не готов.
Если бы кто из известных сдесь на форуме программистов помог сделать более качественно.
Тогда я даю ему код, он доделывает. Мне в обратку индюк с открытым кодом. А дальше пусть решит, что с ним делать, продавать или раздавать свое время за бесплатно. Это уже не мое дело.
 
Протестировал. Здорово сжимает. При этом очень необычная динамика. Как будто в несколько заходов рывками.
 
Назад
Верх Низ