Stratégie de négociation à inversion quantitative rapide à deux voies

Auteur:ChaoZhang est là., Date: 2023-12-19 15:59:36 Je suis désolé
Les étiquettes:

img

Résumé

Il s'agit d'une stratégie de trading de renversement à double voie basée sur le canal de prix, les bandes de Bollinger et l'indicateur rapide RSI. Il combine l'indice de canal pour identifier les tendances, les bandes de Bollinger pour reconnaître les niveaux de support et de résistance, et le RSI rapide pour détecter les signaux de surachat et de survente, afin d'obtenir un trading de renversement efficace.

La logique de la stratégie

La stratégie repose principalement sur les indicateurs suivants pour prendre des décisions commerciales:

  1. Canal de prix: Calcule le prix le plus élevé et le prix le plus bas sur une certaine période et trace la ligne centrale du canal.

  2. Les bandes de Bollinger: la ligne centrale est la ligne centrale du canal de prix. Les bandes supérieure et inférieure sont calculées en fonction de l'écart type de l'écart du prix par rapport à la ligne centrale. Les signaux de trading sont générés lorsque le prix interagit avec les bandes de Bollinger.

  3. Rapide RSI (Période = 2): Détermine les situations de surachat et de survente pour le prix. Va long lorsque le RSI tombe en dessous de 5, court lorsque le RSI dépasse 95.

  4. Indicateur CryptoBottom: Détermine si le prix a franchi le niveau de support. Combiné avec un RSI rapide pour générer des signaux longs à haute probabilité.

Selon le moment où le prix franchit les canaux et les bandes de Bollinger pour effectuer des transactions, et aller long ou court en fonction des indications de surachat et de survente du RSI, la logique de base de cette stratégie est formée.

Les avantages de la stratégie

Cette stratégie présente les avantages suivants:

  1. Le système à double piste augmente la précision du signal. Le canal de prix juge les principales tendances et les bandes de Bollinger identifient des niveaux de support et de résistance précis.

  2. L'indicateur RSI rapide capture les opportunités d'inversion en détectant les surachats et les survente.

  3. CryptoBottom accélère la confirmation des signaux longs.

  4. Des paramètres raisonnables et faciles à optimiser. Des combinaisons de paramètres simples et intuitives facilitent l'optimisation des paramètres.

Risques liés à la stratégie

Cette stratégie comporte également certains risques:

  1. Les paramètres incorrects pour les bandes de Bollinger peuvent manquer des mouvements de prix importants ou générer de faux signaux.

  2. Les modèles d'interaction entre les deux voies peuvent être complexes, nécessitant une certaine sophistication technique pour des jugements précis.

  3. Le risque d'un échec de l'inversion existe toujours, car il est impossible d'éliminer la probabilité d'un retrait du prix.

  4. Difficulté d'optimisation des paramètres. Les paramètres optimaux peuvent devenir inefficaces si les conditions du marché changent.

Directions d'optimisation

La stratégie peut être améliorée dans les domaines suivants:

  1. Optimiser les paramètres des bandes de Bollinger pour rapprocher les bandes supérieure et inférieure du prix, améliorant ainsi la précision des signaux de trading.

  2. Ajouter des mécanismes de stop loss pour réduire les pertes lorsqu'elles atteignent certains pourcentages de seuil.

  3. Incorporer plus d'indicateurs pour déterminer les niveaux de tendance, de soutien et de résistance afin de réduire les faux signaux.

  4. Introduire des algorithmes d'apprentissage automatique pour régler automatiquement les paramètres afin qu'ils puissent s'adapter à l'évolution des environnements du marché.

Conclusion

Cette stratégie intègre le canal de prix, les bandes de Bollinger et l'indicateur RSI rapide pour construire un système de trading d'inversion à double voie. Tout en jugeant les principales tendances, elle saisit également rapidement les opportunités de support, de résistance et de surachat/survente. Les paramètres sont simples et directs, faciles à comprendre et à optimiser.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-11-30 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.3", shorttitle = "NoroBands str 1.3", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Use ColorBar")
usecb = input(true, "Use CryptoBottom")
usersi = input(true, "Use RSI")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
lencb = abs(close - mac)
sma = sma(lencb, 100)
max = max(open, close)
min = min(open, close)

//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Signals
up = trend == 1 and ((close < open or color == false) or close < hd) ? 1 : 0
dn = trend == -1 and ((close > open or color == false) or close > ld) ? 1 : 0 
up2 = close < open and lencb > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0 //CryptoBottom
//dn2 = close > open and len > sma * 3 and max > max[1] and fastrsi > 90 ? 1 : 0 //CryptoBottom
up3 = fastrsi < 5 ? 1 : 0
//dn3 = fastrsi > 99 ? 1 : 0

longCondition = up == 1 or (up2 == 1 and usecb == true) or (up3 == 1 and usersi == true)
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)

Plus de