Реклама

пятница, 29 октября 2010 г.

Програмируем робота Урок №1и 2 Мат модель

Я давно хотел для Вас читатели блога найти материал интересный по написанию робота, про свой комплекс писать не хочется ( ком. тайна) , да и  как-то лениво, постоянно нет времени, надо писать новые алгоритмические системы.

Но вот в обед за чашечкой шоколада (ай как приятно), прогугливая инет на предмет конкурентов , наткнулся на чудный материал. Как наваять простого биржевого робота.
Автор МЕГАБАКС ,  от скуки или от щедрости выложил подробную пошаговую инструкцию по созданию програмного комплеса на Delphi. Где взять инсталятор Дельфи не надо вам объяснять..... Поднимите с пола , что плохо лежит. Ну а статьи с ссылками и с соблюдением авторских прав, с удовольствием публикую у нас. Да вот еще, там на сайте есть платный раздел расширенный, его Я вам тоже рекомендую посетить , не жалко отдать денег хорошему человеку за дельный совет.
 А кому лень писать или поймете , что это не просто может посмотреть наше предложение.

Начинаем писать Механическую торговую систему. Построим матмодель.

В этом цикле статей я опишу процесс создания биржевого робота на языке программирования Delphi 7.  Выбрал Delphi я потому, что, во первых умею на нем программировать, во вторых, создавать приложения на нем гораздо легче, чем, например, на visual c++, у, а в третьих, такие языки как PHP, JS или Visual Basic плохо подходят для такой задачи, как создание биржевого робота.
И так, первый шаг к созданию биржевого робота разработать механическую торговую систему. Сперва я решил провести кое какие исследования, начав с изучения концепции импульса цены (momentum), или, говоря другими словами, скорости цены.
И так, для начала следует проверить вычитанное в одной книжке утверждение, что «…темп роста или падения цены является главным индикатором изменения направления тренда. Изменение импульса предшествует изменению самой цены. В типичном рыночном цикле начало нового растущего тренда характеризует очень высоким и растущим импульсом цены. Постепенно эта положительная скорость уменьшается как график цены становиться более пологим. Почти всегда импульс цены достигает своего максимума гораздо раньше, чем фиксируется максимальная цена. Затем скорость убывает, и цена, в вялых попытках нового роста поднимается совсем немного. По мере того, как график цены перестает достигать прошлых пиков и разворачивается вниз, график значительно падает».
И так, наш первый шаг в создание МТС – это построение математической модели, на основании которой мы будем исследовать скорость изменения цены.
И так, что значит скорость изменения цены? Очевидно, это отношение разницы между ценами на конец и начало периода к длительности самого периода. Но эта разница должна быть не в денежном выражении, а в процентном.  Тогда мы получим изменение цены в процентах за единицу времени:

Delphi МТС котировка momentum,

где Delphi МТС котировка momentum  - значение котировки на конец периода (поле close на конец периода),
 Delphi МТС котировка momentum- значение котировки на начало периода (поле close интервала, предшествующего началу периода)
Delphi МТС котировка momentum  - длительность периода

Котировки ценных бумаг представляют собой массив, каждый элемент которого есть структура:

{open, higth, low, close, volume, datetime}
где open – значение котировки ценной бумаги на начало интервала,
higth - максимальное значение котировки внутри интервала,
low – минимальное значение котировки внутри интервала,
close – значение котировки на конец интервала,
volume – суммарный объем сделок по данной ценной бумаге за интервал,
datetime – дата и время начала интервала.

Математическую модель построили. Следующий наш шаг – постановка задачи. Но об этом уже в следующей статье.

Источник: http://easyprog.ru/index.php?option=com_content&task=view&id=31&Itemid=44



Начинаем писать Механическую торговую систему. Постановка задачи.

Продолжим создание биржевого робота. В прошлый раз мы разработали матмодель исследуемого параметра (скорости изменения котировок).  Сегодня займемся постановкой задачи. Нам нужно проверить, действительно ли при скорости изменения цены можно прогнозировать изменения котировок. Будем исследовать идею о том, что при пересечении функцией Начинаем писать Механическую торговую систему. Постановка задачи. Биржа. Робот. Сигнал (скорость изменения котировок) нуля тренд меняет свое направление и на сколько.
Исходя из вышесказанной, первым делом нам нужно написать небольшую программку статистического анализа. На входе этой программы: массив котировок, загружаемый из текстового файла (сам текстовый файл можно скачать, например, с сайта Финам http://www.finam.ru/analysis/export/default.asp)
И так, на входе программы у нас котировки в формате, описанном в первом уроке и входные параметры
  • Тестируемый период.
  • Тестируемая ценная бумага.
  • Интервал котировок.
  • Количество интервалов для вычисления скорости изменения цены. (Начинаем писать Механическую торговую систему. Постановка задачи. Биржа. Робот. Сигнал)

На выходе статистика в виде массива следующей структуры:

  • Дата сигнала.
  • Максимальный ход в направлении сигнала %
  • Период времени до конца максимального хода

Далее, полученную статистку мы будем обрабатывать, для получения прогнозов прибыльности при установке разных значений stop loss и take profit. Stop loss - это такой ход цены в % против нас, при котором мы завершаем сделку, несмотря на убыток с целью не допустить дальнейшего увеличения убытков. Take profit - это такой ход цены в % в нашем направлении, при котором мы закрываем сделку, что бы получить прибыль и не допустить ее потери, если цена пойдет против нас. Но это уже будет следующий этап проекта и постановку задау на него мы обсудим тогда, когда приступим к реализации.

На сегодня все, а в следующем уроке приступим к реализации поставленной задачи. Последнее обновление ( 29.10.2010 г. ) 
Источник: http://easyprog.ru/index.php?option=com_content&task=view&id=47&Itemid=44