Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
using System; using QuantConnect.Data; using QuantConnect.Indicators; using QuantConnect.Orders; using QuantConnect.Securities; namespace QuantConnect.Algorithm.CSharp { public class BacktestingData : QCAlgorithm { string symbol = "HAVELLS"; Security security; private MovingAverageConvergenceDivergence _macd; public override void Initialize() { SetStartDate(2019, 7, 19); SetEndDate(2019, 7, 26); //SetTimeZone("Asia/Kolkata"); security = AddData<CustomData>(symbol, Resolution.Minute); // security.Subscriptions.SetDataNormalizationMode(DataNormalizationMode.Raw); _macd = MACD(security.Symbol, 12, 26, 9, MovingAverageType.Exponential, Resolution.Minute); } public override void OnData(Slice slice) { // if (!_macd.IsReady) { return; } Log($"{Time} | {symbol}: O:{slice[symbol].Open} H:{slice[symbol].High} L:{slice[symbol].Low} C: {slice[symbol].Close}"); } public override void OnOrderEvent(OrderEvent orderEvent) { base.OnOrderEvent(orderEvent); } } }
using QuantConnect.Data; using System; using System.Globalization; namespace QuantConnect.Algorithm.CSharp { public class CustomData : BaseData { /// <summary> /// Opening Price /// </summary> public decimal Open; /// <summary> /// High Price /// </summary> public decimal High; /// <summary> /// Low Price /// </summary> public decimal Low; /// <summary> /// Closing Price /// </summary> public decimal Close; /// <summary> /// Volume /// </summary> public decimal Volume; /// <summary> /// Return the URL string source of the file. This will be converted to a stream /// </summary> public override SubscriptionDataSource GetSource(SubscriptionDataConfig config, DateTime date, bool isLiveMode) { return new SubscriptionDataSource($"https://www.dropbox.com/s/j98rg1hp903l3a8/SampleData.csv?dl=1", SubscriptionTransportMedium.RemoteFile); } /// <summary> /// Reader converts each line of the data source into BaseData objects. Each data type creates its own factory method, and returns a new instance of the object /// each time it is called. /// </summary> public override BaseData Reader(SubscriptionDataConfig config, string line, DateTime date, bool isLiveMode) { //New Nifty object var index = new CustomData(); try { //Example File Format: //Date, Time Open High Low Close Volume Turnover //19-Jul-2019 09:15:00 7792.9 7799.9 7722.65 7748.7 116534670 6107.78 var data = line.Split(','); var strDate = data[0] + " " + data[1]; index.Time = DateTime.Parse(strDate, CultureInfo.InvariantCulture); index.Open = Convert.ToDecimal(data[2], CultureInfo.InvariantCulture); index.High = Convert.ToDecimal(data[3], CultureInfo.InvariantCulture); index.Low = Convert.ToDecimal(data[4], CultureInfo.InvariantCulture); index.Close = Convert.ToDecimal(data[5], CultureInfo.InvariantCulture); index.Symbol = config.Symbol.Value; index.Value = index.Close; } catch (Exception e) { Console.WriteLine("ERROR: " + e.ToString()); } return index; } } }