У вас не стоит Flash Player
Настройки
#66299 - Sun Nov 09 2014 11:52 PM Закрытие открытых позиций по времени
Vladimir2803 Offline
member

Registered: Thu Oct 16 2014
Записи: 101
Здравствуйте!

Подскажите пожалуйста как прописать, что бы в 23:40 закрыть все открытые позиции.

Google как и поиск по форуму не принес результатов.

Наверх
#66300 - Mon Nov 10 2014 07:34 AM Re: Закрытие открытых позиций по времени [Re: Vladimir2803]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
каждый бар имеет дату в себе. если дата последнего бара больше или равна 23,40 тогда закрывайте все позиции.
_________________________
__


Наверх
#66301 - Mon Nov 10 2014 01:32 PM Re: Закрытие открытых позиций по времени [Re: ra81]
Vladimir2803 Offline
member

Registered: Thu Oct 16 2014
Записи: 101
Originally Posted By: ra81
каждый бар имеет дату в себе. если дата последнего бара больше или равна 23,40 тогда закрывайте все позиции.


Если вам не трудно можете написать как это в коде должно выглядеть, сейчас у меня так:

Code:
if (LongPos == null) // Если нет активной длинной позиции
{
if (signalBuy) // Если есть сигнал Buy,
{
выдаем ордер на открыте новой длинной позиции
устанавливаем стоп-лосс
устанавливаем take profit
}
}
else   // Если есть активная длинная позиция
{
LongPos.CloseAtStop(bar+1, orderStopLong, "Stop Long");
LongPos.CloseAtProfit(bar+1,orderTakeLong,"Long take_profit"); // выдаем ордер на закрыте длинной позиции по take profit
}
		
// выполнение сигналов для короткой позиции
				
if (ShortPos == null) // Если нет активной короткой позиции
{
if (signalShort) // Если есть сигнал Short
{
выдаем ордер на открыте новой короткой позиции.
устанавливаем стоп-лосс
устанавливаем Take profit
}
}
else // Если есть активная короткая позиция, 
{
ShortPos.CloseAtStop(bar+1, orderStopShort, "Stop Short");   
ShortPos.CloseAtProfit(bar+1,orderTakeShort,"Short take_profit"); // выдаем ордер на закрыте короткой позици по take profit

Наверх
#66320 - Mon Nov 10 2014 10:15 PM Re: Закрытие открытых позиций по времени [Re: Vladimir2803]
Vladimir2803 Offline
member

Registered: Thu Oct 16 2014
Записи: 101
Может кому пригодится или поправите меня,
решил данную задачу следующим образом.

Code:
public Time _Time_Session = new Time();
_______________________________________

IList<double> Time_Session = ctx.GetData("Время", new[] {_Time_Session.ToString()},
delegate {return this._Time_Session.Execute(source);});
_______________________________________

else if (Time_Session[bar]>233000)
{
LongPos.CloseAtMarket(bar+1, "Time Stop Long");
}
_______________________________________
else if (Time_Session[bar]>233000)
{
ShortPos.CloseAtMarket(bar+1, "Time Stop Short");
}

Наверх
#66332 - Tue Nov 11 2014 12:57 PM Re: Закрытие открытых позиций по времени [Re: Vladimir2803]
Kermit Offline
enthusiast

Registered: Wed Jan 18 2012
Записи: 256
Думаю что для времени GetData не имеет смысла.
Можно просто _Time_Session.Execute(source).
И второй else if не нужен.

Наверх
#66334 - Tue Nov 11 2014 02:13 PM Re: Закрытие открытых позиций по времени [Re: Kermit]
Vladimir2803 Offline
member

Registered: Thu Oct 16 2014
Записи: 101
Originally Posted By: Kermit
Думаю что для времени GetData не имеет смысла.
Можно просто _Time_Session.Execute(source).
И второй else if не нужен.


Спасибо за совет!

Отдельное закрытие позиции для лонга и шорта обусловлено порядком алгоритма, плюс при анализе сделок пригодится smile

Наверх
#66336 - Tue Nov 11 2014 02:52 PM Re: Закрытие открытых позиций по времени [Re: Vladimir2803]
Kermit Offline
enthusiast

Registered: Wed Jan 18 2012
Записи: 256
Если оба else if идут как написано и относятся к одному if , то шорты закрываться не будут никогда.

Наверх
#66337 - Tue Nov 11 2014 03:19 PM Re: Закрытие открытых позиций по времени [Re: Kermit]
Vladimir2803 Offline
member

Registered: Thu Oct 16 2014
Записи: 101
Originally Posted By: Kermit
Если оба else if идут как написано и относятся к одному if , то шорты закрываться не будут никогда.


Схему исполнения сигналов я чуть выше описал.
Сигналы на лонг и шорт разделены на два блока.
А в последнем посте я просто схематически ихобразил испольхование условия времени.
В моем случае заявки на закрытие по времени расположены после условий открытия позиции.


Отредактировано Vladimir2803 (Tue Nov 11 2014 03:40 PM)

Наверх
#66338 - Tue Nov 11 2014 03:21 PM Re: Закрытие открытых позиций по времени [Re: Vladimir2803]
Kermit Offline
enthusiast

Registered: Wed Jan 18 2012
Записи: 256
Тогда, все ок! )))

Наверх
#66339 - Tue Nov 11 2014 03:24 PM Re: Закрытие открытых позиций по времени [Re: Kermit]
Vladimir2803 Offline
member

Registered: Thu Oct 16 2014
Записи: 101
Originally Posted By: Kermit
Тогда, все ок! )))

Осталась одна проблема как сделать так что бы исполнение сигналов на закрытие по времени не зависило от выбранного таймфрейма.

Наверх


Moderator:  ViL, sar