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 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
using System.Drawing; using System.Collections.Generic; namespace QuantConnect.Algorithm.CSharp { public class MA_Crypto_MultiSymbol : QCAlgorithm { List<string> symbolList = new List<string>(){"ETHUSD", "LTCUSD", "BTCUSD"}; /// List of a new class with data for each symbol: e.g. indicators Dictionary<string, SymbolData> DataDict = new Dictionary<string, SymbolData>(); /// <summary> /// Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized. /// </summary> public override void Initialize() { SetStartDate(2017, 10, 01); //Set Start delegate SetEndDate(2018, 01, 31); //Set End Date SetCash(10000); //Set Strategy Cash SetBrokerageModel(BrokerageName.GDAX, AccountType.Cash); /// Add symbols and register their indicators foreach (var symbol in symbolList) { AddCrypto(symbol, Resolution.Hour); var _slowEMA = EMA(symbol, 200); /// Add the data to the SymbolData List DataDict.Add(symbol, new SymbolData { slowEMA = _slowEMA, }); } /// Set warm up for indicators SetWarmup(200); } /// Event handler public override void OnData(Slice data) { /// check if algorithm is warming up if (IsWarmingUp) return; /// check if all indicators are ready foreach (var symbol in symbolList) { if (!DataDict[symbol].slowEMA.IsReady) { Log("Indicator not ready"); return; } } } /// Class for storing data for each symbol in the SymbolDataDict class SymbolData { public ExponentialMovingAverage slowEMA { get; set; } } } }