Il s'agit d'une stratégie de négociation quantitative de long terme qui combine les avantages de l'inversion du point pivot et des stratégies de moyenne mobile minimale. Il suit la tendance majeure pendant un marché haussier et détermine les signaux d'inversion après avoir observé le rail supérieur du point pivot pour aller long.
La stratégie intègre l'inversion du point pivot et les stratégies de moyenne mobile au moins carrée. La stratégie d'inversion du point pivot calcule les prix les plus élevés et les plus bas sur un certain nombre de jours de négociation pour obtenir les rails supérieur et inférieur. Lorsque les prix franchissent le rail supérieur, cela est jugé comme un signal d'inversion.
Plus précisément, la stratégie calcule d'abord le prix le plus élevé des 3 dernières barres et le prix le plus bas des 16 dernières barres pour obtenir les rails de point de pivot supérieur et inférieur.
Combine les forces de deux stratégies pour des décisions commerciales plus stables et fiables
La stratégie des points pivots évalue les points d'inversion, tandis que la LSMA filtre les fausses ruptures, réduisant les risques de négociation
Il ne dure que longtemps, conformément aux attentes psychologiques de la plupart des gens.
Logie de stratégie simple et claire, facile à comprendre et à optimiser
Fréquence de négociation modérée, adaptée aux opérations à moyen et long terme
Incapable de saisir les opportunités en déclin rapide
Un certain retard existe, peut manquer certaines opportunités de progression
Perte plus importante en cas d'inversion de la tendance du marché
Les solutions:
Réduire de manière appropriée le cycle de calcul pour réduire le décalage
Ajuster les paramètres de l'AM pour optimiser la participation
Ajouter un stop loss pour réduire la perte unique
Ajouter plusieurs indicateurs de tendance pour améliorer la précision
Incorporer la prédiction de l'apprentissage automatique pour guider les décisions
Combiner les indicateurs de volatilité pour contrôler la taille des positions
Optimiser les paramètres pour améliorer le taux de victoire
Testez les données sur des délais plus longs pour vérifier la stabilité
Cette stratégie intègre les forces de l'inversion des points pivots et des stratégies LSMA pour contrôler les risques tout en jugeant les inversions de tendance. Avec une structure simple pour une compréhension et des tests faciles, elle est parfaite pour les débutants à apprendre et à pratiquer.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@author exlux99 strategy(title = "Pivot Reversal Upgraded long only", overlay = true, pyramiding=1,initial_capital = 100, 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.1) ///////////// //time fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2010, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2031, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true // length = input(title="Length MA", type=input.integer, defval=20) offset = 0//input(title="Offset", type=input.integer, defval=0) src = input(close, title="Source") lsma = linreg(src, length, offset) //LSMA leftBars = input(3) rightBars = input(16) swh = pivothigh(leftBars, rightBars) swl = pivotlow(leftBars, rightBars) swh_cond = not na(swh) hprice = 0.0 hprice := swh_cond ? swh : hprice[1] le = false le := swh_cond and time_cond? true : (le[1] and high > hprice ? false : le[1]) //leverage multiplier=input(1.0, step=0.5) g(v, p) => round(v * (pow(10, p))) / pow(10, p) risk = input(100) leverage = input(1.0, step = 0.5) c = g((strategy.equity * leverage / open) * (risk / 100), 4) //entry strategy.entry("long", strategy.long,c, when=le and close > lsma, comment="long", stop=(hprice + syminfo.mintick) * multiplier) swl_cond = not na(swl) lprice = 0.0 lprice := swl_cond ? swl : lprice[1] se = false se := swl_cond ? true : (se[1] and low < lprice ? false : se[1]) strategy.close("long", when=se)