ContinuousSecurity
Atom
9/19/2012
vk37


У меня не работает при тестировании на истории. Определяю так:

            var riu2 = new Security()
            {
                Id = "RIU2@RTS",
                Code = "RIU2",
                Name = "РТС фьючерс",
                MinStepSize = 5,
                MinStepPrice = 2,
                Exchange = Exchange.Rts,
            };
            var riz2 = new Security()
            {
                Id = "RIZ2@RTS",
                Code = "RIZ2",
                Name = "РТС фьючерс",
                MinStepSize = 5,
                MinStepPrice = 2,
                Exchange = Exchange.Rts,
            };
            RtsF = new ContinuousSecurity() { Exchange = Exchange.Rts, Id = "RtsF@RTS", Code = "RtsF" };
            RtsF.ExpirationJumps.Add(riu2, DateTime.ParseExact("18.06.2012", "d", CultureInfo.CurrentCulture));
            RtsF.ExpirationJumps.Add(riz2, DateTime.ParseExact("18.09.2012", "d", CultureInfo.CurrentCulture));

Судя по тому, что пишется в дебаг окно, обращение за данными происходит не туда:

Loading 10.09.2012 0:00:00 Loaded Events: 0
FileAccess: D:\DBs\HydraData\Smart\RtsF@RTS\2012_09_10\quotes.bin
Loading 11.09.2012 0:00:00 Loaded Events: 48727
FileAccess: D:\DBs\HydraData\Smart\RtsF@RTS\2012_09_11\quotes.bin
Loading 12.09.2012 0:00:00 Loaded Events: 97454
FileAccess: D:\DBs\HydraData\Smart\RtsF@RTS\2012_09_12\quotes.bin
Loading 13.09.2012 0:00:00 Loaded Events: 146181
FileAccess: D:\DBs\HydraData\Smart\RtsF@RTS\2012_09_13\quotes.bin
Loading 14.09.2012 0:00:00 Loaded Events: 194908
FileAccess: D:\DBs\HydraData\Smart\RtsF@RTS\2012_09_14\quotes.bin



Thanks:


vk37

Avatar
Date: 9/19/2012
Reply


Понял: на истории проще ContinuousSecurity реализовать слиянием соответвующих каталогов с данными )

Thanks:

Mikhail Sukhov

Avatar
Date: 9/19/2012
Reply


Я прогнал в студии, график рисуется по непрерывному РИ. Видимо что-то не так в коде.

Посмотрел код. 100% неправильно. Внимательнее документацию надо читать. Для кого ее пишут?

Thanks:

vk37

Avatar
Date: 9/19/2012
Reply


Я так понимаю, что об этой документации идет речь. Не нашел принципиальной разницы с моим кодом. Ну ладно, все равно уже объединил файлы с данными.

Thanks:

KhripunovAV

Avatar
Date: 10/30/2012
Reply


Здравствуйте, 

столкнулся с тем что при формировании бумаги через ContinuousSecurity и подписании в стратегии на правила: 1. Получения новых сделок WhenNewTrades через EmulationTrader - приходят сделки только первой бумаги из ContinuousSecurity (может что делаю не так???) 2. Формирования свечек WhenCandlesFinished - свечки не формируются (может не предусмотрено???)

Версия из stocksharp-20315


var sv = new ContinuousSecurity { Id = "SV", Code = "SV", MinStepSize = 0.01M, Exchange = Exchange.Rts, };
sv.ExpirationJumps.Add(new Security { Id = "SVH2@RTS", MinStepSize = 0.01M, Exchange = Exchange.Rts, }, new DateTime(2012, 3, 15, 18, 45, 00));
sv.ExpirationJumps.Add(new Security { Id = "SVM2@RTS", MinStepSize = 0.01M, Exchange = Exchange.Rts, }, new DateTime(2012, 6, 15, 18, 45, 00));
sv.ExpirationJumps.Add(new Security { Id = "SVU2@RTS", MinStepSize = 0.01M, Exchange = Exchange.Rts, }, new DateTime(2012, 9, 15, 18, 45, 00));
sv.ExpirationJumps.Add(new Security { Id = "SVZ2@RTS", MinStepSize = 0.01M, Exchange = Exchange.Rts, }, new DateTime(2012, 12, 15, 18, 45, 00));
            
var portfolio = new Portfolio { Name = "test account", BeginValue = 1000000m };

var storageRegistry = new StorageRegistry();
((LocalMarketDataDrive) storageRegistry.DefaultDrive).Path = @"C:\Worke\MDD";

_emulationTrader = new EmulationTrader(
    new[] { sv },
    new[] { portfolio })
    {
       StorageRegistry = storageRegistry,
       UseMarketDepth = false,
       TradesKeepTime = new TimeSpan(4),
    };

var strategy = new VoprosStrategy(_emulationTrader, sv, portfolio);

_emulationTrader.Connect();
_emulationTrader.StartExport();
_emulationTrader.Start(new DateTime(2012, 01, 01), new DateTime(2012, 12, 31));

strategy.Start();

Подписываюсь на правила


protected override void OnStarted()
{
    var candleManager = new CandleManager(Trader);
    var series = new CandleSeries(typeof(TimeFrameCandle), Security, TimeSpan.FromHours(1));
    candleManager.Start(series);
            
    Security
       .WhenNewTrades()
       .Do(ProcessTrades)
       .Apply(this);

    series
       .WhenCandlesFinished()
       .Do(ProcessCandle)
       .Apply(this);
    
    base.OnStarted();
}

Заранее спасибо за ответ.

Thanks:

Mikhail Sukhov

Avatar
Date: 10/30/2012
Reply


KhripunovAV: Здравствуйте, столкнулся с тем что при формировании бумаги через ContinuousSecurity и подписании в стратегии на правила: 1. Получения новых сделок WhenNewTrades через EmulationTrader - приходят сделки только первой бумаги из ContinuousSecurity (может что делаю не так???) 2. Формирования свечек WhenCandlesFinished - свечки не формируются (может не предусмотрено???)

Посмотрел код. Он не совсем хорошо сделан для ContinuousSecurity. Думаю надо будет переписать. Фикс будет уже в 4.1.6.

Thanks: KhripunovAV


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy