Stratégie de trading combinée multifactorielle


Date de création: 2023-09-12 16:05:10 Dernière modification: 2023-09-12 16:05:10
Copier: 0 Nombre de clics: 701
1
Suivre
1617
Abonnés

Cette stratégie utilise différents types d’indicateurs techniques pour former une stratégie de trading quantitative intégrée. Cette stratégie rassemble les avantages de plusieurs facteurs pour améliorer la précision des décisions de trading.

Le principe de la stratégie:

  1. Calculez 123 indicateurs de retournement pour déterminer si le prix a subi un retournement de trois jours.

  2. Calculer l’indicateur de force d’achat Elder pour déterminer si le prix est en survente.

  3. Lorsque les deux émettent simultanément un signal d’achat, effectuez une opération de multiplication. Lorsque les deux émettent simultanément un signal de vente, effectuez une opération de blanchiment.

  4. La validation des facteurs de l’indicateur permet de filtrer efficacement une partie du signal de transaction bruyant.

  5. La combinaison de différents types d’indicateurs peut améliorer le jugement sur la situation du marché.

Les avantages de cette stratégie:

  1. La vérification multifactorielle réduit la probabilité d’une transaction erronée.

  2. Leurs capacités à identifier les situations complexes du marché ont été améliorées.

  3. Les paramètres de la stratégie combinée sont plus difficiles à optimiser et présentent certains avantages.

Le risque de cette stratégie:

  1. Les combinaisons multi-indicateurs nécessitent un certain temps pour optimiser les paramètres afin d’obtenir la meilleure correspondance.

  2. Il peut y avoir des incohérences entre les indicateurs.

  3. La stabilité globale d’une stratégie combinée peut être inférieure à celle d’une stratégie à un seul indicateur.

En résumé, la stratégie de négociation peut améliorer la précision de la décision en combinant les avantages de plusieurs facteurs. Cependant, il est nécessaire de faire attention aux problèmes de correspondance entre les différents indicateurs et d’obtenir des rendements supplémentaires stables grâce à une optimisation paramétrique stricte.

Code source de la stratégie
/*backtest
start: 2022-09-05 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/05/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
// Developed by Dr Alexander Elder, the Elder-ray indicator measures buying 
// and selling pressure in the market. The Elder-ray is often used as part 
// of the Triple Screen trading system but may also be used on its own.
// Dr Elder uses a 13-day exponential moving average (EMA) to indicate the 
// market consensus of value. Bull Power measures the ability of buyers to 
// drive prices above the consensus of value. Bear Power reflects the ability 
// of sellers to drive prices below the average consensus of value.
// Bull Power is calculated by subtracting the 13-day EMA from the day's High. 
// Bear power subtracts the 13-day EMA from the day's Low.
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// 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

BP(Trigger,Length) =>
    pos = 0
    DayHigh = 0.0
    xPrice = close
    xMA = ema(xPrice,Length)
    DayHigh := iff(dayofmonth != dayofmonth[1], high, max(high, nz(DayHigh[1])))
    nRes = DayHigh - xMA
    pos := iff(nRes > Trigger, 1,
    	     iff(nRes < Trigger, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Elder Ray (Bear Power) ", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthBP = input(13, minval=1)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBP = BP(Trigger,LengthBP)
pos = iff(posReversal123 == 1 and posBP == 1 , 1,
	   iff(posReversal123 == -1 and posBP == -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 )