Exemplo n.º 1
0
 /// <summary>
 /// Event fired each time the we add/remove securities from the data feed
 /// </summary>
 /// <param name="algorithm">The algorithm instance that experienced the change in securities</param>
 /// <param name="changes">The security additions and removals from the algorithm</param>
 public void OnSecuritiesChanged(QCAlgorithmFramework algorithm, SecurityChanges changes)
 {
     foreach (var added in changes.AddedSecurities)
     {
         SymbolData symbolData;
         if (!_symbolDataBySymbol.TryGetValue(added.Symbol, out symbolData))
         {
             // create fast/slow EMAs
             var fast = algorithm.EMA(added.Symbol, _fastPeriod);
             var slow = algorithm.EMA(added.Symbol, _slowPeriod);
             _symbolDataBySymbol[added.Symbol] = new SymbolData
             {
                 Security = added,
                 Fast     = fast,
                 Slow     = slow
             };
         }
         else
         {
             // a security that was already initialized was re-added, reset the indicators
             symbolData.Fast.Reset();
             symbolData.Slow.Reset();
         }
     }
 }