private void ConnectClick(object sender, RoutedEventArgs e) { if (Path.Text.IsEmpty()) MessageBox.Show(this, LocalizedStrings.Str2969); else { // создаем подключение к Quik-у и синхронизуем его _connector = new QuikTrader(Path.Text).GuiSyncTrader(); // или напрямую через конструктор GuiTrader // (пред. нужно закомментировать, это - раскомментировать) // new GuiTrader<QuikTrader>(new QuikTrader(Path.Text)); // теперь можно обратиться к элементу окна 'Security' (это выпадающий список) без конструкции Sync _connector.NewSecurities += securities => Security.ItemsSource = _connector.Securities; // производим соединение _connector.Connect(); // создаем менеджер свечек по синхронизированному подключению _candleManager = new CandleManager(_connector); ConnectBtn.IsEnabled = false; } }
/// <summary> /// Создать <see cref="CandleManagerIndicatorSource"/>. /// </summary> /// <param name="candleManager">Менеджер свечек.</param> public CandleManagerIndicatorSource(ICandleManager candleManager) { if (candleManager == null) throw new ArgumentNullException("candleManager"); _candleManager = candleManager; _candleManager.Processing += OnProcessing; }
public SmaStrategy(ICandleManager candleManager, CandleSeries series, SimpleMovingAverage longSma, SimpleMovingAverage shortSma) { _candleManager = candleManager; _series = series; LongSma = longSma; ShortSma = shortSma; }
public SmaStrategy(ICandleManager candleManager, CandleSeries series, SimpleMovingAverage longSma, SimpleMovingAverage shortSma) { _candleManager = candleManager; _series = series; LongSma = longSma; ShortSma = shortSma; _longSmaPeriod = this.Param("LongSmaPeriod", longSma.Length); _shortSmaPeriod = this.Param("ShortSmaPeriod", shortSma.Length); }
public SmaStrategy(IChart chart, ChartCandleElement candlesElem, ChartTradeElement tradesElem, SimpleMovingAverage shortMa, ChartIndicatorElement shortElem, SimpleMovingAverage longMa, ChartIndicatorElement longElem, ICandleManager candleManager, CandleSeries series) { _chart = chart; _candlesElem = candlesElem; _tradesElem = tradesElem; _shortElem = shortElem; _longElem = longElem; _candleManager = candleManager; _series = series; ShortSma = shortMa; LongSma = longMa; }
private void ConnectClick(object sender, RoutedEventArgs e) { if (Path.Text.IsEmpty()) MessageBox.Show(this, LocalizedStrings.Str2969); else { // создаем подключение к Quik-у и синхронизуем его _connector = new QuikTrader(Path.Text).GuiSyncTrader(); // или напрямую через конструктор GuiTrader // (пред. нужно закомментировать, это - раскомментировать) // new GuiTrader<QuikTrader>(new QuikTrader(Path.Text)); Security.SecurityProvider = new FilterableSecurityProvider(_connector); // производим соединение _connector.Connect(); // создаем менеджер свечек по синхронизированному подключению _candleManager = new CandleManager(_connector); ConnectBtn.IsEnabled = false; } }
/// <summary> /// To get all candles. /// </summary> /// <typeparam name="TCandle">The candles type.</typeparam> /// <param name="candleManager">The candles manager.</param> /// <param name="series">Candles series.</param> /// <returns>Candles.</returns> public static IEnumerable <TCandle> GetCandles <TCandle>(this ICandleManager candleManager, CandleSeries series) where TCandle : Candle { return(candleManager.ThrowIfNull().Container.GetCandles(series).OfType <TCandle>()); }
/// <summary> /// To get a temporary candle on the specific date. /// </summary> /// <param name="candleManager">The candles manager.</param> /// <param name="series">Candles series.</param> /// <param name="time">The candle date.</param> /// <returns>The found candle (<see langword="null" />, if the candle by the specified criteria does not exist).</returns> public static TimeFrameCandle GetTimeFrameCandle(this ICandleManager candleManager, CandleSeries series, DateTimeOffset time) { return(candleManager.GetCandles <TimeFrameCandle>(series).FirstOrDefault(c => c.OpenTime == time)); }
/// <summary> /// To start candles getting. /// </summary> /// <param name="manager">The candles manager.</param> /// <param name="series">Candles series.</param> public static void Start(this ICandleManager manager, CandleSeries series) { manager.ThrowIfNull().Start(series, series.From, series.To); }
///// <summary> ///// To stop candles getting. ///// </summary> ///// <param name="series">Candles series.</param> //public static void Stop(this CandleSeries series) //{ // var manager = series.ThrowIfNull().CandleManager; // // серию ранее не запускали, значит и останавливать не нужно // if (manager == null) // return; // manager.Stop(series); //} //private static ICandleManagerContainer GetContainer(this CandleSeries series) //{ // return series.ThrowIfNull().CandleManager.Container; //} /// <summary> /// To get the number of candles. /// </summary> /// <param name="candleManager">The candles manager.</param> /// <param name="series">Candles series.</param> /// <returns>Number of candles.</returns> public static int GetCandleCount(this ICandleManager candleManager, CandleSeries series) { return(candleManager.ThrowIfNull().Container.GetCandleCount(series)); }
/// <summary> /// NotImplemented /// To create a Reactive Extension for the event of candle partial end. /// </summary> /// <param name="candleManager">The candles manager.</param> /// <param name="series">The candle series to be traced for candle partial end.</param> /// <param name="connector">Connection to the trading system.</param> /// <param name="percent">The percentage of candle completion.</param> /// <returns>Reactive Extension.</returns> public static IObservable <Candle> RxWhenPartiallyFinishedCandles(this ICandleManager candleManager, CandleSeries series, IConnector connector, decimal percent) { //TODO: RxWhenPartiallyFinishedCandles throw new NotImplementedException(); }
public IndexSecurityCandleManagerSource(ICandleManager candleManager, DateTimeOffset from, DateTimeOffset to) { _from = from; _to = to; CandleManager = candleManager; }
/// <summary> /// Получить серию свечек по заданным параметрам. /// </summary> /// <typeparam name="TCandle">Тип свечек.</typeparam> /// <param name="manager">Менеджер свечек.</param> /// <param name="security">Инструмент, по которому нужно фильтровать сделки для формирования свечек.</param> /// <param name="arg">Параметр свечи.</param> /// <returns>Серия свечек. Null, если такая серия не зарегистрирована.</returns> public static CandleSeries GetSeries <TCandle>(this ICandleManager manager, Security security, object arg) where TCandle : Candle { return(manager.ThrowIfNull().Series.FirstOrDefault(s => s.CandleType == typeof(TCandle) && s.Security == security && s.Arg.Equals(arg))); }
/// <summary> /// Зарегистрирована ли группировка свечек по определённому признаку. /// </summary> /// <typeparam name="TCandle">Тип свечек.</typeparam> /// <param name="manager">Менеджер свечек.</param> /// <param name="security">Инструмент, для которого зарегистрирована группировка.</param> /// <param name="arg">Параметр свечи.</param> /// <returns><see langword="true"/>, если зарегистрирована. Иначе, <see langword="false"/>.</returns> public static bool IsCandlesRegistered <TCandle>(this ICandleManager manager, Security security, object arg) where TCandle : Candle { return(manager.GetSeries <TCandle>(security, arg) != null); }
/// <summary> /// To get the current candle. /// </summary> /// <typeparam name="TCandle">The candles type.</typeparam> /// <param name="candleManager">The candles manager.</param> /// <param name="series">Candles series.</param> /// <returns>The found candle. If the candle does not exist, the <see langword="null" /> will be returned.</returns> public static TCandle GetCurrentCandle <TCandle>(this ICandleManager candleManager, CandleSeries series) where TCandle : Candle { return(candleManager.GetCandle <TCandle>(series, 0)); }
/// <summary> /// Создать <see cref="CandleManagerIndicatorSource"/>. /// </summary> /// <param name="candleManager">Менеджер свечек.</param> /// <param name="getPart">Конвертер свечки, через которую можно получить ее параметр (цену закрытия <see cref="Candle.ClosePrice"/>, цену открытия <see cref="Candle.OpenPrice"/> и т.д.).</param> public CandleManagerIndicatorSource(ICandleManager candleManager, Func<Candle, decimal> getPart) : base(getPart) { if (candleManager == null) throw new ArgumentNullException("candleManager"); _candleManager = candleManager; _candleManager.Processing += OnProcessing; }
/// <summary> /// To get a candle by the index. /// </summary> /// <typeparam name="TCandle">The candles type.</typeparam> /// <param name="candleManager">The candles manager.</param> /// <param name="series">Candles series.</param> /// <param name="candleIndex">The candle's position number from the end.</param> /// <returns>The found candle. If the candle does not exist, then <see langword="null" /> will be returned.</returns> public static TCandle GetCandle <TCandle>(this ICandleManager candleManager, CandleSeries series, int candleIndex) where TCandle : Candle { return((TCandle)candleManager.ThrowIfNull().Container.GetCandle(series, candleIndex)); }
/// <summary> /// To get candles by the total number. /// </summary> /// <typeparam name="TCandle">The candles type.</typeparam> /// <param name="candleManager">The candles manager.</param> /// <param name="series">Candles series.</param> /// <param name="candleCount">The number of candles that should be returned.</param> /// <returns>Found candles.</returns> public static IEnumerable <TCandle> GetCandles <TCandle>(this ICandleManager candleManager, CandleSeries series, int candleCount) { return(candleManager.ThrowIfNull().Container.GetCandles(series, candleCount).OfType <TCandle>()); }
/// <summary> /// To get candles by date range. /// </summary> /// <typeparam name="TCandle">The candles type.</typeparam> /// <param name="candleManager">The candles manager.</param> /// <param name="series">Candles series.</param> /// <param name="timeRange">The date range which should include candles. The <see cref="Candle.OpenTime"/> value is taken into consideration.</param> /// <returns>Found candles.</returns> public static IEnumerable <TCandle> GetCandles <TCandle>(this ICandleManager candleManager, CandleSeries series, Range <DateTimeOffset> timeRange) where TCandle : Candle { return(candleManager.ThrowIfNull().Container.GetCandles(series, timeRange).OfType <TCandle>()); }