
この戦略は,動力の指標ADX,RSIおよびブリン帯を使用し,市場動向とオーバーバイオーバーセルの判断によって,低価格,高価格,高価格,利益の退出の自動取引戦略を実現します.
上記の指標に基づいて,市場状況を判断し,取引戦略を以下のように策定します.
購入条件:
販売条件:
この戦略は,複数の指標を総合的に使用して市場の状況を判断し,単一の指標で判断誤りの確率を避ける.同時に,傾向,超買い超売り状態の判断によって,市場の転換点を効果的にロックし,低買い高売りを実現することができる.
トレンド指標のみを使用するよりも,この戦略は短期的な機会をより早く捉えることができます. 震動指標のみを使用するよりも,この戦略はトレンドの方向をよりよく把握できます. したがって,この戦略は,トレンドを追跡する利点を維持しながら,逆勢操作の柔軟性を持ち,潜在的に高効率の量化戦略です.
この戦略には以下のリスクがあります.
対応するリスク管理策:
この戦略の最適化には以下のポイントが重要です.
最適化指標パラメータ。 知的最適化アルゴリズムを導入して,異なる品種パラメータに対して独立した最適化を行う。
特徴工学を増やし,価格技術指標を導入し,ベクトルマシンなどのモデルを訓練するためのサポートを構築し,信号の正確性を向上させる.
突破戦略を組み合わせる.異なる品種の状況特性に応じて,通路,支柱抵抗などの判断ルールを適用し,突破点を把握し,戦略の安定性を強化する.
ストップ・ストップ・メカニズムの最適化 ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ・ストップ
この戦略は,市場状況を判断するために,ADX,RSI,ブリン帯などの複数の技術指標を使用する中短期量的取引戦略として,市場構造が重大に変化するときに買い売りを行う.戦略のロジックは明確に説明可能であり,単一の技術指標判断誤りの確率を大幅に減らすことができます.同時に,戦略は,誤った信号を発する警告指標,過度に激進的なストップと損失パラメータ偏差などのリスクを設定する,リスク管理とモデル最適化からスタートして,戦略の安定性と効率性を向上させる必要があります.
/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("DAX Shooter 5M Strategy", overlay=true)
//Creo ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
th = input(title="threshold", type=input.integer, defval=20)
dirmov(len) =>
up = change(high)
down = -change(low)
plusDM = na(up) ? na : up > down and up > 0 ? up : 0
minusDM = na(down) ? na : down > up and down > 0 ? down : 0
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
adx
[plus, minus] = dirmov(dilen)
sig = adx(dilen, adxlen)
//Creo RSI
src = close
len = input(7, minval=1, title="Periodo RSI")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
bandainf = input(30, title="Livello Ipervenduto")
bandasup = input(70, title="Livello Ipercomprato")
//Creo Bande di Bollinger
source = close
length = input(50, minval=1, title="Periodo BB")
mult = input(2.0, minval=0.001, maxval=50, title="Dev BB")
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.white)
p1 = plot(upper, color=color.aqua)
p2 = plot(lower, color=color.aqua)
fill(p1, p2)
//Stabilisco regole di ingresso
if crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
strategy.entry("COMPRA", strategy.long, limit=upper, oca_name="DaxShooter", comment="COMPRA")
else
//strategy.exit("exit", "COMPRA", loss = 90)
strategy.cancel(id="COMPRA")
if crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
strategy.entry("VENDI", strategy.short, limit=lower, oca_name="DaxShooter",comment="VENDI")
else
//strategy.exit("exit", "VENDI", loss = 90)
strategy.cancel(id="VENDI")
//Imposto gli alert
buy= crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
sell= crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
alertcondition(buy, title='Segnale Acquisto', message='Compra DAX')
alertcondition(sell, title='Segnale Vendita', message='Vendi DAX')
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)