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; } } }