Le Low Scanner Smart Tracking Method est une stratégie de trading Forex non-repainting. Il utilise un scanner bas pour localiser les points bas et se combine avec Hull Moving Average pour le jugement des signaux commerciaux, ce qui peut atteindre un taux de gain élevé.
Premièrement, la stratégie utilise un scanner bas pour localiser les points bas. Le scanner bas calcule les valeurs du RSI du prix et du volume, et les compare avec la courbe WMA pour déterminer les points bas lorsque le RSI est inférieur à WMA.
Deuxièmement, la stratégie utilise la moyenne mobile de Hull pour le jugement des signaux de trading. Elle calcule deux Hull MA avec des périodes différentes, et va long lorsque la plus courte période Hull MA traverse la plus longue période un, et va court quand elle traverse sous.
Enfin, la stratégie combine les signaux de balayage de bas point et les signaux Hull MA, et déclenche uniquement les signaux Hull MA lorsque le scanner bas donne des signaux de bas point, formant la stratégie d'entrée.
De cette façon, en identifiant d'abord les points faibles du marché, puis en suivant la tendance, il peut efficacement éviter un mauvais moment d'entrée et améliorer le taux de gain du système de négociation.
Les principaux avantages de la méthode de suivi intelligent bas scanner sont les suivants:
En utilisant le scanner bas, il peut identifier avec précision les points bas du marché et éviter d'acheter aux points hauts.
Le Hull MA est un excellent indicateur de suivi des tendances qui peut capturer des tendances plus importantes.
La combinaison du scanner bas et de l'Hull MA se vérifie et filtre beaucoup de bruit et de faux signaux.
L'adoption d'un mécanisme de sortie progressif de stop loss peut maximiser les bénéfices et éviter les retraits.
La stratégie utilise une logique basée sur les indicateurs et ne manipule pas les données historiques, ce qui est fiable.
Les principaux risques de cette stratégie sont les suivants:
Les paramètres peuvent être ajustés pour élargir la plage de balayage.
Les marchés peuvent s'inverser brusquement, provoquant un stop loss.
Les paramètres doivent être optimisés à plusieurs reprises pour trouver la meilleure combinaison.
Cette stratégie ne s'applique qu'aux paires de devises présentant des tendances évidentes et ne convient pas aux marchés à fourchette ou aux marchés oscillants.
La stratégie peut être optimisée dans les aspects suivants:
Optimiser les paramètres du scanner bas pour identifier plus précisément les points bas.
Optimiser les paramètres de Hull MA pour suivre les tendances avec plus de précision.
Ajoutez d'autres filtres d'indicateurs comme MACD, KDJ pour améliorer la fiabilité du signal.
Ajoutez des prédictions de modèles d'apprentissage automatique pour faciliter le jugement des signaux commerciaux.
Optimiser le mécanisme d'arrêt des pertes afin de l'ajuster dynamiquement en fonction de la volatilité du marché.
Optimiser la stratégie de dimensionnement des positions afin d'ajuster dynamiquement la taille des positions en fonction des règles de gestion de l'argent.
Le Low Scanner Smart Tracking Method est une stratégie de trading Forex à taux de gain élevé et non-repeint. Il peut identifier avec précision les points bas du marché et entrer dans la tendance lorsque la tendance est claire, en bloquant les bénéfices avec un stop loss progressif. La stratégie a une grande marge d'optimisation et peut être améliorée de plusieurs façons pour devenir un système de trading automatisé puissant.
/*backtest start: 2023-10-24 00:00:00 end: 2023-10-25 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © theCrypster 2020 //@version=4 // strategy(title = "Low Scanner Forex strategy", overlay = false, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0) strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"]) strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all strategy.risk.allow_entry_in(strat_dir_value) leng=1 p1=close[1] min=input(1440) len55 = timeframe.isintraday and timeframe.multiplier >= 1 ? min / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7 //taken from https://www.tradingview.com/script/Ql1FjjfX-security-free-MTF-example-JD/ tf3 = input("W", type=input.resolution) ti = change( time(tf3) ) != 0 T_c = fixnan( ti ? close : na ) vrsi = rsi(cum(change(T_c) * volume), leng) pp=wma(vrsi,len55) d=(vrsi[1]-pp[1]) min1 =input(60) len100 = timeframe.isintraday and timeframe.multiplier >= 1 ? min1 / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7 x=ema(d,len100) // zx=x/-1 col=zx > 0? color.lime : color.orange plot(zx,color=col,linewidth=1) // tf10 = input("W", title = "Timeframe", type = input.resolution, options = ["1", "5", "15", "30", "60","120", "240","360","720", "D", "W"]) length = input(24, title = "Period", type = input.integer) shift = input(1, title = "Shift", type = input.integer) hma(_src, _length)=> wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length))) hma3(_src, _length)=> p = length/2 wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p) a = security(syminfo.tickerid, tf10, hma(close, length)) b =security(syminfo.tickerid, tf10, hma3(close[1], length)[shift]) //plot(a,color=color.gray) //plot(b,color=color.yellow) close_price = close[0] len = input(25) linear_reg = linreg(close_price, len, 0) //plot(linear_reg, color=color.blue, title="LR", linewidth=3) buy=crossover(linear_reg, b) sell=crossunder(linear_reg, b) // // Time period input testStartYear = input(2016, "BACKTEST START YEAR", minval = 1980, maxval = 2222) testStartMonth = input(06, "BACKTEST START MONTH", minval = 1, maxval = 12) testStartDay = input(01, "BACKTEST START DAY", minval = 1, maxval = 31) testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2222, "BACKTEST STOP YEAR", minval=1980, maxval = 2222) testStopMonth = input(12, "BACKTEST STOP MONTH", minval=1, maxval=12) testStopDay = input(31, "BACKTEST STOP DAY", minval=1, maxval=31) testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod = time >= testPeriodStart and time <= testPeriodStop ? true : false l = crossover(zx,0) or buy if l and testPeriod strategy.entry("buy", strategy.long) per(pcnt) => strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na) stoploss=input(title=" stop loss", defval=25, minval=0.01) los = per(stoploss) q1=input(title=" qty_percent1", defval=25, minval=1) q2=input(title=" qty_percent2", defval=25, minval=1) q3=input(title=" qty_percent3", defval=25, minval=1) tp1=input(title=" Take profit1", defval=0.5, minval=0.01) tp2=input(title=" Take profit2", defval=1, minval=0.01) tp3=input(title=" Take profit3", defval=1.5, minval=0.01) tp4=input(title=" Take profit4", defval=2, minval=0.01) strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los) strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los) strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los) strategy.exit("x4", profit = per(tp4), loss = los)