Example #1
0
 /// <summary>
 /// Lets the user pick a file to which save currently displayed candles
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnSaveCandles_Click(object sender, EventArgs e)
 {
     using (var sfd = new SaveFileDialog())
     {
         sfd.Filter           = "csv files (*.csv)|*.csv|All files (*.*)|*.*";
         sfd.FilterIndex      = 1;
         sfd.RestoreDirectory = true;
         sfd.InitialDirectory = Application.ExecutablePath;
         if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             CandlesProvider.SaveCandlesToCSV(sfd.FileName, _candles);
         }
     }
 }
Example #2
0
        /// <summary>
        /// Loads candles after clicking on Refresh button
        /// </summary>
        /// <param name="minDate"></param>
        /// <param name="isRealtime"></param>
        /// <param name="candlesDurationInMinutes"></param>
        /// <param name="maxDate"></param>
        private void LoadCandles(DateTime minDate, int candlesDurationInMinutes, DateTime?maxDate)
        {
            var currencyPair = dataSelector.SelectedPair;

            Task.Factory.StartNew(() => CandlesProvider.LoadCandles(currencyPair, minDate, candlesDurationInMinutes, maxDate))
            .ContinueWith(taskResult =>
            {
                if (taskResult.Result != null)
                {
                    _candles = taskResult.Result;
                    myChartControl.DrawChart(taskResult.Result, Constants.PriceSerieName);
                }
            }, CancellationToken.None, TaskContinuationOptions.None, TaskScheduler.FromCurrentSynchronizationContext());
        }
Example #3
0
        /// <summary>
        /// Called when slow timer ticks, to update displayed candles with latest data
        /// </summary>
        /// <param name="fetchLiveData"></param>
        /// <param name="candlesDurationInMin"></param>
        private void UpdateCandles(DateTime fromDate, int candlesDurationInMin, CurrencyPair pair)
        {
            lock (this)
            {
                // First load history
                if (_candles.Count > 0)
                {
                    UpdateStatus("Fetching new data");
                    CandlesProvider.UpdateCandlesWithLiveData(fromDate, candlesDurationInMin, _candles, pair);
                }


                try
                {
                    UpdateStatus("Ready...");
                }
                catch (Exception ex)
                {
                    UpdateStatus(string.Format("Error during Update: {0}", ex.Message));
                }
            }
        }
Example #4
0
 /// <summary>
 /// Loads chart data from a csv file
 /// </summary>
 /// <param name="fileName"></param>
 private void LoadChartFromCSVCandlesFile(string fileName)
 {
     _candles = CandlesProvider.ReadCandlesFromCSV(fileName, chartSelector.FromDate, chartSelector.ToDate);
     chartCtrl.DrawChart(_candles, Constants.PriceSerieName);
 }