Работа со свечка .Заезженная тема
Atom
08.06.2011


Здравствуйте подскажите пожалуйста, как только не делал и не пробвоал вызывать свечи всё время возвращеть либо ноль,либо пишет что нет ссылки на обьект.Пример с samplecandles смотрел но там нет той части как получить именно O,H,L,C и другие данные со свечи,там есть только часть того что они передаються на новый чарт с графиком ,где он сам их как то получает.
Не могли бы вы скинуть маленький примерчик как просто получить последние 10 свечей по лукойлу и вывести их нормально,чтоб ыэти значения были равны не нулю.ПО возможности скиньте весь код.
Заранее спасибо!

Теги:


Спасибо:



Именинники: dim7000

1 2 3  >
hobo

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


Окончание формирования свечей дожидаетесь? Нужно подписаться на CandlesFinished и NewCandles и уже в них обращаться к свечам.
Code
_candleManager.CandlesFinished += (_candles) => MyMethod(_candles);
...
private void MyMethod(IEnumerable<Candle> candles)
{
foreach(var candle in candles)
{

}
}

Спасибо:

Самунджян Артем

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


hobo GoTo
Окончание формирования свечей дожидаетесь? Нужно подписаться на CandlesFinished и NewCandles и уже в них обращаться к свечам.
Code
_candleManager.CandlesFinished += (_candles) => MyMethod(_candles);
...
private void MyMethod(IEnumerable<Candle> candles)
{
foreach(var candle in candles)
{

}
}


Спасибо но можно что нибудб попроще,я совсем не разобрался с работой S#.Скиньте плиз готовую мелочь какую нибудь чтобы просто в консоль выпечатывало.
Спасибо:

Самунджян Артем

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


var ctime=_candleTimeFrame.GetCandleBounds(DateTime.Now).Min;

_candleManager.RegisterTimeFrameCandles(ri,TimeSpan.FromMinutes(1));

var candles = _candleManager.GetTimeFrameCandle(ri, TimeSpan.FromMinutes(1), ctime);
Console.WriteLine(candles.OpenPrice);


Что вот тут не так???
Спасибо:

Самунджян Артем

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


var _c = TimeSpan.FromMinutes(5);
Console.WriteLine("начато");
var candles= _candleManager.GetTimeFrameCandle(ri,_c,TraderHelper.GetCandleTime(_c,DateTime.Now));

Console.WriteLine(candles.OpenPrice);
Console.WriteLine("закончено");

