.
Создаем и тестируем механическую торговую систему. Часть 1. Генератор сигналов (new_global, qpile, q
Автор megabax   
20.05.2010 г.
Структура программы на примере простейшей программы

Создаем и тестируем механическую торговую систему. Часть 1. Генератор сигналов (new_global, qpile, quik, moving average).

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


На уроке 4 мы уже писали с вам простейшего робота. Он может покупать и продавать по сигналам простейшей МТС. Но, прежде чем начать запустить робота на реальном счете, вы хотите знать, принесет ли он вам прибыль, не правда ли? Можно погонять его на демо счете. Но, согласитесь, это длительный процесс, хотя, думаю, некоторое время все же имеет смысл протестировать программу на демо счете. Однако только проверка на истории даст какую то общую картину. Вот этим мы сейчас и займемся. Для начала напишем портфель (робота), который будет просто выводить сигналы во таблицу портфеля, которую мы сможем сохранить, например, в формате Excel.

Прежде всего, сформулируем правила нашей МТС-ки:

  • Если цена открытия текущей свечи выше линии "Moving average" то выставляем отложенную заявку на продажу на уроне MA. По мере изменения MA изменяем цену исполнения заявки.

  • Если цена открытия текущей свечи ниже линии "Moving average" то выставляем отложенную заявку на покупку на уроне MA. По мере изменения MA изменяем цену исполнения заявки.

Иными словами, мы продаем, когда котировки падают ниже линии MA и покупаем, когда пробивают ее вверх. При необходимости переворачиваем позицию.

Для этого написания генератора сигналов нам  потребуется библиотека "Работа с датой и временем" созданная на прошлых уроках, которую можно в исходниках платного раздела.

Начнем писать программу с создания еще одного библиотечного файла signaler.lib...

...

... И так, рассмотрим функцию GetSignal. У нее есть входные параметры:

  • aDate - дата в формате ассоциативного массива.

  • aTime - время в формате ассоциативного массива.

  • aClass - код класса ценной бумаги (для использования в стандартной функции Get_Candle_Ex

  • aMAName - наименование графика индикатора (см. урок "Отслеживаем сигналы торговой системы")

Возвращает эта функция ассоциативный массив, содержащий сигнальную цену (по которой нужно выставить отложенную заявку) и направление...

...

... Прежде чем запустить программу, проверьте, открыт ли соответствующий график и задан ли ему идентификатор (в данном тексте у нас pMaName="MA" и pCandleName="GD"):

Создаем и тестируем механическую торговую систему. Часть 1. Генератор сигналов (new_global, qpile, quik, moving average).

Запустив программу, вы увидите вот такую таблицу...

...

Ее можно выгрузить в Excel...

...

Создаем и тестируем механическую торговую систему. Часть 1. Генератор сигналов (new_global, qpile, quik, moving average).

Последнее обновление ( 02.12.2010 г. )