🔒

Chapter 8 is locked

This module opens only after a 100% score on the Boganster Final Test — thirty questions covering Chapters 1–7. Automation multiplies whatever you know, including the gaps. Close the gaps first.

Take the Final Test →

← Back to the course

👀

You've had your look

Your free 60-second preview of Chapter 8 is used — one look, that's the deal. You've seen enough to know it's worth it. Buy in to unlock it for good, no more timers.

Buy Chapter 8 — A$2,997 one-time →

← Back to the course

Poida Bogan Membership · Premium Module · Part 3 · Indicators, TradingView & Your Trading Bot

Chapter 8, Part 3 — Indicators, TradingView & Your Trading Bot

Part 3 of 4: thirteen dedicated indicator lessons, TradingView from zero to Pine Script, and building your own Python trading bot on an exchange testnet.

THE DISCLAIMER — professional edition: Nothing in this course is financial advice. Not one word. Crypto can go to zero; leverage can go below zero faster than your mate Davo's Commodore at the lights. A bot executes YOUR strategy — automating a bad plan just loses money without the manual labour. Take any of this as financial advice and you will end up with all your belongings in a shopping trolley, living from bus stop to bus stop — except the trolley will have been ordered automatically, with express shipping. Never trade money you can't afford to lose. Some links are affiliate/referral links.
Module 8.5

8.5 Trading Indicators — Thirteen Dedicated Lessons

Every indicator below is a different gauge on the same engine. None of them predict — they describe, faster or more clearly than raw candles. The rule of the module: two or three complementary gauges, maximum. A chart with nine indicators isn't analysis, it's a bird strike on a windscreen.

RSI — Relative Strength Index

Measures Speed and size of recent price changes on a 0–100 scale. How hard has price run, lately?
Best settings Default 14. Shorter (7–9) for scalps = faster and noisier; longer (21) for swings = smoother.
Best timeframes All, but signals on 4H/daily carry far more weight than 5-min flickers.
Advantages Universal, simple, and its divergences (price HH, RSI LH) are genuinely among the best reversal tells in TA.
Weaknesses Camps in "overbought" for entire bull runs — reading 70+ as an auto-sell will have you shorting a rocket ship at ignition.
Combine with Support/resistance (divergence AT a level), volume for confirmation.
Example trade BTC prints a higher high at resistance while 4H RSI prints a lower high — bearish divergence at a level. Short on the CHoCH, stop above the high, target the range mid. Classic.

MACD — Moving Average Convergence Divergence

Measures Momentum via the gap between 12- and 26-EMA, a 9-EMA signal line, and a histogram of the difference.
Best settings Default 12/26/9. Leave it — MACD tinkering is a rite of passage that ends where it started.
Best timeframes 4H and daily. On low timeframes it whipsaws like a caravan in a crosswind.
Advantages Trend AND momentum in one panel; the shrinking-histogram early warning regularly fires before price confirms.
Weaknesses Lagging (built entirely from MAs); dreadful in ranges where crossovers fire constantly and mean nothing.
Combine with A trend filter (200 MA) so you only take crosses in the trend direction; RSI for double-divergence confluence.
Example trade Daily MACD crosses up below the zero line while price reclaims the 200 SMA — momentum turning inside a fresh regime change. Long, stop under the swing low, trail the trend.

ADX — Average Directional Index

Measures Trend STRENGTH (0–100), direction-blind. It answers one question: is there even a trend here, or is this chop?
Best settings Default 14. Readings: below 20 = no trend; 25+ = real trend; 40+ = strong; 50+ = hold onto ya hat.
Best timeframes 4H/daily for regime detection.
Advantages The perfect strategy SWITCH: run trend systems when ADX > 25, range/mean-reversion systems when ADX < 20. Solves the #1 strategy killer — using the right tool in the wrong regime.
Weaknesses Very laggy; tells you a trend exists after it's underway, and says nothing about direction on its own.
Combine with Everything. ADX isn't an entry signal — it's the sign on the door saying which playbook is open today.
Example trade ADX at 16 for a fortnight: EMA-crossover bot OFF, range strategy ON at the box edges. ADX crosses 25 with price breaking out: flip playbooks. That switch alone beats most indicators.

Ichimoku Cloud — the whole dashboard in one (busy) glance

