private Task ExcludePairToStrategy(PairOfMarket pair, TimeframeType timeframe, int barCount) { return(Task.Run(() => { Model.ExcludePairFromStrategy(pair, timeframe, barCount); })); }
private Task PairChangedAsync(PairOfMarket pair) { return(Task.Run(() => { Model.NeedOrderBookOf(pair); })); }
public OrderId SellLimit(PairOfMarket pair, double quantity, double rate, out string errorMessage) { var apiKeys = pair.Market.ApiKeys(ApiKeyRole.TradeLimit); OrderId result = null; errorMessage = string.Empty; var parameters = new List <Tuple <string, string> > { Tuple.Create("market", BittrexPairs.AsString(pair)), Tuple.Create("quantity", quantity.ToString(Nfi)), Tuple.Create("rate", rate.ToString(Nfi)) }; var query = Connection.PrivateGetQuery <BittrexLimitOrderDataType>( EndPoints.SellLimit, apiKeys, GetParameters(apiKeys.PublicKey, parameters)); if (query.Success && query.Order != null) { result = new OrderId(query.Order.Id); } else { errorMessage = query.Message; } return(result); }
private Task PairChangedAsync(PairOfMarket pair) { return(Task.Run(() => { Model.PairChanged(pair); })); }
public void IncludePairToStrategy(PairOfMarket pair, TimeframeType timeframe, int barCount) { _pairs.Add(pair); var updater = HistoryPricesProvider.GetUpdater(MakeFeature(pair, timeframe, barCount), _refreshInterval); updater.Changed += Updater_Changed; updater.Start(); _updaters.Add(updater); }
private void SetUpdaters(PairOfMarket pair) { Pair = pair; _updater = OrderBookUpdaterProvider.GetUpdater(pair, _refreshInterval); _updater.Changed += OrderBookUpdater_Changed; SetUpdaterSettings(); _updater.Start(); }
public static PairOfMarket ToPair(this BittrexPairDataType pairDataType, Market market) { DateTime dateTime; var created = DateTime.TryParse(pairDataType.Created, out dateTime) ? dateTime : (DateTime?)null; var pair = new PairOfMarket( // rotate pair in Bittrex new Pair(new Currency(pairDataType.QuoteCurrency), new Currency(pairDataType.BaseCurrency)), market, pairDataType.MinTradeSize, pairDataType.IsActive, created); return(pair); }
public OrderBookUpdater(PairOfMarket pair, IMarketInfo marketInfo, int refreshInterval = DefaultRefreshInterval) { _pair = pair; _marketInfo = marketInfo; _timer = new Timer(TimerCallback); //_timer = new Timer(); //_timer.Elapsed += Timer_Elapsed; RefreshInterval = refreshInterval; }
public void NeedGraphOf(PairOfMarket pair) { ResetUpdaters(); if (pair == null) { //OrderBook = null; //OnOrderBookChanged(); return; } SetUpdaters(pair); }
//public IEnumerable<PairOfMarket> ActivePairs => _pairs; public void ExcludePairFromStrategy(PairOfMarket pair, TimeframeType timeframe, int barCount) { var updater = _updaters.FirstOrDefault(u => u.OwnerFeature == MakeFeature(pair, timeframe, barCount)); if (updater == null) { return; } _pairs.Remove(pair); updater.Changed -= Updater_Changed; HistoryPricesProvider.ReleaseUpdater(updater); _updaters.Remove(updater); }
private void SetUpdaters(PairOfMarket pair) { if (!IsMayRunUpdater) { return; } _updater = HistoryPricesUpdaterProvider.GetUpdater( new HistoryPriceFeature(pair, Timeframe.Value, BarCount), _refreshInterval); _updater.Changed += HistoryPriceUpdater_Changed; //SetUpdaterSettings(); _updater.Start(); }
public void NeedOrderBookOf(PairOfMarket pair) { ResetUpdaters(); ResetUsdRate(); if (pair == null) { OrderBook = null; //OnOrderBookChanged(); return; } SetUpdaters(pair); }
public void PairChanged(PairOfMarket pair) { Pair = pair; ReleasePairTickUpdater(); ReleaseBalanceUpdater(); if (pair != null) { InitTickUpdater(); InitBalanceUpdater(); InitMayTrade(); } }
public IOrderBookUpdater OrderBookUpdater(PairOfMarket pair) { IOrderBookUpdater updater; if (!_orderBookUpdaters.TryGetValue(pair, out updater)) { updater = new OrderBookUpdater(pair, pair.Market.Model.Info); _orderBookUpdaters.Add(pair, updater); } int references; if (_orderBookUpdaterReferences.TryGetValue(updater, out references)) { _orderBookUpdaterReferences.Remove(updater); } _orderBookUpdaterReferences.Add(updater, references + 1); return(updater); }
private static int Comparison(PairOfMarket pair1, PairOfMarket pair2) { return(string.CompareOrdinal(pair1.Pair.ToString(), pair2.Pair.ToString())); }
private HistoryPriceFeature MakeFeature(PairOfMarket pair, TimeframeType timeframe, int barCount) { return(new HistoryPriceFeature(pair, timeframe, barCount)); }
private void Model_SignalDisappeared(PairOfMarket pair) { View.SignalDisappeared(pair); }
private async void View_PairChanged(PairOfMarket pair) { await PairChangedAsync(pair); }
public Trade(PairOfMarket pair) { _pair = pair; }
private Task PairChangedAsync(PairOfMarket pair) { _pair = pair; return(GetHistoryPricesAsync()); }
private async void View_PairChanged(PairOfMarket pair) { View.ClearGraph(); await PairChangedAsync(pair); }
private async void View_RemovePairFromAnalise(PairOfMarket pair, TimeframeType timeframe, int barCount) { await ExcludePairToStrategy(pair, timeframe, barCount); }
private async void View_AddPairToAnalise(PairOfMarket pair, TimeframeType timeframe, int barCount) { await IncludePairToStrategy(pair, timeframe, barCount); }
public HistoryPriceFeature(PairOfMarket pair, TimeframeType timeframe, int barCount) : this(pair, timeframe) { var minutes = timeframe.ToMinutes() * barCount; StartTime = DateTime.Now.Subtract(new TimeSpan(0, minutes, 0)); }
private void Model_SignalOccured(PairOfMarket pair) { View.SignalOccured(pair); }
public HistoryPriceFeature(PairOfMarket pair, TimeframeType timeframe) { Pair = pair; Timeframe = timeframe; StartTime = null; }
public OrderId SellLimit(PairOfMarket pair, double quantity, double rate, out string errorMessage) { errorMessage = string.Empty; return(new OrderId("1")); }
public HistoryPriceFeature(PairOfMarket pair, TimeframeType timeframe, DateTime startTime) : this(pair, timeframe) { StartTime = startTime; }
public static string AsString(PairOfMarket pair) { return(AsString(pair.Pair)); }
private async void View_PairChanged(PairOfMarket pair) { View.ClearOrderBooks(); await PairChangedAsync(pair); }