
Strategi ini adalah berdasarkan strategi penembusan kembalian pada laluan Brin. Apabila harga jatuh ke bawah laluan Brin, masuklah ke dalam kedudukan panjang.
Strategi ini menggunakan laluan tali pinggang Brin 20 kitaran. Laluan tali pinggang Brin terdiri daripada lintasan tengah, lintasan atas dan lintasan bawah. Lintasan tengah adalah purata bergerak sederhana 20 kitaran, lintasan atas terdiri daripada lintasan tengah ditambah 2 kali perbezaan piawai, lintasan bawah terdiri daripada lintasan tengah tolak 2 kali perbezaan piawai.
Apabila harga jatuh ke bawah landasan, menunjukkan harga memasuki keadaan oversold, ketika ini dilakukan long position entry. Selepas masuk, harga berhenti ditetapkan sebagai harga terendah K baris ketika masuk, sasaran berhenti adalah Brin jalur di atas landasan. Dengan demikian, strategi adalah proses mengejar harga dari keadaan oversold kembali ke garis rata, mencapai keuntungan.
Strategi ini mempunyai kelebihan berikut:
Strategi ini mempunyai beberapa risiko:
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi ini secara keseluruhan mempunyai pemikiran yang jelas dan mempunyai kebolehan operasi tertentu. Tetapi, ia menggunakan jangka masa yang tidak tinggi untuk menilai overbought dan oversold, tidak dapat menilai trend harga dengan sempurna. Selain itu, mekanisme stop loss juga perlu dioptimumkan. Kemudian dapat dioptimumkan dari segi memilih penunjuk yang lebih tepat, parameter pengoptimuman dan memperbaiki mekanisme stop loss, meningkatkan keuntungan strategi.
/*backtest
start: 2023-01-15 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
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/
// © Ronsword
//@version=5
strategy("bb 2ND target", overlay=true)
// STEP 1. Create inputs that configure the backtest's date range
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 1997"),
title="Start Date", group="Backtest Time Period",
tooltip="This start date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Sept 2023"),
title="End Date", group="Backtest Time Period",
tooltip="This end date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
// STEP 2. See if the current bar falls inside the date range
inTradeWindow = true
// Bollinger Bands inputs
length = input.int(20, title="Bollinger Bands Length")
mult = input.float(2.0, title="Multiplier")
src = input(close, title="Source")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// EMA Settings
ema20 = ta.ema(close, 20)
plot(ema20, color=color.blue, title="20 EMA")
// Entry condition
longEntryCondition = ta.crossover(close, lower)
// Define stop loss level as the low of the entry bar
var float stopLossPrice = na
if longEntryCondition
stopLossPrice := low
// Top Bollinger Band itself is set as the target
topBandTarget = upper
// Enter long position when conditions are met
if inTradeWindow and longEntryCondition
strategy.entry("Long", strategy.long, qty=1)
// Set profit targets
strategy.exit("ProfitTarget2", from_entry="Long", limit=topBandTarget)
// Set stop loss
strategy.exit("StopLoss", stop=stopLossPrice)
// Plot Bollinger Bands with the same gray color
plot(upper, color=color.gray, title="Upper Bollinger Band")
plot(lower, color=color.gray, title="Lower Bollinger Band")