Skip to content
Robot de trading
Commencer le scripting

OctoBot Script

Pour les utilisateurs d’OctoBot Script.

La traduction française de cette page est en cours.

Le framework de trading par script basé sur OctoBot

OctoBot Script est dans une version alpha

OctoBot Script vous permet d’exploiter la puissance du framework OctoBot tout en gardant la simplicité d’un pinescript TradingView.

With OctoBot Script, automatisez vos stratégies de trading en utilisant vos scripts hautement optimisés

  • Que ce soit à partir de vos idées de stratégies scriptées, comme sur le pinescript de TradingView
  • Ou en utilisant une stratégie avancée basée sur l’IA

Installer OctoBot Script depuis pip

OctoBot Script nécessite Python 3.10

python3 -m pip install OctoBot wheel
python3 -m pip install octobot-script

Exemple de script: une strategie RSI

Dans cet exemple, OctoBot script permet de créer rapidement une stratégie de trading basée sur le RSI comprenant:

  • une prise de profit à 25% de gains
  • un stop loss à 15% de perte
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
            # below 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())

Rapport généré

report-p1

Rejoignez la communauté

Nous avons récemment créé un canal Telegram dédié au script OctoBot.

Telegram News