//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); }
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; }
// 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; }
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); }
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)); }
// 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); } }
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); }
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(); }
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); } }
public RangeBreakout(string strategyName, MarketPeriod marketSeries, CurrencyPair symbol, bool?buy, bool?sell, double volume) : base(strategyName, marketSeries, symbol, buy, sell, volume) { }
public Task <List <MarketChartData> > GetChartDataAsync(CurrencyPair currencyPair, MarketPeriod period) { return(Task.Factory.StartNew(() => GetChartData(currencyPair, period, Helper.DateTimeUnixEpochStart, DateTime.MaxValue))); }
public Task <List <MarketChartData> > GetChartDataAsync(CurrencyPair currencyPair, MarketPeriod period, DateTime startTime, DateTime endTime) { return(Task.Factory.StartNew(() => GetChartData(currencyPair, period, startTime, endTime))); }
public TrendFollow(string strategyName, MarketPeriod marketSeries, CurrencyPair symbol, bool?buy, bool?sell, double volume) : base(strategyName, marketSeries, symbol, buy, sell, volume) { }
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) { }
private IList <IMarketChartData> GetChartData(CurrencyPair currencyPair, MarketPeriod period, DateTime startTime, DateTime endTime) { return(Utility.WebApiCustom.GetChartData(currencyPair, period, startTime, endTime)); }
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) { }