Measures Trend, momentum, and support/resistance simultaneously via five lines, the famous "cloud" (Kumo) among them. Looks like someone sneezed spaghetti on the chart; reads beautifully once learned.
Best settings Default 9/26/52. Purists keep defaults; crypto's 24/7 market makes doubled settings (20/60/120) popular for dailies.
Best timeframes Daily and weekly. The cloud on low timeframes is fog, not weather.
Advantages One glance gives full context: above a green cloud = uptrend with support below; inside the cloud = no-man's land, do nothing (a genuinely valuable signal!).
Weaknesses Steep learning curve; hopeless in ranges; five lines tempt beginners into paralysis-by-spaghetti.
Combine with Price structure. Cloud says regime; structure times the entry.
Example trade Daily price breaks above the cloud, future cloud twists green, price retests the cloud top and holds. Long the retest, stop inside the cloud, ride until price closes back below the Tenkan-crossed baseline.

Supertrend — the follow-the-line special

Measures An ATR-based trailing line that flips above/below price with trend changes. Green line below price = up; red line above = down. Deliberately idiot-proof.
Best settings Default 10 period / 3 multiplier. Higher multiplier = fewer, later flips; lower = more, noisier flips.
Best timeframes 1H–daily in trending markets.
Advantages Brilliant as a ready-made TRAILING STOP; unambiguous; trivially easy to code into a bot (8.7).
Weaknesses Gets diced in ranges — flip, flip, flip, each one a small loss with a service fee of frustration.
Combine with ADX as the on/off switch (only obey Supertrend flips when ADX > 25).
Example trade ADX 29, 4H Supertrend flips green under BTC. Long the flip, trail the Supertrend line itself as the stop, exit on the red flip 11% later. The whole trade management was "follow the line".

EMA Ribbon — the trend, in high-vis

Measures Six-plus EMAs (e.g. 8→55) plotted together. Their spread and order display trend health like landing lights.
Best settings 8/13/21/34/55 (Fibonacci-flavoured) is the crowd standard.
Best timeframes 4H/daily.
Advantages Instant visual read: fanned-out ribbon = strong trend; braided ribbon = chop, hands in pockets. Ribbon pullback entries (price dips into the ribbon and bounces) are a lovely swing pattern.
Weaknesses Pure lag, like all MAs; the pretty fan appears well after the move started.
Combine with Volume on the ribbon-bounce; RSI to avoid buying exhausted trends.
Example trade ETH daily ribbon fully fanned bullish; price dips into the ribbon's top half and prints a hammer. Long, stop below the ribbon, target the prior high. Repeat every few weeks all trend long.

Stochastic RSI — the twitchy one

Measures A stochastic calculation applied to RSI itself — an oscillator of an oscillator. Hyper-sensitive; cycles 0–100 constantly.
Best settings Default 14/14/3/3. Signals: K/D crosses below 20 (bullish) or above 80 (bearish).
Best timeframes Shines for ENTRY TIMING on 15m–4H once bias is set elsewhere.
Advantages Gives early, frequent signals — excellent at pinpointing the moment within a zone you already planned to trade.
Weaknesses The most false-signal-prone tool in this module. Trading raw StochRSI crosses without a filter is death by a thousand dings.
Combine with MANDATORY higher-timeframe bias. Daily uptrend + 1H StochRSI crossing up from oversold = timing tool. StochRSI alone = random number generator with a fan club.
Example trade Daily trend up, price at the mapped 4H demand zone, 1H StochRSI curls up from 8 with a bullish cross. That cross is the trigger — long, stop under the zone.

OBV — On-Balance Volume

Measures A running total: volume added on up days, subtracted on down days. Tracks whether money is genuinely flowing in or out.
Best settings None — that's the charm. It's just a line that goes up or down.
Best timeframes Daily/weekly for accumulation detection.
Advantages Divergences are the payload: price flat but OBV climbing = someone's quietly filling a trolley (accumulation). OBV breaking out BEFORE price is a classic early tell.
Weaknesses Crude — one monster-volume day can distort the line for weeks; useless for timing.
Combine with Range analysis (OBV rising inside a boring range is the accumulation signature), breakout strategy for the follow-through.
Example trade BTC ranges six weeks; OBV grinds steadily to new highs the whole time. Bias set to bullish breakout — when the range top breaks on volume, you take it with confidence instead of suspicion.

