この戦略の核となる考え方は,周期のEMA指標を日内取引にマッピングし,より長期のトレンドのサポートを得て,日内取引の決定を導くことです.
策略は,まず日線の6日,12日,26日,52日EMAと,その周線EMAのパラメータ設定の42日,84日,182日,364日EMAをコードで計算する.
次に,42日EMAと84日EMAの金叉,死叉に基づいて長期トレンドを判断し,84日EMAと182日EMAの金叉,死叉に基づいて中期トレンドを判断する.
短い周期EMAで長い周期EMAを穿うとき,長ポジションの入場を行います. 短い周期EMAで長い周期EMAを穿うとき,平ポジションの出場を行います.
このマッピング方法により,日内取引における周回線レベルのEMA指標のサポートを得て,一部のノイズをフィルターして,より大きなトレンドの機会をロックすることができます.
この戦略は,日中の取引の柔軟性と周期のEMAの安定性を組み合わせて,以下の利点があります.
周線EMAは市場騒音を効率的にフィルターし,真のトレンドの動きを識別する.日内取引は,日内FORMATIONに基づいてより正確な入場時間を選択することができる.
周線EMAのパラメータ設定はより安定し,短期価格の振動に容易に影響されない.また,日中の形状とトレンドを組み合わせて判断し,出場はより早い.
EMAの金叉,死叉は,段階的なトレンドの転換点を明確に判断できます.内日取引で利益を得ることで,全体的に勝利率は高くなります.
異なる周期EMAの組み合わせを使用し,長,中,短の異なるレベルでトレンドの機会をロックすることができます.
戦略的取引の頻度は低く,長線保有に適している.取引回数による滑点損失を減らすことができる.
この戦略の主なリスクは
周回線EMAの入場信号は遅れている可能性があり,価格変化の最初のタイミングを把握することができない.
日中の出場はEMA交差に依存し,形状や波動などの要因を考慮せずに,早めに出場する可能性がある.
EMA多空交差回数が少ないため,一方的なポジション保持時間が長すぎる状況が形成されやすい.
引き戻しのリスクが高く,人手による積極的な管理が必要である.
パラメータ設定は粗略で,異なる通貨は最適効果を達成するために調整する必要があります.
リスクは以下の方法で軽減できます.
ENTRYの形状を他の指標と組み合わせて,EMAの入場ポイントを事前に配置する.
長期にわたって単独のポジションを保持することを避けるため,ストップ・ローズ,クローズ・ストップなど,オフ・ルールを増やす.
EMA周期パラメータを最適化し,異なる通貨に適した周期組み合わせをテストする.
複数のレベルでの取引,異なるEMA周期で階層的なポジション保持,単一ポジションのリスクを低減する.
この戦略は,以下の点で最適化できます.
形式,取引量などの判断,入場ノイズフィルターなどの日内取引のアクセスルールを追加します.
ストック,MACDなどの指標を組み合わせて,超買いと超売りを判断し,入場と出場を細分化します.
ストップ・ローズ・メカニズムの増強,撤回リスクの軽減,利益のロック
EMA周期パラメータを最適化し,異なる周期組み合わせの効果をテストする.
DEMA,TEMAなどのパラメータ設定を試して,滑らかさを向上させる.
ポジション管理メカニズムが追加され,異なるEMA信号は異なるポジションを採用する.
異なる品種のパラメータ設定を研究し,異なる取引対に適した戦略を策定する.
EMAパラメータの動的最適化を可能にする機械学習の方法を探索する.
これは長線ポジションに適したトレンド追跡戦略である.周線トレンド判断と日内取引の実行を巧みに統合している.適切な最適化により,非常に実用的なマルチタイムフレーム取引システムになる可能性がある.
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=1
strategy("Investing Weekly mapped to Daily", overlay=true, pyramiding=100)
// === PLOTTING EMA ===
plot(ema(close, 6), color=aqua, transp=0, linewidth=2, title="ema6")
plot(ema(close, 12), color=white, transp=0, linewidth=2, title="ema12")
plot(ema(close, 26), color=#9802FF, transp=0, linewidth=2, title="ema26")
plot(ema(close, 52), color=orange, transp=0, linewidth=2, title="ema52")
plot(ema(close, 42), color=aqua, transp=0, linewidth=5, title="W-ema6")
plot(ema(close, 84), color=white, transp=0, linewidth=5, title="W-ema12")
plot(ema(close, 182), color=#9802FF, transp=0, linewidth=5, title="W-ema26")
plot(ema(close, 364), color=orange, transp=0, linewidth=5, title="W-ema52")
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2017, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === STRATEGY FOR CRYPTO ===
ema42= ema(close, 42)
ema84= ema(close, 84)
ema182= ema(close, 182)
enterLong1 = cross(ema42, ema84) and ema42 > ema84
exitLong1 = cross(ema42, ema84) and ema42 < ema84
enterLong2 = cross(ema84, ema182) and ema84 > ema182
exitLong2 = cross(ema84, ema182) and ema84 < ema182
strategy.entry(id="Entry_1", long=true, when=enterLong1)
strategy.entry(id="Entry_2", long=true, when=enterLong2)
strategy.entry(id="Exit_1", long=false, when=exitLong1)
strategy.entry(id="Exit_2", long=false, when=exitLong2)