Module · Pine Script For Beginner

TRADE
SMARTER
WITH CODE

Panduan lengkap algo trading dengan Pine Script — dari nol sampai strategi otomatis berjalan di TradingView.

MULAI BELAJAR ↓
8
Modul
0
Syarat Coding
100%
Praktis
01 — Kenapa Algo Trading?

Trading Manual
vs Algo Trading

Trading manual mengandalkan keputusan manusia secara real-time — kamu melihat chart, membaca sinyal, lalu eksekusi order secara manual. Terdengar simpel, tapi ada satu musuh terbesar: emosi.

Algo trading memindahkan proses pengambilan keputusan itu ke dalam kode program. Aturan yang sudah kamu tulis akan dieksekusi secara konsisten, tanpa takut, tanpa serakah, tanpa lelah.

Aspek ⚠ Trading Manual ✅ Algo Trading
EMOSI Sangat berpengaruh — fear, greed, FOMO Nol pengaruh — keputusan berbasis aturan
KONSISTENSI Berubah-ubah tergantung mood & kondisi 100% konsisten — rule is rule
KECEPATAN Lambat — proses pikiran + eksekusi manual Milidetik — langsung eksekusi
BACKTESTING Tidak bisa — tidak ada cara objektif Bisa ditest ke data historis bertahun-tahun
WAKTU Harus menatap layar berjam-jam Berjalan otomatis 24/7
MULTI-ASET Terbatas kemampuan manusia Bisa pantau ratusan instrumen sekaligus
OPTIMASI Subjektif dan tidak terukur Berbasis data dan bisa dioptimasi

Bukan berarti algo trading bebas risiko — strategi yang buruk tetap akan kalah. Tapi algo trading memastikan kamu kalah atau menang secara konsisten, sehingga bisa dianalisa dan diperbaiki.

02 — Platform

TradingView &
Pine Script

TradingView adalah platform charting berbasis web yang paling populer di dunia saat ini. Jutaan trader dari seluruh dunia menggunakannya untuk menganalisa market — mulai dari saham, forex, kripto, hingga komoditas.

tradingview.com/chart
BTCUSD · 1H · Binance
BUY EMA 9 EMA 21
SYMBOL
BTC/USD
EMA 9
67,420
EMA 21
66,890
SIGNAL
LONG ↑
📊

TradingView

Platform charting online terpopuler. Bisa akses gratis, tersedia di browser maupun aplikasi. Mendukung ribuan instrumen global.

🌲

Pine Script

Bahasa pemrograman khusus untuk TradingView. Didesain sederhana agar trader bisa membuat indikator & strategi sendiri tanpa background coding yang dalam.

Kenapa Pine Script?

Terintegrasi langsung dengan TradingView. Bisa langsung backtest, real-time signal, bahkan connect ke broker untuk auto-execute order.

03 — Cara Kerja

Bagaimana
Algo Trading Bekerja?

Algo trading adalah proses trading di mana keputusan beli dan jual dibuat secara otomatis oleh program komputer berdasarkan aturan yang kamu tentukan sendiri.

Kamu cukup mendefinisikan: kapan beli, kapan jual, berapa lot, dimana stop loss — lalu biarkan program yang mengeksekusi.

📈
Data
Market
🔍
Analisa
Script
Sinyal
Terbentuk
🤖
Order
Eksekusi
💰
Profit /
Loss
📝

1. Buat Strategi

Kamu tulis aturan trading dalam Pine Script — misalnya: "beli jika EMA 9 memotong EMA 21 dari bawah".

🕰️

2. Backtest

Script otomatis ditest ke data historis. Kamu bisa lihat performa strategi tanpa perlu risiko modal nyata.

🚀

3. Live Trading

Setelah backtest memuaskan, jalankan ke live market. Platform seperti byScript.io menghubungkan script ke broker otomatis.

04 — Konsep Dasar

Indikator vs
Strategy

Di Pine Script, ada dua jenis script yang bisa kamu buat. Penting untuk memahami perbedaan keduanya sejak awal.

📊 INDIKATOR

