Использую правило:
this.When(Security.LastTradePriceLess(StopProtectiveDelta))
.Do(() =>
AddedStopOrder(OrderDirections.Sell))
.Once();
Но стоп не ждет, пока цена пройдет StopProtectiveDelta, а сразу же выставляет заявку (цену заявки указывает верно, с учетом стопа и проскальзывания). Подскажите, в чем может быть проблема? Моя ошибка или ошибка в работе правила?
Comentarios (31)
Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario
this.When(Security.LastTradePriceLess(StopProtectiveDelta)) .Do(() => AddedStopOrder(OrderDirections.Sell)) .Once();
Именно. Пробовал и тот и другой метод. LastTradePriceLess(StopProtectiveDelta) . StopProtectiveDelta - и есть величина сдвига!
Пишите чему равна StopProtectiveDelta, чему равен LastTradePrice в момент начала экспорта. Стакан экспортируется?
Да. Экспортируется(Правда размерностью 5). "...в момент начала экспорта." - это что значит? На момент начала работы стратегии в которой рег это правило или на момент вызова метода ITrader.StartExport()? На момент срабатывания правила StopProtectiveDelta = 10, а LastTradePrice = 15108, а цена защищаемой сделки = 15109, т.е 10 пунктов явно не пройдено.
При чём тут цена защищаемой сделки? Чему равен LastTradePrice в момент установки правила?
Данное правило устанавливается сразу после совершения сделки. Т.е LastTradePrice = цена защищаемой сделки = 15109
Не обязательно. Где вы устанавливаете это правило? Время проходит и сделки от момента совершения сделки до того как вы понимаете что оно сработало.
Ещё раз, дубль 3, выведите LastTradePrice перед установкой правила. И в момент срабатывания правила.
Я понял. Т.е цена берется с момента установки правила... Правда очень странно то что 10 пунктов проходит... Но а как быть тогда с LastTradePriceLessAbsolute? Для нее я рассчитывал порог явно. А результат тот же...
Дубль 4. Пишите LastTradePrice в момент установки правила, цену которую вы передаёте и цену в момент срабатывания.
Терпение у нас тоже не безгранично. Одни и те же ответы писать надоедает.
15:53:57.372 | | Спред стратегия | Стратегия запущена. 15:53:58.622 | | Спред стратегия | Обработка Limit заявки 0 на Buy с номером 5338088677. 15:53:59.825 | | Спред стратегия | Обработка Limit заявки 57134139 на Buy с номером 5338089549. 15:53:59.825 | | Спред стратегия | Обработка Limit заявки 0 на Buy с номером 5338089565. 15:53:59.825 | | Спред стратегия | Обработка Limit заявки 57134140 на Sell с номером 5338089587. 15:53:59.919 | | Спред стратегия | Отменяю текущий спред 15:54:00.028 | | Спред стратегия | Отменяю текущий спред 15:54:00.044 | | Спред стратегия | Позиция выводимая при срабатывании PositionChanged: -1 15:54:00.060 | | Спред стратегия | Новая Sell сделка 417650984 на 1 заявки 57134140. 15:54:00.091 | | Спред стратегия | Позиция расчитываемая мною: -1 15:54:00.091 | | Спред стратегия | Позиция расчитываемая PositionManager: -1 15:54:00.107 | | PS | Стратегия запущена. <mark>15:54:00.107 | | PS | Порог цены: 15188,00000 15:54:00.107 | | PS | Цена на момент создания правила: 15178,00000 15:54:00.357 | | PS | Цена на момент срабатывания правила: 15175,00000</mark> 15:54:00.685 | | Спред стратегия | Обработка Limit заявки 57134145 на Buy с номером 5338090224. 15:54:00.685 | | PS | Обработка Limit заявки 57134145 на Buy с номером 5338090224. 15:54:00.700 | | PS | Стратегия останавливается. 15:54:00.700 | | PS | Стратегия остановлена. 15:54:00.716 | | Спред стратегия | Новая Buy сделка 417651006 на 1 заявки 57134145. 15:54:00.716 | | Спред стратегия | Позиция расчитываемая мною: 0 15:54:00.716 | | Спред стратегия | Позиция расчитываемая PositionManager: -1 15:54:00.903 | | Спред стратегия | Обработка Limit заявки 57134146 на Buy с номером 5338090351. 15:54:00.903 | | Спред стратегия | Обработка Limit заявки 57134147 на Sell с номером 5338090377. 15:54:01.122 | | Спред стратегия | Отменяю текущий спред 15:54:01.247 | | Спред стратегия | Отменяю текущий спред 15:54:01.341 | | Спред стратегия | Отменяю текущий спред 15:54:01.450 | | Спред стратегия | Отменяю текущий спред 15:54:02.122 | | Спред стратегия | Обработка Limit заявки 0 на Buy с номером 5338091236. 15:54:02.778 | | Спред стратегия | Обработка Limit заявки 0 на Buy с номером 5338091770. 15:54:05.825 | | Спред стратегия | Обработка Limit заявки 57134156 на Buy с номером 5338093840. 15:54:05.825 | | Спред стратегия | Обработка Limit заявки 0 на Buy с номером 5338093863. 15:54:05.935 | | Спред стратегия | Обработка Limit заявки 57134157 на Sell с номером 5338093898. 15:54:06.153 | | Спред стратегия | Отменяю текущий спред 15:54:06.153 | | Спред стратегия | Позиция выводимая при срабатывании PositionChanged: -2 15:54:06.153 | | Спред стратегия | Новая Sell сделка 417651364 на 1 заявки 57134157. 15:54:06.153 | | Спред стратегия | Позиция расчитываемая мною: -1 15:54:06.153 | | Спред стратегия | Позиция расчитываемая PositionManager: -2 15:54:06.153 | | PS | Стратегия запущена. <mark>15:54:06.153 | | PS | Порог цены: 15171,00000 15:54:06.153 | | PS | Цена на момент создания правила: 15161,00000 15:54:06.153 | | PS | Цена на момент срабатывания правила: 15161,00000</mark> 15:54:06.591 | | Спред стратегия | Обработка Limit заявки 57134159 на Buy с номером 5338094388. 15:54:06.591 | | PS | Обработка Limit заявки 57134159 на Buy с номером 5338094388. 15:54:06.591 | | PS | Стратегия останавливается. 15:54:06.591 | | PS | Стратегия остановлена. 15:54:06.591 | | Спред стратегия | Новая Buy сделка 417651392 на 1 заявки 57134159. 15:54:06.591 | | Спред стратегия | Позиция расчитываемая мною: 0 15:54:06.591 | | Спред стратегия | Позиция расчитываемая PositionManager: -2 15:54:07.716 | | Спред стратегия | Стратегия останавливается. 15:54:07.716 | | Спред стратегия | Стратегия остановлена.
Используется LastTradePriceLessAbsolute и LastTradePriceMoreAbsolute
Покажите создание и вывод. Где что выводится? вывод одинаков что для LastTradePriceMoreAbsolute, что для LastTradePriceLessAbsolute
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(); }
Сделайте разную печать. Такое впечатление что срабатывает оба раза LastTradePriceLessAbsolute. И срабатывает понятное дело правильно.
16:21:03.294 | | PS | <mark>Порог цены: 15158,00000 16:21:03.294 | | PS | Цена на момент создания правила LastTradePriceMoreAbsolute: 15148,00000 16:21:03.310 | | PS | Цена на момент срабатывания правила LastTradePriceMoreAbsolute: 15149,00000</mark>
16:21:13.778 | | PS | Стратегия запущена. 16:21:13.778 | | PS | <mark>Порог цены: 15165,00000 16:21:13.778 | | PS | Цена на момент создания правила LastTradePriceMoreAbsolute: 15155,00000 16:21:13.778 | | PS | Цена на момент срабатывания правила LastTradePriceMoreAbsolute: 15158,00000</mark>
<mark>16:21:14.669 | | PS | Порог цены: 15145,00000 16:21:14.669 | | PS | Цена на момент создания правила LastTradePriceLessAbsolute: 15155,00000 16:21:14.669 | | PS | Цена на момент срабатывания правила LastTradePriceLessAbsolute: 15154,00000</mark>
Вроде исправил. в 4.0.2 будет.
Благодарю. А не могли бы вы хотя бы примерно расписать причины? Ну так для расширения так сказать кругозора)
Какой ответ ожидаете? :) Ошибка при разработке логического характера.
) Ну понял) В принципе согласен с вами не видя исходников врятли я что то пойму)
Исходники Плазы видны, а вы до сих пор ни одного коммита не сделали.😂
Вы нам тучу вопросы, а мы вам ответы. Но ответы, как и деньги, имеют свойство быстро заканчиваться, если не принимать никаких телодвижение со своей стороны.
А разве LastTradePriceLess и другие стандартные правила не лежат в StockSharp.Algo - закрытой для простых смертных части StokSharpa?! Я прост исходников Algo не видел ни разу. Давно бы уже сам залез и посмотрел да и подправил...
О скольких проблемах и недостатках в плазе вы отписывались? Сколько было фиксов?
Вот с Algo было бы тоже самое.
Есть желание доказать что нет? Есть желание сделать так, чтоб в будущем мы давали исходники вам для исправления? Велкам к фиксингу багов в плазе! 👍
😀 Это типо я как Фауст а вы как дьвол😀 Не я не против. Просто с такими несложными вещами как правила я б еще разобрался, а вот с плазой... Ну правда я не насток опытен) Но все равно спасибо) Я буду оч хорошим правд😀
По Плазе есть документация, примеры. Та же утилита для проверки пропускной способности логина... Задачи есть на любой уровень знаний. Было бы желание со стороны тех, кто якобы хочет, но не может.
Щас вот основные загвоздки(лично у меня с работой правил и стандартных стратегий). А их я как раз пофиксить не могу...
Так... Как мне использовать систему управ версиями? Где нибуть есть топик о ом как влиться в ряды разработчиков?)
На codeplex Но вначале необходимо понять что конкретно вы хотите править, чтоб мы вас подключили к разработчикам и дали доступ.
Хм) Ну вот например сейчас наткнулся на след проблему: У меня есть приложение которое подключено к роутеру и работает с ним(Роутер плазы) я попытался подключиться к роутеру другой прогой и на методе Connect() у меня эксепшен вывалился. Вот хотелось бы залезть в этот метод и найти причину и исправить возможно...
Ну так кто мешает? Исходники здесь. Уже много раз говорили. Открыты для всех. Будет фикс - пишите, добавим в группу, дадим возможность внесения изменений.
Понял.Ок.