1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

  2. Demo счет NinjaTrader, регистрируется в брокерской компании NinjaTrader Brokerage . NinjaTrader™, LLC
    Ссылка на демо счет NinjaTrader
    Фид на соединении Continuum/CQG.
    Для справки: Continuum - это брэнд CQG, и ни чем они не отличаются друг от друга.
  3. Уважаемые форумчане!
    Перед тем как написать пост или создать тему с просьбой оказания технической поддержки, вам нужно указать как можно больше информации по теме, к примеру: счет реал или демо, версия Windows, версия NinjaTrader, прикрепить скрин с проблемой и прочее.
    Не забывайте воспользоваться поиском на форуме, возможно уже есть решение вашей проблемы.

    Подробнее по ссылке

    Скрыть объявление
  4. Уважаемые трейдеры!
    NinjaTrader 8 официально начала свой путь!
    Ветка форума для обсуждения по ссылке.
    Скрыть объявление
  5. Сколько я реально плачу комиссии?
    Подробнее по ссылке
    Скрыть объявление
Скрыть объявление
Готовьтесь к осенней торговле и экономьте на комиссиях еще больше с новым предложением от NinjaTrader!

Откройте новый фьючерсный счет до 31 августа и торгуйте весь сентябрь без комиссий.
Просто пополните свой счет в августе минимумом в $1000 и получите возврат комиссии на все сделки, совершенные в сентябре.

Подробнее по ссылке

Закрыть/прекратить показ объявления можно по крестику, верхнем правом углу его.

Программирование Value && Values ?

Тема в разделе "Вопросы программирования на NinjaScript", создана пользователем hoz, 4 июн 2015.

  1. hoz

    hoz Member NinjaTrader

    Читаю справку:

    Вы не авторизованны на нашем форуме и не имеете возможности видеть этот код!

    Для того, что его посмотреть, Вам надо:

    Сказано, что Value ссылается на первый объект датасерии в индикаторе. Имеется ввиду, что Value всегда является первым элементом таймсерии, т.е .самым последним начиная с самого первого истории, верно? Если так, огда зачем в кавычках указывать номер бара в квадратных скобках?
    А касательно Values написано:

    Вы не авторизованны на нашем форуме и не имеете возможности видеть этот код!

    Для того, что его посмотреть, Вам надо:

    Выходит, что это, грубо говоря, коллекция элементов датасерии показаний индикатора, так?
     
  2. CustomTradingSystem

    CustomTradingSystem Member NinjaTrader

    Value - это датасерия, первый элемент коллекции датасерий Values, т.е. Value[0]. Обратите внимание, что подобная семантика широко используется в NinjaScript.

    Текущий (последний по факту, первый по индексации) элемент датасерии, т.е. числовое значение - это Value[0] или Values[0][0]
     
    Георгий нравится это.
  3. hoz

    hoz Member NinjaTrader

    Вижу. Но логически использовать отдельную переменную для того, чтоб получить доступ к первому элементу датасерии по-моему это расточительно... Смысл?

    Так Value[0] или Values[0][0] это ж ни одно и тоже...
     
  4. CustomTradingSystem

    CustomTradingSystem Member NinjaTrader

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

    И все-таки, это одно и то же значение. Добавьте Plot и, например, такой код и убедитесь сами:

    Value.Set(CurrentBar / 3.0);
    if (Values[0][0] != Value[0])
    {
    // не исполнится
     
    Георгий нравится это.
  5. hoz

    hoz Member NinjaTrader

    А, в целом, Value это типа буфер что-ли? В мт4 я привык сам создавать буфера, и туда пихать расчёты индикатора, а значение его получать по вызову через ретурн. В нннзе пока что логику не совсем понимаю...
    На данный момент смотрю индюк SMA:

    Вы не авторизованны на нашем форуме и не имеете возможности видеть этот код!

    Для того, что его посмотреть, Вам надо:

    Изначально в свойство Value, помещаем какое-то Input[0]. Я так понял, по ответам на оф. форуме нинзи, что через данный элемент датасерии передаётся некая датасерия. Типа как через параметр в функцию.. Тока тут через интерфейс. Я прав? На смысл в этом? Не проще ли сразу загнать для, например, цены закрытия... Close[0] ? Зачем этот Input[0] ?
    Дальше ещё интереснее... Появился некий Value[1]. Что за он?
    P.S. Хочу понять это строчки как базовые. Дальше всё въеду сам. Вот в этих моментах я как-то пригруз...
     
  6. CustomTradingSystem

    CustomTradingSystem Member NinjaTrader

    Value - это серия, грубо говоря, массив с обратной индексацией, где каждый индекс - это бар. Это некие значения на барах.

    Input[0] - это то, на чем ваш индикатор считается по умолчанию. Поьзователь может задавать свои серии (например посчитать SMA на High), а если вы жестко пропишете Close, то лишите его такой возможности. Input - это просто более общий подход.
     
  7. hoz

    hoz Member NinjaTrader

    Т.е. в Value хранится значение, рассчитываемое т.е. возвращаемое самим индикатором? На каждом баре своё есс-но. Так получается?
    Но, опять же..

    Вы не авторизованны на нашем форуме и не имеете возможности видеть этот код!

    Для того, что его посмотреть, Вам надо:

    Тут сразу возникает какой-то головняк. Если расчёт на первом баре, то в первый элемент коллекции датасерии помещаем требуемую датасерию. А если нет... Расчитываем некое значение last. Что за оно, кстати?
    При расчёте last используем Value[1]. Мы же его не расчитывали.. Откудого оно возьмётся тогда? Рассчитали только на первом баре.. А это уже на втором..
    В МТ4 было иначе. Там задавался цикл от, например, нулевого бара и к последнему... и рассчитывался в диапазоне индюк. А тут я что-то не понимаю логику...
     
  8. CustomTradingSystem

    CustomTradingSystem Member NinjaTrader

    В первый (и единственный пока) элемент датасерии (не коллекции датасерий, а одной датасерии) помещаем значение входной серии (обычно это Close, но может быть и другая - High, Low, Median, etc).

    Далее идет оптимизированный расчет среднего. Это делается для того, чтобы избежать повторного вычисления "хвоста" выражаения (a + b + c + .....) / N, т.е. чтобы не было того самомого цикла.

    Value[1] - это значение индикатора на предыдущем баре. Оно определено всегда, кроме частного случая CurrentBar == 0, который и обрабатывается отдельно.
     
    hoz нравится это.
  9. hoz

    hoz Member NinjaTrader

    Это понятно и логично.

    Т.е.

    Вы не авторизованны на нашем форуме и не имеете возможности видеть этот код!

    Для того, что его посмотреть, Вам надо:

    это вычисление хвоста?
    Странная логика... Умножаем значение из входной серии на количество баров либо периода. Но бары то не имеют одинаковое значение серии на всех заданных барах! Не логично же как-то.
    А в данном коде:

    Вы не авторизованны на нашем форуме и не имеете возможности видеть этот код!

    Для того, что его посмотреть, Вам надо:

    Значение вычисляется от нулевого бара и до .. крайнего или как-то иначе?
     
  10. CustomTradingSystem

    CustomTradingSystem Member NinjaTrader

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

Поделиться этой страницей