Script yang menampilkan informasi visual di atas chart. Tidak bisa eksekusi order — hanya memberikan sinyal atau informasi untuk trader.

  • Menggambar garis, plot, label
  • Mengkalkulasi nilai matematis
  • Memberi sinyal beli/jual visual
  • Bisa ditambah ke chart manapun
  • Contoh: EMA, RSI, Bollinger Bands
indicator()

⚙️ STRATEGY

Script yang mensimulasikan & mengeksekusi order trading. Bisa backtest ke data historis dan auto-trade ke broker.

  • Bisa buka & tutup posisi
  • Ada laporan backtesting
  • Bisa set stop loss & take profit
  • Bisa dihubungkan ke broker
  • Contoh: EMA Crossover Strategy
strategy()

Analogi mudah: Indikator = GPS yang kasih arahan. Strategy = autopilot yang nyetir sendiri berdasarkan arahan GPS tersebut.

05 — Praktik

Contoh
Indikator Pine Script

Mari buat indikator sederhana — menampilkan dua garis EMA (9 dan 21) di atas chart, plus label sinyal ketika keduanya bersilangan.

ema_indicator.pine
// @version=5
indicator("EMA Crossover Signal", overlay=true)

// ─── Input ───────────────────────────────
fastLen  = input.int(9,  title="EMA Cepat",   minval=1)
slowLen  = input.int(21, title="EMA Lambat",  minval=1)

// ─── Hitung EMA ──────────────────────────
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)

