Итак, это продолжение серии постов о языке ATF транзака. В этом посте от описания причин, по которым в данный момент я выбрал это вариант, перейду к первым практическим примерам. Во первых написание и отладку торговых роботов лучше всего проводить на демо счёте терминала Transaq. Для этого нужно скачать и установить демо версию терминала: Transaq-Intra. Которую вы можете найти по этой ссылке. http://transaq.ru/overview Итак установив терминал, анчинаем первые шаги по созданию робота: В терминале Transaq Выбираем пункт «графики» в нём подпункт «Скрипты ATF»: Во вновь открывшемся окне выбираем пункт «Добавить»: После чего открывается окно в котором мы будем писать скрипт системы. В верхней части окна заполняем поля Название скрипта и Id. Заполняем латинским алфавитом. В данном случае назвал этого простейшего робота BOT: Под ним поле кода скрипта. Сразу учтите, что сохранить скрипт до того как он будет логически завершён вам не удастся. Так что иногда бывает полезно писать или копировать код в блокнот. Сегодня мы создадим простейшего тогового робота основанного на пересечении двух экспоненциальных скользящих средних. Итак, шаг №1 Задаём окно, в котором будут выводиться данные со скрипта: #samewindow – это означает что данные (линии средних) будут накладываться прямо на график. Если не задать этот параметр, то они будут выводится в отдельном подокне. Затем, в скрипте задаём вывод двух линий: #line 1 solid Red #line 0 solid Blue Это нужно чтобы мы непосредственно на графике могли визуально видеть, как эти средние располагаются относительно друг друга и графика цены. Следующий шаг вызываем функцию calc() в которой и будут прописаны правила и механизм заключения сделок. Эта функция обрабатывает данные каждый тик. function calc() { Следущий шаг задаём расчёт линий 1 и 0 вывод которых мы прописывали ранее: line[0] = MovAvg(ind_ema, 26, pt_close ); line[1] = MovAvg(ind_ema, 13, pt_close ); После этого задаём условия совершения сделок: if(line[0]<line[1] and line[0][-1]>line[1][-1]){ trade_action::buy(1, ::lots,close*1.01);} if(line[0]>line[1] and line[0][-1]<line[1][-1]){ trade_action::sell(1, ::lots,close*0.99);} После чего закрываем функцию } Здесь мы задали покупку при пересечении средней с более коротким периодом средней с более длинным снизу вверх и продажу при аналогичном пересечении сверху вниз. Вот что у нас получилось : Теперь жмём Ок. Выводим график какой либо бумаги. Для этого в таблице бумаг жмём правой кнопкой на бумагу и там вывести график. Это впрочем должны знать все кто пользуется Транзаком. Теперь щёлкаем правой кнопкой мыши на график цены и жмём «добавить индикатор» в окне выбора выбираем только что созданный нами скрипт «BOT» . Получаем вот такую картинку: На графике видим две скользящие среднии. В левом нижнем углу красненькая фигурка робота. Если нажмём на неё, то она станет зелёной, что будет означать, что робот включен и будет совершать сделки в автоматическом режиме. Отключить робота так же просто повторно нажав на его фигурку, после чего она снова станет красной. Итак, мы только что написали первого простенького робота сами. Это первые Азы… В следующих постах расскажу как осуществлять контроль над вашими позициями по бумагам в роботе и задавать их торгуемое количество в зависимости от величины свободных средств. P.s. В виду того, что отдельное сообщество решил не создавать (их у меня и так уже три). Посты по написанию роботов и индикаторов в ATF Транзака можно будет найти в блоге. Из-за замусоривания ленты в последнее время, на интересующие блоги лучше подписываться ИМХО, сделать это можно кликнув слева от данного поста на : После чего искать кликая на эту иконку вверху: Внутри блога лучше всего искать посты на эту тему по тегу ATF. На данный момент интересует мнение людей, что им нужно для создания торговых систем на этом языке, вопросы, предложения и т.д. Интересующие вопросы задавайте в блоге, разберёмся. Будет ясно, в каком направлении эту ветку блога лучше вести.