Algorithmischer Handel für .NET und Python✦86+ Konnektoren · Börsen · Broker · Krypto✦S#.Designer · Backtest · optimieren · live gehen✦Eine Community von 31,460+ Tradern und Entwicklern✦Algorithmischer Handel für .NET und Python✦86+ Konnektoren · Börsen · Broker · Krypto✦S#.Designer · Backtest · optimieren · live gehen✦Eine Community von 31,460+ Tradern und Entwicklern✦
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 секундами
fau:
MarketTimeChangedInterval - как в SampleHistoryTesting
т.е. 5 минут.
потому и менялось каждые 5 минут :)
теперь все в порядке, спасибо :)
Wir verwenden Cookies, um die beste Erfahrung auf unserer Website zu gewährleisten. Durch die weitere Nutzung unserer Seite stimmen Sie der Verwendung von Cookies zu.
Kommentare (32)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
в чём выражается что не срабатывает? токен - какого типа?
Просто ничего не происходит. Типа 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-минутных свечек.