Cette stratégie est connue sous le nom de stratégie de trading de crypto-monnaie de fusion de multiples indicateurs dynamiques. La stratégie génère un signal de trading en intégrant les trois indicateurs dynamiques MFI, RSI et Stoch RSI pour juger de la forme d’achat et de vente excessive des crypto-monnaies.
L’indicateur MFI est l’indicateur des flux de capitaux. Il prend en compte le volume d’échanges et les informations sur les prix pour juger de la force d’achat et de vente du marché. Un MFI inférieur à 20 signifie une survente et un MFI supérieur à 80 signifie une survente.
L’indicateur RSI est un indicateur de force relative. Il décrit le niveau de survente des prix. Un RSI inférieur à 30 signifie une survente et un RSI supérieur à 70 signifie une survente.
L’indicateur Stoch RSI est une variante de l’indicateur RSI. Il détermine si l’indicateur RSI lui-même est en cours de survente. Le paramètre est défini sur 20-80 pour représenter la zone de survente.
La logique de négociation de cette stratégie:
Lorsque les trois indicateurs MFI, RSI et Stoch RSI sont simultanément en dessous de la zone de survente, considérez comme un signal de survente multiple et faites plus;
Lorsque les trois indicateurs sont simultanément supérieurs à la zone de survente, il s’agit d’un signal de survente multiple et d’un couvert.
L’avantage de cette stratégie est qu’elle permet de filtrer les faux signaux et d’améliorer l’exactitude des entrées grâce à la confirmation de plusieurs indicateurs. Cependant, les paramètres doivent être suffisamment optimisés et les risques doivent être maîtrisés avec les arrêts de perte.
Dans l’ensemble, les indicateurs de dynamique sont plus sensibles aux impulsions des prix des crypto-monnaies, et la fusion de plusieurs indicateurs peut améliorer la stabilité stratégique. Cependant, les traders doivent rester attentifs aux changements de la structure du marché et rester conscients de l’ajustement flexible de la stratégie.
/*backtest
start: 2023-08-13 00:00:00
end: 2023-09-12 00:00:00
period: 1h
basePeriod: 15m
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/
// Crypto Crew strategy entry signal long/short with stop loss. Exit signal not provided.
//
// Indicators: MFI + RSI + STOCH RSI
// Entry criteria: long when the three are oversold, short when the three indicators are overbought.
// Exit criteria: Take profit at Fib levels (not demonstrated here) measured from prevous highs/low.
// Feel free to contribute
//@version=4
strategy("Crypto Crew")
//inputs
source = hlc3
rsi_length = input(14, minval=1)
mfi_lenght = input(14, minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
okay = "Okay"
good = "Good"
veryGood = "Very good"
tradingOpportunity = input(title="Opportunity Type", defval=veryGood, options=[okay, good, veryGood])
longThreshhold = tradingOpportunity==okay? 40 : tradingOpportunity==good ? 30 : tradingOpportunity==veryGood? 20 : 0
shortThreshhold = tradingOpportunity==okay? 60 : tradingOpportunity==good ? 70 : tradingOpportunity==veryGood? 80 : 0
//lines
mfi = mfi(source, mfi_lenght)
rsi = rsi(source, rsi_length)
rsi1 = rsi(close, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
longSignal = mfi<longThreshhold and rsi<longThreshhold and k<longThreshhold and d<longThreshhold? 1:-1
shortSignal = mfi>shortThreshhold and rsi>shortThreshhold and k>shortThreshhold and d>shortThreshhold? 1:-1
if longSignal > 0
strategy.entry("Long", strategy.long)
strategy.exit(id="Long Stop Loss", stop=close*0.8) //20% stop loss
if shortSignal > 0
strategy.entry("Short", strategy.short, stop=close*1.2)
strategy.exit(id="Short Stop Loss", stop=close*1.2) //20% stop loss
plot(k, color=color.blue)
plot(d, color=color.red)
plot(rsi, color=color.yellow)
plot(mfi, color=color.blue)
hline(longThreshhold, color=color.gray, linestyle=hline.style_dashed)
hline(shortThreshhold, color=color.gray, linestyle=hline.style_dashed)