
Strategi ini menggunakan rata-rata bergerak batuan sebagai indikator teknis utama, yang dikombinasikan dengan dua jalur Bollinger Bands, strategi breaker untuk mengidentifikasi tren pasar. Lihatlah ke bawah ketika harga menembus jalur Bollinger Bands, dan lihatlah lebih banyak ketika harga menembus jalur Bollinger Bands.
Menghitung Moving Average (CBMA): Menggunakan EMA Smooth Moving Average (SMA) yang beradaptasi, dapat secara efektif melacak perubahan harga.
Setting Brin Belt Parameter: Pilih moving averages untuk medium track, up and down track menggunakan standar deviasi stomach multiplier setting, dapat disesuaikan dengan pasar.
Penembusan perdagangan: harga naik lebih tinggi saat menembus tren naik, lebih tinggi saat menembus tren turun, menggunakan strategi pemecah tren.
Menggunakan modus cancel order, hanya melakukan transaksi satu arah pada satu waktu.
Setel jumlah transaksi tetap, dapat disesuaikan dengan dana.
Rata-rata bergerak batuan parut memiliki kelenturan yang baik, sehingga dapat secara efektif melacak harga.
Adaptasi algoritma EMA mengoptimalkan real-time moving average.
Brin membawa sinyal ke arah yang jelas untuk menerobos.
Menggunakan mode trend tracking untuk menghindari whipsaw.
Volume transaksi tetap dapat mengontrol kerugian satu kali.
Pengaturan parameter pita Brin perlu dioptimalkan, dan terlalu besar atau terlalu kecil adalah masalah.
Sinyal penembusan mungkin terjadi.
Stop loss harus diatur untuk mengendalikan kerugian.
Volume transaksi tetap tidak dapat disesuaikan dengan posisi pasar.
Tidak ada keuntungan yang lebih besar dari hanya melakukan transaksi satu arah.
Optimalkan parameter Binance secara dinamis agar Binance lebih sesuai dengan situasi pasar.
“Selain itu, kita juga harus mempertimbangkan bagaimana kita bisa memaksimalkan potensi kita”, ujar dia.
Tambahkan Tracking Stop Loss untuk mengunci keuntungan.
Perdagangan lindung nilai, dengan melakukan lebih banyak shorting untuk mendapatkan keuntungan yang lebih besar.
Bergabung dengan sistem manajemen posisi.
Strategi ini digunakan sebagai strategi pelacakan tren breaker, menggunakan indikator teknologi rata-rata bergerak yang beradaptasi sendiri, dengan kombinasi dua jalur Brin. Strategi ini sederhana dan mudah dioperasikan, volume perdagangan tetap dapat mengendalikan risiko, dengan nilai realistis tertentu. Namun, ada juga beberapa masalah, seperti false breakout dan optimasi parameter, yang perlu dioptimalkan dengan menambahkan lebih banyak indikator teknis, sambil mengendalikan risiko, dan meningkatkan efektivitas strategi secara realistis.
/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="CBMA Bollinger Bands Strategy directed [ChuckBanger]", shorttitle="CBMA BB CB",
overlay=true )
length = input(title="Length", type=input.integer, defval=12, minval=1)
regular = input(title="Regular BB Or CBMA?", type=input.bool, defval=false)
src = input(title="Source", type=input.source, defval=close)
mult = input(title="Multipler", type=input.float, defval=2.3, minval=.001, maxval=50, step=.1)
emaLen = input(title="EMA Length", type=input.integer, defval=11, minval=1)
emaGL = input(title="EMA Gain Limit", type=input.integer, defval=50, minval=1)
highlight = input(title="Highlight On/Off", type=input.bool, defval=true)
direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))
//strategy.risk.max_drawdown(50, strategy.percent_of_equity)
calc_hma(src, length) =>
hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
hullma
calc_cbma(price, length, emaLength, emaGainLimit) =>
alpha = 2 / (emaLength + 1)
ema = ema(price, emaLength)
int leastError = 1000000
float ec = 0
float bestGain = 0
for i = emaGainLimit to emaGainLimit
gain = i / 10
ec := alpha * ( ema + gain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1])
error = price - ec
if (abs(error) < leastError)
leastError = abs(error)
bestGain = gain
ec := alpha * ( ema + bestGain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1])
hull = calc_hma(price, length)
cbma = (ec + hull) / 2
cbma
cbma = calc_cbma(src, length, emaLen, emaGL)
basis = regular ? sma(src, length) : cbma
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
cbmaColor = fixnan(highlight and not regular ? cbma > high ? color.purple : cbma < low ? color.aqua : na : color.red)
plot(basis, color=cbmaColor)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)
if (crossover(src, lower))
strategy.entry("CBMA_BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="CBMA_BBandLE")
else
strategy.cancel(id="CBMA_BBandLE")
if (crossunder(src, upper))
strategy.entry("CBMA_BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="CBMA_BBandSE")
else
strategy.cancel(id="CBMA_BBandSE")