Stratégie d'équilibre long-short basée sur les points pivots et la moyenne mobile des moindres carrés


Date de création: 2023-12-25 17:47:11 Dernière modification: 2023-12-25 17:47:11
Copier: 0 Nombre de clics: 345
1
Suivre
1166
Abonnés

Stratégie d’équilibre long-short basée sur les points pivots et la moyenne mobile des moindres carrés

Aperçu

Il s’agit d’une stratégie de trading quantitative à plusieurs têtes uniquement, qui combine les avantages de la stratégie d’inversion des pivots et de la stratégie des moyennes mobiles minimales deux fois. La stratégie suit la tendance principale en entrée en bourse, juge les signaux d’inversion plus après avoir observé la formation de la trajectoire des pivots; en même temps, elle exige que le prix de clôture soit supérieur à la moyenne mobile minimale deux fois pour ouvrir des positions plus élevées, ce qui rend la stratégie plus stable.

Principe de stratégie

Cette stratégie combine une stratégie de revers des pivots et une stratégie de la plus petite moyenne mobile deux fois. La stratégie de revers des pivots calcule les prix les plus élevés et les plus bas des derniers jours de négociation, obtenant des hauts et des bas.

Plus précisément, la stratégie commence par calculer le prix le plus élevé des 3 dernières lignes K et le prix le plus bas des 16 dernières lignes K, pour obtenir les points pivots de la trajectoire supérieure et de la trajectoire inférieure. Lorsqu’une trajectoire supérieure se forme, la position est en hausse; lors de la prochaine formation de la trajectoire inférieure, la position est en baisse.

Avantages stratégiques

  1. La combinaison des avantages des deux stratégies pour rendre les décisions commerciales plus stables et plus fiables

  2. Les stratégies de pivot permettent de déterminer les points de retournement, de filtrer les fausses ruptures par les moyennes mobiles minimales de deux fois, et de réduire le risque de transaction

  3. Il n’y a pas d’exclusivité dans le fait de faire plus que ce que la plupart des gens attendent de nous.

  4. Les stratégies sont simples, claires, faciles à comprendre et à optimiser

  5. Fréquence de transaction modérée, adaptée aux opérations de longue et moyenne ligne

Analyse des risques

  1. Le marché de l’immobilier est en baisse rapide, mais il n’y a pas d’occasions d’en profiter.

  2. Il y a un certain retard et peut-être une partie de l’opportunité de gagner de l’argent manquée.

  3. Le changement de taureau et d’ours entraîne des pertes plus importantes

La solution est simple:

  1. Réduire de manière appropriée les cycles de calcul et réduire les délais

  2. Ajuster les paramètres de la moyenne mobile pour optimiser l’engagement

  3. Augmenter les stratégies de stop-loss et réduire les pertes individuelles

Direction d’optimisation

  1. Ajout d’un ensemble d’indicateurs de tendance pour une meilleure précision de jugement

  2. Augmentation des résultats prédictifs des modèles d’apprentissage automatique pour guider les décisions

  3. Le contrôle de la taille de la position combiné à un indicateur de volatilité

  4. Optimiser les paramètres pour améliorer la stratégie

  5. Test des données sur des périodes plus longues pour vérifier la stabilité

Résumer

Cette stratégie intègre les avantages de la stratégie d’inversion des pivots et de la stratégie de la moyenne mobile de la plus petite doublure pour contrôler le risque tout en jugeant le renversement de la tendance. C’est une stratégie robuste.

Code source de la stratégie
/*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)