
この戦略は,主にADX指標を使用してトレンドを判断し,MAとEMAの2つの異なるパラメータ設定を組み合わせた移動平均を構成する,多行のみのトレンド追跡戦略である.ADXが上昇するときに多方向を提示し,価格が上行MAとEMAを突破するときに多行を打つ.ADXが下行するか,価格がMAまたはEMAのいずれかを破ると平行する.
この戦略は,市場傾向と強さを判断するためにADXを主に使用する.ADXは,価格の変化の程度と方向を計算することによって,傾向の存在と強さを判断する.ADXが上昇すると,現在上昇傾向にあることを示し,ADXが低下すると,傾向が弱まっていることを示している.
この戦略は,二つの異なるパラメータの設定の移動平均MAとEMAを同時に使用して,補助判断を行う.それらは,価格のランダム性を効果的に除し,価格の主要なトレンドの方向を示す.価格が上昇してMAとEMAを突破すると,多シグナルを行う.価格が下がって破綻すると,平仓シグナルを行う.
ADXと移動平均線の特徴を組み合わせて,この戦略はトレンド方向を判断する取引シグナルを構成する.ADXが上昇し,価格が上行MAとEMAを突破すると多開ポジション,ADXが下落し,または価格がMA/EMAを突破すると平仓,多開トレンドフォロー戦略を実現する.
この戦略の利点は以下の通りです.
この戦略にはいくつかのリスクがあります.
対応方法:
この戦略は,以下の点で最適化できます.
この戦略全体は,ADXを利用してトレンドの強さを判断し,二つの移動平均でフィルター信号を構築する補助的な単行多行トレンド追跡戦略である.それは,無効取引の発生を効果的に制御し,トラッキングトレンドの効果を実現し,比較的安定した単行多行戦略である.一定の最適化調整によって,戦略の安定性と収益性をさらに強化することができる.
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("ADX, MA, and EMA Long Strategy - ADX Trending Up", shorttitle="ADX_MA_EMA_Long_UpTrend", overlay=true)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
maPeriod = input(50, title="MA Period")
emaPeriod = input(50, title="EMA Period")
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
100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
maValue = sma(close, maPeriod)
emaValue = ema(close, emaPeriod)
longCondition = sig > sig[1] and close > maValue and close > emaValue
if (longCondition)
strategy.entry("Long", strategy.long)
exitCondition = sig < sig[1] or close < maValue or close < emaValue
if (exitCondition)
strategy.close("Long")
plot(maValue, color=color.blue, title="MA")
plot(emaValue, color=color.orange, title="EMA")
plot(sig, color=color.red, title="ADX")