Cette stratégie utilise une combinaison de la moyenne RMA à long terme et de la moyenne EMA à court terme pour juger de la tendance et pour réaliser des arrêts de suivi de la tendance avec des ruptures de hauts et de bas. Une zone de non-échange est également définie pour filtrer les fausses ruptures.
Utilisez la RMA à longue période et l’EMA à courte période pour déterminer la direction de la tendance. Portez la RMA à longue période en dessous de l’EMA à court terme comme un signal négatif et le RMA à longue période en haut comme un signal négatif.
Le prix dépasse le prix le plus élevé de la dernière période donnée, et le stop est suivi du plus élevé.
La zone de non-échange est définie, et le prix qui entre dans cette zone n’ouvre pas de position, pour éviter d’être couvert. La zone de non-échange est déterminée par une certaine proportion de la ligne moyenne RMA.
Le prix d’arrêt est fixé après l’entrée et le profit est retiré dans une certaine proportion.
Les combinaisons de deux lignes sont fiables et précises pour déterminer la direction des tendances.
La méthode de suivi des arrêts de perte permet aux arrêts de perte de suivre la tendance.
La mise en place d’une zone de non-transaction permet de filtrer efficacement les fausses signaux de rupture.
Le paramètre Stop Stop permet à la stratégie d’assurer une liquidation active de sa position après avoir accumulé suffisamment de liquidités.
Il peut y avoir des retards dans la production de la fourche morte, ce qui entraîne une augmentation des pertes.
Un point de trace trop proche du prix peut être frappé par le bruit de la période précédente.
La zone de non-transaction est trop large, ce qui entraîne des opportunités manquées.
Le fait de ne pas arrêter les pertes en temps opportun pourrait entraîner une nouvelle augmentation des pertes.
La réponse:
Optimiser les paramètres de la moyenne pour réduire la probabilité de retard.
Les points d’arrêt sont relâchés de manière appropriée pour éviter une hypersensibilité.
Les tests sont adaptés à la zone de non-transaction pour éviter les occasions manquées.
Ajouter d’autres méthodes de stop loss pour limiter les pertes maximales
Testez d’autres combinaisons d’indicateurs homogènes pour trouver des combinaisons plus compatibles.
L’augmentation des écarts de prix, des indicateurs de jugement tels que le MACD, améliore la stabilité de la stratégie.
L’introduction de paramètres d’optimisation d’algorithmes d’apprentissage automatique pour rendre la stratégie plus intelligente
Les traders peuvent choisir d’utiliser des indicateurs de tendance forte ou faible pour éviter les transactions à contre-courant.
Optimiser les stratégies de gestion des fonds et améliorer les chances de succès.
Cette stratégie utilise une double ligne de parité pour juger de la direction de la tendance et pour bloquer les bénéfices de la tendance en suivant les hauts et les bas pour filtrer les zones de stop-loss et de non-transaction. Le cadre de la stratégie est simple, clair et extensible.
/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-12 00:00:00
period: 3h
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/
// © PatrickGwynBuckley
//@version=5
//var initialCapital = strategy.equity
strategy("PB Trend Scalper", "PB Trend Scalper", overlay = true)
shortma = input.int(55, title="quick ma's")
longma = input.int(100, title="long ma's")
ema55h = ta.ema(high, shortma)
ema55l = ta.ema(low, shortma)
ema200h = ta.rma(high, longma)
ema200l = ta.rma(low, longma)
stock = ta.stoch(close, high, low, 14)
lev = input.int(3, title="leverage")
hhVal = input.int(170, title="Highest high period")
llVal = input.int(170, title="Lowest low period")
hh = ta.highest(high, hhVal)
ll = ta.lowest(low, llVal)
//plot(stock)
plot(hh, color=color.new(color.green, 50))
plot(ll, color=color.new(color.red, 50))
var float downtrade = 0
p = input.float(3.0, title="no trade zone")
l = 3
emadistlong = ema200h + ((ema200h/100)*p)
emadistshort = ema200l - ((ema200h/100)*p)
plot(ema55h)
plot(ema55l)
ntl = plot(emadistlong, color=color.new(color.red, 10))
nts = plot(emadistshort, color=color.new(color.red, 10))
fill(ntl, nts, color=color.new(color.red, 90))
//position size
EntryPrice = close
//positionValue = initialCapital
positionSize = (strategy.equity*lev) / EntryPrice
//plot(strategy.equity)
//standard short
if ema55h < ema200l and close[2] < ema55l and close[1] > ema55l and high[1] < ema55h and close < ema55h and ema55h < emadistshort and strategy.opentrades == 0// and stock > 85
strategy.entry("short", strategy.short, qty=positionSize, comment="short")
downtrade := 1
//reset count
if (ta.crossunder(ema55h, ema200l)) and downtrade == 1
downtrade := 0
//standard long
if ema55l > ema200h and close[2] > ema55h and close[1] < ema55h and low[1] > ema55l and close > ema55l and ema55l > emadistlong and strategy.opentrades <= 1// and stock < 15
strategy.entry("long", strategy.long, qty=positionSize, comment="long")
downtrade := 0
//RESET COUNT ON MA CROSS
if (ta.crossover(ema55l, ema200h)) and downtrade == 0
downtrade := 1
longclose2 = low < ll[1] or low < emadistshort //close < open and open<open[1] and open[2] < open[3] and open[3] < emadistshort//close < ta.lowest(low, 20)//
shortclose2 = high > hh[1] or high>emadistlong//close > open and open>open[1] and open[2]>open[3] and open[3] > emadistlong//high > emadistlong//close > ta.highest(high, 20)//
sl = 3.5
tp = input.float(6.9, title="take profit %")
tp2 = 10
strategy.exit("long exit", "long", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))
strategy.close("long", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
//strategy.exit("long exit", "long2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("long2", when = longclose2, comment = "long exit")
//strategy.close("long", when = (downtrade == 1), comment = "long exit")
strategy.exit("short exit", "short", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))//, loss = 300)
strategy.close("short", when = shortclose2, comment = "short exit")
//strategy.close("short", when = (downtrade == 0), comment = "short exit")
//strategy.exit("short exit", "short2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl)))
//strategy.close ("short2", when = shortclose2, comment = "short exit")
//strategy.close("short2", when = (downtrade == 0), comment = "short exit")
//if (strategy.exit("long exit", "long"))
//downtrade := 1
//else
// downtrade := 0