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);
     }));
 }
Exemple #5
0
        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);
        }
Exemple #6
0
        private void SetUpdaters(PairOfMarket pair)
        {
            Pair = pair;

            _updater          = OrderBookUpdaterProvider.GetUpdater(pair, _refreshInterval);
            _updater.Changed += OrderBookUpdater_Changed;
            SetUpdaterSettings();
            _updater.Start();
        }
Exemple #7
0
        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);
        }
Exemple #10
0
        //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();
        }
Exemple #12
0
        public void NeedOrderBookOf(PairOfMarket pair)
        {
            ResetUpdaters();
            ResetUsdRate();

            if (pair == null)
            {
                OrderBook = null;
                //OnOrderBookChanged();
                return;
            }

            SetUpdaters(pair);
        }
Exemple #13
0
        public void PairChanged(PairOfMarket pair)
        {
            Pair = pair;

            ReleasePairTickUpdater();
            ReleaseBalanceUpdater();

            if (pair != null)
            {
                InitTickUpdater();
                InitBalanceUpdater();

                InitMayTrade();
            }
        }
Exemple #14
0
        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);
        }
Exemple #15
0
 private static int Comparison(PairOfMarket pair1, PairOfMarket pair2)
 {
     return(string.CompareOrdinal(pair1.Pair.ToString(), pair2.Pair.ToString()));
 }
Exemple #16
0
 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);
 }
Exemple #19
0
 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;
 }
Exemple #27
0
 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;
 }
Exemple #29
0
 public static string AsString(PairOfMarket pair)
 {
     return(AsString(pair.Pair));
 }
 private async void View_PairChanged(PairOfMarket pair)
 {
     View.ClearOrderBooks();
     await PairChangedAsync(pair);
 }