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
Probabilistic 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
-4.074
Tracking Error
0.243
Treynor Ratio
0
Total Fees
$0.00
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using QuantConnect.Data;

namespace QuantConnect.Algorithm.CSharp
{
    public class CustomDataNiftyAlgorithm : QCAlgorithm
    {
        public override void Initialize()
        {
            SetStartDate(2020, 5, 1);
            SetCash(100000);
            
            AddData<Signal>("SIGNAL", Resolution.Daily);
        }

        public void OnData(Slice data)
        {

            if (!data.ContainsKey("SIGNAL"))
            {
                return;
            }

            Log(Convert.ToDouble(data["SIGNAL"].Sig1m));
            Log(Convert.ToDouble(data["SIGNAL"].Sig3d));
        }
    }

    public class Signal : BaseData
    {
        public decimal Sig3d;
        public decimal Sig1m;

        public Signal()
        {
            Symbol = "SIGNAL";
        }

        public override SubscriptionDataSource GetSource(SubscriptionDataConfig config, DateTime date, bool isLiveMode)
        {
            return new SubscriptionDataSource("https://www.dropbox.com/s/gzde6jsllzotxgv/QEPsignals%281%29.csv?dl=1", SubscriptionTransportMedium.RemoteFile);
        }

        public override BaseData Reader(SubscriptionDataConfig config, string line, DateTime date, bool isLiveMode)
        {
            //New Signal object
            var index = new Signal();
            
            string[] data = line.Split(',')[0].Split(';');
            
            if (char.IsLetter(data[0][0]))
                return index;
            
            try
            {
                index.Symbol = "SIGNAL";
                index.Sig3d = Convert.ToDecimal(data[1]);
                index.Sig1m = Convert.ToDecimal(data[2]);
                index.Time = DateTime.Parse(Convert.ToString(data[0])); 
            }
            catch
            {
            }
            return index;
        }
    }
}