- Торговля
- Программная Торговля
- Торговые Советники NetTradeX
- NetTradex Advisors (FAQ)
FAQ для NetTradex Advisors
Все скрипты NetTradeX Advisors хранятся в папке Documents\NeTTradeX Advisors\scripts. После установки терминала на другом компьютере необходимо скопировать все её содержимое в соответствующую папку на новом компьютере и перезапустить терминал.
Для вывода линии без пропусков используйте функцию SetIndexStyle c параметром type, имеющим значение ltSection.
После прихода тика эксперт должен выполнить всю логику программы в течении ограниченного времени (60 секунд). При превышении этого лимита эксперт принудительно останавливается, а на завершение работы эксперта дается 3 дополнительных секунды. Рекомендуется анализировать состояние флага System.IsStopped для корректного завершения работы эксперта. При остановке эксперта пользователю выводится сообщение "stopped by timeout". В этом случае нужно переработать программу таким образом, чтобы её выполнение занимало меньшее время.
После того как вы убедились, что функция Deals.Open() возвращает ноль, нужно обратиться к свойству System.LastError и получить код ошибки. Описание кодов ошибок приводится в инструкции пользователя в разделе "Основы языка"-"Коды ошибок". Обратите внимание, что обращение к свойству System.LastError нужно делать сразу после вызова торговой функции, иначе последующая торговая операция изменит это свойство в соответствии с результатами своей работы.
Для обращения к свойствам позиции или ордера сначала необходимо вызвать функцию Select(), а уже потом, убедившись, что Select() вернула значение true, обращаться к свойствам позиции или ордера.
Для определения типа установленного ордера Вам надо обратиться к его свойствам, предварительно вызвав функцию Select(). Для ордера Buy Stop должны выполняться два условия: Orders.Direction == opBuy и Orders.IsLimit == false, соответственно для ордера Buy Limit необходимо выполнение условий Orders.Direction == opBuy и Orders.IsLimit == true.
Свойство подтип ордера используется для "сложных" ордеров и позволяет идентифицировать какой ордер является основным, а какой подчиненным. Например, при наличии активационного ордера, при срабатывании которого будут устанавливаться два OCO ордера: активационный ордер будет основным (ордер 1-го уровня), а OCO ордера - подчиненными (ордера 2-го уровня).
Список символов в диалоге открытия позиции содержит те же символы, что и в окне Market Watch. Поэтому прежде чем посылать запрос на открытие позиции, убедитесь, что Вы подписаны на нужный вам символ в Market Watch.
Информация о закрытых позициях попадает на вкладку History терминала NetTradeX Advisors. К таким позициям можно получить доступ при помощи объекта History. Информация о закрытых позициях хранится до перезапуска терминала.
Перед вызовом метода Symbols.Distance() подпишитесь на нужный вам символ в окне Market Watch.
Для запуска скрипта необходима функция Run(). Функции Initialize() и DeInitialize() являются опциональными, и если не предполагается никаких действий при инициализации и деинициализации, то их можно исключить из программы.
В некоторых случаях, например, при создании файлов с описаниями вспомогательных пользовательских функций, в скрипте может отсутствовать и функция Run(). Эти файлы можно будет скомпилировать, но нельзя запустить. Такие
скрипты используются совместно с директивой #include и включаются в код исполняемых скриптов.
* Понятие скрипта в языке NTL+ объединяет в себе три разновидности программ: эксперты, индикаторы и утилиты.
Да, вся информация, выводимая на вкладке Journal, также записывается в лог файл, который находится в папке Documents\ NetTradeX Advisors\ bases\ тип_аккаунта\ номер_аккаунта\ logs. Для каждого дня создается отдельный файл с расширением log. Такой файл можно открыть в текстовом редакторе.
Глобальная переменная может быть объявлена как с модификатором extern, так и без него. При наличии модификатора extern сразу после запуска скрипта раскроется окно, в котором можно будет изменить значения таких переменных. Кроме того, эти параметры можно изменять "на лету", т.е. при работающем советнике или индикаторе.
Нажатие сочетания клавиш Ctrl+N открывает список символов, доступных для создания графика котировок.
При работе с графиками можно воспользоваться клавишами + / - на цифровом блоке клавиатуры для изменения масштаба графика по горизонтали. Эти же операции можно выполнить, если подвести курсор к шкале времени и, удерживая
левую кнопку мыши, передвинуть мышь влево / вправо. Для изменения масштаба по вертикали нужно подвести курсор к шкале цен и, удерживая левую кнопку мыши, передвинуть мышь вверх / вниз.
Для отображения графика котировок до наиболее удаленной даты можно нажать клавишу Home, а для перехода к последним котировкам - End.
Двойной клик по пустому полю вкладки Open Positions откроет окно открытия позиции, а двойной клик по пустому полю вкладки ордеров - окно установки ордера. Эти же операции можно выполнить нажатием клавиш F4 (открытие позиции)
или F3 (установка ордера).
В диалоговых окнах открытия позиции или установки ордеров значения цифровых полей удобно изменять поворотом колесика мыши. Например, при установке цены связанного ордера поворот колесика на одно деление изменяет значение
цены на 1 пункт.
Так как оба операнда целочисленные, то и результат операции деления будет целочисленным. Поэтому необходимо привести один из операндов к типу double следующим образом double(2)/3, в этом случае результат будет 2/3=0,666667.
Глобальные переменные можно просмотреть с помощью окна “Global Variables”, которое можно вызвать с помощью меню View – Global Variables. Обратите внимание, что для каждого аккаунта используются свои глобальные переменные.
При использовании метода Indicators.Fractals бесполезно пытаться получить значения для самого последнего бара, так как они будут нулевыми. Достоверные значения фракталов формируются, начиная с четвертого бара (бара с индексом 3), так как, в этом случае, будут использоваться по два полностью сформированных бара по каждую сторону от нужного бара.
Числа в памяти компьютера хранятся в двоичной системе счисления, из-за этого многие числа, заданные в десятичной системе, могут быть представлены только в виде бесконечной дроби. Число, заданное, например, как 0.1, может в действительности быть равным 0.099999998, поэтому использовать двойное равенство для сравнения чисел с плавающей точкой некорректно. Лучше воспользоваться математическим методом Math.Abs(a - b) < delta, где 'a' полученное значение, 'b' - значение, с которым производится сравнивание и delta абсолютная погрешность.