Cet article présente une stratégie de négociation en ligne courte basée sur un canal de prix dynamique. Cette stratégie permet de déterminer la direction de la tendance en calculant le canal de prix dynamique et de négocier aux points de rupture du canal.
La stratégie est basée sur les principes suivants:
Calculez le canal de prix dynamique en utilisant les prix les plus élevés et les prix les plus bas. La ligne supérieure du canal est la moitié de la somme des prix les plus élevés et moyens du canal, et la ligne inférieure est la moitié de la différence entre les prix les plus bas et moyens du canal.
Quand le prix dépasse la barre supérieure, cela indique que le marché est entré dans une tendance à la hausse; quand le prix dépasse la barre inférieure, cela indique que le marché est entré dans une tendance à la baisse.
Dans une tendance haussière, faites plus lorsque deux lignes négatives se succèdent; dans une tendance baissière, faites moins lorsque deux lignes positives se succèdent.
Il est possible d’opter pour une position inversée, c’est-à-dire faire une prise de position à la hausse et une prise de position à la baisse, afin de suivre l’humeur du marché.
On peut définir un ratio de stop-loss, par exemple en définissant le stop-loss comme x% du prix d’entrée, pour verrouiller le profit.
Cette stratégie présente les avantages suivants:
Les canaux dynamiques permettent de mieux juger les tendances en fonction des changements du marché en temps réel.
Les signaux de rupture, combinés à une tendance et à plusieurs lignes K, permettent de filtrer les fausses ruptures.
Les positions inversées permettent d’attraper les points chauds du marché et de réaliser des bénéfices supplémentaires.
La mise en place d’un ratio de freinage permet de contrôler efficacement le risque.
La stratégie est simple, claire et facile à mettre en œuvre.
Cette stratégie comporte aussi des risques:
Les canaux peuvent être inefficaces en cas de fortes fluctuations du marché. Les paramètres doivent être ajustés de manière appropriée pour les rendre plus stables.
Les positions inversées sont sujettes à des pertes, et le pourcentage de pertes individuelles doit être contrôlé.
Les fausses percées peuvent conduire à des transactions erronées. L’efficacité des percées doit être évaluée en fonction des tendances.
Il faut veiller à éviter les transactions trop fréquentes afin de contrôler les coûts de transaction.
Cette stratégie intègre des tendances de jugement de canal dynamique, des entrées de rupture de la ligne K et des idées de stop. En ajustant les paramètres de manière appropriée, elle peut être un outil efficace pour les transactions en ligne courte. Cependant, les traders doivent toujours faire attention à la maîtrise des risques et à la modification appropriée en fonction de leur propre style de négociation.
/*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)