Stratégie de négociation basée sur l'équilibre de la pression

Auteur:ChaoZhang est là., Date: 2023-11-13 11:40:53 Je suis désolé
Les étiquettes:

img

Résumé

Cette stratégie utilise une combinaison d'indicateurs multiples pour déterminer la direction de la tendance et les opportunités de négociation, en adoptant une approche de l'équilibre de pression pour augmenter le taux de gain des transactions.

La logique de la stratégie

  1. Utilisez l'EMA pour calculer la moyenne mobile afin de déterminer la direction générale de la tendance.

  2. Utilisez le MACD pour calculer la différence entre les moyennes mobiles rapides et lentes. Lorsque la différence est supérieure à 0, elle indique une tendance haussière, lorsqu'elle est inférieure à 0, elle indique une tendance baissière.

  3. Utilisez le PSAR pour calculer le point de variation continue. Lorsque la valeur du PSAR est importante, elle indique une tendance à la baisse, lorsque la valeur du PSAR est faible, elle indique une tendance à la hausse.

  4. Lorsque les jugements des trois indicateurs sont cohérents, il s'agit d'une tendance claire qui permet des transactions d'entrée.

  5. Entrez des transactions basées sur des critères d'achat et de vente, et définissez des points de stop loss et de take profit.

  6. Les règles spécifiques sont les suivantes:

    • Condition d'achat: pas de tendance haussière, histogramme MACD < 0, prix de clôture > EMA
    • Condition de vente: tendance haussière, histogramme MACD > 0, prix de clôture < EMA
    • Condition d'arrêt des pertes: le prix atteint la prochaine valeur PSAR
    • Condition de prise de bénéfices: atteindre le ratio de prise de bénéfices prédéfini

Les avantages de la stratégie

  1. L'utilisation de plusieurs indicateurs pour déterminer la tendance améliore la précision.

  2. L'ouverture de transactions basée sur des tendances déterminées par le biais de la balance de pression augmente le taux de gain.

  3. La mise en place d'un stop loss et d'un take profit peut limiter les pertes et bloquer les bénéfices.

  4. Des règles de négociation claires et systématiques le rendent adapté au trading algorithmique.

  5. Les paramètres peuvent être optimisés pour s'adapter à différents produits et délais.

Risques liés à la stratégie

  1. Le jugement de la tendance peut être erroné, ce qui entraîne une orientation commerciale incorrecte.

  2. Les mouvements extrêmes du marché peuvent générer de faux signaux des indicateurs.

  3. La perte d'arrêt est trop grande, incapable de sortir à temps.

  4. Un réglage incorrect des paramètres conduit à des transactions excessives ou manquantes.

  5. Les produits non liquides ne peuvent pas remplir les plans stop loss et take profit.

  6. Les risques peuvent être réduits en optimisant les paramètres, en ajustant les arrêts et en sélectionnant des produits liquides.

Directions d'optimisation

  1. Ajustez la période EMA pour optimiser la précision de la tendance.

  2. Ajustez la période rapide et lente du MACD pour améliorer la sensibilité.

  3. Optimisez les taux de stop loss et de profit pour trouver l'équilibre idéal.

  4. Ajouter d'autres indicateurs auxiliaires pour améliorer le calendrier d'entrée.

  5. Sélectionnez des produits avec une bonne liquidité et de grandes fluctuations.

  6. Adaptez les délais aux différentes caractéristiques du produit.

Résumé

Cette stratégie intègre plusieurs indicateurs pour l'analyse des tendances et entre dans les transactions basées sur des tendances précises, avec un stop loss et un profit prédéfinis, qui peuvent capturer efficacement les mouvements du marché et obtenir de bons rendements tout en assurant une certaine rentabilité.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
strategy(title = "Crypto Scalper", overlay = true,  pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03)
len = input(60, minval=1, title="Length EMA")
src = input(close, title="Source")
out = ema(src, len)
//
fast_length = input(title="Fast Length MACD", type=input.integer, defval=12)
slow_length = input(title="Slow Length MACD", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Oscillator MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])
sma_signal = input(title="Signal Line MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"])

// Calculating
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


start = input(0.02)
increment = input(0.02)
maximum = input(0.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)

tplong=input(0.245, step=0.005)
sllong=input(1.0, step=0.005)
tpshort=input(0.055, step=0.005)
slshort=input(0.03, step=0.005)

if (uptrend and hist >0 and close < out)
	strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short")
	strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT',  alert_message = 'closeshort')
if (not uptrend and hist <0 and close > out)
	strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long")
	strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT',  alert_message = 'closelong')

	

Plus de