Prédiction d'inversion et stratégie combinée d'oscillateur

Auteur:ChaoZhang est là., Date: 2023-10-10 10:39:44 Je suis désolé
Les étiquettes:

Résumé

Cette stratégie combine des stratégies d'inversion et d'oscillateur pour obtenir des signaux de trading plus fiables.

La logique de la stratégie

  1. Stratégie de prédiction de l'inversion

    • Utiliser l'oscillateur stochastique pour identifier les conditions de surachat et de survente

    • Prendre des transactions contre-directionnelles lorsque le prix ferme l'inversion sur 2 barres tandis que l'oscillateur stochastique atteint des niveaux de surachat ou de survente

  2. Stratégie de l'oscillateur de Chande

    • Utiliser l'analyse de régression linéaire pour prévoir les prix

    • L'oscillateur affiche la différence en pourcentage entre le prix de clôture et le prix de prévision

    • Générer des signaux de négociation lorsque le prix réel s'écarte sensiblement du prix prévu

  3. Règles de stratégie

    • Calculer simultanément les signaux des deux stratégies

    • Générer des signaux de trading réels uniquement lorsque les deux stratégies s'accordent sur l'achat ou la vente

    • La combinaison filtre les faux signaux des stratégies individuelles, améliorant la fiabilité

Analyse des avantages

  1. La combinaison de plusieurs stratégies permet une évaluation du marché plus solide

  2. Filtre les faux signaux pouvant apparaître dans des indicateurs individuels

  3. La stratégie de renversement capte les opportunités de renversement à court terme

  4. L'oscillateur Chande évalue avec précision les tendances à long terme

  5. Paramètres d'oscillateur stochastique flexibles et adaptables à l'évolution des marchés

  6. Combine des techniques d'analyse pour tirer parti des différentes perspectives de négociation

Analyse des risques

  1. Bien que plus fiables, les stratégies combinées réduisent la fréquence du signal

  2. Requiert une optimisation complexe de plusieurs paramètres de stratégie

  3. Difficiles à inverser dans le temps, il existe des risques de pertes

  4. Prévisions de régression linéaire inefficaces lorsque les prix sont volatiles

  5. Surveillez la divergence des prix par rapport à l'oscillateur stochastique

  6. Les données des tests antérieurs sont insuffisantes, les performances en direct sont incertaines

Des possibilités d'amélioration

  1. Optimiser l'oscillateur stochastique en réduisant les périodes K et D

  2. Testez plus de périodes de régression linéaire pour trouver l'optimum

  3. Ajouter un stop loss pour limiter les pertes

  4. Modifier la logique pour attendre que l'oscillateur stochastique atteigne des extrêmes

  5. Analyser les propriétés statistiques des instruments de négociation

  6. Incorporer plus d'indicateurs comme le MACD pour la robustesse

Résumé

Cette stratégie synthétise plusieurs techniques d'analyse et améliore la qualité du signal grâce à une combinaison, capturant à la fois les renversements à court terme et les tendances à long terme. Mais les performances en direct doivent être validées et les paramètres ajustés en conséquence.


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 08/08/2019
// 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
// The Chande Forecast Oscillator developed by Tushar Chande The Forecast 
// Oscillator plots the percentage difference between the closing price and 
// the n-period linear regression forecasted price. The oscillator is above 
// zero when the forecast price is greater than the closing price and less 
// than zero if it is below.
//
// 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

ChandeForecastOscillator(Length, Offset) =>
    pos = 0
    xLG = linreg(close, Length, Offset)
    xCFO = ((close -xLG) * 100) / close
    pos := iff(xCFO > 0, 1,
           iff(xCFO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Chande Forecast Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCFO = input(14, minval=1)
Offset = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posChandeForecastOscillator = ChandeForecastOscillator(LengthCFO, Offset)
pos = iff(posReversal123 == 1 and posChandeForecastOscillator == 1 , 1,
	   iff(posReversal123 == -1 and posChandeForecastOscillator == -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