//MarketSeries ComboBox Selection
 private void MarketSeriesSelect_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     // ... Get the ComboBox.
     var comboBox = sender as ComboBox;
     // ... Set SelectedItem MarketSeries
     MarketPeriod marketseries = (MarketPeriod)(comboBox.SelectedItem);
 }
Пример #2
0
 public MarketX(MarketType mtype, MarketPeriod mper, string title, string competition,
                int creator, string description, int category, DateTime closing, DateTime settling,
                string[] runnerNames, bool inplay = false, decimal commission = 0.02m)
 {
     _Period     = mper;
     _Type       = mtype;
     Title       = title.RemoveDiacritics();
     PrivCreator = creator;
     Descr       = description.RemoveDiacritics();
     ClosD       = closing;
     SettlD      = settling;
     CatID       = category;
     Comp        = competition.RemoveDiacritics();
     Comm        = commission;
     Settler     = new Dictionary <long, bool>(3)
     {
         [1] = true, [777889] = false, [creator] = false
     };
     if (commission > 0)
     {
         ComRecip = new Dictionary <long, decimal> {
             [1] = 0.5m, [creator] = 0.5m
         }
     }
     ;
     Status = inplay ? StatusType.INPLAY : StatusType.ACTIVE;
     Ru     = new Runner[runnerNames.Length];
     for (int i = 0; i < runnerNames.Length; i++)
     {
         Ru[i] = new Runner(runnerNames[i], 6000);
     }
 }
 // Get data from XAML fields
 private void GetStrategyData(out string strategyName, out MarketPeriod marketSeries, out CurrencyPair symbol, out double total, out bool?buy, out bool?sell, Label strategyNameTextBox, ComboBox marketSeriesComboBox, ComboBox symbolComboBox, CheckBox buyCheck, CheckBox sellCheck, TextBox volumeTextBox)
 {
     strategyName = strategyNameTextBox.Content.ToString();
     marketSeries = (MarketPeriod)(marketSeriesComboBox.SelectedItem);
     symbol       = (CurrencyPair)symbolComboBox.SelectedItem;
     total        = double.Parse(volumeTextBox.Text);
     buy          = buyCheck.IsChecked;
     sell         = sellCheck.IsChecked;
 }
Пример #4
0
        // ADR Calculation

        public async void ADR(MarketPeriod marketseries)
        {
            CurrencyPair symbol    = GetSymbolCode(symbol1, symbol2);
            DateTime     startdate = new DateTime(2017, 1, 1);
            DateTime     enddate   = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, 0);

            var canldeinfo = await PoloniexClient.Markets.GetChartDataAsync(symbol, marketseries, startdate, enddate);

            var candleindex = canldeinfo.Count() - 1;
        }
Пример #5
0
        public async Task <int> GetHistorialData(CurrencyPair symbol, MarketPeriod marketseries)
        {
            DateTime startdate = new DateTime(2017, 1, 1);
            DateTime enddate   = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, 0);

            var canldeinfo = await Client.PoloniexClient.Markets.GetChartDataAsync(symbol, marketseries, startdate, enddate);

            var candleindex = canldeinfo.Count() - 1;

            return(candleindex);
        }
Пример #6
0
        private List <MarketChartData> GetChartData(CurrencyPair currencyPair, MarketPeriod period, DateTime startTime, DateTime endTime)
        {
            var data = GetData <List <MarketChartData> >(
                "returnChartData",
                "currencyPair=" + currencyPair,
                "start=" + Helper.DateTimeToUnixTimeStamp(startTime),
                "end=" + Helper.DateTimeToUnixTimeStamp(endTime),
                "period=" + (int)period
                );

            return(new List <MarketChartData>(data));
        }
Пример #7
0
        // Percentage Change
        public async Task PercentChange(MarketPeriod marketseries)
        {
            CurrencyPair symbol = GetSymbolCode(symbol1, symbol2);

            double balance = await GetBalanceQuote();

            DateTime startdate = new DateTime(2017, 1, 1);
            DateTime enddate   = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, DateTime.UtcNow.Hour, DateTime.UtcNow.Minute, 0);

            var CandleSeries = await PoloniexClient.Markets.GetChartDataAsync(symbol, marketseries, startdate, enddate);

            var index = CandleSeries.Count() - 1;

            //Percent Drop Calc
            double currentBarRange = CandleSeries[index].High - CandleSeries[index].Low;

            double percentChange = (currentBarRange * 100) / CandleSeries[index].Close;

            //double percentRange = ((CandleSeries[index].Close - CandleSeries[index-1].Close) / CandleSeries[index].Close) * 100;

            //Buy
            try
            {
                if (CandleSeries[index].Close > CandleSeries[index].Open && percentChange >= 1)
                {
                    Sell_Button.Dispatcher.Invoke(new Action(async() =>
                    {
                        await ExecuteMarketOrder(symbol1, symbol2, OrderType.Buy, double.Parse(Quantity.Text));
                    }));
                }

                else if (CandleSeries[index].Close < CandleSeries[index].Open && percentChange >= 10)
                {
                    if (balance > minOrderSize)

                    {
                        Sell_Button.Dispatcher.Invoke(new Action(async() =>
                        {
                            await ExecuteMarketOrder(symbol1, symbol2, OrderType.Sell, double.Parse(Quantity.Text));
                        }));
                    }
                }
            }
            catch (Exception error)
            {
                MessageBox.Show("Order Error" + error.Message);
            }
        }
