Stratégie combinée de négociation à inversion multifactorielle

Auteur:ChaoZhang est là., Date: 2023-09-20 15:13:58 Je suis désolé
Les étiquettes:

Résumé

Cette stratégie combine plusieurs indicateurs d'inversion pour prendre des positions contre-directionnelles lorsque des signaux d'inversion de prix émergent.

La logique de la stratégie

  1. Premièrement, le système d'inversion 123 est utilisé pour identifier les signaux d'inversion des prix, basés sur l'action des prix de deux barres consécutives et l'indicateur stochastique.

  2. Deuxièmement, l'indicateur de Kurtose rapide et lente (FSK) évalue l'inversion du sentiment en fonction de l'accélération de l'élan.

  3. Le système de renversement 123 et l'indicateur de renversement FSK sont combinés sous forme de combo.

  4. Le trading inverse peut être activé, en prenant le short lorsque le signal original est long, et vice versa.

Analyse des avantages

  1. La combinaison de plusieurs facteurs peut améliorer la précision du signal et éviter de faux signaux.

  2. Le système 123 et l'indicateur FSK sont complémentaires pour détecter les renversements dans les délais.

  3. Le reverse trading permet de tirer profit de fortes inversions.

  4. L'utilisation de multiples facteurs d'inversion améliore la robustesse de la stratégie.

  5. Facile à comprendre et à mettre en œuvre, adapté aux débutants en quant trading.

Analyse des risques

  1. Les signaux d'inversion peuvent produire de faux signaux entraînant des pertes.

  2. Le mauvais timing des retours en arrière peut conduire à la poursuite des sommets et des bas.

  3. Le trading inverse peut entraîner des pertes dans des tendances persistantes.

  4. Une mauvaise optimisation des paramètres conduit à un surajustement.

  5. Une fréquence de négociation élevée peut entraîner plus de coûts de transaction.

Directions d'optimisation

  1. Testez en ajoutant d'autres facteurs d'inversion comme RSI, KD pour enrichir la combinaison.

  2. Optimiser les paramètres pour une meilleure sensibilité des indicateurs.

  3. Ajouter un filtre de tendance pour éviter les transactions contre tendance.

  4. Utiliser la dimensionnement dynamique des positions pour optimiser l'efficacité du capital.

  5. Optimiser le stop loss pour limiter les pertes par transaction.

  6. Évaluer l'impact des coûts de transaction afin d'éviter une survente.

Conclusion

Cette stratégie combine le système de renversement 123 et l'indicateur FSK pour négocier des renversements de prix dans la direction opposée. Elle peut filtrer les faux signaux et améliorer la précision.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/10/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This indicator plots the Fast & Slow Kurtosis. The Kurtosis is a market
// sentiment indicator. The Kurtosis is constructed from three different parts.
// The Kurtosis, the Fast Kurtosis(FK), and the Fast/Slow Kurtosis(FSK).
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

FSK(Triger) =>
    pos = 0.0
    xMOM_R = mom(mom(close, 3), 1)
    xMOM_RAvr = ema(xMOM_R, 65)
    xMOM_RWAvr = wma(xMOM_RAvr, 3)
    pos := iff(xMOM_RAvr > Triger and xMOM_RWAvr > Triger, 1,-1) 
    pos

strategy(title="Combo Backtest 123 Reversal & FSK (Fast and Slow Kurtosis)", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Triger = input(0, minval=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFSK = FSK(Triger)
pos = iff(posReversal123 == 1 and posFSK == 1 , 1,
	   iff(posReversal123 == -1 and posFSK == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Plus de