
この戦略は,DEMAとTEMAの2つの動的均線を計算し,金叉または死叉の発生時に多引または空引ポジションを確立して,トレンドの追跡を実現する.同時に,戦略は,不要なストップを避けるために一定のポジション条数も設定する.
この戦略は,主に2つの動的均等線DEMAとTEMAの交差によってトレンドの方向を判断する.
DEMAは,EMAの重力平滑特性を組み合わせた二次指数移動平均を表し,EMAに存在する滞り問題を最適化します.計算式は以下のとおりです.
DEMA = 2*EMA(CLOSE,N) - EMA(EMA(CLOSE,N),N)
Nはデマレンチです.
TEMAは3指数移動平均を表し,平均の落差を3回指数滑りで軽減する.計算式は以下のとおりです.
EMA1 = EMA(CLOSE,Temalength)
EMA2 = EMA(EMA1,Temalength)
EMA3 = EMA(EMA2,Temalength)
TEMA = 3*EMA1 - 3*EMA2 + EMA3
TEMAがDEMAを突破すると,金叉信号として,多行;TEMAがDEMAを突破すると,死叉信号として,空行.
さらに,戦略は,信号の有効性を確保するために delayBars を設定し,偽信号を避ける. 金叉または死叉の後に継続的に一定の周期を継続して起動するように要求する.
最後に,戦略には二重チェックの論理が加えられます.つまり,ポジションを開く前に,現在の反転ポジションを平らげる必要がないか判断します.これは,二方向の利回りのリスクを回避します.
DEMAとTEMAは,従来のEMAとSMAに比べてより敏感で,トレンドの変化をより早く捉えることができ,市場動向の判断の正確さを向上させます.
delayBarsのパラメータの設定により,信号が長期間続くまで待たなければならない.そうすれば,偽信号の一部をフィルターして,被套を避けることができる.
戦略は,ポジション開設前に,反転ポジションを平らげる必要性を優先して判断し,同時に二方向のポジションを保有するリスクを回避し,最大限に利の損失を最小限に抑えることができる.
この戦略は,傾向とシグナルを判断するために,一般的な技術指標である均線交差に依存しており,特定の品種に依存せず,明らかな傾向のある品種の大部分に適用されます.
市場が巨大な振動区間に陥っているとき,均線は頻繁に交差し,偽信号が形成されやすい.このとき,遅延周期の設定は信号を完全にフィルターできないかもしれない.
解決策は,震動状態の後に一時停止策を認識するか,または平均線パラメータと遅延周期を適切に調整することです.
この戦略は価格の傾向のみを追跡し,短期的な落とし穴や重大突発事件によって引き起こされる反転を予測することはできません.この場合,戦略は大きな損失を被る可能性があります.
解決方法は,リスクの背景を判断する他の指標と組み合わせたり,適切なポジションのサイズを縮小したりすることです.
DEMAとTEMAに加えて,SMA,EMA,および他の改良平均線の組み合わせをテストして,この市場に最も適合する平均線指標を見つけることができます.
パラメタルの最適化により,最適な平均線長パラメータと信号の遅延周期を見つけることで,より正確な取引信号が得られます.
品種特性に応じて,その波動範囲と傾向性に適した平均線と遅延周期パラメータの組み合わせを見つけます.
例えば,Bollinger Bands指標は,波動率と価格の位置を判断し,震動の罠に陥らないようにします. エネルギークラスの指標の判断力と組み合わせて,トレンドの信頼性を評価します.
この戦略は,動的均等 DEMA と TEMA の交差を介して大トレンドを追跡し,簡潔なタイプのトレンド追跡戦略に属します. 優点は,高い安定性,信頼性,普遍性であり,基本戦略として使用するのに適しています. しかし,一定の後退性および反転識別能力の弱い欠点もあります. この戦略の優点,リスクおよび後続最適化方向に関する全面的な分析と要約が,この戦略の使用のための貴重な参照を提供します. 全体として,この戦略は,量化取引戦略の設計のための典型的な模範を提供し,深入の研究を借用します.
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jacobdickson255
strategy("Crypto Bull Run Tracker", overlay=true, pyramiding=0)
//Dema Scripting
Demalength = input.int(230, minval=1)
src = close
e1 = ta.ema(src, Demalength)
e2 = ta.ema(e1, Demalength)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)
//Tema Scripting
Temalength = input.int(210, minval=1)
ema1 = ta.ema(close, Temalength)
ema2 = ta.ema(ema1, Temalength)
ema3 = ta.ema(ema2, Temalength)
tema = 3 * (ema1 - ema2) + ema3
plot(tema, "TEMA", color=#2962FF)
delayBars = input(5, title="Bar Delay")
var int lastTradeBar = na
longCondition = ta.crossover(tema, dema)
longExit = ta.crossunder(tema, dema)
shortCondition = ta.crossunder(tema, dema)
shortExit = ta.crossover(tema, dema)
// Exit conditions should be checked before entry conditions
// Close short position if a long condition is present
if ((shortExit and strategy.position_size < 0)) // If conditions for exiting the short are met, and there is a balance in the short direction, exit the short
strategy.close("Short")
// Close long position if a short condition is present
if ((longExit and strategy.position_size > 0))
strategy.close("Long")
// Now check for entry conditions
if (longCondition)
strategy.entry("Long", strategy.long)
lastTradeBar := bar_index
if (shortCondition)
strategy.entry("Short", strategy.short)
lastTradeBar := bar_index