Stratégie de trading quantitative basée sur la vérification multi-indicateurs


Date de création: 2023-09-15 11:55:04 Dernière modification: 2023-09-15 11:55:04
Copier: 1 Nombre de clics: 719
1
Suivre
1617
Abonnés

Cet article détaille une stratégie quantitative pour la formation de signaux de transaction par vérification multi-indicateurs. Cette stratégie utilise des jugements intégrés de plusieurs indicateurs pour améliorer la fiabilité du signal.

Premièrement, les principes stratégiques

Cette stratégie utilise deux techniques de négociation:

(i) 123 Stratégie de retour en arrière

  1. Calculer le rapport de clôture de la ligne K pour déterminer les formes possibles du bas et du haut;

  2. déterminer les signaux de retournement en combinant des indicateurs aléatoires pour éviter les signaux erronés;

(ii) l’indicateur de la surélévation

  1. Calculer l’indicateur de densité de vide et sa moyenne mobile;

  2. Les tendances de l’écart par rapport à l’indicateur et à la ligne moyenne;

  3. Le signal de transaction final est généré uniquement lorsque les deux techniques sont d’accord.

Ainsi, grâce à la vérification multi-indicateurs, il est possible de filtrer certains faux signaux et d’améliorer l’exactitude du signal.

Deux, les avantages stratégiques

Le plus grand avantage de cette stratégie est la validation de combinaisons de plusieurs indicateurs, ce qui évite les limites d’un seul indicateur et renforce la stabilité du signal.

Un autre avantage est la combinaison de deux types de techniques différentes, ce qui améliore encore l’exhaustivité du jugement.

Enfin, l’utilisation combinée offre plus d’espace de paramètres pour les tests d’optimisation.

Troisièmement, les risques potentiels

Mais cette stratégie présente aussi les problèmes suivants:

Tout d’abord, la combinaison de plusieurs paramètres augmente la difficulté d’optimisation des paramètres, et une mauvaise configuration peut entraîner une suroptimisation.

Deuxièmement, il peut y avoir des divergences entre les signaux techniques et il est nécessaire de définir des règles claires de jugement.

Enfin, certains indicateurs, tels que les indicateurs aléatoires, sont en retard.

Quatrième partie, résumé

Cet article décrit en détail une stratégie de trading quantifié par vérification multi-indicateurs. Elle améliore la qualité du signal en utilisant des indicateurs combinés, mais en tenant compte de la difficulté d’optimisation des paramètres et du retard de l’indicateur.

Code source de la stratégie
/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/07/2021
// 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
// Accumulation is a term used to describe a market controlled by buyers;
// whereas distribution is defined by a market controlled by sellers.
// Williams recommends trading this indicator based on divergences:
//  Distribution of the security is indicated when the security is making 
//  a new high and the A/D indicator is failing to make a new high. Sell.
//  Accumulation of the security is indicated when the security is making 
//  a new low and the A/D indicator is failing to make a new low. Buy. 
//
// 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


SWAD(Length) =>
    pos = 0.0
    xWAD = 0.0
    xPrice = close
    xWAD:= iff(close > nz(close[1], 0), nz(xWAD[1],0) + close - low[1], 
             iff(close < nz(close[1],0), nz(xWAD[1],0) + close - high[1],0))
    xWADMA = sma(xWAD, Length)
    pos:= iff(xWAD > xWADMA, 1,
             iff(xWAD < xWADMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Smoothed Williams AD", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Smoothed Williams AD ----")
LengthWillAD = input(14, step = 1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSWAD = SWAD(LengthWillAD)
pos = iff(posReversal123 == 1 and posSWAD == 1 , 1,
	   iff(posReversal123 == -1 and posSWAD == -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 )