Commenced: Начинающему рободелу (Амиброкер).

  • Автор темы mehanizator1
  • Дата начала

mehanizator1

New member
Первое что сделаете определитесь с программой ТА, на сайте меха есть соответствующая тема, где есть и опросник и мнения форумчан к программам ТА, в первую очередь ами облегчит тестирование и оптимизацию ваших систем, а при желании позволит автоматизировать торговлю, какую именно программу вы выберете, зависит от вас, если ами, то интерфейс будет только английский, правда проблемы в этом нет, все интуитивно, мне не знающему языка это проблему составляло с пол года, а сейчас благодаря Олегу проблемы как мне кажется вообще нет.

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

Будем считать что у вас есть установочник лицензионной ами ( http://www.amibroker.com ). Как установить, создать базы и т.д. берете у Олега, великого повелителя цифр, ( http://amisite.ru/begin/beg_ind.htm ). Здесь же есть русифицированный хелп, на форуме сайта кстати тоже можно почерпнуть много полезного советую почитать и зарегистрироваться, не все темы видны гостям.

Для создания автоматизированной торговли, необходимо следовать следующему алгоритму действий, написание системы, тестирование, оптимизация, перенос системы в тело робота с внесением необходимых изменений, зависит от выбранного робота.

Теперь о главном из-за чего статья писалась, не у всех МТСников есть понимание алгоритма обработки массива цен ами. Системы пишутся не с позиции вашего понимания, а с позиции понимания ами, того как она воспринимает и обрабатывает массив цен, а именно, прошлые бары представлены стабильным массивом HLOC, текущий массив (бар) представлен стабильным массивом O, и нестабильными С, который может принимать любое значение цены соответствующее текущей цене рынка, и остается 2 массива более интересных, массива L который может принимать значение не выше O, и может изменяться только в направлении снижения, причем выше достигнутого значения в текущий момент времени стать не может и массив H к нему применимо все как и к L, но наоборот. На написанном выше хочу особенно заострить внимание, большинство косяков систем с которыми ко мне обращаются именно в непонимании массивов, а это косяки, как в описании условий систем, так и в определении цены сделок для теста. При использовании в системах индикаторов, прежде всего необходимо уточнить формулу их расчета и на базе какого из массивов они строятся, после чего зная как обрабатывается массив вы сможете предполагать как все это ами воспримет. Очень часто пишут о том что ушли заявки в квик, а в ами таких нет, почему так происходит? Тестирование на истории и реальная работа системы, которую вы вставите в робота не одно и тоже, при тестировании все массивы статичны, т.к. база сформирована, при работе робота, вы будете подключаться к реалтайм котировкам, и массив на текущем баре будет вести себя иначе. Возьмем простой пример пробой средней, как мы знаем массив С на текущем баре может принимать любые значения, а значить с его изменением будет изменяться и значение средней, а теперь вспомним особенность работы ами с массивами на текущем баре. Берем пробой вверх, С достигает значения при котором она пробивает среднюю, ами считает что условие соблюдено, после чего производит откат вниз условие перестает соблюдаться, так вот ами не запоминает свое состояние в течении бара, он его определяет в каждый момент времени, не помня что произошло 1 сек назад, а значить построив системы на базе С вы получили бы сигнал на вход в позу, о котором сама ами нечего не помнила бы при изменении С, а значит и сигнала на выход из позы никогда бы не дал. Зная особенности массивов систему пробоя можно строить беря H и среднюю от С с прошлого бара, можно брать значение с прошлого бара средней на H, а еще зная особенность построения массивов можно брать среднюю от текущего H, потому что меньше он стать не может, в тоже время мы можем рассчитать значение при котором H станет выше чем средняя от него же без смещения, для этого достаточно знать формулу расчета средней. Поймите не ами будет подстраиваться под вас, а вы под его возможности. Поэтому учитывайте их пожалуйста.

Следующая проблема по фильтры, в хелпе внимательно почитайте, что какая функция делает, не надо вставлять 2 - 3 фильтра выполняющие одну и туже работу если сигналы не фильтруются, разбирайтесь с условиями, косяк там.
Еще проблема это расчет цены для тестера …..Price, если сигналы мы формируем условиями, то цену мы определяем массивами (числом) не путайте, и не забывайте про массив O, в момент открытия свечи и H и L и C равны O, а значить если говорим про пробой то BuyPrice = max(o,y); y- уровень, а не просто BuyPrice = y; Если речь идет о пробое двух линий то BuyPrice = max(o,max(y,z)); функцию IIF() используйте когда она действительна нужна, чем больше расчетов тем выше вероятность ошибиться, поэтому все необходимо упрощать в рамках представленных функций ами.

Ну и наконец робот, на выбор сейчас 2 один создан Мехом и работает в виде индикатора, соответственно ами должен быть открыт и робот Олега в виде сканера, можно свернуть и забыть выбирать вам. Оба робота с открытым кодом, имеют и плюсы и минусы, о чем можно почитать у самих авторов.

Автор статьи: Commenced.
 

andrew13

New member
Так решение проблемы простое - смотреть тока предыдущий, а не текущий бар и все ... тогда тесты с релаьностью совпадут. Простым языком действовать только по закрытию бара.
Может не универсально, но для начала чтобы тесты совпали с реалом очень хорошо, имхо =)
Если важно быстрое действие - для пробойников смотрите минутки. Достаточно быстро войдем.

А у тебя у самого робот в чем написан, если не секрет - Ами?
 

pitero

New member
Автор не раскрыл тему сисек, ой, то есть роботов.
Если честно, ожидал более интересной статьи. В статье описано как правильно трактовать то что видишь на экране, что максимум может помочь написать что-то типа "советника".
Может для начала это и не плохо, но вот запускать робота на этом, извините, нельзя.
Где ММ? Где сопровождение позиции, пирамидинг? Портфельное тестирование? Возможности всего этого в АМИ есть. Я тоже использую амиброкер и после года возни с ним убедился лишний раз, что тут (в Ами), впрочем, как и в любом языке программирования, надо быть профи, что бы написать законченную вещь. Да, АМИ неплох. Но специфичен. И писать на нем системы - трудно. Поэтому многие и пишут свои плагины, потому как им проще написать их на своем любимом языке, а не на амишном.
Из темы статьи я расчитывал, что автор даст какие-то шаблоны АМИ с коментами, демонстрирующие уже проверенные решения и способные помочь:
- управлять позицией (размер, сопровождение, движение стопов, пирамидинг)
- организовать портфель систем
- наладить работу систем портфеля в разных тайм-фрэймах на одном тикере
- дать основы тестирования и главное, трактования результатов деятельности системы.
И дать это можно так, что ноу-хау не пострадает.
Отсылать к доке АМИ и на сайты не надо. Статья ведь и пишется для того, что бы отделить зерна и подать самое интересное и нужное, верно?
Я бы почитал части статьи с 3 и выше, если будут. Напишешь - позови :)
 
pitero, думаю ты слишком суров =)
статья называется "начинающему" роботоделу.
до твоих тем начинающий роботодел доберется дай Бог через полгода...

но совершенно верно подмечено, что в Амиброкере есть разные подводные камни (и относительно стопов, и по работе с массивом цен, и по корректному определению BuyPrice, SellPrice и т.д.)
 

andrew13

New member
Уважаемый, у т.н. "пробойников" счет идет на милисекунды, о каких минутах Вы говорите ?
Я для новичков написал, для кого статья и рассчитана, вроде.
Чтобы тест совпал с реальностью ... а дальше, если есть хорошая стратегия, уже можно и заморачиваться.

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

Лучше посоветуйте как вы входите на пробое хорошим объемом и не получаете затарку на максимуме свечи?
 

GH05

New member
Я для новичков написал, для кого статья и рассчитана, вроде.
Чтобы тест совпал с реальностью ... а дальше, если есть хорошая стратегия, уже можно и заморачиваться.

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

Лучше посоветуйте как вы входите на пробое хорошим объемом и не получаете затарку на максимуме свечи?
Не будет, для этого нужен качественный привод и канал нета.
 
Лучше посоветуйте как вы входите на пробое хорошим объемом и не получаете затарку на максимуме свечи?
я лимитками вхожу.
у меня система (Excel + VBA) с отслеживанием исполнения заявок и очисткой неисполнившихся.

GH05 ты на каком фрейме, что у тебя все на милисекундах?
я на 15тиминутках (!) вопроса проскальзывания касаюсь только на стопах
 

GH05

New member
я лимитками вхожу.
у меня система (Excel + VBA) с отслеживанием исполнения заявок и очисткой неисполнившихся.

