Strategi ini menggunakan panjang tubuh lilin untuk menentukan arah panjang dan pendek. Ini menghitung panjang tubuh rata-rata dari 30 lilin terbaru. Ketika panjang tubuh lilin bullish lebih besar dari rata-rata, itu akan panjang. Ketika panjang tubuh lilin bearish lebih besar dari rata-rata, itu akan pendek.
Strategi ini pertama-tama menghitung panjang tubuh candlestick dan panjang tubuh rata-rata 30 candlestick sbody terbaru.
Ketika candlestick hari ini menurun (bar==-1) dan panjang tubuh lebih besar dari panjang tubuh rata-rata, ia membuka posisi panjang (ke atas1).
Ketika candlestick hari ini bullish (bar==1) dan panjang tubuh lebih besar dari panjang tubuh rata-rata, ia membuka posisi short (dn1).
Setelah membuka long, jika candlestick hari ini bullish (bar==1) dan posisi saat ini menguntungkan, ia menutup posisi long.
Setelah membuka short, jika candlestick hari ini bearish (bar==-1) dan posisi saat ini menguntungkan, ia menutup posisi short.
Strategi ini dengan mudah dan efektif menggunakan panjang tubuh candlestick untuk menentukan tren pasar. semakin panjang tubuh, semakin kuat tren. jadi menggunakan panjang tubuh sebagai kriteria untuk panjang dan pendek.
Keuntungan dari strategi ini:
Logikanya sederhana dan jelas, mudah dimengerti dan diterapkan.
Menggunakan panjang tubuh candlestick untuk menentukan tren, menghindari gangguan suara.
Mengadopsi perhitungan rata-rata dinamis, dapat beradaptasi dengan perubahan pasar.
Tetapkan kondisi keluar yang menguntungkan untuk meningkatkan profitabilitas.
Parameter yang dapat dikonfigurasi, dapat disesuaikan dengan lingkungan pasar yang berbeda.
Risiko dari strategi ini:
Tubuh panjang tidak selalu menunjukkan tren yang kuat, bisa jadi fluktuasi normal.
Jendela waktu panjang tubuh rata-rata yang tidak tepat dapat kehilangan peluang perdagangan.
Black Swan Event bisa menyebabkan kerugian.
Memegang posisi terlalu lama dapat memperkuat kerugian.
Solusi:
Gabungkan dengan indikator lain untuk menentukan tren, hindari perdagangan yang salah.
Uji nilai parameter yang berbeda, optimalkan perhitungan panjang tubuh rata-rata.
Atur stop loss untuk mengontrol single loss.
Optimalkan masuk dan keluar logika untuk menghindari menahan terlalu lama.
Strategi dapat dioptimalkan dalam aspek berikut:
Menggabungkan MACD, RSI untuk menentukan tren, menghindari sinyal yang salah dari fluktuasi normal.
Uji parameter jendela waktu panjang tubuh rata-rata yang berbeda untuk menemukan set parameter optimal.
Tambahkan ukuran posisi kontrol logika, secara bertahap mengurangi ukuran posisi ketika mengalami kerugian.
Atur target stop loss atau target keuntungan untuk mengontrol persentase kerugian tunggal.
Optimalkan kondisi masuk dan keluar untuk menghindari perdagangan yang tidak efektif. Misalnya, tunggu 3 lilin panjang berturut-turut sebelum masuk.
Hindari perdagangan pada periode tertentu atau sekitar rilis data penting untuk mengendalikan kerugian akibat volatilitas.
Strategi ini memiliki logika yang jelas dan mudah dimengerti untuk membandingkan tubuh lilin dengan panjang rata-rata untuk waktu masuk. Ruang yang luas untuk optimasi dari beberapa dimensi untuk menyesuaikan dengan lingkungan pasar yang berbeda. Secara keseluruhan strategi perdagangan kuantitas pendahuluan yang sederhana dan andal yang cocok untuk digunakan dan dipelajari oleh pedagang pemula. Lebih lanjut menggabungkan lebih banyak indikator dan mengoptimalkan untuk meningkatkan profitabilitas dan ketahanan.
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's ColorBar Strategy v1.0", shorttitle = "ColorBar str v1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") usebody = input(true, defval = true, title = "Use body") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Signals bar = close > open ? 1 : close < open ? - 1 : 0 body = abs(close - open) sbody = ema(body, 30) up1 = bar == -1 and (body > sbody or usebody == false) dn1 = bar == 1 and (body > sbody or usebody == false) plus = (close > strategy.position_avg_price and strategy.position_size > 0) or (close < strategy.position_avg_price and strategy.position_size < 0) exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and plus if up1 strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if dn1 strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if time > timestamp(toyear, tomonth, 31, 00, 00) or exit strategy.close_all()