Stratégie de négociation dynamique par canal de prix

Auteur:ChaoZhang est là., Date: le 16 septembre 2023
Les étiquettes:

Résumé

Cet article présente une stratégie de négociation à court terme basée sur les canaux de prix dynamiques.

La logique de la stratégie

La stratégie repose sur la logique suivante:

  1. Calculez les canaux de prix dynamiques en utilisant les prix les plus élevés et les plus bas. La bande supérieure est la moyenne du prix le plus élevé et du point médian du canal. La bande inférieure est le point médian moins la différence entre le prix le plus bas et le point médian.

  2. Lorsque le prix dépasse la bande supérieure, une tendance haussière commence.

  3. Dans les tendances haussières, allez long lorsque deux barres baissières consécutives apparaissent.

  4. Considérez les entrées contre-tendance pour poursuivre la dynamique du marché. Par exemple, court dans les tendances haussières et long dans les tendances baissières.

  5. Fixez des pourcentages de profit, comme x% du prix d'entrée, pour verrouiller les profits.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Les canaux dynamiques reflètent les changements du marché en temps réel pour un meilleur jugement des tendances.

  2. La combinaison des tendances et des éruptions filtre les fausses éruptions.

  3. Les entrées contre-tendance profitent de la dynamique du marché pour obtenir des rendements excédentaires.

  4. Les arrêts de profit contrôlent efficacement les risques.

  5. La logique est simple et claire pour une mise en œuvre facile.

Analyse des risques

Il y a aussi quelques risques à prendre en considération:

  1. Les canaux peuvent échouer pendant la volatilité des marchés.

  2. Les transactions contre tendance sont vulnérables aux pertes.

  3. Les fausses évasions peuvent causer de mauvais échanges.

  4. Évitez de trop négocier pour maîtriser les coûts.

Conclusion

Cette stratégie intègre des canaux dynamiques, des évasions et des profits. Avec un ajustement approprié, elle peut être un outil de trading à court terme efficace.


/*backtest
start: 2022-09-09 00:00:00
end: 2023-09-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.1", shorttitle = "Scalper str 1.1", 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")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

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

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
sma = sma(close, 20)
smatrend = close > sma ? 1 : close < sma ? -1 : smatrend[1]
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
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and bar == -1 and bar[1] == -1 ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and bar == 1 and bar[1] == 1 ? 1 : 0

if up7 == 1 or up8 == 1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

Plus de