AlphaPyne script Write your own indicators in plain Python

Master the art of
algorithmic trading

Write the strategy. Test it on live data. Let it trade while you sleep.

Experience
4+ yrs
Indicators built
500+
Signal latency
<10 ms
Runs on
Your server
HDFCBANK NSE · 5m LIVE BUY EMA 200 signal engine 1,684.20 crossover 8 ms SCREENER · 1,284 SYMBOLS RELIANCE HDFCBANK CRUDEOIL BUY BUY · HDFCBANK 1,684.20 · 5m Telegram · webhook · just now

Start here

What brings you here?

Pick the one that sounds like you. Everything below follows from it.

Our product

Algo trading infrastructure you own

AlphaPyne installs on your own server in about a minute. Your broker keys never leave it.

YOUR SERVER · WE HAVE NO ACCESS 01020304 Broker feedEngineSignalsOrders Live ticks stream in Candles, indicators, screener Charts, Telegram, webhook Routed to your account
  • Indicator library

    RSI, EMA, MACD, Bollinger, ATR, VWAP and more

  • Live screener <10 ms

    Every subscribed symbol — NSE, BSE, MCX, NFO

  • Trade simulator

    Live data, virtual capital, full analytics

  • Broker integration

    Dhan and more, keys encrypted on your box

  • Charts & history

    Live overlays, signal markers, OHLCV storage

  • Alerts & telemetry

    Telegram, webhooks, every event searchable

The honest answers

Questions we get asked

Self-hosted

So who holds my broker keys?

You do. AlphaPyne runs on your own machine, so your keys, your trade history and your strategy logic never reach us. There is nothing to leak on our side, because we hold nothing.

  • AES-256 encrypted at rest, on your disk
  • Any VPS or bare metal — AWS, GCP, Azure, your own box
  • Zero outbound data to us
How it stays private
your-vps AES-256 broker api key order history strategy code encrypted at rest · never transmitted no outbound data us, and any third party

AlphaPyne script

Can I build my own indicators?

Yes — in plain Python, in the editor that ships with the platform. No sandboxed language to learn, and your script runs in the same engine loop as the built-in library.

  • Standard class-based Python, with a TA library
  • Plots, alerts and orders from the same script
  • Bring an indicator you already trade across
See real examples
trend_filter.py 123 456 789 1011 from alphapyne.quant import ta from alphapyne.visual import plot class TrendFilter(Indicator): title = 'Trend Filter' overlay = True length = input.int(200) trend = ta.ema(close, length) plot(trend, 'EMA') saved · running on your engine HDFCBANK NSE · 5m EMA 200 1,700 1,660 1,620 BUY the line your script plots, live on the chart

Trade simulator

Can I test before risking money?

Run any indicator or strategy against live market data on virtual capital. You get the trade log, the analytics and an exportable report before a single real order goes out.

  • Live data, virtual money, nothing at stake
  • Full trade and strategy breakdowns
  • Batch backtests across a whole watchlist
Try it free
Backtest · TrendFilter SIMULATED · VIRTUAL CAPITAL opening capital TRADE LOG HDFCBANK RELIANCE TCS CRUDEOIL BUY BUY BUY SELL Trades logged Bars tested Symbols in batch 42 30,000 18

Live screener

Will I miss a signal while I'm away?

Your indicators run across every subscribed symbol at once, with sub-10ms signal latency. When one fires it lands on your screener, your charts and your phone.

  • NSE, BSE, MCX and NFO, every timeframe
  • Telegram and webhook alerts the moment it triggers
  • Every signal and order logged and searchable
See how it runs
RELIANCE NIFTY 50 TCS CRUDEOIL HDFCBANK BUY BUY alert Telegram · webhook

AlphaPyne script

Write it in plain Python

No sandboxed language to learn. Your scripts run in the same engine loop as the built-in library.

trend_filter.py

AlphaPyne SDK
from alphapyne.base   import Indicator
from alphapyne.quant  import ta
from alphapyne.params import input
from alphapyne.visual import plot, color
from alphapyne.sink   import alert


class TrendFilter(Indicator):
    title   = 'Trend Filter'
    overlay = True

    length = input.int(200, 'EMA length')

    trend = ta.ema(close, length)
    buy   = ta.crossover(close, trend)

    plot(trend, 'EMA', color=color.orange, linewidth=2)

    if buy:
        alert('Long', alert.freq_once_per_bar_close)

docker pull protradingart/alphapyne:latest

Start free →

How it works

From install to live signals

Three steps, no coding needed to get started.

  1. bash $ docker pull protradingart/alphapyne Pulling layers… 4 of 5 $ docker compose up -d ✔ alphapyne running on :8000

    01

    Install via Docker

    One command on any VPS or your own machine. Running in a minute.

  2. Brokers CONNECTED Dhan live · orders enabled API KEY AES-256 at rest · stored only on your server

    02

    Connect your broker

    API keys are encrypted and stored only on your server. No third party sees them.

  3. Alerts LIVE BUY HDFCBANK 1,684.20 · 5m · sent to Telegram 09:21 SELL RELIANCE 2,912.05 · 15m · webhook 10:05 BUY TCS 3,401.60 · 5m · sent to Telegram 11:40

    03

    Signals fire live

    BUY and SELL hit your screener and charts, and push to Telegram the moment they trigger.

The academy

Learn to build it yourself

Taught in Hinglish, from the same code we run in production.

  • Pine Script Mastery Enrolling now

    Pine Script Mastery

    The whole language, v6 first — indicators, strategies, alerts, automation.

    Live cohort Beginner → advanced
  • Algo trading with Python In production

    Algo trading with Python

    Market data, indicators and order logic — including AlphaPyne scripts.

    Self-paced Intermediate
  • Full-stack algo systems In production

    Full-stack algo systems

    Django, Celery, Redis, WebSocket feeds and Docker — the engineering half.

    Self-paced Advanced

The studio

Or we build it for you

You describe the logic. We write it, test it, and hand over the source.

your brief Entry 20 EMA crosses 50 EMA Exit ATR trailing stop Alerts Telegram, every close Runs on NIFTY futures, 5m Your spec, in your words trend_filter.py TESTS PASSED class TrendFilter(Indicator): fast = ta.ema(close, 20) slow = ta.ema(close, 50) entry = ta.crossover(fast, slow) Tested code, yours to keep order book LIVE BUY FILLED NIFTY FUT 50 qty · 09:21:04 · your broker SELL NIFTY FUT ATR stop hit · 14:52:18 Live on your account
  • Custom Pine Script

    Indicators, strategies, v4/v5 upgrades.

    How it runs →
  • AlphaPyne scripts

    Python indicators written and installed on your instance.

    Get a quote →
  • Custom strategies

    Entries, exits, sizing and risk — running on your own instance.

    Start a talk →
  • Platform features

    Something AlphaPyne can't do yet, built into the core for everyone.

    How that works →

Free to follow

Start with the free stuff

12:04 Build a trend filter in plain Python — start to finish @protradingart · Hinglish

@protradingart on YouTube

Indicators written line by line, strategies wired to live alerts, full platform walkthroughs. In Hinglish.

Newsletter

Weekly strategies and release notes. No spam.

Subscribe

Ready to get started?

Run it yourself, learn to write it, or hand the build to us.

  • Free plan

    No card required

  • Install time

    About a minute

  • Your data

    Stays on your server