Back

Updating Values

How would I update the value for self.macd?

Would I use self.Signal.Current.Value, self.Fast.Current.Value, self.MovingAverageConvergenceDivergence.Current.Value?

Would I have to set-up a MACD history as well and get the values from there?I've done it before using a single stock like so:#Decleared in Initilize self.macd_3 = self.MACD(self.syl, 12, 26, Resolution.Daily)
    #Macd_3 Bar Data
        self.macd_3.Updated += self.MacdUpdated
        self.macd3Win = RollingWindow[IndicatorDataPoint](12)

     def MacdUpdated(self, sender, updated):
        '''Adds updated values to rolling window'''
        self.macd3Win.Add(updated)
But since I want to use a universe and cant initilize in the AssetData because it does not take the QCAlgorithm class
 
Update Backtest








0

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.


Hi tom vang ,

Sorry about the wait.

In the algorithm you shared, the MACD is updated by SymbolData.update that is called in OnData.
Since it is manually updating the indicators, it doesn't need to create them using the helper method (e.g., self.MACD), but it would be possible by passing the algorithm as a SymbolData parameter:

self.universe[s.Symbol] = AssetData(self, s.Symbol, history)

class AssetData(object):
def __init__(self, algorithm, symbol, history):
self.macd = algorithm.MACD(symbol,3,6,9,MovingAverageType.Exponential)

If we want to save the history of the MACD attributes, we can use the following code:

# Indicators+Universe Demonstration
class AssetData(object):
def __init__(self, symbol, history):
self.std = StandardDeviation(30)
self.macd = MovingAverageConvergenceDivergence(3,6,9,MovingAverageType.Exponential)
self.macd.Updated += self.MacdUpdated
self.macd3Win = {
'MACD': RollingWindow[IndicatorDataPoint](12),
'Signal': RollingWindow[IndicatorDataPoint](12),
'Fast': RollingWindow[IndicatorDataPoint](12)
}

for bar in history.itertuples():
self.update(bar.Index[1], bar.close)

def MacdUpdated(self, sender, datapoint):
self.macd3Win['MACD'].Add(datapoint)
self.macd3Win['Signal'].Add(sender.Signal.Current)
self.macd3Win['Fast'].Add(sender.Fast.Current)

 

0

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.


Update Backtest





0

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.


Loading...

This discussion is closed