ContinuousSecurity
Atom Ответить
19.09.2012


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

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



Спасибо:




5 Ответов
vk37

Фотография
Курсы
Дата: 19.09.2012
Ответить


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 19.09.2012
Ответить


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

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

vk37

Фотография
Курсы
Дата: 19.09.2012
Ответить


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

KhripunovAV

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


Здравствуйте,
столкнулся с тем что при формировании бумаги через 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();
}


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 30.10.2012
Ответить


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


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


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

loading
clippy