Тестирование робота
Atom Ответить
01.03.2010


Здравствуйте, Михаил.

В этой ветке хотелось бы обсудить такой насущный вопрос как
тестирование написанного робота. К решению проблемы можно подходить
следующим образом:
1) Открыть демо счет и погонять на нем. Но здесь я столкнулся с
проблемой, что демо фортс работает как-то криво. Я просто загрузил
настройки с реального квика в демо и не увидел ни таблицы всех сделок
ни параметров торговли фьючерсом, хотя графики есть.
2) Тестировать на реальном счете одним контрактом. Но тестировать так
значит терять деньги, чего не хотелось бы.
Михаил, не могли бы вы осветить этот вопрос, если можно.
P.S. Что-то на стокпортале начались проблемы, поэтому наверное лучше
обсудит все здесь.

Теги:


Спасибо:



Поздравляем именинников: Станислав Гайворонский

63 Ответов
1 2 3  >
gravi

Фотография
Дата: 01.03.2010
Ответить


А тестировать, что!? Сам алгоритм, или взаимодействие с
торг.терминалом.
Взаимодействие, легко, Quik-Junior.

Спасибо:

Dmitri Kaptsov

Фотография
Дата: 01.03.2010
Ответить


Тестировать - все! и взаимодействие и алгоритм. Мне например нужен
ФОРТС. А вот судя по этойhttp://forum.finam.ru/index.php?showtopic=2635

ссылке это невозможно.

Автор топика
Спасибо:

skzuev

Фотография
Дата: 01.03.2010
Ответить


Добрый день,

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

Сергей.

Спасибо:

gravi

Фотография
Дата: 01.03.2010
Ответить


Ну если быстрый робот , то только на реале. А так обычно на истории
тестируют)
Вот здесь фортс вроде есть. Хотя сам не побывал.

http://quik.ru/user/client/quik/how-to-start/


Спасибо:

skzuev

Фотография
Дата: 01.03.2010
Ответить


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

На каком таймфрейме робот работает?

Спасибо:

Dmitri Kaptsov

Фотография
Дата: 01.03.2010
Ответить


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

http://www.bullstime.ru/2009/08/robots/brokertest.htmlПопробую в
открытии открыть учебный счет.

Автор топика
Спасибо:

skzuev

Фотография
Дата: 01.03.2010
Ответить


В Открытии тестовый счет дают без проблем, только там коды фьючерсов
отличаются от реальных.

Если мне не изменяет память, переставлены местами код и название контракта.

И лучше часть стратегии оставить в том средстве, в котором она
тестировалась, реализовав на S# только исполнительные механизмы - меньше
ошибок будет.

Спасибо:

Dmitri Kaptsov

Фотография
Дата: 01.03.2010
Ответить


Я Quik Junior там и брал, данных по Фортс к сожалению, кроме графиков
нет:( Можно ставить заявки, но ничего больше. Даже стандартный пример
со скользящими не работает, если добавить RIH0 в таблицу инструментов,
и соответственно в примере поменять LKOH на RIH0. Кроме того для Фортс
в нем не исторических данных, данные генерируются только для
сегодняшнего дня.

Автор топика
Спасибо:

Dmitri Kaptsov

Фотография
Дата: 01.03.2010
Ответить


А предоставляет ли Открытие исторические данные?
Я тестировал стратегию в Омеге, а качество сопряжения ее с квиком мне
не очень нравится. У Михаила судя по описанию все должно стабильнее
работать.

Автор топика
Спасибо:

skzuev

Фотография
Дата: 01.03.2010
Ответить


Про историю, честно говоря, не помню.
Исторические данные тестового ФОРТС могут отличаться от реальных.
Можно сделать сопряжение Омеги не с QUIK, а с S#. Омега умеет писать в файлы
или использовать COM объекты?

Спасибо:

gravi

Фотография
Дата: 01.03.2010
Ответить


В принципе можно какую нить заглушку написать на RegisterOrder, некий
эмулятор, и в логи писать результаты. Причем в методе эмуляторе, можно
и временные задержки включать и отключения связи симулировать и т.д).
Этакий синтетический стресс тест)) Может автор S#, реализует идею??))

