ATAS Script: свои индикаторы в редакторе скриптов

Изменено Чт, 12 Ноя на 10:15 AM

ATAS Script — язык, на котором можно написать собственный индикатор для ATAS. Он совместим с Pine Script: индикатор с TradingView переносится вставкой его кода. Кроме того, в ATAS Script есть функции ордерфлоу: дельта бара, объёмы бид и аск, POC и значения футпринта на каждой цене.

Скрипты пишут и компилируют в Редакторе скриптов — это панель на графике. Скомпилированный скрипт становится обычным индикатором: он появляется на графике и в списке индикаторов. Visual Studio и DLL-файлы не нужны. Редактор работает и с индикаторами на C#.

Что нужно

  • Десктопная ATAS или ATAS X, бета-версия. В ATAS Web редактора скриптов нет.
  • Функция Script Lab в вашей подписке ATAS. Без неё кнопки и пункта меню редактора не будет.

Как открыть редактор

Откройте график и выберите любой способ:

  • кнопка Редактор скриптов на панели графика;
  • правый клик по графику → Редактор скриптов;
  • в списке индикаторов откройте категорию Пользовательский (Custom) и нажмите карандаш Открыть в редакторе скриптов рядом со скрипт-индикатором.

Редактор открывается панелью сбоку от графика. График запоминает, была ли панель открыта.

Как создать индикатор

  1. Нажмите Создать и выберите Индикатор ATAS Script.
  2. Появится новый скрипт со стартовым кодом, который рисует цену Close.
  3. Напишите свой код или вставьте его вместо стартового.
  4. Нажмите Запустить. Скрипт сохранится, скомпилируется и появится на этом графике.

Результат показывает строка состояния внизу редактора. Если есть ошибки, там будет Ошибка компиляции и число ошибок.

Чтобы добавить индикатор на другой график, откройте на нём Индикаторы: скрипт лежит в категории Пользовательский (Custom) под именем, которое задано в его коде.

Как исправить ошибки компиляции

Ошибки собраны в панели Проблемы с номером строки и столбца. Двойной клик по ошибке переносит к этой строке кода.

ATAS Script не подменяет неподдерживаемую функцию похожей. Если функция не поддерживается, вы получите ошибку компиляции с номером строки, а не индикатор, который считает иначе.

Как изменить индикатор

  • Поменяйте код и снова нажмите Запустить. Индикатор сам обновится на всех открытых графиках, а его настройки останутся прежними.
  • Если новая версия не компилируется, на графиках остаётся прежняя рабочая версия, пока вы не исправите ошибки.
  • Несохранённые правки сохраняются автоматически, даже если вы переключились на другой скрипт или платформа закрылась. Когда вы снова откроете скрипт, редактор их восстановит.
  • Сохранить сохраняет без компиляции. Запустить всегда сначала сохраняет скрипт.
  • Кнопка со стрелкой после Запустить отменяет несохранённые правки. Сохранить как... в меню рядом с Сохранить делает копию под новым именем.

Чтобы перейти к другому скрипту, нажмите на имя скрипта вверху редактора. В списке все ваши скрипты, нужный можно найти через Поиск. Наведите курсор на скрипт — появятся значки, чтобы переименовать, скопировать или удалить его. Точка рядом со скриптом показывает его состояние: наведите на неё курсор, чтобы увидеть Сохранён, Несохранённые изменения или Последняя компиляция завершилась с ошибкой. Если удалить скрипт, его индикатор пропадёт и из списка индикаторов.

Скрипты лежат на вашем компьютере, в папке настроек ATAS. Скомпилированные скрипты компилируются заново при каждом запуске платформы, поэтому они остаются в списке индикаторов и в ваших рабочих пространствах. Если какой-то скрипт не скомпилировался, платформа и остальные скрипты загружаются как обычно.

Как перенести индикатор с TradingView

  1. В TradingView откройте исходный код индикатора и скопируйте его.
  2. В редакторе нажмите Создать → Индикатор ATAS Script.
  3. Замените стартовый код скопированным и нажмите Запустить.
  4. Если появились ошибки, исправьте их по панели Проблемы.