ещё вот так вот , какие только методы не использовал вообще ничего не возвращает даже в самых простых случаях!(
Подскажите может я что то делаю не так?(
Спасибо:

Sergey Masyura

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


samujan GoTo
var _c = TimeSpan.FromMinutes(5);
Console.WriteLine("начато");
var candles= _candleManager.GetTimeFrameCandle(ri,_c,TraderHelper.GetCandleTime(_c,DateTime.Now));

Console.WriteLine(candles.OpenPrice);
Console.WriteLine("закончено");

ещё вот так вот , какие только методы не использовал вообще ничего не возвращает даже в самых простых случаях!(
Подскажите может я что то делаю не так?(



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

Самунджян Артем

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


sergey.masyura GoTo
samujan GoTo
var _c = TimeSpan.FromMinutes(5);
Console.WriteLine("начато");
var candles= _candleManager.GetTimeFrameCandle(ri,_c,TraderHelper.GetCandleTime(_c,DateTime.Now));

Console.WriteLine(candles.OpenPrice);
Console.WriteLine("закончено");

ещё вот так вот , какие только методы не использовал вообще ничего не возвращает даже в самых простых случаях!(
Подскажите может я что то делаю не так?(



Выложите Ваш пример архивчиком, так будет проще и понятнее в чем проблема.

Да я уже скинул практически всё что писал , я просто прошу чтобы кто нибудь правильно подсказалл как использовать candles как выводить оттуда данные.Те два примера которые я скинул ничего не возвращают в принципе могу попозже скинуть архив, но проку от него мало будет(
мне нужная простая вещь просто получить даныые допустим с предыдущей свечки....но проблема вся в том что все выкладывают свои проблемные моменты в коде каими то кусками и не понятно что да как работает(
Мне как не такому профессиональному программисту хотелось бы получить примитивные примеры.
Спасибо:

Alexander

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


samujan GoTo
sergey.masyura GoTo
samujan GoTo
var _c = TimeSpan.FromMinutes(5);
Console.WriteLine("начато");
var candles= _candleManager.GetTimeFrameCandle(ri,_c,TraderHelper.GetCandleTime(_c,DateTime.Now));

Console.WriteLine(candles.OpenPrice);
Console.WriteLine("закончено");

ещё вот так вот , какие только методы не использовал вообще ничего не возвращает даже в самых простых случаях!(
Подскажите может я что то делаю не так?(



Выложите Ваш пример архивчиком, так будет проще и понятнее в чем проблема.

Да я уже скинул практически всё что писал , я просто прошу чтобы кто нибудь правильно подсказалл как использовать candles как выводить оттуда данные.Те два примера которые я скинул ничего не возвращают в принципе могу попозже скинуть архив, но проку от него мало будет(
мне нужная простая вещь просто получить даныые допустим с предыдущей свечки....но проблема вся в том что все выкладывают свои проблемные моменты в коде каими то кусками и не понятно что да как работает(
Мне как не такому профессиональному программисту хотелось бы получить примитивные примеры.



Тут отвечал пару дней назад.
Спасибо:

Самунджян Артем

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


Alexander GoTo
samujan GoTo
sergey.masyura GoTo
samujan GoTo
var _c = TimeSpan.FromMinutes(5);
Console.WriteLine("начато");
var candles= _candleManager.GetTimeFrameCandle(ri,_c,TraderHelper.GetCandleTime(_c,DateTime.Now));

Console.WriteLine(candles.OpenPrice);
Console.WriteLine("закончено");

ещё вот так вот , какие только методы не использовал вообще ничего не возвращает даже в самых простых случаях!(
Подскажите может я что то делаю не так?(



Выложите Ваш пример архивчиком, так будет проще и понятнее в чем проблема.

Да я уже скинул практически всё что писал , я просто прошу чтобы кто нибудь правильно подсказалл как использовать candles как выводить оттуда данные.Те два примера которые я скинул ничего не возвращают в принципе могу попозже скинуть архив, но проку от него мало будет(
мне нужная простая вещь просто получить даныые допустим с предыдущей свечки....но проблема вся в том что все выкладывают свои проблемные моменты в коде каими то кусками и не понятно что да как работает(
Мне как не такому профессиональному программисту хотелось бы получить примитивные примеры.



Тут отвечал пару дней назад.


не совсме понял что имееться ввиду под roundMarketTime(округлённое рыночное время) и как оно должно быть через datetime?
Ну вот как я пробывал задать так это просто округление до текщего времени череp TraderHelper тобишь если сейчас 10:43 , то если у меня стоит пятиминутный тайм фрейм то он округлит до 10 40 .Но он всё равно почему то всё время пишет ошибку: не задана ссылка на обьект(
Спасибо:

Alexander

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


samujan GoTo
Alexander GoTo
samujan GoTo
sergey.masyura GoTo
samujan GoTo
var _c = TimeSpan.FromMinutes(5);
Console.WriteLine("начато");
var candles= _candleManager.GetTimeFrameCandle(ri,_c,TraderHelper.GetCandleTime(_c,DateTime.Now));

Console.WriteLine(candles.OpenPrice);
Console.WriteLine("закончено");

ещё вот так вот , какие только методы не использовал вообще ничего не возвращает даже в самых простых случаях!(
Подскажите может я что то делаю не так?(



Выложите Ваш пример архивчиком, так будет проще и понятнее в чем проблема.

Да я уже скинул практически всё что писал , я просто прошу чтобы кто нибудь правильно подсказалл как использовать candles как выводить оттуда данные.Те два примера которые я скинул ничего не возвращают в принципе могу попозже скинуть архив, но проку от него мало будет(
мне нужная простая вещь просто получить даныые допустим с предыдущей свечки....но проблема вся в том что все выкладывают свои проблемные моменты в коде каими то кусками и не понятно что да как работает(
Мне как не такому профессиональному программисту хотелось бы получить примитивные примеры.



Тут отвечал пару дней назад.


не совсме понял что имееться ввиду под roundMarketTime(округлённое рыночное время) и как оно должно быть через datetime?
Ну вот как я пробывал задать так это просто округление до текщего времени череp TraderHelper тобишь если сейчас 10:43 , то если у меня стоит пятиминутный тайм фрейм то он округлит до 10 40 .Но он всё равно почему то всё время пишет ошибку: не задана ссылка на обьект(



на какой объект?
на какой строчке?

у вас может candleManager равен null.
или возвращается текущая свечка = null - её ещё нет, дождитесь получения через событие.
Спасибо:

Самунджян Артем

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


Alexander GoTo
samujan GoTo
Alexander GoTo
samujan GoTo
sergey.masyura GoTo
samujan GoTo
var _c = TimeSpan.FromMinutes(5);
Console.WriteLine("начато");
var candles= _candleManager.GetTimeFrameCandle(ri,_c,TraderHelper.GetCandleTime(_c,DateTime.Now));

Console.WriteLine(candles.OpenPrice);
Console.WriteLine("закончено");

ещё вот так вот , какие только методы не использовал вообще ничего не возвращает даже в самых простых случаях!(
Подскажите может я что то делаю не так?(



Выложите Ваш пример архивчиком, так будет проще и понятнее в чем проблема.

Да я уже скинул практически всё что писал , я просто прошу чтобы кто нибудь правильно подсказалл как использовать candles как выводить оттуда данные.Те два примера которые я скинул ничего не возвращают в принципе могу попозже скинуть архив, но проку от него мало будет(
мне нужная простая вещь просто получить даныые допустим с предыдущей свечки....но проблема вся в том что все выкладывают свои проблемные моменты в коде каими то кусками и не понятно что да как работает(
Мне как не такому профессиональному программисту хотелось бы получить примитивные примеры.



Тут отвечал пару дней назад.


не совсме понял что имееться ввиду под roundMarketTime(округлённое рыночное время) и как оно должно быть через datetime?
Ну вот как я пробывал задать так это просто округление до текщего времени череp TraderHelper тобишь если сейчас 10:43 , то если у меня стоит пятиминутный тайм фрейм то он округлит до 10 40 .Но он всё равно почему то всё время пишет ошибку: не задана ссылка на обьект(



на какой объект?
на какой строчке?

у вас может candleManager равен null.
или возвращается текущая свечка = null - её ещё нет, дождитесь получения через событие.



Вот полный код хотя я пытался и другими путями через обработчика события NewCandles и CandlesFinished.Но я не совсем умею работать с обработчаками события и в принципе так и не нашёл как выводить данные(O,H,L,C) из этих обработчиков и как правильно получать данные,к тому же DrawCandles не видит((


namespace SampleSmartConsole
{
using System;
using System.Linq;
using System.Threading;
using System.Xml;

using Ecng.Common;
using Ecng.Collections;
using Ecng.Trading.BusinessEntities;
using Ecng.Trading.Quik;
using Ecng.Trading.Algo;
using Ecng.Trading.Algo.Candles;




class Program
{


static void Main()
{

var trader = new QuikTrader();
var _candleManager = new CandleManager(trader);

//TimeSpan span3 = TimeSpan.FromMinutes(1);
//DateTime time= new DateTime(2011,6,8,11,45,0);
trader.Connect();
trader.Terminal.StartDde(trader.SecuritiesTable);
Thread.Sleep(2000);

var ri = trader.Securities.First(s => s.Id == "SBER03@QJSIM");
trader.RegisterQuotes(ri);

var _c = TimeSpan.FromMinutes(5);
var candles= _candleManager.GetTimeFrameCandle(ri,_c,TraderHelper.GetCandleTime(_c,DateTime.Now));
Console.WriteLine(candles.OpenPrice);



//var lastCandle = _candleManager.GetTimeFrameCandle(ri,_c, );

//var closePrice = lastCandle.ClosePrice;



trader.RegisterOrder(new Order
{
Portfolio= new Portfolio{Name="NL0011100043"},
Security=ri,
Price=ri.BestAsk.Price,
Volume=3,
Direction=OrderDirections.Sell,
});
trader.Terminal.StopActiveDdeExport();//остановка DDE передачи
Console.WriteLine("end");
Console.ReadLine();






}
}
}
Спасибо:
1 2 3  >

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

loading
clippy