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.
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.
La combinaison des avantages des deux stratégies pour rendre les décisions commerciales plus stables et plus fiables
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
Il n’y a pas d’exclusivité dans le fait de faire plus que ce que la plupart des gens attendent de nous.
Les stratégies sont simples, claires, faciles à comprendre et à optimiser
Fréquence de transaction modérée, adaptée aux opérations de longue et moyenne ligne
Le marché de l’immobilier est en baisse rapide, mais il n’y a pas d’occasions d’en profiter.
Il y a un certain retard et peut-être une partie de l’opportunité de gagner de l’argent manquée.
Le changement de taureau et d’ours entraîne des pertes plus importantes
La solution est simple:
Réduire de manière appropriée les cycles de calcul et réduire les délais
Ajuster les paramètres de la moyenne mobile pour optimiser l’engagement
Augmenter les stratégies de stop-loss et réduire les pertes individuelles
Ajout d’un ensemble d’indicateurs de tendance pour une meilleure précision de jugement
Augmentation des résultats prédictifs des modèles d’apprentissage automatique pour guider les décisions
Le contrôle de la taille de la position combiné à un indicateur de volatilité
Optimiser les paramètres pour améliorer la stratégie
Test des données sur des périodes plus longues pour vérifier la stabilité
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.
/*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)