GH05 ты на каком фрейме, что у тебя все на милисекундах?
я на 15тиминутках (!) вопроса проскальзывания касаюсь только на стопах
А какая разница какой таймфрейм, вот появилась цена по которой нужно купить, твоя заявка должна быть выставлена как можно быстрее, поскольку они выставляются в очередь. Из за этого использовать робота на основе АА нет смысла, там опрос раз в секунду. И еще оч быстрого выставления через запись в файл не добиться .
 

Dim_plus

New member
pitero, думаю ты слишком суров =)
статья называется "начинающему" роботоделу.
до твоих тем начинающий роботодел доберется дай Бог через полгода...

но совершенно верно подмечено, что в Амиброкере есть разные подводные камни (и относительно стопов, и по работе с массивом цен, и по корректному определению BuyPrice, SellPrice и т.д.)
Я уже вроде искушенный рободел, но после чтения статьи впечатление сложилось, что Ами довольно сложный инструмент особенно в сравнении с очень простым и легким для освоения любым пользователем Метастоком.
 

andrew13

New member
Не будет, для этого нужен качественный привод и канал нета.
Смотрим мамбу сбер - во время прорывов цена СРАЗУ прыгает и дальше шурует, тама заявы съедают в момент ... Скажем тебе надо войти 10 лямами рублей (не до фига кстати 200000 лотов) в позу именно на прорыве - я не представляю как эт можно сделать по разумным ценам, думаешь канал поможет и какое проскальзывание ты считаешь адекватным?

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

mehanizator1

New member
миллисекунды, канал связи... пионэрия какая-то. вы попробуйте исполнить сайз 100 млн на движении, когда поток заявок в вашу сторону исчезает ВООБЩЕ. время исполнения в лучшем случае будет исчисляться минутами, а в худшем вы вообще плюнете на сигнал, потому что когда сайзы в вашу сторону все-таки появятся, рынок уже ушел процента на три.

миллисекунды могут быть важны при игре одним лотом, когда надо быстро хлопнуть по противоположной стороне спрэда, пока она есть. но многие ли здесь играют одним лотом? :)
 

Данила

New member
миллисекунды могут быть важны при игре одним лотом, когда надо быстро хлопнуть по противоположной стороне спрэда, пока она есть. но многие ли здесь играют одним лотом? :)
Да как сказать... на RI например миллисекунды могут быть важны и для тех, кто играет двадцаточкой-сороковочкой лотов. Я думаю, что многие тут НЕ играют двадцаточкой лотов)
 
А какая разница какой таймфрейм, вот появилась цена по которой нужно купить, твоя заявка должна быть выставлена как можно быстрее, поскольку они выставляются в очередь. Из за этого использовать робота на основе АА нет смысла, там опрос раз в секунду. И еще оч быстрого выставления через запись в файл не добиться .
а как у тебя организован импорт в квик, если не через файл?
там тоже задержка в 1 секунду, пока квик читает.
ну можно пол секунды вроде сделать.

я экспортирую по DDE в Excel, а импортирую, через *.tri-файл

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

mehanizator1

New member
Да как сказать... на RI например миллисекунды могут быть важны и для тех, кто играет двадцаточкой-сороковочкой лотов. Я думаю, что многие тут НЕ играют двадцаточкой лотов)
в любом случае это для жоского интрадея, где уже, как Интро отмечает, давно рубятся роботы с роботами :) думаю, что большинство живых трейдеров торгует на тех таймфреймах, где миллисекунды не нужны.
 

GH05

New member
А че вы тогда пристали к моему комменту, если все равно на АМИ этого не сделать, а статья про АМИ была? ...
Что значит пристал? Ами это может сделать!) Только другим способом. Да и еще роботом гонять более нескольких лямов неблагодарное занятие, по крайней мере на нашем рынке, макс 1-2 млн. На пробое спокойно захожу.
 

GH05

New member
а как у тебя организован импорт в квик, если не через файл?
там тоже задержка в 1 секунду, пока квик читает.
ну можно пол секунды вроде сделать.

я экспортирую по DDE в Excel, а импортирую, через *.tri-файл

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

Данила

New member
в любом случае это для жоского интрадея, где уже, как Интро отмечает, давно рубятся роботы с роботами :) думаю, что большинство живых трейдеров торгует на тех таймфреймах, где миллисекунды не нужны.
Да, конечно речь о роботах, в пределах человеческих возможностей слишком много миллисекунд )
 
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху