Настройка робота Ambroker-AmiSharp-Quik

Опубликовано в FAQ AmiBroker

Как настроить робота, написанного мной для работы в среде Amibroker с использованием AmiSharp?

Проиллюстрирую на примере несложного робота, описанного в статье Слайсер для графиков. Для других роботов процедура настройки может несущественно отличаться. Подразумеваю, что программа технического анализа Amibroker у Вас уже установлена. Если нет, ее можно взять здесь. Очевидно, у Вас установлен терминал QUIK и настроен экспорт котировок из него в Amibroker.

Теперь инсталлируем AmiSharp, если он у Вас ещё не установлен. Отмечу особо. Руками Амишарп запускать нужно только однажды при его установке. В дальнейшем (после установки) он не требует никакого внимания к себе, запускается и выгружается сам. Никаких манипуляций с ним производить не требуется.

В настройках Амиброкера следует снять галочку в Tools->Preferences->AFL->Multi-treaded charts.

В настройках QUIK разрешим внешние транзакции: Торговля->Внешние транзакции->Запускать процесс обработки внешних транзакций автоматически(установить галочку)+Начать обработку.

Все предварительные действия завершены, все программы установлены и настроены. Теперь переходим к запуску собственно самого робота.

Открываем новый пустой сhart : File->New->Blank chart

Кидаем мышкой файл скрипта робота (тот что с расширением .afl) в этот открывшийся пустой chart. Выбираем тикер (педалька с именами тикеров в верхней части экрана). Получаем примерно такую картинку: 

 

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

 

Открываем панель настроек робота (правая кнопка мышки на графике или Ctrl-R)

Даже у такого несложного робота различных настроек довольно много. Впрочем, большинству из них уже установлены значения по умолчанию, изменять которые имеет смысл лишь для тонкой настройки самого алгоритма. Поэтому вполне достаточно ограничиться только основными параметрами, показанными на рисунке выше.

Итак. Приступаем.

  • Уникальное имя робота. Поскольку Вы можете запустить произвольное количество копий каждого робота, каждая из этих копий должна иметь свое индивидуальное имя. Используя это имя, робот будет создавать на диске файлы, нужные ему для работы. В частности, с этим именем будет создан лог-файл, в котором будут протоколироваться все события. Я рекомендую указывать этот параметр самым последним, иначе диагностика робота о незаполненных параметрах будет мешать процессу настройки.
  • Каталог робота. Название существующего каталога, где будут создаваться все эти файлы.
  • Торговый счет. Это тот торговый счет, с которого будет производиться торговля роботом. Разные роботы могут торговать, используя разные счета. Для FORTS торговый счет имеет форму SPBFUT00xyz, для ММВБ форму NL0011100099. Торговый счет можно посмотреть в терминале QUIK в форме выбора счетов (Торговля->Настройка счетов)
  • Код клиента. Предназначен для возможности торговать трейдерам, использующим несколько кодов клиента. Если Вы не такой трейдер, просто оставьте это поле пустым
  • Код инструмента. Это код инструмента, которым Вы собираетесь торговать в торговой системе. Например, инструмент Газпром имеет в торговой системе код GAZP, фьючерс на сбербанк на текущий момент SRM3
  • Код класса инструмента. Все коды инструментов группируются в классы. Например, фьючерс SRM3 находится в классе SPBFUT. Код класса любого интсрумента можно посмотреть в таблице текущих параметров (текущая таблица) терминала QUIK. В большинстве случаев заполнять это поле не требуется - робот сам определит принадлежность инструмента классу. Однако встречаются редкие случаи, когда это сделать невозможно. Если у Вас именно такой случай - укажите класс инструмента в этом поле
  • Папка QUIK. Обязательное для заполнения поле. Полный путь к файлу info.exe терминала quik, который будем использовать. Разные копии робота могут успешно работать через различные терминалы quik одновременно. При старте робот проверит наличие запущенного указанного терминала и при необходимости запустит его сам.
  • QUIK Login и QUIK Password. Если Вы хотите, чтобы робот автоматически ввел пароль и логин, укажите их в этих полях. Эта функция работает для стандартной процедуры авторизации. Если Вы используете какие-либо другие способы авторизации, то правильность процесса авторизации не гарантируется.
  • Частота перерасчета. Задает частоту, с которой робот мониторит рынок. Значение по умолчанию - одна секунда. Можно установить значения как больше, так и меньше секунды. При уменьшении значения увеличивается нагрузка на аппаратную часть. Многие роботы, написанные мной, не имеют этого параметра, и регулируют свое быстродействие взависимости от рыночных условий, повышая его там, где требуется и понижая в моменты, где наступление событий не предполагается.
  • DDE. Это протокол, который нужно настроить для того, чтобы робот мог видеть таблицы терминала QUIK. Этот робот нуждается в трех таблицах: таблице текущих параметров (она же текущая таблица), таблице заявок и таблице сделок. DDE:Книга - одна для всех трех таблиц. Название листа - для каждой из таблиц своё. Вам необходимо открыть в терминале QUIK 3 таблицы (текущая, заявок, сделок) и настроить их экспорт посредством протокола DDE с указанными именами. На примере текущей таблицы: переходим в терминал QUIK, создаем текущую таблицу, клик правой кнопкой мышки на этой таблице, Вывод через DDE сервер. Заполняем поля так:

    и нажимаем НАЧАТЬ ВЫВОД. DDE server всегда имеет имя mutant. Книга и лист должны иметь те же названия, которые указаны в параметрах робота. Галочки ставим везде, кроме первой и последней. Повторяем процедуру для всех трех таблиц. Название книги для каждой из них одно и то же, а названия листов - разные.

 

Если какой-то из параметров указан неверно, робот постарается Вам помочь. Например, Если Вы неправильно настроили экспорт таблицы текущих параметров, робот Вам об этом сообщит:

Также все сообщения об ошибках будут продублированы в лог-файле.

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

Настройка такого робота несколько сложнее, чем, например, написанного на qpile или Lua. Однако возможности, предоставляемые им, значительно богаче. Сложные инструменты всегда требуют более квалифицированного применения, давая значительно больший эффект по сравнению с простыми (экскаватор намного сложнее лопаты).

После того, как Вы все настроили и робот проверил правильность всех настроек, наличие соединения с сервером брокера и все остальное, необходимое ему для работы, он переходит в режим готовности. После нажатия на кнопку START робот начинает исполнять свой алгоритм, посылая заявки на сервер.

После появления реальных сделок последние также будут выведены на экран робота наряду с расчетными, при этом будут сопровождаться указанием реальных цен исполнения примерно таким образом: 

 

Расчетные и реальные сделки

Треугольники - это расчетные сделки, стрелочки - реально произведенные. Отличаются, очевидно, на размер проскальзывания. Если Вы навелёте мышку на метку реальной сделки, то на экране появится подсказка с параметрами этой сделки:

Любая сделка может (при желании пользователя) сопровождаться звуковым сопровождением (звуковая схема настраивается), расширенным сообщением на экране, сохраняется в лог-файле и регистрируется в протоколе формата Excel для последующего анализа. Также, изменяя параметры, можно кардинально менять внешний вид графика робота.

 

Недостаточно прав для комментирования