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


Всем привет, подскажите как сделать событие которое будет срабатывать за 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.c...8633/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.c...8633/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 Перейти

Код
_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, которое просто сдвинуто на часовой пояс указанной биржи.
Спасибо:

developer_29

Фотография
Дата: 21.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);
                    });


А напишите, пожалуйста, код метода 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