import qpace as qp
ohlcv = qp.Ohlcv.read_csv("btc.csv", "15m")
ctx = qp.Ctx(ohlcv, "BTC_USD")
rsi = qp.ta.rsi(ctx, src=ohlcv.close, length=14)
bt = qp.Backtest(ctx)
for bar_index in bt:
if rsi[bar_index] < 30:
bt.signal(qp.Signal.Long())
elif rsi[bar_index] > 70:
bt.signal(qp.Signal.Short())
bt.display()
//@version=5
library("PineLibrary")
export gaussian_kernel(series float src, int lookback) =>
var float sum = 0.0
var float weight_sum = 0.0
for i = 0 to lookback - 1
weight = exp(-i * i / (2 * lookback * lookback))
sum += src[i] * weight
weight_sum += weight
sum / weight_sum
signals = qp.signals(sym="BTC_USD", timeframe="1D")
pprint(signals)
{
"micro_trend": { "up": 0.8, "down": 0.1, "neutral": 0.1 },
"entry_3:1": { "long": 0.75, "short": 0.25 },
"sentiment": { "positive": 0.7, "negative": 0.2, "neutral": 0.1 },
"double_top": 0.10,
"head_and_shoulders": 0.05,
}
import my_library as pine
exchange = qp.Exchange("binance")
ohlcv = qp.ohlcv("BTC_USD", "15m", live=True)
def on_bar(bar):
signal = pine.my_strategy(ctx)
exchange.signal(signal)
discord.signal(signal)
telegram.signal(signal)
ohlcv.on_bar(on_bar)