
Strategi ini didasarkan pada Bollinger Bands Gold Fork Dead Fork untuk melakukan lebih banyak shorting. Ketika harga menembus Bollinger Bands ke arah atas, shorting; Ketika harga menembus Bollinger Bands ke arah bawah, overdoing. Selama memegang posisi, akan dilakukan penambahan posisi dan stop loss tracking.
Strategi ini menggunakan 3 lintasan atas dan bawah dari Brin Belt. Lintasan tengah dari Brin Belt adalah rata-rata bergerak n hari, lintasan atas adalah lintasan tengah + k kali perbedaan standar n hari, lintasan bawah adalah lintasan tengah - k kali perbedaan standar n hari.
Ketika harga turun dari bawah ke atas, menunjukkan bahwa harga mulai naik, maka lakukan lebih banyak; ketika harga turun dari atas ke bawah, menunjukkan bahwa harga mulai turun, maka lakukan lebih banyak.
Setelah melakukan short over, maka akan dilanjutkan dengan melakukan up position. Kondisi untuk melakukan up position adalah berdasarkan pada posisi yang telah dipegang. Jika harga kembali menyentuh garis rata-rata, maka akan dibuka lagi posisi untuk melakukan over atau short over.
Stop loss tracking juga akan diperbarui secara real time untuk semua pemegang saham. Stop loss line akan diatur berdasarkan perbedaan antara harga rata-rata pemegang saham saat ini dengan harga Brin.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Ada beberapa cara untuk mengoptimalkan risiko ini:
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi ini secara keseluruhan adalah strategi pelacakan tren yang khas. Strategi ini dapat berjalan secara berurutan dan mendapatkan keuntungan ketika tren muncul. Namun, strategi ini juga memiliki risiko tertentu yang perlu dioptimalkan dan diperbaiki lebih lanjut untuk menyesuaikan diri dengan lebih banyak situasi pasar dan mengurangi risiko yang ditimbulkan oleh terobosan palsu.
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='Bollinger Band strategy with split, limit, stop', shorttitle='bb strategy', overlay=true,commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, pyramiding = 4)
//Summary: Going Long or Short when Entering after Breaking the Bollinger Bands\
//At this time, the stop-loss, profit-taking price, and pyramiding standard\
// are determined from the difference between the position average price and the band price.
//After entering the position, if the price crosses the mid-band line, the stop loss is adjusted to the mid-band line.
//each trade, entry position size = 10% of total cash
//max pyramiding is 4
//commission = 0.01%
in_period = true
bb_length = input.int(20)
bb_mult = input.int(2)
[middle, upper, lower] = ta.bb(close,bb_length, bb_mult)
plot(middle, color=color.aqua)
plot(upper, color=color.orange)
plot(lower, color=color.orange)
long_cond = ta.crossover(close,lower)
short_cond = ta.crossunder(close,upper)
var saved_ph = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size > 0
saved_ph := upper[1]
var saved_pl = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size < 0
saved_pl := lower[1]
avg = strategy.position_avg_price
long_diff = saved_ph-avg
short_diff = saved_pl-avg
long_stoploss = avg - 1*long_diff
short_stoploss = avg - 1*short_diff
long_avgdown = avg - 0.5*long_diff
short_avgup = avg - 0.5*short_diff
long_profit_price = avg + 0.5*long_diff
short_profit_price = avg + 0.5*short_diff
var label _label = na
if in_period
if long_cond and strategy.opentrades==0
strategy.entry("Long",strategy.long)
if long_cond and strategy.opentrades >0 and (close[1]<long_avgdown or close[2]<long_avgdown)
strategy.entry("Long",strategy.long)
if short_cond and strategy.opentrades==0
strategy.entry("Short", strategy.short)
if short_cond and strategy.opentrades>0 and (close[1]>short_avgup or close[2]>short_avgup)
strategy.entry("Short",strategy.short)
plot(avg, style=plot.style_linebr)
plot(strategy.position_size > 0? long_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size > 0? long_avgdown: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size > 0? long_stoploss: na,color=color.red, style=plot.style_linebr)
plot(strategy.position_size < 0? short_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0? short_avgup: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size < 0? short_stoploss: na,color=color.red, style=plot.style_linebr)
if strategy.position_size > 0
if ta.crossover(close, middle)
strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=middle)
else
strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=long_stoploss)
if strategy.position_size < 0
if ta.crossunder(close, middle)
strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=middle)
else
strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=short_stoploss)