// ─── Plot ke Chart ───────────────────────
plot(emaFast, color=color.new(#00e676, 0), linewidth=2, title="EMA 9")
plot(emaSlow, color=color.new(#00c853, 0), linewidth=2, title="EMA 21")

// ─── Deteksi Crossover ───────────────────
bullish = ta.crossover(emaFast, emaSlow)
bearish = ta.crossunder(emaFast, emaSlow)

// ─── Tampilkan Sinyal ────────────────────
plotshape(bullish, style=shape.triangleup,
         location=location.belowbar,
         color=color.new(color.lime, 0), size=size.small,
         title="BUY Signal")

plotshape(bearish, style=shape.triangledown,
         location=location.abovebar,
         color=color.new(color.red, 0), size=size.small,
         title="SELL Signal")

// ─── Alert ───────────────────────────────
alertcondition(bullish, "EMA BUY",  "EMA 9 crossed above EMA 21")
alertcondition(bearish, "EMA SELL", "EMA 9 crossed below EMA 21")
// @version=5
Deklarasi versi — selalu tulis ini di baris pertama. Version 5 adalah versi terbaru Pine Script.
indicator(..., overlay=true)
Deklarasi tipe script. overlay=true berarti indikator ditampilkan di atas chart candlestick, bukan di panel terpisah.
input.int(9, title="...")
Input dari user — membuat parameter yang bisa diubah dari Settings panel TradingView tanpa harus edit kode.
ta.ema(close, fastLen)
Fungsi built-in EMA. ta adalah library teknikal analisis Pine Script. close = harga penutupan tiap candle.
plot(emaFast, color=...)
Gambar garis ke chart. Setiap nilai EMA di setiap candle akan tersambung menjadi garis yang terlihat di chart.
ta.crossover(emaFast, emaSlow)
Deteksi persilangan. Mengembalikan true hanya pada candle di mana EMA cepat memotong EMA lambat dari bawah ke atas (sinyal bullish).
plotshape(bullish, ...)
Gambar ikon/marker di chart. Pada candle di mana bullish = true, akan muncul segitiga hijau di bawah candle.
alertcondition(...)
Buat kondisi alert. Pengguna bisa set alert di TradingView agar mendapat notifikasi email/webhook saat sinyal muncul.
06 — Praktik

Contoh
Strategy Pine Script

Sekarang kita ubah indikator tadi menjadi strategy — script yang bisa backtest dan auto-trade. Perubahan kunci ada di deklarasi dan perintah order.

ema_strategy.pine
// @version=5
strategy("EMA Crossover Strategy",
         overlay           = true,
         initial_capital   = 10000,
         default_qty_type  = strategy.percent_of_equity,
         default_qty_value = 10,
         commission_type   = strategy.commission.percent,
         commission_value  = 0.1)

// ─── Input ───────────────────────────────
fastLen  = input.int(9,  title="EMA Cepat",  minval=1)
slowLen  = input.int(21, title="EMA Lambat", minval=1)
slPct    = input.float(2.0, title="Stop Loss %",   step=0.1)
tpPct    = input.float(4.0, title="Take Profit %", step=0.1)

// ─── Hitung EMA ──────────────────────────
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)

// ─── Plot ke Chart ───────────────────────
plot(emaFast, color=color.new(#00e676, 0), linewidth=2, title="EMA 9")
plot(emaSlow, color=color.new(#00c853, 0), linewidth=2, title="EMA 21")

// ─── Kondisi Entry ───────────────────────
longCondition  = ta.crossover(emaFast, emaSlow)
shortCondition = ta.crossunder(emaFast, emaSlow)

// ─── Eksekusi Order ──────────────────────
if longCondition
    strategy.entry("LONG", strategy.long)
    strategy.exit("TP/SL LONG",
                  stop   = strategy.position_avg_price * (1 - slPct / 100),
                  limit  = strategy.position_avg_price * (1 + tpPct / 100))

if shortCondition
    strategy.close("LONG")   // Tutup posisi long jika ada
strategy("...", initial_capital=10000)
Deklarasi strategy beserta parameter backtest — modal awal, komisi broker, dan ukuran order default.
default_qty_value = 10
Ukuran posisi 10% dari equity setiap kali entry. Ini adalah money management dasar yang sudah built-in.
commission_value = 0.1
Simulasi komisi 0.1% per trade seperti di exchange sungguhan, agar hasil backtest lebih realistis.
strategy.entry("LONG", strategy.long)
Buka posisi beli. "LONG" adalah nama trade untuk referensi. strategy.long = arah posisi beli.
strategy.exit("TP/SL LONG", stop=..., limit=...)
Pasang Stop Loss & Take Profit otomatis. Dihitung dari harga rata-rata entry posisi yang sedang berjalan.
strategy.close("LONG")
Tutup posisi dengan nama "LONG". Dieksekusi ketika EMA 9 memotong ke bawah — sinyal bearish.
07 — Deep Dive

Bedah Struktur
Script Strategy

Setiap strategy Pine Script selalu punya 4 blok utama yang berurutan. Memahami struktur ini akan membuat kamu bisa membaca & menulis script apapun dengan lebih mudah.

Blok 1

🎛️ Deklarasi & Config

Baris pertama script. Tentukan nama, modal, komisi, ukuran lot.

Blok 2

📐 Kalkulasi

Hitung semua nilai yang dibutuhkan: EMA, RSI, ATR, dan sebagainya.

Blok 3

🔍 Kondisi

Definisikan kapan sinyal terbentuk — crossover, breakout, dsb.

Blok 4

📤 Eksekusi Order

Berikan perintah beli/jual berdasarkan kondisi yang sudah dibuat.

Blok 5

📊 Visualisasi

Plot garis, marker, label agar mudah dibaca di chart.

Blok 6

🔔 Alert

Definisikan kondisi notifikasi untuk webhook atau email.

full_structure_example.pine
// @version=5

// ═══════════════════════════════════════
// BLOK 1 · DEKLARASI & KONFIGURASI
// ═══════════════════════════════════════
strategy("EMA 9/21 — byScript.io Template",
         overlay           = true,
         initial_capital   = 10000,
         default_qty_type  = strategy.percent_of_equity,
         default_qty_value = 10,
         commission_type   = strategy.commission.percent,
         commission_value  = 0.1)

// Input parameter
fastLen = input.int(9,   "EMA Cepat",   minval=1, group="EMA Settings")
slowLen = input.int(21,  "EMA Lambat",  minval=1, group="EMA Settings")
slPct   = input.float(2, "Stop Loss %", step=0.1, group="Risk Management")
tpPct   = input.float(4, "TP %",        step=0.1, group="Risk Management")

// ═══════════════════════════════════════
// BLOK 2 · KALKULASI
// ═══════════════════════════════════════
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
trend   = emaFast > emaSlow  // true = uptrend

// ═══════════════════════════════════════
// BLOK 3 · KONDISI SINYAL
// ═══════════════════════════════════════
longEntry  = ta.crossover(emaFast, emaSlow)   // EMA 9 potong atas EMA 21
longExit   = ta.crossunder(emaFast, emaSlow)  // EMA 9 potong bawah EMA 21

// ═══════════════════════════════════════
// BLOK 4 · EKSEKUSI ORDER
// ═══════════════════════════════════════
if longEntry
    strategy.entry("LONG", strategy.long,
                   comment="EMA Crossover ↑")
    strategy.exit("TP/SL",
                  from_entry = "LONG",
                  stop       = close * (1 - slPct / 100),
                  limit      = close * (1 + tpPct / 100),
                  comment    = "Auto Exit")

if longExit
    strategy.close("LONG", comment="EMA Cross Down ↓")

// ═══════════════════════════════════════
// BLOK 5 · VISUALISASI
// ═══════════════════════════════════════
plot(emaFast, "EMA 9",  color.new(#00e676, 0), linewidth=2)
plot(emaSlow, "EMA 21", color.new(#00c853, 0), linewidth=2)

bgcolor(trend ? color.new(color.green, 95) :
               color.new(color.red, 95))

plotshape(longEntry, "BUY",  shape.triangleup,
          location.belowbar, color.lime, size=size.small)
plotshape(longExit,  "SELL", shape.triangledown,
          location.abovebar, color.red,  size=size.small)

// ═══════════════════════════════════════
// BLOK 6 · ALERT
// ═══════════════════════════════════════
alertcondition(longEntry, "BUY Signal",
               "EMA 9 crossed above EMA 21 — Potential LONG")
alertcondition(longExit,  "SELL Signal",
               "EMA 9 crossed below EMA 21 — Close LONG")

💡 Tips: Kamu tidak perlu menulis semua blok dari nol. Template ini bisa kamu jadikan kerangka dasar — cukup ganti kalkulasi di Blok 2 dan kondisi di Blok 3 sesuai strategi yang kamu inginkan.

08 — Platform

Mengenal
byScript.io

Kamu sudah bisa menulis Pine Script — tapi bagaimana agar script tersebut bisa berjalan secara otomatis 24 jam dan langsung eksekusi ke broker tanpa kamu harus menatap layar?

Di sinilah peran byScript.io.

Algo Trading Platform — dari sinyal ke eksekusi, otomatis.

🔗

Connect ke Broker

Hubungkan Pine Script strategy kamu ke broker pilihan secara langsung.

Auto Execute

Sinyal dari TradingView langsung diteruskan sebagai order ke broker — dalam hitungan detik.

🕐

24/7 Running

Sistem berjalan terus tanpa kamu harus buka laptop. Mau tidur, kerja, jalan-jalan — algo tetap trading.

📊

Dashboard Monitor

Pantau semua posisi, performa, dan log eksekusi dari satu dashboard yang bersih.

🔔

Notifikasi Real-time

Dapatkan notifikasi setiap kali order masuk, take profit, atau stop loss terpicu.

🛡️

Risk Control

Atur batas maksimal drawdown, ukuran lot, dan parameter risiko langsung dari platform.

🖼️ PLACEHOLDER — Screenshot Dashboard byScript.io
(Upload logo & screenshot setelah tersedia)
Cara Kerja byScript.io
📝
Tulis Strategy
di TradingView
🔗
Connect
byScript.io
⚙️
Setup
Parameter
🤖
Algo Jalan
Otomatis
💸
Pantau
& Profit

byScript.io dirancang untuk semua level — dari yang baru belajar Pine Script hingga trader profesional yang ingin mengotomasi strategi kompleks. Kamu fokus pada strategi, byScript.io yang handle eksekusinya.