Сообщение Detected Pine Script v6. Version directive removed. в панели «Проблемы» — это информация, а не ошибка. Простые индикаторы обычно компилируются без правок. Большие индикаторы перед компиляцией может понадобиться поправить.

Переносите только свой код или код, лицензия которого это разрешает.

ATAS Script поддерживает Pine Script версий 4–6: переменные, условия и циклы, собственные функции, типы и методы, большинство встроенных функций технического анализа, математики, строк, массивов и цветов, входные параметры, рисование линиями, метками, прямоугольниками и таблицами.

Что не поддерживается:

  • Данные другого таймфрейма или инструмента — request.security и другие функции request.*. Нужные значения считайте по барам самого графика.
  • Стратегии: скрипт-стратегия компилируется как индикатор, а торговые вызовы игнорируются. Бэктеста стратегий нет.
  • Библиотеки Pine Script (import, export, library).
  • Словари (map) с нечисловыми ключами или значениями.

Значения могут отличаться от TradingView: ATAS считает по данным и истории вашего подключения.

Функции ордерфлоу

Помимо возможностей Pine Script, ATAS Script читает данные ордерфлоу каждого бара:

  • значения бара: дельта, объём аск, объём бид, число сделок, кумулятивная дельта, POC, верхняя и нижняя границы зоны стоимости, максимальная и минимальная дельта;
  • значения футпринта на цене: объём, аск, бид, дельта и сделки, число ценовых уровней, дисбалансы покупок и продаж.

Редактор подсказывает эти функции при вводе.

Индикаторы на C#

Чтобы написать индикатор на C#, нажмите Создать → Индикатор C#. Запустить, Проблемы, список скриптов и добавление на другой график работают так же, как для ATAS Script.

  • Ради безопасности код на C# не может работать с файлами, сетью, потоками, рефлексией и системными вызовами. На такой код выдаётся ошибка Forbidden namespace или Potentially unsafe code pattern.
  • Чтобы подключить стороннюю DLL, разверните Референсы над кодом и нажмите Добавить референс. DLL принимается только из папки, которая указана в сообщении об ошибке.
  • Индикаторы, которые поставляются DLL-файлами без исходного кода, в редакторе скриптов не открываются.

Если что-то не так

ПроблемаЧто делать
Нет кнопки или пункта меню редактора скриптовПроверьте, что у вас десктопная бета-версия ATAS или ATAS X и что в подписку входит Script Lab. Если всё так, напишите в поддержку.
Ошибка говорит, что данные другого таймфрейма недоступныВ коде есть request.security или другая функция request.*. Уберите её и считайте значения по барам графика.
Предупреждение: скрипт-стратегия скомпилирован как индикаторИндикаторная часть работает, но сделки не выставляются и бэктеста нет.
Ошибка говорит, что значения стратегии не поддерживаютсяКод использует значения стратегии. Перепишите скрипт как индикатор.
Ошибка говорит, что функция или свойство не поддерживаетсяЭтой функции в ATAS Script нет. Замените её своим кодом.
Ошибка говорит, что именованный аргумент неизвестенПроверьте имя параметра функции.
Компиляция не прошла, но индикатор на графике естьНа графике осталась прежняя рабочая версия. Исправьте ошибки в панели «Проблемы» и снова нажмите «Запустить».
Ошибка C#: Forbidden namespace или Potentially unsafe code patternУберите код, который работает с файлами, сетью, потоками или системными вызовами.
Ошибка C#: референс не разрешёнПоложите DLL в папку, указанную в сообщении об ошибке, и добавьте референс снова.
Ошибка говорит, что компилятор недоступенПерезапустите платформу. Если повторяется, напишите в поддержку и приложите логи платформы.


Статья помогла?

Отлично!

Спасибо за ваш отзыв

Извините, что не удалось помочь!

Спасибо за ваш отзыв

Расскажите, как мы можем улучшить эту статью!

Выберите хотя бы одну причину
Требуется проверка CAPTCHA.

Комментарий отправлен

Мы ценим вашу помощь и постараемся исправить статью