
La stratégie de négociation en ligne à double équilibre dynamique est une stratégie de négociation en ligne courte qui utilise à la fois la dynamique des prix et les indicateurs de tendance. La stratégie utilise une combinaison de plusieurs indicateurs tels que le prix de clôture, le prix d’ouverture, le canal de prix et le RSI rapide pour générer un signal de négociation.
La stratégie est basée sur les indicateurs suivants:
Le canal de prix: calculer les prix les plus élevés et les plus bas des 30 dernières lignes K pour obtenir la portée du canal. Lorsque le prix de clôture est supérieur à la ligne médiane du canal, il est considéré comme positif, et lorsque le prix de clôture est inférieur à la ligne médiane du canal, il est considéré comme négatif.
RSI rapide: Calcule le RSI sur 2 lignes K, le RSI inférieur à 25 est considéré comme une survente et supérieur à 75 est considéré comme une survente.
Détermination des lignes de couleur: calculer la taille de l’entité des deux dernières lignes K. Deux lignes de couleur sont considérées comme des signaux baissiers et deux lignes de couleur sont considérées comme des signaux positifs.
Conditions de stop-loss: le stop-loss est imposé lorsque la perte atteint un certain pourcentage.
En fonction de plusieurs indicateurs de jugement ci-dessus, la stratégie peut maîtriser à la fois la tendance, la dynamique et les situations de survente et de survente, générant un signal de transaction au point de basculement, qui appartient à la stratégie de négociation de courte ligne typique.
Cette stratégie présente les avantages suivants:
L’utilisation d’indicateurs multiples permet d’améliorer l’exactitude du signal. Un seul indicateur est susceptible de produire de faux signaux, l’utilisation combinée peut se vérifier mutuellement et filtrer certains bruits.
Le RSI rapide est plus sensible et peut capturer le point de tournage en temps opportun. Le RSI ordinaire est facile à retarder et à manquer le meilleur moment d’entrée.
Les paramètres de la stratégie ont été testés et optimisés à plusieurs reprises, ce qui a permis une grande stabilité.
Les mécanismes d’arrêt automatique contrôlent les pertes. Ils ne suivent pas à l’infini et peuvent réduire les pertes au-delà des prévisions.
Cette stratégie comporte également des risques à prendre en compte:
Une mauvaise définition des paramètres de la chaîne de prix peut déclencher des chocs. Si la sélection de la zone de chaîne est trop petite, il est susceptible d’avoir de fausses percées.
Les positions unilatérales peuvent être détenues trop longtemps. Les cycles de détention sont plus longs que prévu lorsque la tendance est très forte.
Le paramètre doit être réglé avec précaution, trop grand ou trop petit ne sera pas bénéfique.
Les risques ci-dessus peuvent être évités et réduits en ajustant les paramètres de passage, en optimisant le moment d’entrée et en ajustant dynamiquement le point d’arrêt.
La stratégie peut également être optimisée dans les domaines suivants:
L’ajout d’algorithmes d’apprentissage automatique permettant l’optimisation automatique des paramètres permet de former des stratégies plus intelligentes et plus adaptatives.
La combinaison de plus de sources de données, telles que les informations sur les pages d’actualités, améliore la prise de décision sur les transactions.
Développer un mécanisme de gestion de position dynamique qui ajuste automatiquement les positions en fonction des conditions du marché.
L’augmentation de l’arbitrage à terme et l’élargissement de la portée de la stratégie permettent de réaliser des rendements absolus plus élevés.
Cette stratégie utilise de multiples moyens techniques, tels que la rupture des prix, les signaux d’indicateurs et les sorties de stop loss. Elle a une bonne performance et une stabilité élevée dans les processus de retracement et de placement physique. Avec le développement des algorithmes et des technologies de données, il y a encore beaucoup de place pour l’optimisation et l’amélioration de la stratégie.
/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Price Channel Strategy v1.2", shorttitle = "Price Channel str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 100000, title = "capital, %")
uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")
usersi = input(true, defval = true, title = "Use RSI strategy")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel Period")
showcl = input(true, defval = true, title = "Price Channel")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
src = close
//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
trend = low > center ? 1 : high < center ? -1 : trend[1]
col = showcl ? blue : na
col2 = showcl ? black : na
plot(lasthigh, color = col2, linewidth = 2)
plot(lastlow, color = col2, linewidth = 2)
plot(center, color = col, linewidth = 2)
//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1
//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))
//Signals
body = abs(close - open)
abody = sma(body, 10)
up1 = rbars and close > center and uset
dn1 = gbars and close < center and uset
up2 = close <= lastlow and close < open and usect
dn2 = close >= lasthigh and close > open and usect
up3 = fastrsi < 25 and close > center and usersi
dn3 = fastrsi > 75 and close < center and usersi
exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2)
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
//Trading
if up1 or up2 or up3
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn1 or dn2 or dn3
if strategy.position_size > 0
strategy.close_all()
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
strategy.close_all()