Пример #8
0
        public Strategy(string strategyName, MarketPeriod marketSeries, CurrencyPair symbol, bool?buy, bool?sell, double total)
        {
            StrategyName = strategyName;
            MarketSeries = marketSeries;
            Symbol       = symbol;
            Buy          = buy;
            Sell         = sell;
            Total        = total;

            // Timer
            dispatcherTimer             = new SmartDispatcherTimer();
            dispatcherTimer.IsReentrant = false;
            //Test interval
            dispatcherTimer.Interval = TimeSpan.FromSeconds(10);
            //dispatcherTimer.Interval = TimeSpan.FromSeconds((int)marketSeries);
        }
Пример #9
0
        public static KLine[] GetKLine(MarketType _type, MarketPeriod _period)
        {
            string _url = "";
            switch (_type)
            {
                case MarketType.BTC: _url = "https://market.huobi.com/staticmarket/kline{0}.html"; break;
                case MarketType.LTC: _url = "https://market.huobi.com/staticmarket/kline_ltc{0}.html"; break;
            }
            switch (_period)
            {
                case MarketPeriod.M1: _url = string.Format(_url, "001"); break;
                case MarketPeriod.M5: _url = string.Format(_url, "005"); break;
                case MarketPeriod.M15: _url = string.Format(_url, "015"); break;
                case MarketPeriod.M30: _url = string.Format(_url, "030"); break;
                case MarketPeriod.M60: _url = string.Format(_url, "060"); break;
                case MarketPeriod.D: _url = string.Format(_url, "100"); break;
                case MarketPeriod.W: _url = string.Format(_url, "200"); break;
                case MarketPeriod.M: _url = string.Format(_url, "300"); break;
                case MarketPeriod.Y: _url = string.Format(_url, "400"); break;
            }

            string _result = Get(_url);
            IList<KLine> _klines = new List<KLine>();
            string[] _lines = _result.Split('\n');
            foreach (string _line in _lines)
            {
                string[] _item = _line.Replace("\r", "").Split(',');
                if (_item.Length != 8) { continue; }
                KLine _kline = new KLine();
                _kline.DateTime = DateTime.Parse(string.Format("{0}-{1}-{2} {3}:{4}:{5}",
                    _item[0].Substring(0,4),
                    _item[0].Substring(4,2),
                    _item[0].Substring(6,2),
                    _item[1].Substring(0,2),
                    _item[1].Substring(2,2),
                    _item[1].Substring(4,2)));
                _kline.Open = decimal.Parse(_item[2]);
                _kline.High = decimal.Parse(_item[3]);
                _kline.Low = decimal.Parse(_item[4]);
                _kline.Close = decimal.Parse(_item[5]);
                _kline.Volume = decimal.Parse(_item[6]);
                _kline.Total = decimal.Parse(_item[7]);
                _klines.Add(_kline);
            }
            return _klines.ToArray();
        }
Пример #10
0
 private IList <IMarketChartData> GetChartData(CurrencyPair currencyPair, MarketPeriod period, DateTime startTime, DateTime endTime)
 {
     try {
         var data = GetData <IList <MarketChartData> >(
             "returnChartData",
             "currencyPair=" + currencyPair,
             "start=" + Helper.DateTimeToUnixTimeStamp(startTime),
             "end=" + Helper.DateTimeToUnixTimeStamp(endTime),
             "period=" + (int)period
             );
         return(new List <IMarketChartData>(data));
     }
     catch (Exception e) {
         PoloniexBot.CLI.Manager.PrintError(e.Message);
         return(null);
     }
 }
Пример #11
0
 public RangeBreakout(string strategyName, MarketPeriod marketSeries, CurrencyPair symbol, bool?buy, bool?sell, double volume) : base(strategyName, marketSeries, symbol, buy, sell, volume)
 {
 }
Пример #12
0
 public Task <List <MarketChartData> > GetChartDataAsync(CurrencyPair currencyPair, MarketPeriod period)
 {
     return(Task.Factory.StartNew(() => GetChartData(currencyPair, period, Helper.DateTimeUnixEpochStart, DateTime.MaxValue)));
 }
Пример #13
0
 public Task <List <MarketChartData> > GetChartDataAsync(CurrencyPair currencyPair, MarketPeriod period, DateTime startTime, DateTime endTime)
 {
     return(Task.Factory.StartNew(() => GetChartData(currencyPair, period, startTime, endTime)));
 }
Пример #14
0
 public TrendFollow(string strategyName, MarketPeriod marketSeries, CurrencyPair symbol, bool?buy, bool?sell, double volume) : base(strategyName, marketSeries, symbol, buy, sell, volume)
 {
 }
Пример #15
0
 public Task <IList <IMarketChartData> > GetChartDataAsync(CurrencyPair currencyPair, MarketPeriod period, DateTime startTime, DateTime endTime)
 {
     return(Task.Run(() => GetChartData(currencyPair, period, startTime, endTime)));
 }
 public MarketScanner(string strategyName, MarketPeriod marketSeries, CurrencyPair symbol, bool?buy, bool?sell, double total) : base(strategyName, marketSeries, symbol, buy, sell, total)
 {
 }
Пример #17
0
 private IList <IMarketChartData> GetChartData(CurrencyPair currencyPair, MarketPeriod period, DateTime startTime, DateTime endTime)
 {
     return(Utility.WebApiCustom.GetChartData(currencyPair, period, startTime, endTime));
 }
Пример #18
0
 public IList <IMarketChartData> GetChartDataSync(CurrencyPair currencyPair, MarketPeriod period, DateTime startTime, DateTime endTime)
 {
     return(GetChartData(currencyPair, period, startTime, endTime));
 }
 public PercentageTrader(string strategyName, MarketPeriod marketSeries, CurrencyPair symbol, bool?buy, bool?sell, double volume) : base(strategyName, marketSeries, symbol, buy, sell, volume)
 {
 }