Закрытие позиций за 5 секунд до закрытия


Закрытие позиций за 5 секунд до закрытия
Atom
12/18/2012


Всем привет, подскажите как сделать событие которое будет срабатывать за 5 секунд до закрытия вечерней сессии? Ориентируясь на время биржи.

Tags:


Thanks:


1 2 3  > >>
VassilSanych

Avatar
Date: 12/18/2012
Reply


Сергей MenDel Go to
Всем привет, подскажите как сделать событие которое будет срабатывать за 5 секунд до закрытия вечерней сессии? Ориентируясь на время биржи.

Да вы, батенька, экстремал.
Вы уверены, что вас исполнят в последние 5 секунд?

Thanks:

Sergey Masyura

Avatar
Date: 12/18/2012
Reply


Сергей MenDel Go to
Всем привет, подскажите как сделать событие которое будет срабатывать за 5 секунд до закрытия вечерней сессии? Ориентируясь на время биржи.


Если без привязки в закрытому коду, то, например, Time scheduler in C#, By Aleksey Bykov, 16 May 2007.

http://www.codeproject.c...8633/Time-scheduler-in-C
Thanks:

MenDel

Avatar
Date: 12/18/2012
Reply


VassilSanych Go to
Сергей MenDel Go to
Всем привет, подскажите как сделать событие которое будет срабатывать за 5 секунд до закрытия вечерней сессии? Ориентируясь на время биржи.

Да вы, батенька, экстремал.
Вы уверены, что вас исполнят в последние 5 секунд?

Я ща так руками закрываюсь, единственное приходится сверять часы на компе каждый день
Thanks:

MenDel

Avatar
Date: 12/18/2012
Reply


Sergey Masyura Go to
Сергей MenDel Go to
Всем привет, подскажите как сделать событие которое будет срабатывать за 5 секунд до закрытия вечерней сессии? Ориентируясь на время биржи.


Если без привязки в закрытому коду, то, например, Time scheduler in C#, By Aleksey Bykov, 16 May 2007.

http://www.codeproject.c...8633/Time-scheduler-in-C


спс, ща посмотрим. Я ваще думал это в S# реализовано, вещь то нужная.
Thanks:

esper

Avatar
Date: 12/18/2012
Reply


Часы в любом случае сверять придется. В S# можно попробовать посмотреть такую штуку.
Thanks:

MenDel

Avatar
Date: 1/15/2013
Reply


Нашел, решил написать мож кому пригодится ещ
И часы сверять не надо

Code
_trader.MarketTimeChangedInterval = TimeSpan.FromSeconds(1);
_trader.MarketTimeChanged += time1 => this.GuiAsync(() =>
                    {
                        var time = _trader.GetMarketTime(Exchange.Rts);
                        if (time.Hour == 23 && time.Minute == 49 && time.Second == 55) Button_ClosePosition_Click(null, null);
                    });
Thanks:

esper

Avatar
Date: 1/15/2013
Reply


Сергей MenDel Go to

Code
_trader.MarketTimeChangedInterval = TimeSpan.FromSeconds(1);
_trader.MarketTimeChanged += time1 => this.GuiAsync(() =>
                    {
                        var time = _trader.GetMarketTime(Exchange.Rts);
                        if (time.Hour == 23 && time.Minute == 49 && time.Second == 55) Button_ClosePosition_Click(null, null);
                    });


это конечно хорошо, но в настоящий момент GetMarketTime используется DateTime.Now, которое просто сдвинуто на часовой пояс указанной биржи.
Thanks:

developer_29

Avatar
Date: 1/21/2013
Reply


Quote:
Code
_trader.MarketTimeChangedInterval = TimeSpan.FromSeconds(1);
_trader.MarketTimeChanged += time1 => this.GuiAsync(() =>
                    {
                        var time = _trader.GetMarketTime(Exchange.Rts);
                        if (time.Hour == 23 && time.Minute == 49 && time.Second == 55) Button_ClosePosition_Click(null, null);
                    });


А напишите, пожалуйста, код метода Button_ClosePosition_Click.
первые 2 строчки нужны для того, чтобы получать данные каждую секунду?
Thanks:

MenDel

Avatar
Date: 1/21/2013
Reply


developer_29 Go to

А напишите, пожалуйста, код метода Button_ClosePosition_Click.
первые 2 строчки нужны для того, чтобы получать данные каждую секунду?


Первая строчка - чтоб каждую секунду, а вторая вызывает каждый раз метод
Если по рынку закрывать, то делаю так
Code
decimal position = 0;
            decimal price;
            OrderDirections orderDirections;

            try { position = _trader.Positions.FirstOrDefault(p => p.Security == SelectedSecurity).CurrentValue; }
            catch { position = 0; }

            try {_trader.CancelOrders(security: SelectedSecurity);}
            catch{}

            if (position != 0)
            {            

                    if (position > 0)
                    {
                        orderDirections = OrderDirections.Sell;
                        price = SelectedSecurity.MinPrice;
                    }
                    else
                    {
                        orderDirections = OrderDirections.Buy;
                        price = SelectedSecurity.MaxPrice;
                    }

                    var order = new Order
                    {
                        Trader = _trader,
                        Portfolio = SelectedPortfolio,
                        Security = SelectedSecurity,
                        Direction = orderDirections,
                        Price = price,
                        Volume = Math.Abs(position)
                    };
                    _trader.RegisterOrder(order);
            }
Thanks: developer_29

ra81

Avatar
Date: 1/22/2013
Reply


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

ПС: ну вот esper вам совершенно тоже самое советует. И ведь правильно советует.
Thanks:
1 2 3  > >>

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

loading
clippy