Stratégie de négociation de renversement quantitatif au plus bas

Auteur:ChaoZhang est là., Date: 2023-12-08 10h45 et 49 min
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie de trading d'inversion quantitative intelligente conçue pour les crypto-monnaies. Elle utilise la technologie multi-temps et l'indicateur RSI adaptatif pour identifier les fonds potentiels à court terme du marché, et entre pour l'inversion près du fond pour obtenir des rendements excessifs.

Principe de stratégie

Premièrement, la stratégie utilise le changement de prix et de volume de négociation pour calculer l'indicateur RSI adaptatif, en jugeant les éventuels fonds du marché à court terme.

Plus précisément, l'indicateur RSI adaptatif est calculé comme suit: d'abord calculer le changement de prix pour chaque chandelier, puis calculer le volume de négociation de ce chandelier. Multipliez les deux pour obtenir une dynamique quantifiée pour ce chandelier. Appliquez le calcul RSI sur la dynamique quantifiée et prenez la moyenne de N périodes pour obtenir l'indicateur RSI adaptatif final. Cet indicateur peut clairement identifier les fonds du marché.

En plus de cela, cette stratégie intègre une technologie multi-temporelle pour juger des signaux sur une période plus longue, en évitant les interférences du bruit de marché à court terme.

Analyse des avantages

L'avantage majeur de cette stratégie réside dans l'identification précise des fonds de marché à court terme à l'aide de l'indicateur RSI adaptatif, qui fournit des signaux efficaces pour le trading d'inversion de fonds.

Comparé aux indicateurs RSI traditionnels, l'indicateur RSI adaptatif introduit une dynamique quantifiée dans son calcul, ce qui le rend plus sensible au marché des crypto-monnaies en évolution rapide, et par conséquent capable d'identifier les fonds plus tôt et plus précisément, offrant un avantage pour le trading d'inversion de fonds.

En outre, cette stratégie combine les avantages du suivi de tendance et du trading d'inversion. Dans des conditions de marché incertaines, elle peut tirer profit du trading d'inversion. Dans un marché haussier clair, elle peut également suivre la tendance.

Analyse des risques

Le principal risque de cette stratégie est que l'exactitude de l'identification du bas ne peut pas être garantie à 100%. Il peut y avoir d'énormes fluctuations irrationnelles sur le marché à court terme. Si le bas s'étend plus bas, de grands risques de stop loss seraient rencontrés.

En outre, des divergences peuvent se produire entre les différents délais.

Pour contrôler les risques, cette stratégie adopte des mécanismes de stop loss relativement conservateurs et prend des profits par lots, optimisant progressivement les rendements.

Directions d'optimisation

Cette stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres du RSI adaptatif pour améliorer l'exactitude du jugement du bas du marché.

  2. Ajouter d'autres indicateurs de confirmation pour éviter de faux signaux, tels que la combinaison avec des indicateurs de volume, etc.

  3. Optimiser le mécanisme d'arrêt des pertes pour permettre une plage d'arrêt des pertes plus large tout en assurant un bon rapport risque/rendement, afin de capturer plus de bénéfices de tendance.

  4. Optimiser la sélection des délais pour assurer la fiabilité du signal à plus grande échelle.

  5. Testez cette stratégie sur différents produits de crypto-monnaie et sélectionnez ceux qui fonctionnent le mieux.

Résumé

Cette stratégie de trading d'inversion quantitative intelligente identifie les fonds à court terme potentiels en utilisant l'indicateur RSI adaptatif et la technologie multi-temps. Sa nature inverse permet des profits excessifs dans des conditions de marché incertaines, tout en étant capable de suivre des tendances claires. Avec des optimisations continues, cette stratégie a le potentiel de générer des signaux de trading plus fiables et d'obtenir des profits stables à long terme.


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

// © theCrypster 2020

//@version=4
strategy(title = "Low Scanner strategy crypto", overlay = false, pyramiding=1,initial_capital = 1000, 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.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
leng=1
p1=close[1]
min=input(10)
len55 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
//taken from https://www.tradingview.com/script/Ql1FjjfX-security-free-MTF-example-JD/
tf3 = input("60", type=input.resolution)
ti = change( time(tf3) ) != 0
T_c = fixnan( ti ? close : na )

vrsi = rsi(cum(change(T_c) * volume), leng)
pp=wma(vrsi,len55)

d=(vrsi[1]-pp[1])
min1 =input(1)
len100 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min1 / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
x=ema(d,len100)
//
zx=x/-1
col=zx > 0? color.lime : color.orange
plot(zx,color=col,linewidth=1)
//

tf10 = input("60", title = "Timeframe", type = input.resolution, options = ["1", "5", "15", "30", "60","120", "240","360","720", "D", "W"])

length = input(24, title = "Period", type = input.integer)
shift = input(1, title = "Shift", type = input.integer)

hma(_src, _length)=>
    wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
    
hma3(_src, _length)=>
    p = length/2
    wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)


a = security(syminfo.tickerid, tf10, hma(close, length))
b =security(syminfo.tickerid, tf10, hma3(close[1], length)[shift])
//plot(a,color=color.gray)
//plot(b,color=color.yellow)
close_price = close[0]
len = input(25)

linear_reg = linreg(close_price, len, 0)


//plot(linear_reg, color=color.blue, title="LR", linewidth=3)

buy=crossover(linear_reg, b) 
sell=crossunder(linear_reg, b) 
//
l = crossover(zx,0) or buy
        
if l 
    strategy.entry("buy", strategy.long)

per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=10, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=1, minval=0.01)
tp2=input(title=" Take profit2", defval=2, minval=0.01)
tp3=input(title=" Take profit3", defval=3, minval=0.01)
tp4=input(title=" Take profit4", defval=5, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Plus de