
Diese Strategie basiert auf dem Brin-Band Gold-Fork-Dead-Fork, bei dem man mehr Short-Offs macht. Man macht Short-Offs, wenn der Preis die Brin-Band überschreitet. Man macht Short-Offs, wenn der Preis die Brin-Band überschreitet.
Die Strategie verwendet die oberen und unteren 3 Bahnen des Brin-Bandes. Der Brin-Band-Mittelbahn ist ein Moving Average von n Tagen, der oberen Bahn ist die n-Tage-Standarddifferenz des mittleren Bahns + k-mal und der unteren Bahn ist die n-Tage-Standarddifferenz des mittleren Bahns - k-mal. N ist in der Regel 20, k in der Regel 2.
Wenn der Preis von unten nach oben ausbricht, zeigt dies, dass der Preis zu steigen beginnt, und dann mehr zu tun; Wenn der Preis von oben nach unten ausbricht, zeigt dies, dass der Preis zu fallen beginnt, und dann zu tun.
Nach einem Über- oder Unterkurs wird die Position weiter aufgenommen. Die Aufnahme erfolgt auf der Grundlage der bereits gehaltenen Position, und wenn der Preis die Durchschnittslinie erneut berührt, wird die Position erneut über- oder unterlegt.
Der Stop-Loss-Tracker aller Positionen wird auch in Echtzeit aktualisiert. Die Stop-Loss-Linie wird basierend auf der Differenz zwischen dem Durchschnittspreis der aktuellen Positionen und dem Brin-Band-Preis festgelegt.
Diese Strategie hat folgende Vorteile:
Die Strategie birgt auch einige Risiken:
Für diese Risiken können Optimierungen in folgenden Bereichen vorgenommen werden:
Diese Strategie kann in folgenden Bereichen optimiert werden:
Diese Strategie ist insgesamt eine typische Trendverfolgungsstrategie. Sie kann im Laufe der Zeit einen Gewinn erzielen, wenn ein Trend auftritt. Gleichzeitig ist sie mit einem gewissen Risiko verbunden, das weiter optimiert und verbessert werden muss, um sich an mehr Marktbedingungen anzupassen und das Risiko von Falschbrüchen zu verringern.
/*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)