// Where pair like "TRXETH" and interval like "1m", "5m", "1h", ...
        public ZCandlestickMap GetCandlesticks(string pair, string interval)
        {
            var result = new ZCandlestickMap(CryptoExch.BINANCE, pair, interval);
            var res    = GetOHLC(pair, interval, 500);

            foreach (var dp in res)
            {
                result.Add(dp.time, dp);
            }
            return(result);
        }
Exemple #2
0
        // Where pair like "BCHEUR" and interval like "1m", "5m", "1h", ...
        public ZCandlestickMap GetCandlesticks(string pair, string interval)
        {
            var result   = new ZCandlestickMap(CryptoExch.KRAKEN, pair, interval);
            int minutes  = int.Parse(ChartIntervals[interval]);
            var res      = GetOHLC(pair, minutes);
            var ohlcList = res.Pairs[pair];

            foreach (var dp in ohlcList)
            {
                result.Add(dp.time, dp);
            }
            return(result);
        }
        private void btnChart_Click(object sender, EventArgs e)
        {
            status("Display Chart");
            var selected = m_dataFrameFilesPanel.SelectedPathname;

            if (selected != null)
            {
                var chart        = new CryptoForms.CryptoChartForm();
                var candlesticks = ZCandlestickMap.ReadFromFile(selected);
                chart.DisplayChart(candlesticks);
                chart.ShowInFront();
            }
        }
Exemple #4
0
        public void DisplayChart(ZCandlestickMap map)   //, string symbol, string interval)
        {
            m_map   = map;
            m_title = string.Format("{0} {1}", map.Symbol, m_intervalText[map.Interval]);

            chart1.BackColor = Color.Black;
            chart1.ForeColor = Color.White;
            chart1.ChartAreas[0].BackColor = Color.Black;

            // Chart Title
            this.Text     = "Crypto Charts: " + m_title;
            lblTitle.Text = m_title;

            /*chart1.Titles.Clear();
             * chart1.Titles.Add(m_title);
             * chart1.Titles[0].Font = new Font("Arial", 14, FontStyle.Bold);
             * chart1.Titles[0].ForeColor = Color.White;*/

            // Chart Series
            chart1.Series.Clear();
            var series = new Series("candlestick");

            series.ChartType         = SeriesChartType.Candlestick; // Set series chart type
            series["OpenCloseStyle"] = "Triangle";                  // Set the style of the open-close marks
            series["ShowOpenClose"]  = "Both";                      // Show both open and close marks
            series["PointWidth"]     = "1.0";                       // Set point width
            series["PriceUpColor"]   = "Green";                     // Set colors bars (up)
            series["PriceDownColor"] = "Red";                       // Set colors bars (down)

            double min = double.MaxValue, max = double.MinValue;

            // Add the datapoints to the series
            foreach (var kv in map)
            {
                DataPoint item = new DataPoint((double)kv.Key.ToUnixTimestamp(), kv.Value.yValues);
                max            = Math.Max(max, kv.Value.yValues[0]);
                min            = Math.Min(min, kv.Value.yValues[1]);
                item.AxisLabel = kv.Key.ToString("MM-dd HH:mm");
                series.Points.Add(item);
            }
            chart1.ChartAreas[0].AxisY.Maximum = (max * 1.05);
            chart1.ChartAreas[0].AxisY.Minimum = (min * 0.95);
            chart1.Series.Add(series);

            UpdateChartScale();
        }
Exemple #5
0
        // Where start/end are start and end times for the data
        // AND granularity is desired timeslice in seconds: {60, 300, 900, 3600, 21600, 86400}
        public ZCandlestickMap GetCandlesticks(string productId, string intervalSeconds, DateTime?start = null, DateTime?end = null)
        {
            var result      = new ZCandlestickMap(CryptoExch.GDAX, productId, intervalSeconds);
            var productPair = GetProductPair(productId);
            int seconds     = int.Parse(ChartIntervals[intervalSeconds]);
            var dtEnd       = (end == null ? DateTime.Now : end.Value);
            var dtStart     = (start == null ? dtEnd.Subtract(TimeSpan.FromSeconds(seconds * 100)) : start.Value);
            // returns list of list: [[ time, low, high, open, close, volume ], [ 1415398768, 0.32, 4.2, 0.35, 4.2, 12.3 ]]
            var sticks = AsyncHelpers.RunSync <IEnumerable <object[]> >(() => m_api.ProductsService.GetHistoricRatesAsync(productPair, dtStart, dtEnd, seconds));

            //var sticks = await m_api.ProductsService.GetHistoricRatesAsync(productPair, dtStart, dtEnd, int.Parse(ChartIntervals[intervalSeconds]));
            //string url = BaseUrl + "/products/{0}/candles";
            //var sticks = GET<List<List<float>>>(url, productId);
            foreach (var li in sticks)
            {
                var cs = new GdaxCandlestick(li);
                result.Add(cs.time, cs);
            }
            return(result);
        }