WaveTrend Oscillator

Hi Quantopian Community,
I am a student and this is one of my first experiments with signals on Quantopian. I write because I was trying to implement the WaveTrend Oscillator strategy: https://www.tradingview.com/script/2KE8wTuF-Indicator-WaveTrend-Oscillator-WT/

This is my code and I'm kind of stuck at the moment because it keeps giving me error and I'm not able to run a backtest.

The main idea is to sell AAPL when the indicator is high and buy when it's low and closing all the positions 30 minutes before the market close, so I could go to bed with happy dreams.

import talib
import numpy as np
import scipy
import math

def initialize(context):
context.stock = sid(24)
schedule_function(open_positions, date_rules.week_start(), time_rules.market_open())
schedule_function(close_positions, date_rules.week_end(), time_rules.market_close(minutes=30))
def handle_data(context, data):
n1 = 10  #"Channel Length"
n2 = 21  #"Average Length"
period=12
if get_open_orders(): return

close = data.history(context.stock, 'close', period + 1, '1d')
low = data.history(context.stock, 'low', period + 1, '1d')
high = data.history(context.stock, 'high', period + 1, '1d')
ap = (high+low+close)/3
esa = talib.EMA(ap, n1)
d = talib.EMA(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = talib.EMA(ci, n2)
wt1 = tci
wt2 = talib.SMA(wt1,4)
def open_positions(context, data):
order_target_percent(context.stock, 2)
order_target_percent(context.stock, -1)

def close_positions(context, data):
order_target_percent(context.stock, 0)


Can anyone help me?
Mattia

2 responses

Now it is working properly =)

46
Backtest from to with initial capital
Total Returns
--
Alpha
--
Beta
--
Sharpe
--
Sortino
--
Max Drawdown
--
Benchmark Returns
--
Volatility
--
 Returns 1 Month 3 Month 6 Month 12 Month
 Alpha 1 Month 3 Month 6 Month 12 Month
 Beta 1 Month 3 Month 6 Month 12 Month
 Sharpe 1 Month 3 Month 6 Month 12 Month
 Sortino 1 Month 3 Month 6 Month 12 Month
 Volatility 1 Month 3 Month 6 Month 12 Month
 Max Drawdown 1 Month 3 Month 6 Month 12 Month