OctoBot-Script 0.1.1
OctoBot-Script Community
OctoBot Script is the Quant framework by OctoBot
OctoBot Script is in alpha version
Documentation available at octobot.cloud/en/guides/octobot-script
Install OctoBot Script from pip
OctoBot Script requires Python 3.13
python3 -m pip install OctoBot wheel appdirs==1.4.4
python3 -m pip install octobot-script
Example of a backtesting script
Script
import asyncio
import tulipy # Can be any TA library.
import octobot_script as obs
async def rsi_test():
async def strategy(ctx):
# Will be called at each candle.
if run_data["entries"] is None:
# Compute entries only once per backtest.
closes = await obs.Close(ctx, max_history=True)
times = await obs.Time(ctx, max_history=True, use_close_time=True)
rsi_v = tulipy.rsi(closes, period=ctx.tentacle.trading_config["period"])
delta = len(closes) - len(rsi_v)
# Populate entries with timestamps of candles where RSI is
# bellow the "rsi_value_buy_threshold" configuration.
run_data["entries"] = {
times[index + delta]
for index, rsi_val in enumerate(rsi_v)
if rsi_val < ctx.tentacle.trading_config["rsi_value_buy_threshold"]
}
await obs.plot_indicator(ctx, "RSI", times[delta:], rsi_v, run_data["entries"])
if obs.current_live_time(ctx) in run_data["entries"]:
# Uses pre-computed entries times to enter positions when relevant.
# Also, instantly set take profits and stop losses.
# Position exists could also be set separately.
await obs.market(ctx, "buy", amount="10%", stop_loss_offset="-15%", take_profit_offset="25%")
# Configuration that will be passed to each run.
# It will be accessible under "ctx.tentacle.trading_config".
config = {
"period": 10,
"rsi_value_buy_threshold": 28,
}
# Read and cache candle data to make subsequent backtesting runs faster.
data = await obs.get_data("BTC/USDT", "1d", start_timestamp=1505606400)
run_data = {
"entries": None,
}
# Run a backtest using the above data, strategy and configuration.
res = await obs.run(data, strategy, config)
print(res.describe())
# Generate and open report including indicators plots
await res.plot(show=True)
# Stop data to release local databases.
await data.stop()
# Call the execution of the script inside "asyncio.run" as
# OctoBot-Script runs using the python asyncio framework.
asyncio.run(rsi_test())
Generated report
Join the community
We recently created a telegram channel dedicated to OctoBot Script.
### Developers
To build report from sources:
npm install
npm run build
Metadata
Release files for octobot-script 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| octobot_script-0.1.1.tar.gz | 37.5 kB | Details |
Release files / octobot_script-0.1.1.tar.gz
| Download URL | octobot_script-0.1.1.tar.gz |
|---|---|
| Size | 37.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a434eb6ad7691ca5aee80759a97d2fcbad9c3c2db9b42a3663f6aaac9bead9ec
|
|
BLAKE2b-256 checksum How to use checksums |
c0da52701292a099b96788452ae4a7cc11112bddb4f55b42a83474fd76c2a5be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|