Добрый день. Прошу помощи - после отработки кода параметры свечей(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); } }
Комментарии (23)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Это читали http://stocksharp.com/doc/help/html/cd52cfcf-938c-4fce-9a56-4e9a001f0792.htm ?
Да, конечно. Всю документацию и форум на тему свечей перечитал на несколько раз. Если вы имеете ввиду, что нет блока
то его нет, т.к. мне нужны уже сформировавшиеся свечи + мне не нужно рисовать их. Пробовал вставлять пустой обработчик
в ``` class Program { private static Security _instrument0; private static Security _mmvb; private static Portfolio _portfolio; private static MarketDepth _depth; private static CandleManager _candleManager;
_candleManager = new CandleManager(trader); _candleManager.NewCandles += DrawCandles; _candleManager.CandlesChanged += DrawCandles;
Похоже свечки не успевают сформироваться. Попробуйте печатать открытия \ закрытия не сразу, а как раз из события NewCandles
Александр, верно ли я понимаю: я беру свечки ровно в час дня - они в любом случае должны быть?
А регистрирую таймфрейм я при запуске робота. Должен сказать - биржа еще не работает, до работы - примерно в 8 утра. Может ли в этом быть проблема?
var candles = _candleManager.GetTimeFrameCandles(_mmvb, TimeSpan.FromMinutes(10), 5); foreach (var candle in candles) { Console.WriteLine(candle.OpenPrice + "\n"); Console.WriteLine(candle.ClosePrice); } }
Извините плиз, копировал из блокнота, могло сбиться форматирование http://pastebin.com/TaxxZbhL
Закомментировал только аккаунт и кусок логики. Возможны пара лишних фигурных скобочек, это опять издержки копирования из блокнота - на работе нет стока и квика, все дома..
Need help, please...
Друзья, не получится ли помочь сегодня до конца рабочего дня? Очень хочу наконец завести функционал, дома уже все что только можно и нельзя попробовал - не заводятся свечки, хоть ты тресни. Всю голову уже сломал за неделю.
Это же не тот функционал, где специалисты думать долго будут, - разве нет?
Все есть в документации и примерах. Смысл - свечки нужно получать через событие. Если вызывать метод GetTimeFrameCandles, то они могут быть еще не сформированы (тики с программу не мгновенно попадают с биржи и нужно какое то время, чтобы все свечки создались).
Посмотрите пример SampleCandles.
И пример, и документацию я смотрел. Не могли бы Вы подсказать, как мне модифицировать код ( http://pastebin.com/TaxxZbhL ) таким образом, чтобы оно заработало? У меня не получается поставить в код обработчик события таким образом, чтобы к GetTimeFrameCandles свечи были готовы - ссылка на скрин ошибки - http://imageshack.us/photo/my-images/857/errj.jpg/ .
Как уже писали несколько раз в этом топике, пользоваться нужно событиями. GetTimeFrameCandles возвращает свофрмированые свечки, которые прошли через событие.
Поеду домой пожалуй, еще поковыряюсь полтора часика до конца дня - вдруг заработает...
Не могли бы вы посмотреть мой код и сказать, где я чего не доделал, чтобы все заработало? Я пытаюсь поставить обработку события - не нравятся аргументы DrawCandles, не нравится type http://imageshack.us/photo/my-images/853/123fx.jpg/
сама функция
кажется, чего-то не хватает )))
лан, буду сам разбираться
Дорогой patermind, попробуйте действительно запустить пример SampleCandles. Если у Вас не будут рисоваться свечи в этом примере, значит скорей всего что-то с экспортом, например в таблице всех сделок колонки местами перепутались :)) Если же в примере SampleCandles свечи всё таки рисуются,то возвращайтесь к своему проекту и попробуйте повесить GetTimeFrameCandles на отдельную кнопку, тем самым подождав немного после запуска Экспорта по ДДЕ, чтобы свечи могли сформироваться.
В соседнем топике, http://stocksharp.com/forum/1573/GetTimeFrameCandles--dubliazh-sviechiei/ вы найдёте немного кода, который мог бы вам пригодиться.
А для того чтобы попробовать события в своём примере попробуйте
Сам не проверял, всё в ваших руках :)
Благодарю, все ок, в коде разобрался, что нужно поправил. Жду биржевого времени, чтобы проверить.
Сегодня вечером приду, оставлял машину включенной с программой, посмотрим, работают свечки или нет.
Не подскажете - предположим, в течении дня я руками делаю приказы, покупаю что-то, продаю. И к трем часам дня у меня сформировался портфель - например текущие остатки получаются 1 лот сбербанка и -7 лотов лукойла. Заранее сколько у меня к трем часам будет бумаг и каких - я не знаю. Как в программе на S# продать(и купить) все, что на настоящий момент есть в портфеле? Например, продать 1 лот сбербанка и купить 7 лотов лукойла по рыночным ценам. Т.е. полностью выйти из бумаг, вернув деньги.
Еще одна проблема - как в примере SampleConsole сделать выставление лимитированной заявки на продажу + если заявка не была отработана в течении 10 секунд(цена ушла) передвинуть заявку опять на лучшее предложение по рынку и так до тех пор, пока заявка не будет удовлетворена? Котирование? как его правильно сделать в коде без использования стратегий?
инициализация
посмотрим завтра, получится что или нет...
Понял, благодарю. Заведу свечки - попробую.
Ок, потом покажу, как делаю - нужен будет совет, правильно или нет.. без свечей пока рано говорить.
спасибо!
Это выражение означает что ничего не вывелось или вывелись нули?
Интересно. Ни разу процедура DrawCandles не вызвалась. Точнее, может и вызвалась - но цикл ни раз не исполнился
поставить проверку после var candles1 что ли
...