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

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


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


Теги:


Спасибо:


1 2 3  > >>
VassilSanych

Фотография
Дата: 18.12.2012
Ответить


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

Спасибо:

Sergey Masyura

Фотография
Дата: 18.12.2012
Ответить


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

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

http://www.codeproject.com/Articles/18633/Time-scheduler-in-C

Спасибо:

MenDel

Фотография
Дата: 18.12.2012
Ответить


VassilSanych:

Сергей MenDel: Всем привет, подскажите как сделать событие которое будет срабатывать за 5 секунд до закрытия вечерней сессии? Ориентируясь на время биржи. Да вы, батенька, экстремал. Вы уверены, что вас исполнят в последние 5 секунд? Я ща так руками закрываюсь, единственное приходится сверять часы на компе каждый день

Спасибо:

MenDel

Фотография
Дата: 18.12.2012
Ответить


Sergey Masyura:

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

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

http://www.codeproject.com/Articles/18633/Time-scheduler-in-C

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

Спасибо:

esper

Фотография
Дата: 18.12.2012
Ответить


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

Спасибо:

MenDel

Фотография
Дата: 15.01.2013
Ответить


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

_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);
                    });
Спасибо:

esper

Фотография
Дата: 15.01.2013
Ответить


Сергей MenDel: ODE0�

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

Спасибо:

developer_29

Фотография
Дата: 21.01.2013
Ответить


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

Спасибо:

MenDel

Фотография
Дата: 21.01.2013
Ответить


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

Первая строчка - чтоб каждую секунду, а вторая вызывает каждый раз метод Если по рынку закрывать, то делаю так

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);
            }
Спасибо: developer_29

ra81

Фотография
Дата: 22.01.2013
Ответить


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

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

Спасибо:
1 2 3  > >>

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy