свечи micex10index
Atom
04.05.2011


Добрый день. Прошу помощи - после отработки кода параметры свечей(candle.OpenPrice, candle.ClosePrice) пустые:
Модифицирую SampleConsole

инициализируем
Код
private static CandleManager _candleManager;

потом в коде
Код
_candleManager = new CandleManager(trader);

потом в
Код
trader.NewSecurities += securities =>
                        {

делаю
Код
_mmvb = securities.FirstOrDefault(sec => sec.Code == "MICEX10INDEX");
if (_mmvb != null)
{
_candleManager.RegisterTimeFrameCandles(_mmvb, TimeSpan.FromMinutes(10));
Console.WriteLine("micex ok.");
}


и в конце цикла
Код
var candles = _candleManager.GetTimeFrameCandles(_mmvb, TimeSpan.FromMinutes(10), 5);
foreach (var candle in candles)
{
Console.WriteLine(candle.OpenPrice + "\n");
Console.WriteLine(candle.ClosePrice);
}
}

Теги:


Спасибо:


1 2 3  >
Mikhail Sukhov

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


Спасибо:

patermind

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


Да, конечно. Всю документацию и форум на тему свечей перечитал на несколько раз.
Если вы имеете ввиду, что нет блока
Код
_candleManager.NewCandles += DrawCandles;
_candleManager.CandlesChanged += DrawCandles;

private void DrawCandles(CandleToken token, IEnumerable<Candle> candles)
{
    // ...
    wnd.Candles.AddRange(candles);
}

то его нет, т.к. мне нужны уже сформировавшиеся свечи + мне не нужно рисовать их. Пробовал вставлять пустой обработчик
Код
private void DrawCandles(CandleToken token, IEnumerable<Candle> candles)
{
    
}

в
Код
class Program
    {
        private static Security _instrument0;
private static Security _mmvb;
        private static Portfolio _portfolio;
        private static MarketDepth _depth;
private static CandleManager _candleManager;

private void DrawCandles(CandleToken token, IEnumerable<Candle> candles)
{
//this.GuiAsync(() =>
//{
// var wnd = _chartWindows.TryGetValue(token);
// if (wnd != null)
// wnd.Chart.Candles.AddRange(candles);
//});
}

        static void Main()
        {

            try
            {


и вызывать его
Код
_candleManager = new CandleManager(trader);
_candleManager.NewCandles += DrawCandles;
_candleManager.CandlesChanged += DrawCandles;

но у меня студия ругалась, что у += DrawCandles; отсутствуют аргументы.
Скриншот ошибки прилагаю.

Извините, не смог приложить - выложил на хостинг - http://imageshack.us/pho...my-images/857/errj.jpg/ .

Не могли бы вы подсказать, что нужно поправить, чтобы заработало?
Спасибо:

Alexander

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


Похоже свечки не успевают сформироваться.
Попробуйте печатать открытия \ закрытия не сразу, а как раз из события NewCandles
Спасибо: patermind

patermind

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


Александр, верно ли я понимаю: я беру свечки ровно в час дня - они в любом случае должны быть?

Код
var candles = _candleManager.GetTimeFrameCandles(_mmvb, TimeSpan.FromMinutes(10), 5);
foreach (var candle in candles)
{
Console.WriteLine(candle.OpenPrice + "\n");
Console.WriteLine(candle.ClosePrice);
}
}


А регистрирую таймфрейм я при запуске робота. Должен сказать - биржа еще не работает, до работы - примерно в 8 утра. Может ли в этом быть проблема?
Спасибо:

Alexander

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


patermind Перейти
Александр, верно ли я понимаю: я беру свечки ровно в час дня - они в любом случае должны быть?

Код
var candles = _candleManager.GetTimeFrameCandles(_mmvb, TimeSpan.FromMinutes(10), 5);
foreach (var candle in candles)
{
Console.WriteLine(candle.OpenPrice + "\n");
Console.WriteLine(candle.ClosePrice);
}
}


А регистрирую таймфрейм я при запуске робота. Должен сказать - биржа еще не работает, до работы - примерно в 8 утра. Может ли в этом быть проблема?


Не должно быть.
У вас зарегистрирован таймфрейм в 10 минут для свечек?

Скиньте весь кусок кода.
Спасибо:

patermind

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


Извините плиз, копировал из блокнота, могло сбиться форматирование
http://pastebin.com/TaxxZbhL

Закомментировал только аккаунт и кусок логики. Возможны пара лишних фигурных скобочек, это опять издержки копирования из блокнота - на работе нет стока и квика, все дома..
Спасибо:

patermind

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


Need help, please...
Спасибо:

patermind

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


Друзья, не получится ли помочь сегодня до конца рабочего дня? Очень хочу наконец завести функционал, дома уже все что только можно и нельзя попробовал - не заводятся свечки, хоть ты тресни. Всю голову уже сломал за неделю.

Это же не тот функционал, где специалисты думать долго будут, - разве нет?
Спасибо:

Mikhail Sukhov

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


patermind Перейти
Друзья, не получится ли помочь сегодня до конца рабочего дня? Очень хочу наконец завести функционал, дома уже все что только можно и нельзя попробовал - не заводятся свечки, хоть ты тресни. Всю голову уже сломал за неделю.

Это же не тот функционал, где специалисты думать долго будут, - разве нет?


Все есть в документации и примерах. Смысл - свечки нужно получать через событие. Если вызывать метод GetTimeFrameCandles, то они могут быть еще не сформированы (тики с программу не мгновенно попадают с биржи и нужно какое то время, чтобы все свечки создались).

Посмотрите пример SampleCandles.
Спасибо:

patermind

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


Mikhail Sukhov Перейти
Все есть в документации и примерах. Смысл - свечки нужно получать через событие. Если вызывать метод GetTimeFrameCandles, то они могут быть еще не сформированы (тики с программу не мгновенно попадают с биржи и нужно какое то время, чтобы все свечки создались).

Посмотрите пример SampleCandles.


И пример, и документацию я смотрел. Не могли бы Вы подсказать, как мне модифицировать код ( http://pastebin.com/TaxxZbhL ) таким образом, чтобы оно заработало? У меня не получается поставить в код обработчик события таким образом, чтобы к GetTimeFrameCandles свечи были готовы - ссылка на скрин ошибки - http://imageshack.us/pho...my-images/857/errj.jpg/ .
Спасибо:
1 2 3  >

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

loading
clippy