Alexander samujan Alexander samujan sergey.masyura samujan 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();
}
}
}