def initialize(context):
global preEMA10
preEMA10=0
global preEMA15
preEMA15=0
global preEMA20
preEMA20=0
global preEMA30
preEMA30=0
global preEMA50
preEMA50=0
global preEMA80
preEMA80=0
global preEMA100
preEMA100=0
global preEMA150
preEMA150=0
global preEMA200
preEMA200=0
global preEMA250
preEMA250=0
# Will be called on every trade event for the securities you specify.
def handle_data(context, data):
for stock in data:
exchange_time=get_datetime()
if exchange_time.hour == 4:
price = history(bar_count = 2, frequency = '1d', field='price').iloc[0]
prices_10 = history(bar_count=10, frequency='1d', field='price')
SMA_p10 = prices_10.mean()
q10 = 2 / (10 + 1)
if preEMA10 == 0:
preEMA10 = SMA_p10
else:
pass
EMA_p10 = (price * q10) + (preEMA10 * (1 - q10))
preEMA10 = EMA_p10
the problem I run into is that in the
if
loop, I get a warning that preEMA10 has not been declared yet, when I have clearly declared it and globally as well.