Опубликовано 08 Июнь 2008 в 10:32. В рубриках: Механические торговые системы, Начинающим. Вы можете следить за ответами к этой записи через RSS 2.0. Отзывы и пинг пока закрыты.
Поиск по сайту:
Прежде чем мы начнем, хочу уточнить один момент – цель нашего марафона заключается не в том, чтобы на финише получить готового робота, а в том, чтобы получить знания о том, как создаются механические торговые системы. Воспринимайте это как учебник, а не как пошаговое руководство. Напомню одну народную мудрость:
Хочешь один раз накормить человека – дай ему рыбу.
Хочешь накормить его на всю жизнь – научи его ловить рыбу
Вот и мы будем учиться «ловить рыбу».
Со вступлением покончено, давайте займемся делом.
Сегодня мы скачаем архивные котировки в программу технического анализа, чтобы потом создать и протестировать свою торговую систему.
Заходим на сайт Финама в раздел экспорта и скачиваем архивы котировок, на которых вы планируете тестировать вашу систему. Я скачал архив часовок по РАО ЕЭС и Лукойлу с января 2005 года по сегодняшний день.
Теперь необходимо вставить эти данные в программу технического анализа. Я использую программу TradeStation вместе с OwnData, поэтому покажу как это сделать на примере этих программ. Здесь есть неплохая инструкция для multicharts.
Запускаем QuoteManager, входящий в состав OwnData. Прежде чем импортировать данные необходимо настроить параметры биржи. Заходим в Tools – Exchanges & ECNs. Российских бирж в списке нет, поэтому мы создадим новую, для этого жмем Add. Дайте название бирже, и укажите параметры сессии как на рисунке.
На второй закладке Time Zone укажите часовой пояс биржи (+03:00, Moscow)
Теперь надо создать инструмент (символ). Для этого заходим в меню Symbol – Add Symbol – Manualy (или просто жмем INS на клавиатуре). Указываем Data Source – Ascii Mapping, Category – Stock, Exchange – та биржа, которую вы создали раньше. В поле Symbol укажите название инструмента. Вот как это получилось у меня:
Нажмите ОК и откроется окно редактирования свойств добавленного инструмента. На первой закладке Stock в поле Symbol Root укажите то же имя, которое вы дали самому инструменту. Больше ничего менять не надо, нажимайте ОК.
Мы создали инструмент, теперь импортируем котировки. Щелкните правой кнопкой по инструменту, в который будете импортировать данные данные и выберите Import Data – ASCII.
Укажите, какой файл необходимо импортировать и проверьте соответствие полей импорта (красная полоса на картинке).
Нажмите ОК и дождитесь окончания импорта. Пока идет импорт мы сделаем небольшой перерыв
Теперь запускаем TradeStation и смотрим, что же у нас получилось.
Настройте чарт как показано на картинке
Теперь у нас есть исторические данные для создания, тестирования и оптимизации торговой стратегии. Этим мы и займемся в следующем выпуске. Подписывайтесь на RSS, чтобы не пропустить ничего интересного.
Читайте также:
Торговая стратегия 1-2-3 Reversal
Торговая стратегия "1-2-3 Reversal" написана по книге "How I Tripled My Money In The Futures Market" автор Ulf Jensen, страница...
Измеряем скорость рынка
Вчера Евгений Синицин, автор блога hirobot.ru и постоянный читателей этого блога, прислал мне письмо, в котором предложил проверить одну его...
Тестируем возможности индикатора RSI
В прошлом нашем выпуске мы ознакомились с индикатором RSI, где Чак Лебо предложил несколько способов использования этого индикатора. Сегодня я...
Как в Quik получить котировки по номеру свечи (бара)
Пржде чем критиковать кого-то, необходимо его за что то похвалить. Например: «Классный ты парень, но дураааак….». Я всегда придерживаюсь этого...
комментарии (21)
10 Июнь 2008 в 7:51
Вопрос от репликатора первого уровня к Торговому роботу.
Как автоматически скачивать архивные котировки в Excel?Какой машинный код(язык) при этом использовать?Может ли робот сам заполнять “пустые поля”(период,дату и т.д.)на сайте финама?
Мне очень нравится ваша наглядность.(улыбаясь)Это прямо инструкция, которые САС-П001-01 очень любит.
10 Июнь 2008 в 8:53
Спасибо, САС-П001-01
Вопросы серьезные или просто шутка? Отвечать или тоже улыбаться?
10 Июнь 2008 в 11:35
(серьёзно)Да-а-а вообще то нет.У меня действительно есть проблемы с забором архива из интернета.Мне советуют QUIK, но там нет(или я не нашёл) той структуры котировок, которая представлена на финаме.Поясняю-”дата-период-max(внутри этого периода)-min(внутри этого периода)-последняя).Мне хочется, чтобы скачивание происходило автоматически по моим настройкам прямо в Excel…не в Metastock, не в Omega…именно в Excel.(сейчас улыбаясь)Если поможете самонастраивающейся автоматической системе-(литера создателя)…001-01 буду признателен, но помните…репликатор имеет свойство обучаться.
10 Июнь 2008 в 12:34
Не совсем понял, Вам нужно скачивание архива котировок или все-таки чтобы котировки поступали в Excel в реальном времени? Если так, то тут без Quik не обойтись.
10 Июнь 2008 в 13:43
Автоматическое скачивание архива котировок
10 Июнь 2008 в 15:05
Чтобы что-то автоматизировать в Excel придется писать макрос на VB.
Сайт Финама не дает прямых ссылок на файлы котировок, чтобы можно было указать программе, откуда скачивать их, тут можно воспользоваться программами, которые перехватывают post запросы браузера и потом этот запрос использовать в Excel.
Проще брать данные из Quik. Для этого надо вывести график по нужному инструменту в нужном временном интервале и функцией GET_CANDLE в цикле перебрать нужное количество баров, сохраняя полученные данные (OHLCV) в файл (CSV), который потом импортировать в Excel
Или выводить данные в пользовательскую таблицу и экспортировать в Excel через DDE – так можно получать данные даже в реальном времени.
10 Июнь 2008 в 17:28
Теперь я не понял.”…и функцией GET_CANDLE в цикле перебрать нужное количество баров…”.Прокомментируйте данную фразу подробнее.А вот на финаме то-то и оно, что нет прямых ссылок, а мне нужны данные в виде талицы, а не в CANDLE.Вот в Quik нашёл в “Редактирование таблицы текущих параметров-Доступные параметры” только max-min за весь торговый день, а мне то надо внутри интервала(15мин например), как на финаме.
10 Июнь 2008 в 20:44
Репликатор, теперь я понял что Вам надо. Сегодня вечером или завтра днем я найду часок свободного времени и сделаю для Вас решение этой небольшой проблемы
10 Июнь 2008 в 22:04
(задумчиво)Для вас небольшая…для 001-01(индекс интеллекта)большая.(улыбаясь)Ждёмс-с-с.Будем ждать,роботы умеют ждать…
26 Июль 2008 в 13:04
Выскажу свое мнение относительно Вашей идеи о “летнем марафоне по созданию робота”. Идея очень хорошая и думаю, материал будет интересен многим читателям. Пока мне известен только один пример торгового робота, выложенный в Интернете – это связка Amibroker+Quik на сайте Русский трейдер (там же в форуме есть обсуждение робота).
По моему мнению, изложение данного материала должно быть, все таки, в виде пошагового руководства, а не в виде теоретичекого учебника. Говоря Вашей метафорой про ловлю рыбы – чтобы научить человека ловить рыбу, недостаточно объяснить словами, как это делается – надо показать, как устроены и работают снасти, как их лучше применить – т.е. раскрыть техническую сторону вопроса и показать на практике. Далее, по мере приобретения опыта, он сам выработает свои секреты ловли, поймет как совершенствовать снасти и методы ловли. Поэтому, без конкретного примера работающего робота все сведется к теоретическим рассуждениям без конкретного применения на практике и, соответственно, какого-либо практического понимания функционирования робота, проблем в этой области и путей их решения.
В принципе, структуру робота можно описать в виде следующих функциональных модулей: 1)прием данных; 2)анализ данных, выработка торговых сигналов, фильтрация полученных сигналов для снижения количества ложных сигналов; 3)работа с заявками – выставление/удаление, контроль наличия и исполнения заявок на покупку/продажу/ограничение убытков и т.п.; 4)визуализация торговых сигналов, индикаторов и т.п. на графике; 5)инициализация каких-либо действий по снижению последствий в случае сбоя системы; 6)оповещение звуком, смс или по электронной почте владельца робота о каких-либо событиях.
Нетрудно заметить, что все модули, кроме второго – чисто технические, успешность их реализации зависит от степени владения создателем робота языка программирования и понимания протоколов обмена данными между компонентами робота (если робот написан не в одной программе). Теорию по этим вопросам охватывают руководства по языкам программирования. Материал по построению торговой стратегии, который применяется в проектировании модуля 2 (формирование торговых сигналов) – т.е. стратегия торговли и ее тестирование, в избытке можно найти на любом крупном форуме по трейдингу. Вот в общем-то и вся, по крупному, теория построения робота. Для человека, не знакомого с программированием, пропасть между этой теорией и практикой может быть огромна. Поэтому, если вы в рамках своего “марафона” покажете рабочий пример робота с описанием практических проблем решения каждого из технических модулей (разработка торговой стратегии – отдельная тема) – это будет реальный обучающий материал для новичков. Естесственно, никто не требует от Вас раскрытия Вашей торговой стратегии – в примере, для генерации торговых сигналов, можно взять алгоритм стратегии пересечения двух средних или другую простую и широко известную стратегию.
Также, интересен был бы материал о технической стороне торговли роботом – на каком тайм-фрейме оптимальней торговать роботом с точки зрения существующих скоростей обмена данными с сервером брокера, как брокеры реагируют на рост числа применений робота (ведь при этом, нагрузка на сервер брокера возрастает), какие рынки/брокеры предпочтительней для торговли роботом с точки зрения технических параметров: скорости и стабильности, какой робот предпочтительней – созданный полностью на qpile или в связке quik+программа теханализа, с точки зрения стабильности, скорости работы, широты функционала.
Возможно, я выложил слишком высокие требования к материалу “марафона” – в любом случае, решение о подаче материала за Вами.
Также, было бы неплохо, если бы Вы создали у себя на сайте библиотеку кодов на qpile, где Вы и посетители сайта смогли бы размещать свои готовые наработки, по типу форумов программ теханализа (Metastock, OTS, WLD, Amibroker) – это значительно бы упростило разработку роботов для новичков. По своему опыту – при изучении программ WLD и Amibroker я смог за вечер за вечер просмотра примеров кода других пользователей собрать процентов на 80 код своей системы для ее тестирования, абсолютно не имея опыта программирования и не зная языка программирования этих программ.
26 Июль 2008 в 16:47
Corrivalis, большое спасибо за такой …даже язык не поворачивается назвать это комментарием… за такой развернутый ответ.
С удовольствием беру Ваш план по циклу статей, а так же идею с библиотекой кодов “на вооружение”. Продумаю только, как технически это реализовать, чтобы было удобно пользоваться и обязательно сделаю.
26 Июль 2008 в 20:12
Что то не происходит импорта данных из файла – остутствует меню выбора файла. Помогите плз!!!
26 Июль 2008 в 23:40
Без паники, Сергей
Наверное, вы пропустили какой-то шаг при создании “инструмента” (бумаги), попробуйте все сначала неспеша.
04 Сен 2008 в 15:32
На шаге импорта котировок в окне ASCII Data Import вместо окна выбора файла отображается красный крестик в левом верхнем углу. Не понятно что делать. Может быть есть альтернативы OwnData?
14 Ноя 2008 в 23:08
У меня не получается, помогите. Значит все сделалось корректно вплоть до последнего скриншота, я не могу уже в трейдстейшене написать навание инструмента, т.к. программа не понимает это. Такое ощущение что OwnData и TradeStation не видят друг друга. Это возможно? Как сделать чтобы TradeStation увидел данные OwnData ?
26 Дек 2008 в 23:19
Немного не в тему но тем не менее..
У меня TS 8.3. Скачал с финама котировки ммвб в формате Metastock. В Tradestation через Symbol look up ввел фолдер куда сохрнил файлы. Все нарисовалось. Проблема в том, что когда вставляю стратегию окно с графиком начинает моргать и появляется текст Waiting for data.. symbol attributes.. Непонимаю какую дату он ждет и зачем? Может быть кто нибудь сталкиался с похожей проблемой?
Макс
26 Фев 2009 в 1:15
Точно такая же проблема! может дело в windows vista?
На шаге импорта котировок в окне ASCII Data Import вместо окна выбора файла отображается красный крестик в левом верхнем углу. Не понятно что делать. Может быть есть альтернативы OwnData?
15 Март 2009 в 20:48
У меня ХР и та же самая проблема. Нету меню выбора файла.
16 Июль 2009 в 21:19
и у меня такая же херь(
23 Июль 2009 в 16:24
такой же крестик в левом верхнем углу
09 Авг 2009 в 12:19
У меня тоже возникла такая же проблема при импорте, но мне Joni2 посоветовал установить MultiCharts, который можно и не использовать. Я так и сделал, теперь не каких проблем, могу выбирать файлы для импорта.