
Cette stratégie est basée sur les indicateurs de la marque moyenne dynamique, en combinaison avec les bandes de Brin et le RSI pour filtrer les signaux de transaction, pour réaliser une stratégie de suivi de la tendance qui ne fait que faire plus et pas de blanchiment. La stratégie juge la tendance en calculant la variation de la marque moyenne dynamique du prix de clôture de la ligne de Heck et en comparant avec les bandes de Brin pour émettre un signal de transaction.
Le cœur de cette stratégie est de calculer la variation de la marque moyenne dynamique du prix de clôture de la ligne de Heck. Plus précisément, il s’agit de calculer la différence de la marque moyenne de la ligne K actuelle par rapport aux deux lignes K précédentes, puis de multiplier le coefficient de sensibilité pour obtenir la variation de la marque moyenne exacte.
On compare ensuite cette variation avec la différence entre les trains de la bande de Brin et les trains de la bande de Brin. Si la variation de la ligne moyenne de Mark est supérieure à la variation de la bande de Brin, on considère que la tendance se produit.
En outre, la stratégie a également un filtre RSI qui n’émet des signaux multiples que lorsque le RSI est supérieur à la marge, évitant ainsi le risque d’un renversement de tendance.
Les mesures d’atténuation des risques comprennent: un ajustement approprié des paramètres pour les rendre plus stables, un retour de tendance en combinaison avec d’autres indicateurs, une utilisation uniquement dans des tendances claires sur les lignes longues, etc.
Il y a un peu de place pour l’optimisation de cette stratégie:
Essayez différentes sources de prix, telles que le prix de clôture, la moyenne, etc., pour obtenir un meilleur effet de lissage.
Adaptation des paramètres de cycle de la ligne de Marc et de la bande de Bryn pour optimiser les différentes variétés
Essayez de remplacer les coefficients de sensibilité par des ratios pour rendre les résultats plus intuitifs
Ajout d’autres filtres, tels que la moyenne de tendance, le volume des transactions, etc., pour améliorer la qualité du signal
Développer des stratégies d’hélicoptère, en fonction de la forme de l’indicateur de l’opération inverse
L’adhésion à un mécanisme de coupe-défaut pour une meilleure maîtrise des risques
Cette stratégie est généralement une stratégie de suivi de tendance plus stable. Elle utilise la courbe de la moyenne dynamique pour déterminer la direction de la tendance, identifier les points de rupture de la courbe de Brin, filtrer les faux signaux RSI, réaliser un système de tendance qui ne fait que faire plus. Mais il existe également un certain risque, nécessitant l’optimisation des paramètres pour différentes variétés et cycles, et ne peut pas tirer profit de la baisse.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
///////////Original Script Courtesy of Lazy_Bear.... Absolute Legend\\\\\\\\\\\\\\\
strategy('SmoothedWaddah', overlay=false, initial_capital=1)
sensitivity = input(150, title='Sensitivity')
fastLength = input(20, title='MacD FastEMA Length')
slowLength = input(40, title='MacD SlowEMA Length')
channelLength = input(20, title='BB Channel Length')
mult = input(1.5, title='BB Stdev Multiplier')
RSI14filter = input(40, title='RSI Value trade filter')
////////////MacD Calculation of price//////////////////////////////
calc_macd(source, fastLength, slowLength) =>
fastMA = ta.ema(source, fastLength)
slowMA = ta.ema(source, slowLength)
fastMA - slowMA
/////////BolingerBand Calculation of Price///////////////////////
calc_BBUpper(source, length, mult) =>
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
basis + dev
calc_BBLower(source, length, mult) =>
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
basis - dev
//////heinkenashi chart call for closing price "smoothing mechanism"\\\\\\\\\\\\\\\\\\\\\\\\\\\
point = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)
////////////////////T1 is change in MacD current candle from previous candle Sensitivy amplifies calculation/////////////////////
t1 = (calc_macd(point, fastLength, slowLength) - calc_macd(point[1], fastLength, slowLength)) * sensitivity
//////////////////////T2 is T1 from two candles prior\\\\\\\\\\\\\\\\\\\\\\\\\\\
t2 = (calc_macd(point[2], fastLength, slowLength) - calc_macd(point[3], fastLength, slowLength)) * sensitivity
////////////////E1 is difference in bolinger band upper and lower...E2 is E1 from one candle prior not needed//////////////
e1 = calc_BBUpper(ohlc4, channelLength, mult) - calc_BBLower(ohlc4, channelLength, mult)
//e2 = (calc_BBUpper(close[1], channelLength, mult) - calc_BBLower(close[1], channelLength, mult))
//////signal bar printing.. Up if MacD positive .. Down if MacD negative//////////
trendUp = t1 >= 0 ? t1 : 0
trendDown = t1 < 0 ? -1 * t1 : 0
///////plots difference in macD*Sensitivity, color change if increasing or decreasing.
//////color is green/lime if explosion is up \ color is red/orange if explosion is down/////////
plot(trendUp, style=plot.style_columns, linewidth=1, color=trendUp < trendUp[1] ? color.new(color.lime,45) : color.new(color.green,45), title='UpTrend')
plot(trendDown, style=plot.style_columns, linewidth=1, color=trendDown < trendDown[1] ? color.new(color.orange,45) : color.new(color.red,45), title='DownTrend')
plot(e1, style=plot.style_line, linewidth=2, color=color.new(#A0522D, 0), title='ExplosionLine')
////////////Entry conditions and Concept/////////////////////
////////////Long Only System. T1 is measuring the distance between MACD EMA's. This is Multiplied
////////////by the sensitivity so that it can be compared to the difference between BollingerBand.
/////////////{this could have been a ratio maybe i will work with that in a different script.}
/////////////I found that 135-175 sensitivy allows for values to be compared on most charts.....
////////////If the (difference between the EMA)*(Sensitivity) is greater than (BB upper line- BB lower line)
////////////it is considered an explosion in either the downside or the upside.The indicator will print
///////////a bar higher than the trigger line either green or red (up or down respectively)//////////////////
longCondition = trendUp > e1 and ta.rsi(close, 14) > RSI14filter
if longCondition
strategy.entry('up', strategy.long)
strategy.close('up', trendDown > e1)