L'inversion de pivot est améliorée à long terme seulement - une stratégie à double dynamique

Auteur:ChaoZhang est là., Date: 2023-12-25 17:47:11 Je suis désolé
Les étiquettes:

img

Résumé

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 logique de la stratégie

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.

Les avantages

  1. Combine les forces de deux stratégies pour des décisions commerciales plus stables et fiables

  2. 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

  3. Il ne dure que longtemps, conformément aux attentes psychologiques de la plupart des gens.

  4. Logie de stratégie simple et claire, facile à comprendre et à optimiser

  5. Fréquence de négociation modérée, adaptée aux opérations à moyen et long terme

Analyse des risques

  1. Incapable de saisir les opportunités en déclin rapide

  2. Un certain retard existe, peut manquer certaines opportunités de progression

  3. Perte plus importante en cas d'inversion de la tendance du marché

Les solutions:

  1. Réduire de manière appropriée le cycle de calcul pour réduire le décalage

  2. Ajuster les paramètres de l'AM pour optimiser la participation

  3. Ajouter un stop loss pour réduire la perte unique

Directions d'optimisation

  1. Ajouter plusieurs indicateurs de tendance pour améliorer la précision

  2. Incorporer la prédiction de l'apprentissage automatique pour guider les décisions

  3. Combiner les indicateurs de volatilité pour contrôler la taille des positions

  4. Optimiser les paramètres pour améliorer le taux de victoire

  5. Testez les données sur des délais plus longs pour vérifier la stabilité

Résumé

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)




Plus de