Stratégie quantitative de suivi des tendances inter-cycles


Date de création: 2023-12-15 15:59:37 Dernière modification: 2023-12-15 15:59:37
Copier: 0 Nombre de clics: 600
1
Suivre
1621
Abonnés

Stratégie quantitative de suivi des tendances inter-cycles

Aperçu

Cette stratégie utilise l’indicateur PSAR pour déterminer la tendance des prix, l’indicateur ADX pour déterminer la force de la tendance, l’indicateur RSI pour déterminer la zone de survente et l’indicateur CMF pour déterminer le flux de fonds, pour construire une stratégie de trading quantifiée de suivi de tendance à travers les cycles. Cette stratégie se positionne rapidement lorsque le prix est déterminé à la rupture de la rupture de la rupture pour former une nouvelle direction de tendance, et suit en permanence la tendance subséquente, tout en assurant la prise des principaux gains de la tendance.

Principe de stratégie

Les principales règles de cette politique sont les suivantes:

  1. L’utilisation de l’indicateur PSAR pour déterminer si le prix est en hausse, et le passage sous le PSAR est considéré comme la fin d’une hausse et la transition vers une baisse;

  2. L’indicateur RSI est requis au-dessus de la ligne médiane 50, pour filtrer les faux rebond qui se forment dans les zones de survente;

  3. L’ADX a demandé une valeur supérieure à sa propre moyenne EMA, indiquant que les résultats de l’analyse des tendances sont un signe de continuité;

  4. la demande de CMF est supérieure à zéro et est considérée comme un flux de fonds;

Un signal d’achat est généré lorsque les quatre conditions ci-dessus sont remplies. Un signal de vente est généré lorsque le RSI est inférieur à 50, l’ADX est inférieur à sa propre moyenne EMA et le CMF est inférieur à 0.

La stratégie prend en compte la direction de la tendance des prix, l’intensité de la tendance, l’état de survente et le flux de fonds vers plusieurs dimensions pour définir les règles de négociation, et établit des jugements logiques rigoureux lors de la détermination de la génération de signaux de négociation, afin de filtrer efficacement les fausses ruptures et de garantir la capture d’une tendance à forte probabilité de durabilité.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. La mise en place de règles de négociation combinées à plusieurs indicateurs permet de prévenir efficacement les fausses percées et d’assurer la qualité des signaux de négociation.

  2. Identifier et suivre rapidement les tendances émergentes afin de tirer pleinement parti de leur évolution;

  3. Le processus de configuration suit les conditions de filtrage, ce qui permet de contrôler efficacement les risques et d’assurer l’efficacité du suivi;

  4. Les indicateurs de la force de la tendance peuvent être combinés pour éviter de se retrouver dans une impasse de reprise.

Analyse des risques

Les principaux risques associés à cette stratégie sont les suivants:

  1. Une seule stratégie est susceptible de cumuler des risques et nécessite un ajustement approprié des positions pour contrôler l’ensemble des risques;

  2. Le suivi des conditions de filtrage doit être suivi de près afin d’éviter une perte de coupe après l’annulation des conditions.

  3. Cette stratégie est axée sur la ligne moyenne et longue, et le contenu à court terme est vulnérable à la volatilité et présente un risque de rupture.

Les mesures de gestion des risques correspondantes comprennent: l’optimisation des règles de gestion des positions, la mise en place d’une ligne d’alerte au risque, l’assouplissement approprié de la distance entre les lignes de stop-loss, etc.

Direction d’optimisation

Cette stratégie peut être améliorée de la manière suivante:

  1. Optimiser les paramètres, qui sont actuellement subjectifs et peuvent être optimisés automatiquement par des méthodes d’apprentissage automatique;

  2. l’ajout d’un module de gestion des positions permettant de modifier les positions en fonction de la dynamique du risque;

  3. Augmentation de l’optimisation des mécanismes de stop-loss, tels que le stop-loss de suivi, le stop-loss de temps, le stop-loss de rupture.

Résumer

Cette stratégie intègre plusieurs règles de jugement d’indicateurs, permet une localisation rapide et un suivi continu des tendances émergentes, vérifie l’efficacité de l’analyse multidimensionnelle de la combinaison des tendances et des fonds dans les transactions quantifiées. La stratégie peut être utilisée comme stratégie de base pour le suivi des tendances à travers les périodes, ou peut être construite en une stratégie de quantification linéaire à moyen et long terme stable après optimisation des paramètres et des modules.

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

//@version=4
strategy("psar+ adx + cmf + rsi Strategy", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 )

start = input(1.02)
increment = input(1.02)
maximum = input(1.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
	firstTrendBar = false
	SAR := nextBarSAR
	if bar_index == 1
		float prevSAR = na
		float prevEP = na
		lowPrev = low[1]
		highPrev = high[1]
		closeCur = close
		closePrev = close[1]
		if closeCur > closePrev
			uptrend := true
			EP := high
			prevSAR := lowPrev
			prevEP := high
		else
			uptrend := false
			EP := low
			prevSAR := highPrev
			prevEP := low
		firstTrendBar := true
		SAR := prevSAR + start * (prevEP - prevSAR)
	if uptrend
		if SAR > low
			firstTrendBar := true
			uptrend := false
			SAR := max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := min(AF + increment, maximum)
	if uptrend
		SAR := min(SAR, low[1])
		if bar_index > 1
			SAR := min(SAR, low[2])
	else
		SAR := max(SAR, high[1])
		if bar_index > 1
			SAR := max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)

//rsi strat
length = input( 50 )
middle_RSI=input(49)
price = close
vrsi = rsi(price, length)

//cmf
lengthCMF = input(20, minval=1)
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthCMF) / sum(volume, lengthCMF)

//ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
ema_length=input(10)
ema_sig= ema(sig,ema_length)


long = not uptrend  and vrsi > middle_RSI and sig > ema_sig   and mf>0 
short= uptrend   and vrsi < middle_RSI and sig<ema_sig and mf<0

strategy.entry("long",1,when=long)
strategy.close('long',when=short)