Как в MyTrades найти сделки, которые еще не закрыты


Как в MyTrades найти сделки, которые еще не закрыты
Atom
5/7/2013


Собственно, задача следить за незакрытыми сделками и при необходимости их закрывать.
Спасибо.

Tags:


Thanks:


Moadip

Avatar
Date: 5/7/2013
Reply


Незакрытые сделки это что? [blink]
Thanks:

Lipot

Avatar
Date: 5/7/2013
Reply


Что-то я коряво написал. Извиняюсь, уже поздно было :)

Меня вот что интересует: когда стратегия заходит в сделку у меня запускается TakeProfitStopLossStrategy.
TakeProfit стоит о-очень далеко, так как из сделки, если не по стопу, то выхожу через определенное время. Так вот как сделать, чтобы TakeProfitStopLossStrategy при выходе из сделки через определенное время дальше не отрабатывала бы уровень стопа.
А то получается: зашел на покупку по 100, стоп на 90. Вышел через определенное время по 105. А потом через час, когда цена упала до 90 TakeProfitStopLossStrategy открывается вниз.

Насколько я понимаю при выходе по времени, мне требуется останавливать (или удалять?) TakeProfitStopLossStrategy? Есть ли возможность, каким-либо образом, среди запущенных дочерних стратегий находить именно ту, которая была запущена после входа в определенную сделку?
Thanks:

VassilSanych

Avatar
Date: 5/7/2013
Reply


Не путайте терминологию:
то, что вы описали называется не "сделка", а "позиция".
Сделка - это просто событие торговли: купля или продажа чего-либо.
В сделке нельзя "находиться".
Thanks:

VassilSanych

Avatar
Date: 5/7/2013
Reply


Соответственно, отвечая на ваш первый вопрос, - нечего искать позиции в таблице сделок.
Thanks:

Lipot

Avatar
Date: 5/7/2013
Reply


Понятно.
Thanks:

Moadip

Avatar
Date: 5/7/2013
Reply


Исходя их того что написано, ТС наверное имел ввиду следующее:

Прошла сделка(например купили 1 лот) -> Position = 1;
Добавлена защитная стратегия для сделки -> TakeProfitStopLossStrategy. Примерно как здесь.
В какой то момент решаем что надо выйти в кэш -> Position = 0, следовательно надо удалить не сработавшую защитную стратегию.

Ну проще всего это наверное сделать используя правило Position.Changed.
Проверям если Position == 0, то очищяем список дочерних стратегий - ChildStrategies.Clear();

Если используются еще какие то дочерние стратегии, то берем только TakeProfitStopLossStrategy и удаляем их:
Code

var s = ChildStrategies.OfType<TakeProfitStopLossStrategy>();
ChildStrategies.RemoveRange(s);
Thanks: Lipot

esper

Avatar
Date: 5/7/2013
Reply


Из документации:

Quote:
По умолчанию, дочерние стратегии не связанны друг с другом, и исполняются независимо друг от друга. Когда требуется установить зависимость между стратегиями, необходимо использовать класс BasketStrategy. Данный класс позволяет задать условия завершения стратегий в зависимости друг от друга через признаки BasketStrategyFinishModes. Например, через значение First задается условие, при котором все дочерние стратегии будут остановлены, когда исполнится хотя бы одна из них.
Thanks: Lipot


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy