
Cette stratégie utilise l’indicateur de la ceinture de Brin pour analyser les fluctuations des prix des crypto-monnaies à différentes périodes (une minute, trois minutes, cinq minutes et quinze minutes) et rechercher des opportunités d’achat et de vente. Elle sert de référence pour l’humeur sur le marché des crypto-monnaies et se concentre principalement sur le prix de cinq minutes de Bitcoin.
La stratégie consiste à calculer simultanément les bandes de Brin sur des créneaux de temps de 1, 3, 5 et 15 minutes. Les bandes de Brin sont constituées de n jours (defaut 20 jours) de moyennes mobiles et de multiples de leur écart standard (defaut 1,5 fois). Les moyennes mobiles représentent le prix moyen de la pièce pendant une certaine période, tandis que l’écart standard reflète l’ampleur des fluctuations de prix.
La stratégie utilise cette caractéristique de l’indicateur des bandes de Brin pour juger de la dernière évolution du marché à différents intervalles de temps (une minute, trois minutes, cinq minutes et quinze minutes). Lorsque le prix sur les intervalles de trois minutes ou cinq minutes franchit la bande de Brin, la stratégie juge que le marché a émis le dernier signal de vente ou d’achat.
Après avoir ouvert une position, la stratégie définit également des conditions de stop-loss. Si le prix de la position augmente ou diminue de 25%, il est mis en stop-loss; si le prix augmente ou diminue de plus de 25% dans la direction opposée, il est mis en stop-loss.
Cette stratégie combine les courts et moyens délais des mouvements du marché. Les intervalles de 1 et 5 minutes permettent de déterminer les dernières avancées du marché, et les intervalles de 15 minutes permettent d’évaluer les tendances intermédiaires, ce qui permet d’éviter d’être induit en erreur par les fluctuations courtes du marché.
Cette stratégie vise à combler les écarts entre les lignes de la ceinture de Brin, les lignes supérieures et inférieures, afin de ne pas manquer les opportunités d’achat et de vente.
Le bitcoin est utilisé comme une référence et un baromètre de l’humeur du marché, permettant d’améliorer la précision de la prise de décision.
Les conditions d’arrêt de la perte de freinage permettent de contrôler efficacement le risque.
La formation de Brin a un certain retard et peut manquer le meilleur moment pour entrer.
Si le marché de la crypto-monnaie dans son ensemble est confronté à des risques systémiques tels que les événements Black Swans tels que les mots de passe, la stratégie est difficile à gérer efficacement.
Bien qu’un stop loss soit mis en place, les accidents qui dépassent ce seuil peuvent entraîner des pertes plus importantes.
Les paramètres stratégiques tels que la longueur de la période, le multiple de l’écart standard et d’autres paramètres mal configurés peuvent entraîner une baisse de la qualité du signal de négociation.
Les solutions sont les suivantes:
Les meilleurs moments d’entrée sont déterminés en fonction d’autres critères.
Accroître l’évaluation des risques systémiques sur le marché.
Réduire de manière appropriée la taille de la position et le stop loss de chaque transaction.
Les paramètres d’optimisation sont définis et vérifiés.
Ajoutez plus de temps à l’évaluation, comme 30 minutes ou 60 minutes de l’indicateur de la ceinture de Brin.
Choisissez les paramètres de la bande de Brin les plus appropriés en fonction des caractéristiques des différentes devises pour améliorer l’efficacité de l’indicateur.
Le volume des transactions est un indicateur de la fiabilité de la variation des prix.
En combinaison avec d’autres indicateurs tels que le RSI de Stoch, le MACD, etc., l’exactitude des décisions est améliorée. Ces indicateurs peuvent considérablement améliorer le jugement sur l’évolution réelle du marché.
Comparer les tendances des prix et les corrélations entre les différentes devises, en choisissant les plus compétitifs.
Optimiser les stratégies de stop-loss et déterminer les paramètres optimaux grâce à une analyse statistique des résultats.
Cette stratégie est une stratégie de négociation de crypto-monnaie à la courbe d’une chaîne de dérivation multi-temps. Elle se concentre sur les variations de prix à court et à moyen terme sur le marché. Elle utilise l’indicateur de la chaîne de dérivation pour juger de l’état de la surabondance du marché.
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(shorttitle="Crypto BB", title="Multi-Interval Bollinger Band Crypto Strategy", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1.5, minval=0.001, maxval=50, title="StdDev")
interval1m = request.security(syminfo.tickerid, '1', src)
interval3m = request.security(syminfo.tickerid, '3', src)
interval5m = request.security(syminfo.tickerid, '5', src)
interval15m = request.security(syminfo.tickerid, '5', src)
btcinterval5m = request.security("BTC_USDT:swap", "5", src)
bitcoinSignal = 'flat'
var entryPrice = 0.000
ma(source, length, _type) =>
switch _type
"SMA" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
bitcoinBasis = ma(btcinterval5m, length, maType)
bitcoinDev = ta.stdev(btcinterval5m, length)
bitcoinUpper = bitcoinBasis + bitcoinDev
bitcoinLower = bitcoinBasis - bitcoinDev
basis1m = ma(interval1m, length, maType)
basis3m = ma(interval3m, length, maType)
basis5m = ma(interval5m, length, maType)
basis15m = ma(interval5m, length, maType)
dev1m = mult * ta.stdev(interval1m, length)
dev3m = mult * ta.stdev(interval3m, length)
dev5m = mult * ta.stdev(interval5m, length)
upper1m = basis1m + dev1m
lower1m = basis1m - dev1m
upper3m = basis3m + dev3m
lower3m = basis3m - dev3m
upper5m = basis5m + dev5m
lower5m = basis5m - dev5m
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis3m, "Basis 3 minute", color=#2962FF, offset = offset)
p3upper = plot(upper3m, "Upper", color=#2962FF, offset = offset)
p3lower = plot(lower3m, "Lower", color=#2962FF, offset = offset)
//Exit protocols
if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Buy'
entryPrice := strategy.opentrades.entry_price(0)
if ((interval1m - entryPrice)/entryPrice) * 30 > .25
strategy.close('Buy', comment='Take Profit on Buy')
if ((interval1m - entryPrice)/entryPrice) * 30 < -.25
strategy.close('Buy', comment='Stop Loss on Buy')
if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Sell'
entryPrice := strategy.opentrades.entry_price(0)
if ((entryPrice - interval1m)/entryPrice) * 30 > .25
strategy.close('Sell', comment='Take Profit on Sell')
if ((entryPrice - interval1m)/entryPrice) * 30 < -.25
strategy.close('Sell', comment='Stop Loss on Sell')
//Bitcoin Analysis
if (btcinterval5m < bitcoinUpper and btcinterval5m[1] > bitcoinUpper[1] and btcinterval5m[2] < bitcoinUpper[2] and btcinterval5m[3] < bitcoinUpper[3])
bitcoinSignal := 'Bear'
if (btcinterval5m > bitcoinUpper and btcinterval5m[1] < bitcoinUpper[1] and btcinterval5m[2] > bitcoinUpper[2] and btcinterval5m[3] > bitcoinUpper[3])
bitcoinSignal := 'Bull'
//Short protocols
if (interval3m < basis3m and interval3m[1] > basis3m[1] and interval3m[2] < basis3m[2] and interval3m[3] < basis3m[3]) or
(interval5m < basis5m and interval5m[1] > basis5m[1] and interval5m[2] < basis5m[2] and interval5m[3] < basis5m[3])
and strategy.opentrades.entry_id(0) != 'Sell'
and src < basis1m and src < basis15m
if strategy.opentrades.entry_id(0) == 'Buy'
strategy.close('Buy', 'Basis Band Bearish Reversal')
//strategy.order('Sell', strategy.short, comment = 'Basis band fractal rejection', stop = (upper1m + basis1m)/2)
if (interval3m < upper3m and interval3m[1] > upper3m[1] and interval3m[2] < upper3m[2] and interval3m[3] < upper3m[3]) or
(interval5m < upper5m and interval5m[1] > upper5m[1] and interval5m[2] < upper5m[2] and interval5m[3] < upper5m[3])
and strategy.opentrades.entry_id(0) != 'Sell' and bitcoinSignal == 'Bear' and src < upper1m and src < basis15m
if strategy.opentrades.entry_id(0) == 'Buy'
strategy.close('Buy', 'Bearish Trend Reversal')
strategy.order('Sell', strategy.short, comment = 'Upper band fractal rejection', stop = (upper1m + basis1m)/2)
if (interval3m > basis3m and interval3m[1] < basis3m[1] and interval3m[2] > basis3m[2] and interval3m[3] > basis3m[3]) or
(interval5m > basis5m and interval5m[1] < basis5m[1] and interval5m[2] > basis5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy'
and src > basis1m and src > basis15m
if strategy.opentrades.entry_id(0) == 'Sell'
strategy.close('Sell', 'Basis Band Bullish Reversal')
//strategy.order('Buy', strategy.long, comment = 'Basis band fractal rejection', stop = (lower1m + basis1m)/2)
if (interval3m > lower3m and interval3m[1] < lower3m[1] and interval3m[2] > lower3m[2] and interval3m[3] > lower3m[3]) or
(interval5m > lower5m and interval5m[1] < lower5m[1] and interval5m[2] > lower5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy'
and src > lower1m and src > basis15m and bitcoinSignal == 'Bull'
if strategy.opentrades.entry_id(0) == 'Sell'
strategy.close('Sell', 'Bullish Trend Reversal')
strategy.order('Buy', strategy.long, comment = 'Lower band fractal rejection', stop = (lower1m + basis1m)/2)