| Overall Statistics |
|
Total Trades 2 Average Win 1.18% Average Loss 0% Compounding Annual Return 30.631% Drawdown 0.500% Expectancy 0 Net Profit 1.178% Sharpe Ratio 3.843 Probabilistic Sharpe Ratio 75.987% Loss Rate 0% Win Rate 100% Profit-Loss Ratio 0 Alpha 0.239 Beta 0.004 Annual Standard Deviation 0.062 Annual Variance 0.004 Information Ratio 4.339 Tracking Error 0.193 Treynor Ratio 64.894 Total Fees $8.60 |
namespace QuantConnect.Algorithm.CSharp
{
public class MultidimensionalDynamicCircuit : QCAlgorithm
{
public override void Initialize()
{
SetStartDate(2020, 10,15); //Set Start Date
SetCash(100000); //Set Strategy Cash
AddEquity("AAPL", Resolution.Daily);
AddData<Signal>("SIGNAL", Resolution.Daily);
}
/// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
/// Slice object keyed by symbol containing the stock data
public void OnData(Signal data)
{
if (data.Value == 1)
{
SetHoldings("AAPL", 1);
} else if (data.Value == 0)
{
Liquidate("AAPL");
}
}
}
}
public class Signal : BaseData
{
public decimal MaxC = 0;
public decimal MinC = 0;
public string errString = "";
public override SubscriptionDataSource GetSource(
SubscriptionDataConfig config,
DateTime date,
bool isLive)
{
var source = "https://raw.githubusercontent.com/shilewenuw/FileHost/master/data.csv";
return new SubscriptionDataSource(source,
SubscriptionTransportMedium.RemoteFile);
}
public override BaseData Reader(
SubscriptionDataConfig config,
string line,
DateTime date,
bool isLive)
{
if (string.IsNullOrWhiteSpace(line) ||
char.IsLetter(line[0]))
return null;
var data = line.Split(',');
return new Signal()
{
Time = DateTime.ParseExact(data[0], "MM/dd/yyyy", null),
Symbol = data[1],
Value = Convert.ToDecimal(data[2])
};
}
}