Tren Bolt yang Mencolok Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-02-02 17:30:09
Tag:

img

Gambaran umum

Strategi ini disebut Dazzling Bolts. Ini adalah strategi trend berikut berdasarkan tiga rata-rata bergerak. Ini menggunakan silang garis cepat, menengah dan lambat untuk menentukan tren harga dan menetapkan target dan berhenti berdasarkan nilai ATR.

Logika Strategi

Strategi ini menggunakan tiga rata-rata bergerak berikut:

  1. Rata-rata bergerak tertimbang 13 periode, untuk mengukur tren jangka pendek
  2. Rata-rata bergerak eksponensial 55 periode, untuk tren jangka menengah
  3. Rata-rata bergerak sederhana 110 periode, untuk tren jangka panjang

Ketika garis cepat melintasi di atas garis menengah dan garis menengah melintasi di atas garis lambat, itu menandakan tren naik. Ketika garis cepat melintasi di bawah garis menengah dan garis menengah melintasi di bawah garis lambat, itu menandakan tren menurun.

Untuk menyaring beberapa industri kebisingan, beberapa kondisi tambahan ditetapkan:

  1. Harga rendah dari 5 lilin terakhir semuanya di atas garis rata-rata
  2. Harga rendah dari 2 lilin terakhir turun di bawah garis menengah
  3. Harga penutupan lilin terakhir berada di atas garis menengah

Ketika kriteria ini terpenuhi, sinyal panjang atau pendek akan dipicu. hanya memegang satu posisi setiap saat dan tidak akan masuk lagi sampai posisi yang ada ditutup atau dihentikan.

Target dan berhenti ditempatkan berdasarkan beberapa kali lipat dari nilai ATR.

Analisis Keuntungan

Keuntungan dari strategi ini meliputi:

  1. Menggunakan kombinasi tiga rata-rata bergerak menghindari kemungkinan penilaian yang salah dari satu indikator.
  2. Berbagai kondisi bantu membantu meningkatkan kualitas sinyal dengan menyaring kebisingan.
  3. Stop loss ATR dinamis membantu mengendalikan kerugian perdagangan tunggal.

Analisis Risiko

Risiko dari strategi ini juga meliputi:

  1. Kombinasi rata-rata bergerak dapat memberikan sinyal yang salah, yang membutuhkan pengujian backtest yang cukup.
  2. Pengaturan pengganda ATR yang tidak benar dapat menyebabkan stop terlalu longgar atau ketat.
  3. Tidak mampu menyaring fluktuasi harga secara efektif dari kejadian mendadak.

Untuk mengurangi risiko, menyesuaikan parameter rata-rata bergerak dengan benar, mengoptimalkan pengganda ATR, menetapkan periode pemegang maksimum untuk menghindari kerugian perdagangan tunggal yang berlebihan.

Arahan Optimasi

Optimasi yang mungkin untuk strategi ini:

  1. Uji rata-rata bergerak dengan panjang atau jenis yang berbeda.
  2. Mengoptimalkan parameter kondisi bantu.
  3. Cobalah indikator lain untuk prediksi tren, misalnya MACD, DMI dll.
  4. Masukkan indikator volume untuk menyaring sinyal.

Ringkasan

Strategi Dazzling Bolts umumnya merupakan sistem mengikuti tren yang stabil. Strategi ini terutama menggunakan crossover rata-rata bergerak untuk menentukan arah tren, dengan kombinasi indikator teknis tertentu sebagai sarana tambahan untuk menyaring beberapa kebisingan. Meskipun ada ruang untuk optimasi lebih lanjut, risikonya secara keseluruhan dikendalikan dan cocok untuk berinvestasi di sepanjang tren jangka menengah hingga panjang.


/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © greenmask9

//@version=4
strategy("Dazzling Bolts", overlay=true)
//max_bars_back=3000

// 13 SMMA
len = input(10, minval=1, title="SMMA Period")
src = input(close, title="Source")
smma = 0.0
smma := na(smma[1]) ? sma(src, len) : (smma[1] * (len - 1) + src) / len

// 55 EMA
emalength = input(55, title="EMA Period")
ema = ema(close, emalength)

// 100 SMA
smalength = input(110, title="SMA Period")
sma = sma(close, smalength)

emaforce = input(title="Force trend with medium EMA", type=input.bool, defval=true)
offsetemavalue = input(defval = 6)

bullbounce = smma>ema and ema>sma and low[5]>ema and low[2]<ema and close[1]>ema and (ema[offsetemavalue]>sma or (not emaforce))
bearbounce = smma<ema and ema<sma and high[5]<ema and high[2]>ema and close[1]<ema and (ema[offsetemavalue]<sma or (not emaforce))
plotshape(bullbounce,  title= "Purple", location=location.belowbar, color=#ff33cc, transp=0, style=shape.triangleup, size=size.tiny, text="Bolts")
plotshape(bearbounce,  title= "Purple", location=location.abovebar, color=#ff33cc, transp=0, style=shape.triangledown, size=size.tiny, text="Bolts")
strategy.initial_capital = 50000
ordersize=floor(strategy.initial_capital/close)
longs = input(title="Test longs", type=input.bool, defval=true)
shorts = input(title="Test shorts", type=input.bool, defval=true)
atrlength = input(title="ATR length", defval=12)
atrm = input(title="ATR muliplier",type=input.float, defval=2)
atr = atr(atrlength)

target = close + atr*atrm
antitarget = close - (atr*atrm)

//limits and stop do not move, no need to count bars from since

bullbuy = bullbounce and longs and strategy.opentrades==0
bb = barssince(bullbuy)
bearsell = bearbounce and shorts and strategy.opentrades==0
bs = barssince(bearsell)

if (bullbuy)
    strategy.entry("Boltsup", strategy.long, ordersize)
    strategy.exit ("Bolts.close", from_entry="Boltsup", limit=target, stop=antitarget)
if (crossover(smma, sma))
    strategy.close("Boltsup", qty_percent = 100, comment = "Bolts.crossover")

if (bearsell)
    strategy.entry("Boltsdown", strategy.short, ordersize)
    strategy.exit("Bolts.close", from_entry="Boltsdown", limit=antitarget, stop=target)
if (crossunder(smma, sma))
    strategy.close("Boltsdown", qty_percent = 100, comment = "Bolts.crossover")

// if (bb<5)
//     bulltarget = line.new(bar_index[bb], target[bb], bar_index[0], target[bb], color=color.blue, width=2)
//     bullclose = line.new(bar_index[bb], close[bb], bar_index[0], close[bb], color=color.blue, width=2)
//     bullstop = line.new(bar_index[bb], antitarget[bb], bar_index[0], antitarget[bb], color=color.blue, width=2)
// if (bs<5)
//     bulltarget = line.new(bar_index[bs], antitarget[bs], bar_index[0], antitarget[bs], color=color.purple, width=2)
//     bullclose = line.new(bar_index[bs], close[bs], bar_index[0], close[bs], color=color.purple, width=2)
//     bullstop = line.new(bar_index[bs], target[bs], bar_index[0], target[bs], color=color.purple, width=2)


Lebih banyak