Alexander Mukhanchikov:
какой токен?
делаю на основе Samples\Testing\SampleHistoryTesting
инструмент только поменял
var security = new Security
{
Id = "SPFB.SBRF@RTS",
Code = "SPFB.SBRF",
Name = "SBRF",
MinStepSize = 1,
MinStepPrice = 1,
Exchange = Exchange.Test,
};
var timeFrame = TimeSpan.FromMinutes(5);
var token = candleManager.RegisterTimeFrameCandles(security, timeFrame);
временный вариант:
protected override void OnStarting()
{
this
.When(_candleToken.CandlesChanged())
.Do(DoIt);
base.OnStarting();
}
private void DoIt(IEnumerable<Candle> candles)
{
if (candles.Count() == 0) return;
var candle = candles.ElementAt(candles.Count() - 1);
if (DateTime.Compare(candle.Time.AddMinutes(4), this.Trader.MarketTime) < 0)
// мы на последней минуте свечи
}
Alexander Mukhanchikov:
зачем метод этот?
можно просто в свойствах dll посмотреть :)
какой именно dll? я наугад глянул штуки 3, не увидел версию
т.е. были какие-то цифры, но ничего похожего на 4.0.16
Alexander Mukhanchikov:
зачем метод этот?
можно просто в свойствах dll посмотреть :)
какой именно dll? я наугад глянул штуки 3, не увидел версию
т.е. были какие-то цифры, но ничего похожего на 4.0.16
небольшая проблема, лог:
20:48:28.038 | | SS | CandlePartiallyFinished 05.08.2011 10:10:00
20:48:28.038 | | SS | CandlesFinished 05.08.2011 10:05:00
20:48:28.063 | | SS | CandlePartiallyFinished 05.08.2011 10:15:00
20:48:28.064 | | SS | CandlesFinished 05.08.2011 10:10:00
20:48:28.085 | | SS | CandlePartiallyFinished 05.08.2011 10:20:00
20:48:28.085 | | SS | CandlesFinished 05.08.2011 10:15:00
20:48:28.124 | | SS | CandlePartiallyFinished 05.08.2011 10:25:00
20:48:28.125 | | SS | CandlesFinished 05.08.2011 10:20:00
20:48:28.150 | | SS | CandlePartiallyFinished 05.08.2011 10:30:00
20:48:28.151 | | SS | CandlesFinished 05.08.2011 10:25:00
WriteMsg("CandlePartiallyFinished " + Trader.MarketTime);
WriteMsg("CandlesFinished " + candle.Time);
процедуры вызываются в соответствующих методах
в первом случае, предположительно MarketTime должно быть 10:04:00, или я что-то не понимаю?
проблема собственно в том, что заявки выставленные в CandlePartiallyFinished, похоже выполняются по цене которая была на момент MarketTime
fau:
небольшая проблема, лог:
20:48:28.038 | | SS | CandlePartiallyFinished 05.08.2011 10:10:00
20:48:28.038 | | SS | CandlesFinished 05.08.2011 10:05:00
20:48:28.063 | | SS | CandlePartiallyFinished 05.08.2011 10:15:00
20:48:28.064 | | SS | CandlesFinished 05.08.2011 10:10:00
20:48:28.085 | | SS | CandlePartiallyFinished 05.08.2011 10:20:00
20:48:28.085 | | SS | CandlesFinished 05.08.2011 10:15:00
20:48:28.124 | | SS | CandlePartiallyFinished 05.08.2011 10:25:00
20:48:28.125 | | SS | CandlesFinished 05.08.2011 10:20:00
20:48:28.150 | | SS | CandlePartiallyFinished 05.08.2011 10:30:00
20:48:28.151 | | SS | CandlesFinished 05.08.2011 10:25:00
WriteMsg("CandlePartiallyFinished " + Trader.MarketTime);
WriteMsg("CandlesFinished " + candle.Time);
процедуры вызываются в соответствующих методах
в первом случае, предположительно MarketTime должно быть 10:04:00, или я что-то не понимаю?
проблема собственно в том, что заявки выставленные в CandlePartiallyFinished, похоже выполняются по цене которая была на момент MarketTime
это при тестировании на исторических данных
Alexander Mukhanchikov:
Что за "соответствующие методы"?
вот:
protected override void OnStarting()
{
this
.When(_candleToken.PartiallyFinishedCandles(95))
.Do(CandlePartiallyFinished);
> стал каждые 2 минуты 30 секунд выводить сообщение, с правильным временем.
> Токен - от 5-минутных свечек.
MarketTimeChangedInterval - как в SampleHistoryTesting, токен аналогичный
попробую вечером с 30 секундами
Комментарии (32)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
в чём выражается что не срабатывает? токен - какого типа?
Просто ничего не происходит. Типа CandleToken. Или что вы имеете ввиду ?
Свечки TimeFrame? Или какой-то другой тип? VolumeCandle? ....
candleToken.CandleType чему равен?
TimeFrame TimeFrameCandle
А если свечки другого типа - срабатывает?
Я меня только этот тип
C другим типом есть возможность попробовать?
И просьба включить Strategy.EnableRulesLog
Со свечами другого типа не работал никогда...
Если у меня 15-ти минутки и я пишу candleToken.PartiallyFinishedCandles(99m), то правило у меня должно сработать за 9 секунд до окончания свечи ?
по идее - да. а оно вообще не срабатывает?
Написал в OnStarting так:
В логе пусто
Будет фикс в 4.0.13
// this // .When(_candleToken.CandlesFinished()) // .Do(ProcessCandles);
4.0.16 лог пустой а CandlesFinished работает
какой токен?
временный вариант: protected override void OnStarting() { this .When(_candleToken.CandlesChanged()) .Do(DoIt);
Точно 4.0.16? Т.к. это правили уже с тестом на истории
http://rghost.ru/35993817 если файлы закинуть в папку Samples\Testing\SampleHistoryTesting\ можно быстро проверить
кстати, можно добавить функцию GetVersion()
спасибо за архив. зачем метод этот? можно просто в свойствах dll посмотреть :)
Любой относящийся к StockSharp:
проверил, точно 4.0.16 PartiallyFinishedCandles не работает
Не работает на истории, на реальных торгах работает. Связано с тем, что правило привязывается к настоящему времени, а не историческому.
Возможно будет фикс в 4.0, точно - в 4.1.
небольшая проблема, лог: 20:48:28.038 | | SS | CandlePartiallyFinished 05.08.2011 10:10:00 20:48:28.038 | | SS | CandlesFinished 05.08.2011 10:05:00 20:48:28.063 | | SS | CandlePartiallyFinished 05.08.2011 10:15:00 20:48:28.064 | | SS | CandlesFinished 05.08.2011 10:10:00 20:48:28.085 | | SS | CandlePartiallyFinished 05.08.2011 10:20:00 20:48:28.085 | | SS | CandlesFinished 05.08.2011 10:15:00 20:48:28.124 | | SS | CandlePartiallyFinished 05.08.2011 10:25:00 20:48:28.125 | | SS | CandlesFinished 05.08.2011 10:20:00 20:48:28.150 | | SS | CandlePartiallyFinished 05.08.2011 10:30:00 20:48:28.151 | | SS | CandlesFinished 05.08.2011 10:25:00
WriteMsg("CandlePartiallyFinished " + Trader.MarketTime); WriteMsg("CandlesFinished " + candle.Time); процедуры вызываются в соответствующих методах
в первом случае, предположительно MarketTime должно быть 10:04:00, или я что-то не понимаю? проблема собственно в том, что заявки выставленные в CandlePartiallyFinished, похоже выполняются по цене которая была на момент MarketTime
Что за "соответствующие методы"?
Чему равен MarketTimeChangedInterval? Сделал у себя MarketTimeChangedInterval = TimeSpan.FromSeconds(30) - и создал правило
стал каждые 2 минуты 30 секунд выводить сообщение, с правильным временем. Токен - от 5-минутных свечек.