Урок 18. Биржевой симулятор. Класс TESBAccount: синхронизация инструментов. |
Автор megabax | |||||
08.05.2010 г. | |||||
Урок 18. Биржевой симулятор. Класс TESBAccount: синхронизация инструментов.Что бы смотреть урок полностью, а так же скачать исходники к уроку, подпишитесь на платный раздел. В платном разделе статья находиться здесь. Возможно, у вас есть торговая стратегия, которая предусматривает работу с несколькими инструментами одновременно. Вы хотите протестировать ее на очень большом периоде времени, но имеющаяся у вас история по каждому инструменту начинается с разных дат, к тому же, ваша сисема допускает так же неликвидные инструменты, у которых могут быть пропущены в истории отельные свечи. Ясно дело, в этом случае вам потребуется синхронизация этих инструментов. Для этого мы добавим в класса TESBInstrument новые свойства и методы, в частности свойство Active и метод PositionToDate(ADateTime:TDateTime), кроме того, для чтения значения поля FCurrentCandle добавим свойство CurrentCandle. Вот как теперь будет выглядеть объявления класса (новые поля выделены красным)... ... ...Свойство Active показывает, активен ли в данный момент инструмент, можно ли им торговать. А торговать им можно (в том понимании, в каком мы понимаем тестирование стратегии) тогда, когда в истории на текущую дату есть котировки. Но за этим у нас будет следить класс TESBAccount. И так, прежде чем реализовать метод PositionToDate, давайте сначала внесем небольшие изменения в методы CurrentPrice, Buy и .Sell... ... ... Теперь приступим к тестированию. Для этого открываем предыдущий пример (если у вас его нет то пример биржевого робота из урока 17 можно скачать здесь) и добавляем к нему кнопочку "В начало", обозвав ее btnFirst. Так же у сетки сделаем чуть больше колонок - 8. И еще добавим метку lbCurDate*: Перепишем обработчик кнопки btnNext (следующая свеча):
Для того, что бы добавить новые колонки, изменим процедуру CreateGrid:
Теперь перепишем метод RedrawGrid:
Ну, и наконец, обработчик нажатия кнопочки "В начало":
Теперь можно запустить симулятор на тестирование: Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями в соответствии со ст. 1274 ГК РФ программного продукта "Delphi", авторское право на который принадлежит "Borland Software Corporation, (a Micro Focus Company).
|
|||||
Последнее обновление ( 17.07.2013 г. ) |
« След. |
---|