Stratégie de trading stochastique Dual MACD


Date de création: 2023-09-22 16:55:55 Dernière modification: 2023-09-22 16:55:55
Copier: 0 Nombre de clics: 806
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie combine le MACD double et le StochRSI indice aléatoire pour la détermination du signal de négociation. Le MACD double utilise différents paramètres de réglage pour obtenir un effet rapide et lent, et le StochRSI est utilisé pour la validation du dos de force. La stratégie ajoute également la détermination de la tendance et le contrôle des conditions de perte de risque.

Principe de stratégie

Les signaux de trading de la stratégie sont évalués en fonction des indicateurs suivants:

  • Double MACD: le MACD rapide utilise des paramètres de courte période et le MACD lent utilise des paramètres de longue période pour obtenir des effets de lissage différents.

  • StochRSI: Calcule le plus haut et le plus bas du RSI sur une période donnée pour déterminer si le RSI est en sur-achat ou en sur-vente.

Les règles pour juger les signaux de trading:

  • Faire plus: le MACD rapide traverse l’axe zéro et le MACD lent traverse l’axe zéro, le StochRSI est en survente et traverse la ligne D sur la ligne K, et est en hausse.

  • Faire le vide: le MACD rapide passe sous l’axe zéro et le MACD lent passe sous l’axe zéro, le StochRSI est en survente et traverse la ligne K sous la ligne D, et est en baisse.

Avantages stratégiques

  • La double vérification MACD permet d’éviter les fausses percées et d’améliorer la qualité du signal.

  • Le StochRSI a jugé que le cours était en sur-achat et en sur-vente, et a évité de suivre la chute.

  • Il s’agit d’une stratégie de trading basée sur les grandes tendances, qui vise à réduire les pertes en cas de revers.

  • La mise en œuvre de la vérification des indicateurs sur plusieurs périodes permettra d’améliorer l’efficacité du signal.

  • Régler le risque de contrôle des conditions d’arrêt.

Analyse des risques

  • Le MACD est sujet à de faux signaux et nécessite un filtrage supplémentaire.

  • StochRSI peut être manqué si les paramètres ne sont pas correctement configurés.

  • Les paramètres de point d’arrêt sont déraisonnables et peuvent être trop conservateurs ou radicaux.

  • Le manque de stratégie de gestion des positions et l’impossibilité de stopper dynamiquement les pertes

L’optimisation peut se faire à partir des éléments suivants:

  1. Des conditions de filtrage telles que l’augmentation du volume des transactions ou l’angle de la ligne moyenne.

  2. Optimiser le paramètre StochRSI ou introduire d’autres indicateurs aléatoires.

  3. Modifiez dynamiquement les points de rupture et suivez les points de rupture

  4. Ajout d’un module de gestion des positions, permettant de modifier dynamiquement les positions en fonction de la performance de la stratégie.

Orientation de l’optimisation de la stratégie

Les principaux axes d’optimisation de la stratégie sont:

  1. Optimiser les paramètres de l’indicateur pour améliorer l’efficacité de l’indicateur.

  2. Les conditions de filtrage ont été ajoutées pour filtrer les faux signaux.

  3. Optimiser les stratégies de stop-loss et réaliser des stop-loss dynamiques.

  4. Introduction de la gestion des positions, qui permet de modifier les positions en fonction de l’efficacité de la stratégie.

  5. L’ajout d’un module d’apprentissage automatique pour optimiser automatiquement les données.

Résumer

La stratégie prend en compte de nombreux indicateurs pour former un signal de trading plus fort. Cependant, il est nécessaire d’optimiser la configuration des paramètres, de filtrer davantage les signaux, les pertes dynamiques, etc., afin de réduire les transactions inutiles et d’améliorer la probabilité de gagner.

Code source de la stratégie
/*backtest
start: 2023-09-14 00:00:00
end: 2023-09-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2



//This strategy is an ongoing work in progress. Last updated 8/6/16.
//Feel free to modify it as you see fit, if you do borrow code then send me a link so I 
//can see and maybe borrow some of your code to improve this.
//Thanks to ChrisMoody who I stole the code for setting custom resolution from.
//
//more info in comments at end of script





strategy("MACDouble & StochRSI w/ safeties v0.3", overlay=true)

source = close
useCurrentRes = input(true, title="Uncheck to use custom res./intrv. for 2nd MACD indicator")
resCustom = input(title="Resolution/interval to use for 2nd MACD:",  defval="45")
res = useCurrentRes ? timeframe.period : resCustom

useCurrentRes2 = input(true, title="Uncheck to use custom res/intrv for StochRSI")
resCustom2 = input(title="Resolution to use for StochRSI indicator:",  defval="45")
res2 = useCurrentRes2 ? timeframe.period : resCustom2


//MACD1
fastLength = input(10, title="MACD fast length")
slowlength = input(21, title="MACD slow length")
sigLength = input(9, title="MACD signal length")

MACD = ema(source, fastLength) - ema(source, slowlength)
signal = sma(MACD, sigLength)
delta = MACD - signal



//MACD2
fastLength2 = input(31, title= "2nd MACD fast length")
slowlength2 = input(63, title= "2nd MACD slow length")
sigLength2 = input(30, title= "2nd MACD signal length")

MACD2 = ema(source, fastLength2) - ema(source, slowlength2)
signal2 = sma(MACD2, sigLength2)
delta2 = MACD2 - signal2

MACDRes = security(syminfo.tickerid, res, MACD2)
signalRes = security(syminfo.tickerid,res, signal2)
deltaRes = security(syminfo.tickerid, res, delta2)


uptrend = (close + high)/(close[1] + high[2])
downtrend = (close + low)/(close[1] + low[2])

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(11, minval=1)
lengthStoch = input(11, minval=1)
src = close

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
RSI_buyTrig = input(90)
RSI_sellTrig = input(20)

kRes = security(syminfo.tickerid, res2, k)
dRes = security(syminfo.tickerid, res2, d)


if (delta > 0) and (year>2012) and (deltaRes > 0) and (uptrend > 1) and (  kRes and dRes < RSI_buyTrig) and (kRes > dRes)
    strategy.entry("buy", strategy.long, comment="buy")
    

if (delta < 0) and (year>2012) and (deltaRes < 0) and (downtrend < 1) and ( kRes and dRes > RSI_sellTrig) and (kRes < dRes)
    strategy.entry("sell", strategy.short, comment="sell")
	strategy.exit("sell", loss = 9000)



//  RELEASE NOTES, ETC
//
// The core starting idea for this backtesting script came from the desire to have two traditional
//MACD indicators: one 'fast' and one 'slow'. The slow one is to pretty much smooth out noisy signals
//so that short term changes in price are ignored (ideally). 
//	A brief version history
//		v0.1 - Basic two MACD indicators script
//      v0.2 - Added StochRSI indicator
//      v0.21- Added primitive uptrend/downtrend safety condition 
//      v0.22- Added changable time resolution for MACDslow
//      v0.23- Added exit safeties conditional on loss threshold   
//      v0.3 - Added changeable resolution for StochRSI
//	Future changes planned for next release:
//		-Fine tuning exit safeties
//      -Major overhaul of trade logic/triggers (may be forked as a different script)
//
//I am more than happy to discuss any difficulties you are having, questions about the script, or improvement suggestions.
//I am not a coder and my background is actually in economics, so feel free to debug ;)
//Feel free to tip me on the indcluded bitcoin address on TV as well
// tradingview.com/u/RyanMartin 
// [email protected]