
Cette stratégie est basée sur le principe de suivi de la tendance des canaux dynamiques et des courbes uniformes. Elle calcule la courbe dynamique des prix, détermine la direction de la tendance des prix par la montée et la descente de la courbe, en combinaison avec la dispersion des prix des ondes uniformes, et génère un signal de négociation.
La stratégie est basée sur les principes suivants:
Calculer le canal de prix dynamique. La ligne médiane du canal est calculée à partir du prix le plus élevé et du prix le plus bas. La ligne médiane du canal est la ligne médiane + la ligne médiane de la dispersion des prix, la ligne médiane de la dispersion des prix est la ligne médiane de la dispersion des prix.
Déterminer la direction d’une tendance. Définie comme haussière lorsque le prix est en hausse; défini comme baissière lorsque le prix est en baisse.
Le bruit des fluctuations aléatoires des prix des fluctuations aléatoires des prix.
Génère un signal de transaction. Lorsqu’il est haussier, il génère un signal d’achat lorsque le prix de clôture du cycle est inférieur au prix d’ouverture. Lorsqu’il est baissier, il génère un signal de vente lorsque le prix de clôture du cycle est supérieur au prix d’ouverture.
Cette stratégie présente les avantages suivants:
La stratégie présente également les risques suivants:
La réponse:
Cette stratégie peut être optimisée dans les domaines suivants:
L’idée de cette stratégie d’intégration des canaux dynamiques et des jugements de tendance linéaire s’est bien déroulée dans la capture des tendances des courts et moyens. Cependant, il existe certaines limitations qui nécessitent des tests et des optimisations supplémentaires pour s’adapter à de plus en plus de conditions de marché.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Noro's Bands Strategy v1.0", shorttitle = "NoroBands str 1.0", 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, "Color")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close
//PriceChannel 1
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 = 90)
//up = and trend == 1 ? 1 : 0
//dn = and trend == -1 ? 1 : 0
up = close < hd and trend == 1 and (close < open or color == false) ? 1 : 0
dn = close > ld and trend == -1 and (close > open or color == false) ? 1 : 0
longCondition = up == 1
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)