| 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 -0.749 Tracking Error 0.28 Treynor Ratio 0 Total Fees $0.00 |
namespace QuantConnect.Algorithm.CSharp
{
public class UncoupledNadionCoil : QCAlgorithm
{
public override void Initialize()
{
SetStartDate(2019, 1, 20); //Set Start Date
SetCash(100000); //Set Strategy Cash
// AddEquity("SPY", Resolution.Minute);
AddData<DividendData>("Div_Data", Resolution.Daily);
}
public void OnData(DividendData data)
{
if (data.Symbol == "IBM" || data.Symbol == "ABBV") {
Plot("Dividend", data.Symbol, data.Dividend);
}
}
}
public class DividendData : BaseData
{
public DateTime ExDate;
public DateTime RecDate;
public DateTime PayDate;
public decimal Dividend = 0;
public string Frequency = "";
public int OnDate = 1;
public override SubscriptionDataSource GetSource(
SubscriptionDataConfig config,
DateTime date,
bool isLive)
{
var source = "https://raw.githubusercontent.com/shilewenuw/FileHost/master/DividendDataFixed.csv";
return new SubscriptionDataSource(source,
SubscriptionTransportMedium.RemoteFile);
}
public override BaseData Reader(
SubscriptionDataConfig config,
string line,
DateTime date,
bool isLive)
{
if (string.IsNullOrWhiteSpace(line))
return null;
var data = line.Split(',');
//var data = line.Split('\t');
var i = 0.0;
if (!Double.TryParse(data[1], out i))
return null;
return new DividendData()
{
// Make sure we only get this data AFTER trading day - don't want forward bias.
Symbol = data[0].Trim(),
Time = ParseDate(data[2]), // we choose the ex-date to be the time
Dividend = Convert.ToDecimal(data[1]),
RecDate = ParseDate(data[3]),
PayDate = ParseDate(data[4]),
Frequency = data[5],
OnDate = 1,
};
}
public static DateTime ParseDate(string date)
{
var data = date.Split('/');
return new DateTime(Convert.ToInt16(data[2]),
Convert.ToInt16(data[0]),
Convert.ToInt16(data[1]));
}
}
}