| 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.707 Tracking Error 0.272 Treynor Ratio 0 Total Fees $0.00 |
namespace QuantConnect
{
public class BasicTemplateAlgorithm : QCAlgorithm
{
private Signal tradeSignal;
private const string Symbol = "USD";
private SimpleMovingAverage sma;
private SimpleMovingAverage smanow;
public override void Initialize()
{
// Start and End Date range for the backtest:
SetStartDate(2020, 05, 15); //Set Start Date
SetEndDate(2020, 06, 19); //Set End Date
// cash allocation
SetCash(100000);
// Add as many securities as you like. All the data will be passed into the event handler::
AddSecurity(SecurityType.Equity, Symbol, Resolution.Minute, false, 2, false);
AddData<Signal>("SignalStrength", Resolution.Minute);
sma = SMA(Symbol, 5, Resolution.Daily);
smanow = SMA(Symbol, 1, Resolution.Daily);
}
public void onData(Signal data){
tradeSignal = data;
}
public void OnData(TradeBars data){
if(!sma.IsReady) return;
var holdings = Portfolio[Symbol].Quantity;
if (tradeSignal != null){
if ((tradeSignal.Sig1m > 0 && smanow > sma) || (tradeSignal.Sig1m < 0 && smanow < sma)){
if (tradeSignal.Sig3d > 0 && holdings <=0){
SetHoldings(Symbol, 1.0);
}
if (tradeSignal.Sig3d < 0 && holdings >=0){
SetHoldings(Symbol, -1.0);
}
}
}
}
}
}namespace QuantConnect {
public class Signal : BaseData
{
public decimal Sig3d = 0;
public decimal Sig1m = 0;
public override string GetSource(SubscriptionDataConfig config, DateTime date, DataFeedEndpoint datafeed){
return "https://www.dropbox.com/s/gzde6jsllzotxgv/QEPsignals%281%29.csv?dl=0";
}
public override BaseData Reader(SubscriptionDataConfig config, string line, DateTime date,DataFeedEndpoint datafeed){
Signal signal = new Signal();
try{
string[] data = line.Split(',');
signal.Time = DateTime.Parse(data[0]);
signal.Sig3d = Convert.ToDecimal(data[1]);
signal.Sig1m = Convert.ToDecimal(data[2]);
}
catch (Exception){
return null;
}
return signal;
}
}
}