
Scalping Line adalah strategi untuk menghitung perbedaan antara Scalping Line dan Scalping Line yang memiliki periode yang lebih pendek. Scalping Line memicu sinyal perdagangan ketika garis bergerak di atas atau di bawah garis nol. Scalping Line memberikan aturan yang jelas untuk pembentukan posisi di atas dan di bawah garis nol.
Logika inti dari strategi ini didasarkan pada beberapa komponen komputasi utama:
Filter tren utamaStrategi pertama kali menghitung rata-rata bergerak ganda (default periodicity 100) [2]. Proses penyegelan ganda ini secara efektif mengurangi kebisingan harga dan memberikan kerangka dasar yang lebih kokoh untuk sinyal perdagangan garis pendek [2].
Persentase filterUntuk menghindari sinyal palsu, strategi memperkenalkan parameter filter persentase yang dapat disesuaikan. Sistem penyaring ini menyesuaikan “sensitivitas” terhadap harga yang menyimpang dari rata-rata bergerak, membantu memfilter turun naik harga yang tidak penting.
Penghitungan jalur sinyal: Menggunakan rata-rata bergerak sederhana dengan periode yang lebih pendek (default 7) memberikan respons yang lebih cepat terhadap perilaku harga terbaru.
Perhitungan Scalping Line (SLI): Garis sinyal inti didefinisikan sebagai selisih antara garis sinyal cepat dan rata-rata bergerak halus. Ketika SLI melintasi titik nol, menunjukkan perubahan momentum potensial:
Pengendalian arah transaksiStrategi dapat dikonfigurasi menjadi hanya melakukan over, hanya melakukan short, atau perdagangan dua arah, untuk menyesuaikan dengan gaya perdagangan yang berbeda.
Opsi pembalikan sinyal: Secara default, SLI memicu sinyal multihead saat melintasi garis nol ke bawah, memicu sinyal headless saat melintasi garis nol ke atas. Namun, pengaturan ini dapat dibalik, memungkinkan interpretasi alternatif dari sinyal momentum sesuai dengan kondisi pasar yang berbeda.
Filter jendela waktuUntuk pedagang intraday, Anda dapat mengaktifkan filter waktu untuk membatasi sinyal pada periode perdagangan tertentu (misalnya, 9:00 AM - 4:00 PM), yang sangat berguna untuk perdagangan aset dengan volatilitas intraday yang kuat.
Setelah menganalisis kode secara mendalam, strategi ini dapat disimpulkan memiliki keuntungan yang signifikan sebagai berikut:
Sistem Sinyal yang Sederhana dan JelasStrategi ini menggunakan garis silang nol sebagai sinyal utama, memberikan titik masuk yang jelas dan intuitif bagi pedagang, mengurangi ambiguitas interpretasi.
Kustomisasi TinggiStrategi ini menyediakan beberapa parameter yang dapat disesuaikan, mulai dari siklus rata-rata bergerak, persentase penyaringan, hingga arah dan waktu sinyal penyaringan, yang memungkinkan pedagang untuk mengoptimalkannya sesuai dengan pasar dan gaya mereka sendiri.
Sangat mudah beradaptasiDengan filter persentase dan parameter smoothing yang dapat disesuaikan, strategi dapat beradaptasi dengan kondisi pasar yang berfluktuasi yang berbeda dan tetap efektif di lingkungan yang berfluktuasi tinggi dan rendah.
Umpan balik visual yang jelasStrategi memberikan petunjuk visual yang intuitif, termasuk referensi nol, pengisian grafik pilar, dan penandaan sinyal, sehingga pedagang dapat dengan mudah mengidentifikasi peluang perdagangan potensial.
Kelayakan multi-pasarStrategi logisnya sederhana dan efektif, dapat diterapkan di berbagai pasar seperti saham, forex, cryptocurrency, dan futures, terutama di pasar dengan cukup volatilitas intraday.
Adaptasi jangka waktu yang fleksibel: Meskipun dirancang untuk perdagangan garis pendek pada grafik 1 menit hingga 15 menit, strategi ini dapat disesuaikan dengan perdagangan ayunan pada kerangka waktu yang lebih tinggi dengan menyesuaikan parameter.
Meskipun strategi ini memiliki banyak keuntungan, ada beberapa risiko potensial:
Kurangnya manajemen risiko internalStrategi ini berfokus pada sinyal masuk, tanpa aturan manajemen posisi, stop loss, dan stop-loss built-in. Pedagang perlu melapisi aturan ini sesuai dengan gaya manajemen risiko mereka sendiri.
Parameter SensitivitasPerforma strategi sangat bergantung pada pengaturan parameter, parameter yang tidak tepat dapat menyebabkan overtrading atau kehilangan peluang. Optimasi parameter diperlukan untuk kondisi pasar tertentu.
Risiko sinyal palsuDalam pasar yang bergolak atau lingkungan yang rendah volatilitas, strategi dapat menghasilkan lebih banyak sinyal palsu, yang menyebabkan perdagangan yang tidak perlu dan potensi kerugian.
Masalah keterbelakanganMeskipun menggunakan jalur sinyal dengan periode yang lebih pendek, rata-rata bergerak pada dasarnya memiliki keterlambatan, dan mungkin kurang responsif pada titik pivot pasar yang cepat.
Ketergantungan satu indikatorStrategi yang hanya mengandalkan indikator Scalping Line untuk membuat keputusan dan kurangnya dukungan dari indikator konfirmasi lainnya dapat meningkatkan risiko sinyal yang salah.
Beberapa cara untuk mengatasi risiko ini adalah:
Berdasarkan analisis mendalam terhadap kode, strategi ini memiliki beberapa arah optimasi potensial:
Integrasi manajemen risiko: Mengintegrasikan logika stop loss dan stop loss langsung ke dalam strategi, dapat mengatur posisi stop loss berdasarkan ATR (rata-rata real range) atau persentase tetap, sambil mengatur rasio risiko-pengembalian untuk menentukan target keuntungan.
Analisis multi-frame waktuIntroduksi pengesahan tren pada kerangka waktu yang lebih tinggi, hanya berdagang di arah tren utama, dapat secara signifikan mengurangi risiko perdagangan berlawanan arah.
Adaptasi fluktuasi: Tambahkan penyesuaian parameter dinamis berdasarkan ATR atau indikator serupa, sehingga strategi dapat secara otomatis menyesuaikan sensitivitas sinyal sesuai dengan volatilitas pasar saat ini.
Filter tambahan: Mengintegrasikan volume transaksi, relatif kuat atau indikator momentum lainnya sebagai alat konfirmasi, hanya melakukan perdagangan jika beberapa indikator sesuai, sehingga meningkatkan kualitas sinyal.
Optimalisasi Pembelajaran Mesin: Menggunakan teknologi pembelajaran mesin untuk secara dinamis memilih kombinasi parameter terbaik dan secara otomatis menyesuaikan parameter strategi sesuai dengan kondisi pasar yang berbeda.
Pengoptimalan masukTidak hanya mempertimbangkan garis silang nol, tetapi juga mempertimbangkan pola sinyal yang lebih kompleks seperti reversal nilai ekstrem, mode dispersi / konvergensi, untuk meningkatkan akurasi masuk.
Optimasi ini dapat meningkatkan keandalan strategi, mengurangi sinyal palsu, dan meningkatkan kinerja keseluruhan dalam berbagai kondisi pasar. Terutama, integrasi manajemen risiko sangat penting untuk melindungi modal dan mencapai keuntungan jangka panjang.
Strategi kuantitatif lintas-slipping multi-leveling memberikan metode perdagangan short-line yang akurat dan fleksibel, terutama untuk pedagang intraday dan short-line. Dengan menggabungkan double-slipping moving average, filter adaptif, dan opsi sinyal yang fleksibel, ini membantu pedagang untuk mengidentifikasi pergerakan short-term dengan jelas dan percaya diri.
Keunggulan inti dari strategi ini adalah kesederhanaan dan fleksibilitasnya, yang membuatnya menjadi alat yang kuat dalam toolkit perdagangan short-line. Namun, untuk mencapai efek optimal, pedagang harus mempertimbangkan untuk menambahkan aturan manajemen risiko yang tepat, melakukan pengembalian yang menyeluruh, dan menyesuaikan parameter sesuai dengan kondisi pasar tertentu.
Dengan rekomendasi optimasi di atas, khususnya integrasi manajemen risiko dan konfirmasi multi-indikator, strategi ini memiliki potensi untuk menjadi sistem perdagangan yang lebih komprehensif dan lebih stabil, yang tidak hanya dapat mengidentifikasi peluang perdagangan potensial, tetapi juga dapat melindungi modal dan mencapai kesuksesan berkelanjutan di berbagai lingkungan pasar.
/*backtest
start: 2024-08-22 00:00:00
end: 2025-08-19 08:00:00
period: 3d
basePeriod: 3d
exchanges: [{"eid":"Binance","currency":"ETH_USDT","balance":500000}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nirnaykhatri - Strategy Version (Based on Scalping Line Indicatory By KivancOzbilgic)
//@version=6
strategy("Scalping Line Strategy", overlay=false)
// ═══════════════════════════════════════════════════════════════════════════════
// 📊 INPUT PARAMETERS
// ═══════════════════════════════════════════════════════════════════════════════
// === Core Indicator Settings ===
src = input.source(close, title="Source", group="📈 Core Settings")
percent = input.float(1.0, "Percent Filter", step=0.1, minval=0, group="📈 Core Settings", tooltip="Percentage threshold for signal filtering")
mainperiod = input.int(100, "Main Period", minval=1, group="📈 Core Settings", tooltip="Main moving average period")
signalperiod = input.int(7, "Signal Period", minval=1, group="📈 Core Settings", tooltip="Signal line moving average period")
// === Strategy Configuration ===
tradeDirection = input.string("Both", "Trade Direction", options=["Long Only", "Short Only", "Both"], group="🎯 Strategy Settings")
flipSignals = input.bool(false, "Flip Entry Signals", group="🎯 Strategy Settings", tooltip="When enabled: Long on cross above zero, Short on cross below zero. When disabled: Long on cross below zero, Short on cross above zero")
enableLongs = tradeDirection == "Long Only" or tradeDirection == "Both"
enableShorts = tradeDirection == "Short Only" or tradeDirection == "Both"
// === Signal Filtering ===
enableTimeFilter = input.bool(false, "Enable Time Filter", group="🕒 Signal Filters")
startHour = input.int(9, "Start Hour", minval=0, maxval=23, group="🕒 Signal Filters")
endHour = input.int(16, "End Hour", minval=0, maxval=23, group="🕒 Signal Filters")
// ═══════════════════════════════════════════════════════════════════════════════
// 🔧 CORE CALCULATIONS (Original Indicator Logic)
// ═══════════════════════════════════════════════════════════════════════════════
// Calculate the main moving average with double smoothing
MA = ta.sma(ta.sma(src, math.ceil(mainperiod / 2)), math.floor(mainperiod / 2) + 1)
// Apply percentage-based signal smoothing
ssMA = MA > close + MA * percent / 100 ? MA : MA < close - MA * percent / 100 ? MA : close
// Calculate signal line
signalline = ta.sma(close, signalperiod)
// Calculate the Scalping Line Indicator (core signal)
ScalpLine = signalline - ssMA
// ═══════════════════════════════════════════════════════════════════════════════
// 📈 ORIGINAL INDICATOR VISUALS (Preserved)
// ═══════════════════════════════════════════════════════════════════════════════
// Plot the original indicator
k1 = plot(ScalpLine, "SLI", color.maroon, 2)
k2 = plot(0, "", color=color.gray)
// Original color logic and fill
color1 = ScalpLine >= 0 ? color.green : color.red
fill(k1, k2, color=color.new(color1, 80))
// ═══════════════════════════════════════════════════════════════════════════════
// 🎯 TRADING LOGIC & SIGNAL GENERATION
// ═══════════════════════════════════════════════════════════════════════════════
// Time filter logic
inTimeWindow = not enableTimeFilter or (hour >= startHour and hour <= endHour)
// Signal generation with crossover detection
longSignal = (flipSignals ? ta.crossover(ScalpLine, 0) : ta.crossunder(ScalpLine, 0)) and enableLongs and inTimeWindow
shortSignal = (flipSignals ? ta.crossunder(ScalpLine, 0) : ta.crossover(ScalpLine, 0)) and enableShorts and inTimeWindow
// ═══════════════════════════════════════════════════════════════════════════════
// 🚀 STRATEGY EXECUTION (Following BB-Strategy Pattern)
// ═══════════════════════════════════════════════════════════════════════════════
// Simple strategy entries following BB-Strategy pattern
if (longSignal)
strategy.entry("Long", strategy.long, comment="Long Entry")
else
strategy.cancel(id="Long")
if (shortSignal)
strategy.entry("Short", strategy.short, comment="Short Entry")
else
strategy.cancel(id="Short")
// ═══════════════════════════════════════════════════════════════════════════════
// 🎨 VISUAL INDICATORS (Simple and Clean)
// ═══════════════════════════════════════════════════════════════════════════════
// Plot entry signals
plotshape(longSignal, title="Long Entry", style=shape.triangleup, location=location.belowbar, color=color.lime, size=size.small)
plotshape(shortSignal, title="Short Entry", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Zero line for reference
hline(0, title="Zero Line", color=color.gray, linestyle=hline.style_solid)