.
Qpile. Урок 11. Симуляция торговой стратегии. Функция TestStops
Автор megabax   
04.07.2011 г.
Структура программы на примере простейшей программы

Qpile. Урок 11. Симуляция торговой стратегии. Функция TestStops

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

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


На уроке 8, мы начали разбор функций библиотеки simul.lib (ее можно скачать в платном разделе). На прошлом уроке мы продолжили тему, но пока еще не разобрали всю библиотеку. Поэтому сегодня очередное продолжение. Сегодня, как я и обещал, речь пойдет о функции TestStops...

...

...Как эта функция работает?  В цикле происходит обход всех стопов (элементов коллекции, заданных в параметре AStops). Вот так объявляется цикл...

...

...Заметьте, для проверки, а не исполнился ли стоп-приказ сейчас, мы используем функции TestStop, которая тоже входит в библиотеку и мы ее рассмотрим ниже.

В нашем примере тестирование торговой стратегии, который мы начали на уроке 8, эта функция используется следующим образом:

vResultTest=TestStops(DateMapToDate(lDateTime), TimeMapToTime(lDateTime), tbStops, tbRests)
tbRests=GET_VALUE(vResultTest,"Rests")
tbStops=GET_VALUE(vResultTest,"Stops")

как видим, после ее вызова необходимо опять же обновить таблицы стопов и остатков, заменив их теми, что возвратила функцию. Такова уж особенность языка qpile - в нем нет полноценного объектно-ориентированного программирования.

Теперь рассмотрим функцию TestStop - она у нас предназначена для проверки одного отдельно взятого стоп-приказа...

...

... Эта функция немножко посложнее. Работает она следующим образом:

Сначала мы берем значение полей элемента коллекции (стоп-приказа), который проверяем, а так же текущую цену инструмента, который задан в проверяемом стоп-приказе...

...

... И уже потом мы возвращаем результат работы функции в виде структуры:

tsMapResult=CREATE_MAP()
tsMapResult=SET_VALUE(tsMapResult,"Rests",ARests)
tsMapResult=SET_VALUE(tsMapResult,"IsFill",tsIsFill)
result=tsMapResult
end func