Chaikin Money Flow — where in the candle did the money land?

Measures Volume weighted by WHERE price closes within each candle's range, summed over N periods, oscillating around zero. Closes near highs on volume = accumulation pressure; near lows = distribution.
Best settings Default 20 or 21.
Best timeframes Daily.
Advantages Subtler than OBV — catches "weak-looking" candles that actually closed strong. Sustained CMF above zero during a pullback suggests the dip is being bought.
Weaknesses Oscillates noisily around zero in quiet markets; another confirmation tool wearing a signal tool's outfit.
Combine with Pullback strategy (8.4 #5): CMF holding positive through a retracement is the green light that sellers lack conviction.
Example trade SOL pulls back 15% but daily CMF never dips below zero — dip's being absorbed. Long at the Fib zone with the usual confirmation candle, stop below the zone.

Volume Profile — the X-ray

Measures Volume by PRICE LEVEL (horizontal histogram) instead of by time. Shows exactly which prices the market did business at.
Best settings Key features: POC (point of control — the highest-volume price), and HVN/LVN (high/low volume nodes).
Best timeframes Any; session profiles for day trading, visible-range profiles for swings.
Advantages The most honest support/resistance tool there is: HVNs are magnets and battlegrounds, LVNs are trapdoors price slips through fast. The POC of a big range is THE level in that range.
Weaknesses Descriptive, not directive; beginners drown in nodes. And exchange-specific volume varies — use a major venue's data.
Combine with Range trading (POC = mid-range target), breakout trading (LVN above the range = fast travel zone once broken).
Example trade BTC breaks range resistance; above sits a fat LVN before the next HVN 5% up. Long the retest, target set at the front edge of the HVN — where the profile says traffic resumes.

Pivot Points — the old-school level factory

Measures Formula-derived levels (P, R1–R3, S1–S3) from the prior period's high/low/close. Floor-trader tech from before the internet, still working because everyone still watches it.
Best settings Classic daily pivots for intraday; weekly/monthly pivots for swing context.
Best timeframes Intraday against daily pivots is the classic use.
Advantages Objective — no drawing skill, no bias, same levels on everyone's screen (which is precisely why they self-fulfil). Instant map on any new chart.
Weaknesses Mechanical levels ignore structure; in strong trends price slices through S/R levels like a hot knife through a servo pie.
Combine with VWAP strategy (pivot + VWAP confluence intraday is a quality zone); candlestick confirmation at the level.
Example trade BTC opens above the daily pivot, pulls back to it mid-morning right at VWAP, 15-min hammer. Long, stop under S1's direction, target R1. Textbook confluence day trade.

Keltner Channels — Bollinger's calmer cousin

Measures An EMA with bands set at a multiple of ATR (volatility) rather than standard deviation. Smoother and steadier than Bollinger Bands.
Best settings 20 EMA, 2× ATR bands.
Best timeframes 1H–daily.
Advantages Cleaner trend channels than BB; a close OUTSIDE the Keltner is a stronger statement than the same close outside Bollinger. Star turn: the "squeeze" setup — Bollinger Bands squeezing INSIDE the Keltner = compression coiled to spring.
Weaknesses Fewer signals; mid-band entries in chop are as mediocre here as anywhere.
Combine with Bollinger Bands for the squeeze; ADX to qualify the release direction's strength.
Example trade BB tucks inside Keltner for a week (deep squeeze). Price releases upward on volume, closes above the upper Keltner. Long the first pullback to the mid-band, trail below it.

Donchian Channels — the turtle shell

Measures Simply the highest high and lowest low of the last N periods. The channel IS the breakout level — no maths degree required.
Best settings The legendary Turtle settings: 20-period breakout entry, 10-period opposite-channel exit. 55-period for longer systems.
Best timeframes Daily. This is a patient tool for patient trends.
Advantages The most honest trend-following signal ever devised — new N-day high means the trend literally just proved itself. Fully mechanical, ideal first bot logic (8.7), with fifty years of receipts behind the concept.
Weaknesses Buys tops and sells bottoms by design in ranges; low win rate that pays via rare huge winners — psychologically brutal without automation.
Combine with ADX filter to skip range whipsaws; ATR position sizing (as the Turtles themselves did).
Example trade BTC prints a fresh 20-day high. Long at the break, exit when price touches the 10-day low channel — four months later, 48% higher. Two decisions, months apart, both made by a ruler.
Building your stack A complete dashboard is: one regime gauge (ADX), one trend/level tool (MA ribbon, VWAP or Volume Profile), one momentum/timing tool (RSI or StochRSI). Three panels, each answering a different question. Anything more is decoration.
Poida's Pearler "Thirteen indicators is like thirteen mates givin' ya directions at once. Two blokes who know the area — beautiful, you're there in ten minutes. Thirteen? You're doin' laps of the roundabout 'til the fuel light comes on."
Module 8.6

8.6 TradingView Masterclass

TradingView is the trader's workshop — charts, alerts, community scripts, backtesting and a full programming language, all in the browser. This module takes you from "just made an account" to "has a workspace that would make a fund manager nod slowly".

Creating an account & picking a plan

Sign up at tradingview.com. The free tier is genuinely enough to learn: full charting, 2 indicators per chart, limited alerts. Upgrade when — and only when — you hit a real wall (usually the indicator limit or wanting more alerts). Rule of the School: never pay to solve a problem you don't have yet.

Building layouts

  1. One layout per job. A "Bias" layout (weekly + daily side by side), an "Execution" layout (4H + 1H + 15m), and a "Bots" layout for whatever your automation watches. Named, saved, separate.
  2. Multi-chart sync: link charts by symbol so all panes follow the same coin, but keep timeframes independent. Instant multi-timeframe analysis (8.4 #12) on one screen.
  3. Keep charts CLEAN. Price, volume, two or three indicators from your 8.5 stack, your marked levels. If your chart looks like a plate of party pies exploded, delete half of it.

Watchlists

Build three: Majors (BTC, ETH, the handful you actually trade), Radar (coins forming setups that aren't ready yet), and Zoo (everything else you're curious about — visited monthly, traded never... until it graduates to Radar with a real setup). Flag coins with coloured markers by setup type. Assignment 2 makes you build this properly.

Setting alerts — trade the plan, not the screen

Alerts are the single most underrated feature in trading. Instead of staring at charts (and inventing trades out of boredom — screens are pokies for traders), you mark your levels and let the phone buzz when price actually arrives.

  • Right-click any price, trendline, or indicator → "Add alert". Alerts can trigger on crossings, closes, channel exits — and can fire webhooks, which is the doorway to automation in 8.7.
  • Set alerts at your ZONES (where you'd consider acting), not at your entries. The alert wakes you up; the checklist (8.1) decides.
  • Name alerts with instructions to your future self: "BTC at daily golden pocket — check 15m CHoCH before entry, min 1:2". Future-you at 3am is not smart. Leave him notes.

Templates

Save your indicator stack as a template ("Boganster Standard": your 8.5 three-gauge dashboard) and apply it to any chart in one click. Consistency between charts means your eye learns ONE visual language — pattern recognition compounds when the patterns always dress the same.

Pine Script basics

Pine Script is TradingView's built-in language. You don't need to be a programmer — v6 Pine reads close to English, and AI (8.8) will write most of it for you anyway. What matters is being able to READ it. A complete working indicator:

//@version=6
indicator("Boganster EMA Cross", overlay=true)

fast = ta.ema(close, 20)
slow = ta.ema(close, 50)

plot(fast, color=color.orange, title="Fast EMA")
plot(slow, color=color.blue,  title="Slow EMA")

bullCross = ta.crossover(fast, slow)
plotshape(bullCross, style=shape.triangleup,
     location=location.belowbar, color=color.green, size=size.small)

alertcondition(bullCross, "Bull Cross", "20 EMA crossed above 50 EMA — check the plan!")

That's a real, working indicator with a plotted signal and an alert hook. Change the numbers, change the coin, you've customised your first script. Every strategy in 8.4 with mechanical rules can be expressed this way.

Adding any script to your chart, step by step

This exact sequence works for the EMA Cross above, the SMC Liquidity Sweep Pro gift in 8.3, and any Pine script you ever copy from anywhere. Every step here has actually been run, including the one everybody trips on:

  1. Open your chart at tradingview.com, then click Pine Editor in the bottom toolbar (same row as Strategy Tester). A code panel opens.
  2. Create a blank script. Click the script name dropdown at the top of the panel → Create newBlank indicator script. Don't paste into a script you already own — this makes a fresh one.
  3. Clear the default template before pasting. TradingView pre-fills every new script with two starter lines (//@version=6 and plot(close)). Click into the code area, press Ctrl+A (Cmd+A on Mac) to select everything, and delete it. Skip this step and you'll hit "Scripts must contain one declaration statement" — a real error, not a hypothetical, because pasting your code underneath the leftover template gives Pine two competing declarations.
  4. Paste the script — Ctrl+V — into the now-empty editor.
  5. Let it compile. Watch the bottom-left status: it says "Compiling…" for a second, then either goes quiet (good) or shows a red error with a line number (fix and repeat). No red text means it's clean.
  6. Click the ▷ play button next to the script name (or "Add to chart") to see it actually plot on the price chart.
  7. Wire up alerts, if the script has any. Click Alert in the top toolbar → Condition → pick the script by name → choose the specific condition it offers (e.g. "Bull Cross", or "SMC BUY" / "SMC SELL" for the 8.3 gift) → set how you want to be notified.
  8. Save it — Ctrl+S — and give it a name you'll recognise later.
The one everybody hits Step 3 is not optional caution — it's the exact error this course's own testing hit while preparing this chapter. A fresh Pine script always starts with boilerplate already in it. Select all and delete before you paste, every time.

Importing community indicators

The "Indicators" button → Community Scripts: a hundred thousand free indicators, including every SMC toy from 8.3 (order blocks, FVGs, liquidity levels — search and ye shall find). Two rules: check the open-source ones so you (or your AI) can read what they actually do, and remember the module rule — importing forty indicators is hoarding, not analysis.

Backtesting strategies

Pine strategy() scripts simulate your rules over history and produce a full report — net profit, win rate, max drawdown, profit factor. This is where strategies from 8.4 face the judge before real money does.

Backtest honesty rules Include realistic fees and slippage (a strategy that dies when you add 0.1% fees was never alive). Test across different market regimes — a strategy backtested only on a bull run is a surfer who's never seen a flat day. And beware overfitting: if you tuned seventeen parameters until history looked perfect, you've built a museum exhibit, not a strategy.

Replay mode — the flight simulator

Bar Replay rewinds the chart to any past date and plays it forward candle by candle, hiding the future. This is THE practice tool: pick a random month, trade your strategy through it with fake decisions and a real journal, and get a year of experience in a weekend. Twenty replay sessions before twenty paper trades before one real dollar — that's the Boganster pipeline.

Poida's Pearler "Replay mode is like watchin' the '05 Grand Final knowin' the score, except TradingView hides the score. Turns out when ya can't see the future, you're suddenly a lot less of a genius. Better to learn that on replay than on rent money."
Module 8.7

8.7 Building Your Own Trading Bot

The summit of the course: turning your written, tested plan into software that executes it around the clock without emotions, bathroom breaks, or a sudden urge to "just check Twitter". A bot is your trading plan with the human removed — which is only an upgrade if the plan was good.

Introduction to APIs

An API (Application Programming Interface) is a service's tradie entrance — a way for programs to do everything you'd do by clicking, but by sending structured requests. Exchanges expose APIs for prices, balances, and orders. Your bot is just a loop: fetch data → apply YOUR rules → maybe place an order → log it → sleep → repeat. That's every trading bot ever built, including the fancy ones.

Exchange API keys — the safety rules (non-negotiable)

Carved in stone 1. Withdrawals: DISABLED on every key. Always. No exceptions. A trade-only key can lose money badly; a withdrawal-enabled key can lose everything in ninety seconds. No legitimate bot needs withdrawal rights — any tool that asks is broken or a thief.
2. IP-whitelist every key to the machine that uses it.
3. One key per bot, labelled, so one leak = one revocation, not a rebuild.
4. Keys live in environment variables or a .env file — NEVER in code, never in a screenshot, never in a Discord message to a "helpful dev". Hardcoding an API key in a script you'll paste somewhere is how bots end up trading for someone else.

Python basics — the 10% you need

Python is the trading world's default language because it reads like instructions to an apprentice. You need: variables, if/else, loops, functions, and installing packages with pip. That's a weekend of learning, and AI (8.8) fills every gap. The essential toolkit:

  • ccxt — one library that speaks to 100+ exchanges with the same commands. The Swiss Army knife.
  • pandas — spreadsheets in code; holds and crunches your candle data.
  • pandas-ta — every indicator from 8.5 as one-liners.

REST APIs vs WebSockets

RESTWebSocket
How it worksYou ask, it answers. Like ringing the TAB for scores.Open line, data streams to you live. Like having the race caller in the room.
Use forPlacing orders, checking balances, fetching candlesLive prices, live order-book, instant fills
Beginner verdictStart here — a bot that checks every 60s covers most strategiesNeeded only for scalping-speed bots; more moving parts to break

TradingView webhooks — the shortcut bridge

The best-kept beginner secret: you don't need to code indicators in Python at all. Build the strategy in Pine (8.6), and have its alert fire a webhook — a message sent to a URL — at a tiny server you run (or a bot platform). TradingView does the analysis; your twenty-line receiver just places the order. Chart brain in Pine, order hands in Python. Beautiful division of labour.

Strategy automation, risk controls, logging

  • Automate rules, not vibes. If a rule in your plan contains the word "feels", it can't be coded — which is the market's way of telling you it was never a rule.
  • Hard-code the risk limits from 8.9: max position size, max daily loss (bot switches itself off), max open positions, and a "kill switch" you can hit from your phone. The bot must be MORE conservative than you, not less — it works nights, after all.
  • Log everything: every decision (including "checked, did nothing"), every order, every error, with timestamps. When the bot does something weird at 3am — and one day it will — the log is the difference between a fix and a mystery.

Paper trade before going live — the graduation ladder

  1. Backtest the logic on history (8.6). Kill it here if it doesn't work — cheapest funeral available.
  2. Testnet/demo — every major exchange offers fake-money markets. Run the REAL code against them for 2–4 weeks. You're testing behaviour, not profit: does it size right, stop right, log right, handle a dropped connection without ordering nineteen times?
  3. Live, embarrassingly small — the minimum order size, for weeks. Real fees, real slippage, real 3am weirdness, toy stakes.
  4. Scale slowly — double size only after a full month of the bot doing exactly what the plan says. The bot earns trust like a new apprentice: gradually, with supervision, after demonstrated competence with the good tools.

The starter bot — real code

A complete, working skeleton of an RSI bot against an exchange testnet (this exact file ships in the Bonus Downloads):

⚠️ Before you copy it — this is Python, NOT Pine Script. It does not go in TradingView. Pasting it into the Pine editor will throw errors and make you feel daft, and you'd be right to blame the instructions rather than yourself. Pine runs on TradingView's charts; Python runs on your computer. Different language, different home.

Where does this code actually go?

  1. Install Python — grab it from python.org/downloads. On Windows, tick "Add Python to PATH" on the first screen. Miss that box and every command below says "python is not recognised", which has ruined more evenings than leverage.
  2. Install the exchange library — open Command Prompt (Windows) or Terminal (Mac), and run:
    pip install ccxt
    That one library talks to 100+ exchanges, which is why it's the default choice.
  3. Save the code as a file — paste it into any plain-text editor and save it as rsi_bot.py. Notepad works; VS Code is free and far nicer (it colours the code and points at your typos). Not Word — Word adds invisible formatting that breaks it.
  4. Set your TESTNET API keys — the code reads them from your environment, deliberately, so your keys never sit inside a file you might share. In Command Prompt:
    set API_KEY=your_testnet_key
    set API_SECRET=your_testnet_secret
    (Mac/Linux: use export instead of set.) When you make those keys, enable Read and Spot trading only — never withdrawals. No bot ever needs to move money off the exchange.
  5. Run it — in the same window, from the folder where you saved the file:
    python rsi_bot.py
    It'll print the RSI every minute and place testnet orders when the rule fires. Ctrl+C stops it.
It's playing with fake money, and it should stay that way for a while. The line exchange.set_sandbox_mode(True) points the bot at the exchange's testnet — pretend funds, real prices. Leave it exactly as it is until you've walked the whole four-step ladder above. Flipping it to False is the moment the training wheels come off, and it should be the most boring, most planned decision you make all month.

Want to skip the fiddling? The Bot starter code pack in your Glovebox has this exact bot plus the other five, already wired up with a .env file for your keys, shared risk-limit code, and a README covering setup. Download it, run pip install -r requirements.txt once, and you're going.

import ccxt, time, os

exchange = ccxt.bybit({
    'apiKey': os.environ['API_KEY'],        # from environment — NEVER in code
    'secret': os.environ['API_SECRET'],
})
exchange.set_sandbox_mode(True)             # TESTNET. Stays True until 8.7's ladder says otherwise.

SYMBOL, TIMEFRAME, RSI_LEN = 'BTC/USDT', '1h', 14
RISK_USD = 20                               # fixed dollar risk per trade (8.9)

def rsi(closes, n=14):
    gains = [max(closes[i]-closes[i-1], 0) for i in range(1, len(closes))]
    losses = [max(closes[i-1]-closes[i], 0) for i in range(1, len(closes))]
    ag, al = sum(gains[-n:])/n, sum(losses[-n:])/n
    return 100.0 if al == 0 else 100 - 100/(1 + ag/al)

in_position = False
while True:
    try:
        candles = exchange.fetch_ohlcv(SYMBOL, TIMEFRAME, limit=100)
        closes = [c[4] for c in candles]
        r = rsi(closes, RSI_LEN)
        print(time.ctime(), SYMBOL, 'RSI =', round(r, 1))

        if r < 30 and not in_position:
            price = closes[-1]
            stop = price * 0.98                      # 2% stop
            size = RISK_USD / (price - stop)         # position sizing, 8.9 maths
            exchange.create_market_buy_order(SYMBOL, size)
            in_position = True
            print('BOUGHT', size, 'stop at', stop)
        elif r > 55 and in_position:
            bal = exchange.fetch_balance()['BTC']['free']
            exchange.create_market_sell_order(SYMBOL, bal)
            in_position = False
            print('SOLD — back to watching')
    except Exception as e:
        print('ERROR (logged, not panicking):', e)
    time.sleep(300)                                  # check every 5 minutes

Forty lines. It fetches data, applies a rule, sizes by risk, places orders, logs, survives errors, and repeats. Everything else in bot-land is this skeleton with more muscles.

The six projects — your bot apprenticeship

Project 1: RSI bot difficulty: L-plates

Build The skeleton above: buy oversold, sell recovered, testnet only.
You learn The full loop — data, rules, orders, logging. The "hello world" with a wallet.

Project 2: EMA crossover bot difficulty: green P-plates

Build Strategy 6 from 8.4, automated, WITH the 200-EMA trend filter and a stop-loss order placed at entry time.
You learn Multi-indicator logic, protective orders, and why the filter matters (run it with and without — watch the range chop eat the unfiltered version like a seagull on a chip).

Project 3: Grid bot difficulty: full licence

Build A ladder of buy/sell limit orders across a range, re-placing each rung as it fills. Add the non-negotiable range-break shutdown.
You learn Managing MANY simultaneous orders, order state tracking, and the fee mathematics that decide whether a grid earns or bleeds.

Project 4: DCA bot difficulty: full licence

Build Scheduled buys (weekly) plus optional "buy the dip" extra tranches on sharp drops, with a monthly budget cap it cannot exceed.
You learn Scheduling, budget guardrails, and the humbling backtest showing simple DCA beats most clever timing.

Project 5: Breakout bot difficulty: towing a trailer

Build Donchian 20-day breakout entries (8.5) with ATR-sized positions, ADX filter, and trailing exits. Yes — you're rebuilding the Turtle system. It's rite-of-passage stuff.
You learn Volatility-adjusted sizing, trailing stop logic, and emotionally surviving a low win-rate system by watching the logs instead of the P&L.

Project 6: AI-assisted trading bot difficulty: road train

Build Your breakout or EMA bot, but before each entry it sends market context (recent candles, funding, headlines) to an AI API which returns a structured risk assessment; the bot may VETO trades on a bad assessment — the AI can only ever say "no", never "yes" to a trade your rules didn't already approve.
You learn Calling AI APIs from code, prompt design for structured outputs, and the single most important AI-trading principle: AI as a filter on a rule-based system, never as the trigger. An AI that can talk your bot INTO trades is an enthusiasm machine with your card details.
Poida's Pearler "First week me RSI bot ran, I watched it like a new dad watchin' the baby monitor. Second week I checked it twice a day. Third week I went fishin'. THAT'S the product, mate — not the money. The fishin'."