У вас не стоит Flash Player
Настройки
#55917 - Mon Jun 17 2013 08:41 PM Как закрыть все позиции через скрипт?
SliderShadow Offline
newbie

Registered: Mon Jun 17 2013
Записи: 43
Робот пишется на C# в VisualStudio.

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

Например в программе WLD4 используется синтаксис #ALL для закрытия всех позиций. В случае с TSLab пытался циклом пройтись по открытым ордерам, но не получилось. Если у кого есть решение данной задачи или кто ее уже решил, не могли бы вы поделиться информацией.


Отредактировано SliderShadow (Mon Jun 17 2013 08:45 PM)

Наверх
#55923 - Tue Jun 18 2013 06:20 AM Re: Как закрыть все позиции через скрипт? [Re: SliderShadow]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Циклом по всем активным позициям. Для каждой позиции генерим сигнал на закрытие.

1) Получили активные позиции через методы группы GetXXXX() или просто путем перебора всех.
2) Для каждой позиции выполняет метод группы CloseAtXXXX(). То есть сигнал на закрытие генерируем.
3) Позиции закрыты.
_________________________
__


Наверх
#55924 - Tue Jun 18 2013 07:56 AM Re: Как закрыть все позиции через скрипт? [Re: ra81]
SliderShadow Offline
newbie

Registered: Mon Jun 17 2013
Записи: 43
Спасибо за подсказку. Вот решение кому будет необходимо.
foreach (var pos in source.Positions)
{
if (pos.EntryBarNum <= bar)
{
if (pos.IsActive && pos.IsLong)
pos.CloseAtStop(bar + 1, Price, "Close");
}
}

Наверх
#55926 - Tue Jun 18 2013 08:51 AM Re: Как закрыть все позиции через скрипт? [Re: SliderShadow]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: SliderShadow
Спасибо за подсказку. Вот решение кому будет необходимо.
foreach (var pos in source.Positions)
{
if (pos.EntryBarNum <= bar)
{
if (pos.IsActive && pos.IsLong)
pos.CloseAtStop(bar + 1, Price, "Close");
}
}

Ну в вашем коде закрываются чисто ЛОНГОВЫЕ позиции smile. При этом не закрываются а ставится стоп заявка smile
А так конечно все верно.
_________________________
__


Наверх
#55947 - Tue Jun 18 2013 01:06 PM Re: Как закрыть все позиции через скрипт? [Re: ra81]
SliderShadow Offline
newbie

Registered: Mon Jun 17 2013
Записи: 43
да, я только кусок кода привел, чтоб понятно было какой принцип действия :), а дальше пользователь сам решит что ему необходимо и как он будет закрывать заявки.

Наверх
#55949 - Tue Jun 18 2013 01:12 PM Re: Как закрыть все позиции через скрипт? [Re: SliderShadow]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: SliderShadow
да, я только кусок кода привел, чтоб понятно было какой принцип действия :), а дальше пользователь сам решит что ему необходимо и как он будет закрывать заявки.

Напишите хелпер методы. Наподобие:
sec.CloseAtStopAllLong(price, signal)
sec.CloseAtStopAllShort(price, signal)

и так далее. Код будет выглядеть куда более читабельно и короче.
_________________________
__


Наверх


Moderator:  ViL, sar