
Cette stratégie est basée sur la fourche dorée de la ceinture de Brin pour effectuer plus de prises de position. Lorsque le prix franchit la ceinture de Brin, faites une prise de position; lorsque le prix franchit la ceinture de Brin, faites une prise de position.
La stratégie utilise les 3 trajets de la bande de Brin vers le haut et vers le bas. Le trajet de la bande de Brin est la moyenne mobile de n jours, le trajet de la bande supérieure est le trajet de la bande intermédiaire + k fois l’écart-type de n jours, et le trajet de la bande inférieure est le trajet de la bande intermédiaire - k fois l’écart-type de n jours.
Lorsque le prix est descendu de bas en haut, indique que le prix a commencé à monter, alors faites plus; lorsque le prix est descendu de haut en bas, indique que le prix a commencé à baisser, alors faites moins.
Après avoir effectué un shorting supplémentaire, la position continue d’être augmentée. La condition de l’augmentation de la position est basée sur la position déjà détenue. Si le prix touche à nouveau la ligne moyenne, la position sera à nouveau augmentée ou réduite.
Le suivi des pertes de toutes les positions est également mis à jour en temps réel. La ligne de perte est définie en fonction de la différence entre le prix moyen de la position actuelle et le prix de la ceinture de Brin.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
Pour ces risques, il est possible d’optimiser les choses de la manière suivante:
Cette stratégie peut être optimisée dans les domaines suivants:
Cette stratégie est une stratégie de suivi de tendance typique dans son ensemble. Elle permet de tirer profit de la tendance en cas de rupture. Cependant, elle comporte également un certain risque.
/*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)