Неправильно срабатывает LastTradePriceLess

Неправильно срабатывает LastTradePriceLess
Atom
06.10.2011
frontman


Использую правило:
Код
this.When(Security.LastTradePriceLess(StopProtectiveDelta))
                   .Do(() => 
                       AddedStopOrder(OrderDirections.Sell))
                   .Once();

Но стоп не ждет, пока цена пройдет StopProtectiveDelta, а сразу же выставляет заявку (цену заявки указывает верно, с учетом стопа и проскальзывания).
Подскажите, в чем может быть проблема? Моя ошибка или ошибка в работе правила?

Теги:


Спасибо:


< 1 2 3 4  >
frontman

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


Используется LastTradePriceLessAbsolute и LastTradePriceMoreAbsolute
Спасибо:

Alexander

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


frontman
Используется LastTradePriceLessAbsolute и LastTradePriceMoreAbsolute


Покажите создание и вывод.
Где что выводится? вывод одинаков что для LastTradePriceMoreAbsolute, что для LastTradePriceLessAbsolute
Спасибо:

frontman

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


Код
this.AddInfoLog("Порог цены: {0}", stopPrice);
            if (Trade.Order.Direction == OrderDirections.Buy)
            {
                this.AddInfoLog("Цена на момент создания правила: {0}", Security.LastTrade.Price);
                this.When(Security.LastTradePriceLessAbsolute(stopPrice))
                    .Do(() =>
                            {
                                this.AddInfoLog("Цена на момент срабатывания правила: {0}", Security.LastTrade.Price);
                                AddedStopOrder(OrderDirections.Sell);
                            })
                    .Once();
            }
            else
            {
                this.AddInfoLog("Цена на момент создания правила: {0}", Security.LastTrade.Price);
                this.When(Security.LastTradePriceMoreAbsolute(stopPrice))
                    .Do(() =>
                            {
                                this.AddInfoLog("Цена на момент срабатывания правила: {0}", Security.LastTrade.Price);
                                AddedStopOrder(OrderDirections.Buy);
                            })
                    .Once();
            }
Спасибо:

Alexander

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


Сделайте разную печать. Такое впечатление что срабатывает оба раза LastTradePriceLessAbsolute.
И срабатывает понятное дело правильно.
Спасибо:

frontman

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



16:21:03.294 | | PS | Порог цены: 15158,00000
16:21:03.294 | | PS | Цена на момент создания правила LastTradePriceMoreAbsolute: 15148,00000
16:21:03.310 | | PS | Цена на момент срабатывания правила LastTradePriceMoreAbsolute: 15149,00000



16:21:13.778 | | PS | Стратегия запущена.
16:21:13.778 | | PS | Порог цены: 15165,00000
16:21:13.778 | | PS | Цена на момент создания правила LastTradePriceMoreAbsolute: 15155,00000
16:21:13.778 | | PS | Цена на момент срабатывания правила LastTradePriceMoreAbsolute: 15158,00000


16:21:14.669 | | PS | Порог цены: 15145,00000
16:21:14.669 | | PS | Цена на момент создания правила LastTradePriceLessAbsolute: 15155,00000
16:21:14.669 | | PS | Цена на момент срабатывания правила LastTradePriceLessAbsolute: 15154,00000
Спасибо:

frontman

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


Код
this.AddInfoLog("Порог цены: {0}", stopPrice);
            if (Trade.Order.Direction == OrderDirections.Buy)
            {
                this.AddInfoLog("Цена на момент создания правила LastTradePriceLessAbsolute: {0}", Security.LastTrade.Price);
                this.When(Security.LastTradePriceLessAbsolute(stopPrice))
                    .Do(() =>
                            {
                                this.AddInfoLog("Цена на момент срабатывания правила LastTradePriceLessAbsolute: {0}", Security.LastTrade.Price);
                                AddedStopOrder(OrderDirections.Sell);
                            })
                    .Once();
            }
            else
            {
                this.AddInfoLog("Цена на момент создания правила LastTradePriceMoreAbsolute: {0}", Security.LastTrade.Price);
                this.When(Security.LastTradePriceMoreAbsolute(stopPrice))
                    .Do(() =>
                            {
                                this.AddInfoLog("Цена на момент срабатывания правила LastTradePriceMoreAbsolute: {0}", Security.LastTrade.Price);
                                AddedStopOrder(OrderDirections.Buy);
                            })
                    .Once();
            }
Спасибо:

Alexander

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


Вроде исправил. в 4.0.2 будет.
Спасибо:

frontman

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


Благодарю. А не могли бы вы хотя бы примерно расписать причины?
Ну так для расширения так сказать кругозора)
Спасибо:

Alexander

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


frontman
Благодарю. А не могли бы вы хотя бы примерно расписать причины?
Ну так для расширения так сказать кругозора)


Какой ответ ожидаете? :)
Ошибка при разработке логического характера.
Спасибо:

frontman

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


) Ну понял) В принципе согласен с вами не видя исходников врятли я что то пойму)
Спасибо:
< 1 2 3 4  >

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

loading
clippy