Système de suivi du marché haussier

Auteur:ChaoZhang est là., Date: 2024-01-31 11h01h45
Les étiquettes:

img

Résumé

Le système de suivi du marché haussier est un système de trading mécanique basé sur le suivi des tendances. Il utilise des indicateurs de tendance sur le graphique de 4 heures pour filtrer les signaux de trading, tandis que les décisions d'entrée sont prises sur la base des indicateurs du graphique de 15 minutes. Les principaux indicateurs incluent le RSI, le stochastique et le MACD.

Principaux

La logique de base de ce système est de combiner des indicateurs de différents délais pour identifier la direction de la tendance et le moment de l'entrée. Plus précisément, le RSI, le stochastique et l'EMA sur le graphique de 4 heures doivent s'aligner pour déterminer la direction générale de la tendance. Cela peut filtrer efficacement la plupart du bruit. En même temps, le RSI, le stochastique, le MACD et l'EMA sur le graphique de 15 minutes doivent également s'accorder sur le biais haussier ou baissier pour déterminer le moment précis de l'entrée. Cela nous permet de trouver de bons points d'entrée et de sortie.

Les avantages

  1. Les combinaisons de plusieurs délais peuvent filtrer efficacement les faux signaux et identifier les principales tendances
  2. Les indicateurs détaillés de 15 minutes peuvent capturer des temps d'entrée relativement précis
  3. La combinaison d'indicateurs comprenant RSI, Stochastique, MACD et autres indicateurs techniques traditionnels est facile à comprendre et à optimiser.
  4. Des méthodes strictes de gestion des risques sont adoptées telles que le profit, le stop loss, le stop loss de suivi, etc. pour contrôler efficacement le risque des transactions individuelles.

Les risques

  1. Le système est assez sensible aux délais à court terme, ce qui peut générer beaucoup de signaux de trading, conduisant à un suréchange.
  2. Risque de fausse rupture: les jugements des indicateurs à court terme peuvent être erronés, ce qui entraîne de faux signaux de rupture.
  3. Risque de défaillance des indicateurs: les indicateurs techniques ont eux-mêmes certaines limites et peuvent échouer dans des conditions de marché extrêmes

En conséquence, le système peut être optimisé par les aspects suivants:

  1. Ajuster les paramètres des indicateurs pour les rendre plus adaptés aux différents environnements de marché
  2. Améliorer les conditions de filtrage pour réduire la fréquence des transactions et prévenir les sur-trades
  3. Optimiser les stratégies de stop profit et de stop loss pour mieux s'adapter aux fourchettes de fluctuation du marché
  4. Tester différentes combinaisons d'indicateurs pour trouver la solution optimale

Résumé

Dans l'ensemble, le système de suivi du marché haussier est une tendance très pratique suivant le système de négociation mécanique. Il utilise une combinaison d'indicateurs multi-temporels pour identifier les tendances du marché et les principaux moments d'entrée. Avec des paramètres raisonnables et des tests d'optimisation continus, le système peut s'adapter à la plupart des environnements de marché et réaliser des profits stables. Cependant, nous devons également être conscients de certains des risques potentiels et prendre des mesures proactives pour prévenir et atténuer ces risques.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Cowabunga System from babypips.com", overlay=true)
// 4 Hour Stochastics
length4 = input(162, minval=1, title="4h StochLength"), smoothK4 = input(48, minval=1, title="4h StochK"), smoothD4 = input(48, minval=1, title="4h StochD")
k4 = sma(stoch(close, high, low, length4), smoothK4)
d4 = sma(k4, smoothD4)

//15 min Stoch
length = input(10, minval=1, title="15min StochLength"), smoothK = input(3, minval=1, title="15min StochK"), smoothD = input(3, minval=1, title="15min StochD")
k = sma(stoch(close, high, low, length), smoothK)
d= sma(k, smoothD)

//4 hour RSI
src1 = close, len1 = input(240, minval=1, title="4H RSI Length")
up1 = rma(max(change(src1), 0), len1)
down1 = rma(-min(change(src1), 0), len1)
rsi4 = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))

//15 min RSI
src = close, len = input(9, minval=1, title="15M RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi15 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//MACD Settings
source = close
fastLength = input(12, minval=1, title="MACD Fast"), slowLength=input(26,minval=1, title="MACD Slow")
signalLength=input(9,minval=1, title="MACD Signal")
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)

// Stops and Profit inputs
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 400, title = "Trailing Stop", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Offset", minval = 0)

// Stops and Profit Targets
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

//Specific Time to Trade
myspecifictradingtimes = input('0500-1600', title="My Defined Hours")

longCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
longCondition2 = rsi4 <= 80
longCondition3 = k4 >= d4 and k4 <= 80
longCondition4 = ema(close, 80) >= ema(close, 162)
allLongerLongs = longCondition1 and longCondition2 and longCondition3 and longCondition4

longCondition5 = rsi15 <= 80
longCondition6 = k >= d and k <= 80 and fastMA >= slowMA
longCondition7 = ema(close, 5) >= ema(close, 10)
allLongLongs = longCondition5 and longCondition6 and longCondition7

if crossover(close, ema(close, 5)) and allLongerLongs and allLongLongs
    strategy.entry("Long", strategy.long, comment="LongEntry")

shortCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
shortCondition2 = rsi4 >= 20
shortCondition3 = k4 <= d4 and k4 >= 20
shortCondition4 = ema(close, 80) <= ema(close, 162)
allShorterShorts = shortCondition1 and shortCondition2 and shortCondition3 and shortCondition4

shortCondition5 = rsi15 >= 20
shortCondition6 = k <= d and k >= 20 and fastMA <= slowMA
shortCondition7 = ema(close, 5) <= ema(close, 10)
allShortShorts = shortCondition5 and shortCondition6 and shortCondition7

if crossunder(close, ema(close,5)) and allShorterShorts and allShortShorts
    strategy.entry("Short", strategy.short, comment="ShortEntry")

strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)

Plus de