Спасибо:

gravi

Фотография
Дата: 01.03.2010
Ответить


Про историю тоже не понял, зачем нужна в реалТайме? А так идем на
Финам, и качаем любые данные.

Спасибо:

Dmitri Kaptsov

Фотография
Дата: 01.03.2010
Ответить


Да сами данные мне не очень интересны пусть они и вымышленными будут,
лишь бы порядок цифр совпадал:)
Можно омегу сопрягать и с S#, но думаю, что система от этого
стабильнее не станет, лучше уж все через S# делать имхо. А com объекты
есть только у SmartTrade с его SmartCom, но по отзывам он тоже
глюковат.

Автор топика
Спасибо:

Dmitri Kaptsov

Фотография
Дата: 01.03.2010
Ответить


У Михаила в примере SamplesSMA реализована загрузка исторических
данный из файла в формате финама, но ведь там не текущих цен, только
OHLC. Хотя думаю и этого может хватить если стратегию немного
изменить. А вот использовать вместо RegisterOrder недостаточно, нужно
чтоб и котировки шли соответствующие. В общем как вы правильно сказали
внешний бы эмулятор, чтоб в идеале работал так: читал данные из файла
finam'a но генерировал свои тики для загружаемого бара. Вот это было
бы здорово.

Автор топика
Спасибо:

Dmitri Kaptsov

Фотография
Дата: 01.03.2010
Ответить


А что с этими данными делать, как применить при тестировании робота?

Автор топика
Спасибо:

gravi

Фотография
Дата: 01.03.2010
Ответить


Так, я тоже не понял, зачем Вам исторические данные из квика.
А в случае тестирования на истории то Финам -> WLD, оп крайней мере я
так делаю.

Спасибо:

skzuev

Фотография
Дата: 01.03.2010
Ответить


Ну если полностью переписывать робота на S# то и кормить его надо
историческими данными видимо.

Спасибо:

gravi

Фотография
Дата: 01.03.2010
Ответить


Полный эмулятор это круто, но и c RegisterOrder, можно брать реальные
котировки из DDE, как сейчас и реализовано , а исполнение ордеров
эмулировать..

Спасибо:

Dmitri Kaptsov

Фотография
Дата: 02.03.2010
Ответить


Для тестирования на истории я беру Финам->Omega. В идеале хотелось бы
протестировать робота на истории. Чтоб сопоставить результаты и быть
уверенным, но вот пока даже идей нет как это сделать.

Автор топика
Спасибо:

Dmitri Kaptsov

Фотография
Дата: 02.03.2010
Ответить


У Михаила реализована загрузка информации из файла финама, может как-
то можно их использовать для тестирования на истории?

Автор топика
Спасибо:

Dmitri Kaptsov

Фотография
Дата: 02.03.2010
Ответить


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

Автор топика
Спасибо:

skzuev

Фотография
Дата: 02.03.2010
Ответить


Для такого тестирования придется сделать эмулятор QUIK и биржи :-) Который
будет принимать заявки/стоп-заявки, исполнять их и сообщать результат.

Спасибо:

Dmitri Kaptsov

Фотография
Дата: 02.03.2010
Ответить


Сегодня получил доступ к тестовому серверу Открытия на месяц. Там все
есть: и фортс и история! Поэтому похоже можно обойтись без супер
эмулятора:)

Автор топика
Спасибо:

gravi

Фотография
Дата: 02.03.2010
Ответить


Расскажите, что и как вы собираетесь тестировать на истории из квика?
Правда интересно.
И в открытии данные торгов реальные, или учебные от РТС?

Спасибо:

Dmitri Kaptsov

Фотография
Дата: 02.03.2010
Ответить


Точно также как в омеге. То есть робот получает данные в виде свечек и
в случаи наступления условий виртуально выставляет заявку (например
просто сохраняет данные о входе/выходе в бд).

Автор топика
Спасибо:
1 2 3  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy