Добрый день.
Вкраце о проблеме:
Возникла необходимость строить линии поддержки и сопротивления. Поскольку TSLab не предоставляет такой возможности, то был реализован класс, который по тангенсу рассчитывает линию для всех баров между двумя задаваемыми точками. Алгоритм входа в позицию работает при закрытии бара выше(ниже) линии поддержки или сопротивления. Возникает проблема следующего характера:
1. Рабочий таймфрейм часовой;
2. Необходимо выставлять стоплосс сразу или, хотя бы, через минуту;
3. Необходимо реализвать один скрипт, который будет работать и в лаборатории, и в агенте;
4. Для того, чтобы выставить стоплосс через минуту, необходимо использовать основной таймфрейм - минутный, а расчетным - часовой, используя компрессию (спасибо RusAlgo за статьи).
5. Но построить линию поддержки(сопротивления) на часовом таймфреме, полученным методом компрессии, либо не представляется возможным, либо будет очень ресурсозатратным, поскольку при компрессии один часовой бар представляется массивом одинаковых баров, размерностью 60 или менее.
Было предложено следующее решение:
1. На баре открытия позиции дополнительно выставляется противоположный отложенный ордер на место стоплосса;
2. Если на следующем баре отложенный ордер не сработал, то он снимается и для позиции начинает выставляться стоплосс;
3. Если на следующем баре стало известно, что отложенный ордер сработал, то все позиции закрываются.
Для реализации такой модели был написан класс, который отлично работает в лаборатории.
Возникает следующие два вопроса:
1. Какие проблемы могут возникнуть при реальной торговле?
2. Есть ли в TsLab функция, которая позволяет не закрывать позицию, а просто про нее "забыть".
Спасибо.
p.s. Прикладываю файл с классом открытия позиции и пример на обычных скользящих средних.
Attachments
CPosition.cs (64 downloads)PositionTest.cs (52 downloads)