
この戦略は,平均線に基づくトレンド追跡戦略である.これは,2つの異なる周期のEMA平均線,すなわち21周期および55周期のEMA平均線を使用する.短期EMA線が長期EMA線を横切るときに買い信号を生じ,短期EMA線を下に長期EMA線を横切るときに売り信号を生じする.
さらに,この戦略は,反転買入,ATRストップと反転ストップを組み合わせて,戦略の安定性と収益性を向上させています.
21周期と55周期の2つのEMA平均線を使用する. 21EMAは短期トレンドを表し,55EMAは長期トレンドを表す.
短期EMA線が長期EMA線を横切ると,短期トレンドが上昇トレンドに変換され,買取シグナルが生じます.
短期EMAが長期EMAを横断すると,短期トレンドが下方トレンドに変換され,セールシグナルが生じます.
リバース・バイ・セール:開場価格より低い価格のときにのみ買入シグナルを生じ,開場価格より高い価格のときにのみ出売シグナルを生じます.これは,短期リコール時に買い,短期リバース時に売ることで利益を得るためです.
ATRストップ:ATR指標のN倍を用いてストップを設定する.これは市場の変動に応じてストップを動的に調整できる.
逆転ストップ:購入価格減算ATRのN倍をストップとして使用する.これは,価格を再テストする前に逆転抵抗を支える特性を利用してストップする.
双 EMA を使って,主要トレンドの方向を判断し,中長線トレンドを捉えます.
逆取引は,トレンドの回調に適したショートライン操作である.
ATRストップは,市場の変動性に応じてストップすることができます.
反転停止は,重要な技術位付近に設置され,停止の確率を増加させる.
戦略の論理はシンプルで明快で,理解し,修正しやすい.
デジタル通貨などの高変動市場での利用が可能である.
双EMA平均線は誤信号を生成する確率が高いため,平均線周期を適切に延長することができる.
逆転取引は損が容易で,調整可能な止損は比較的緩やかである.
市場にはしばしば偽の突破があり,他の指標にフィルター信号を加えることができます.
は危険で,手作業でを時間内に取り除くことができます.
MACD,KDなどの指標に加え,超買い超売の領域を判断し,入場タイミングをフィルターします.
120周期EMA,総合判断トレンドなど,より多くの平均線を追加します.
購入と販売のスライドポイントを設定し,入場価格を最適化します.
デジタル通貨の高波動性特性を考慮して,ATRの止損幅を適正に緩和することができる.
ATR倍数と移動ストップを最適化して,最大利益と最小の撤収を図る.
この戦略は,全体として比較的単純な双EMA均線戦略であり,中心的な考え方は,EMAを利用してトレンドの判断方向である.戦略の優点は,論理的簡潔性,パラメータ調整の柔軟性であり,中長線トレンドと短線反転に適用できる.また,この戦略が存在する可能性のあるリスクと対応方法,および将来のいくつかの最適化点を分析した.全体として,この戦略は,ある程度の実用性と拡張の余地があるが,異なる市場の調整パラメータに応じて使用する必要がある.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TheHulkTrading
// Simple EMA strategy, based on ema55+ema21 and ATR(Average True Range) and it enters a deal from ema55 when the other entry conditions are met
//@version=4
strategy("Simple Ema_ATR Strategy HulkTrading", overlay=true)
atr_multiplier = input(2, minval=1, title="ATR Multiplier") // ATR Multiplier. Recommended values between 1..4
emaFast=ema(close,21)
emaSlow=ema(close,55)
//Basically long and short conditions
//If long:
// 1) close must be less than open (because we are searching for a pullback)
// 2) emaFast(21) must be bigger than emaSlow(55) - for a trend detection
// 3) Difference between emaFast and emaSlow must be greater than ATR(14) - for excluding flat
longCond = close < open and emaFast > emaSlow and abs(emaSlow-emaFast) > atr(14)
//For short conditions are opposite
shortCond = close > open and emaFast < emaSlow and abs(emaSlow-emaFast) > atr(14)
//Stop levels and take profits, based on ATR multiplier
stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14)
take_level_long = strategy.position_avg_price + atr_multiplier*atr(14)
stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14)
take_level_short = strategy.position_avg_price - atr_multiplier*atr(14)
//Entries and exits
strategy.entry("Long", strategy.long, when=longCond, limit = emaSlow)
strategy.exit("Stop Loss/TP","Long", stop=stop_level_long, limit = take_level_long)
strategy.entry("Short", strategy.short, when=shortCond, limit = emaSlow)
strategy.exit("Stop Loss/TP","Short", stop=stop_level_short, limit = take_level_short)