Stratégie de négociation quantitative avec confirmation multi-indicateurs

Auteur:ChaoZhang est là., Date: 15 septembre 2023 à 11h55,04
Les étiquettes:

Cet article explique en détail une stratégie de trading quantitative qui utilise la confirmation multi-indicateur pour générer des signaux.

I. Logique stratégique

La stratégie synthétise deux techniques:

(1) 123 Modèle d'inversion

  1. Identifier les bas et les sommets potentiels en fonction des relations étroites des bougies.

  2. Utilisez le stochastique pour valider les signaux d'inversion et éviter les faux signaux.

(2) Accumulation/distribution assouplie

  1. Calculer l'accumulation/distribution et la moyenne mobile.

  2. Déterminer les tendances sur la base des divergences entre l'indicateur et l'AM.

  3. Seuls les signaux agréables provenant des deux techniques sont prélevés.

En exigeant plusieurs confirmations, certains faux signaux peuvent être filtrés et leur précision améliorée.

II. Avantages de la stratégie

Le plus grand avantage est la confirmation multi-indicateur, qui surmonte les limites d'un seul indicateur et renforce la robustesse.

Un autre avantage est la combinaison de deux types de techniques différentes pour une plus grande exhaustivité.

Enfin, les combinaisons offrent également plus d'options de réglage.

III. Risques potentiels

Cependant, certains risques existent:

Premièrement, les combinaisons de plusieurs indicateurs augmentent la difficulté d'optimisation et les risques de suradaptation.

Deuxièmement, les écarts entre les indicateurs nécessitent des règles de jugement claires.

Enfin, certains indicateurs présentent encore des retards.

IV. Résumé

En résumé, cet article a expliqué une stratégie de trading quantitative utilisant des confirmations multi-indicateurs. Il améliore les signaux par synthèse mais nécessite la gestion de la difficulté d'optimisation et des délais d'indicateur.


/*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 )

Plus de