この戦略は,移動平均変位封筒指標に基づいて取引信号を生成する.封筒帯は移動平均の百分比因数で計算される.前回の高値が上部帯を超えると,販売信号が生成される.前回の低値が下部帯を下回ると,購入信号が生成される.
この戦略は,移動指数移動平均 (EMA) をコア指標として使用し,一定の期間後に百分比因数で上下帯を形成する.これは完全な移動平均移動封筒システムを構築する.具体的には,封筒システムは以下のとおりである.
ここでは,上方%と下方%は,コア移動平均線との関係で帯の百分比範囲を制御する. 移動パラメータは,帯とコア移動平均線間の周期移動を制御する.
この方法で,上記のパラメータを調整することで適切な取引範囲を形成することができます. 価格がバンドを突破すると取引信号が生成されます. 具体的には:
この戦略は逆パラメータも提供していることに注意してください. true に設定された場合,信号の方向は上記の方向とは反対です.
この戦略の主な利点は以下の通りです.
この戦略にはいくつかのリスクもあります:
これらのリスクを防ぐために,いくつかの最適化を行うことができます:
この戦略を最適化するには まだ大きな余地があります
これらの最適化により,戦略の安定性,適応性,パフォーマンスがさらに向上できます.
移動平均の移動封筒戦略は,単純な指数的な移動平均システムとパラメータ化されたバンドを使用して,解釈し,実装しやすい明確な取引ルールを形成する.これは典型的なトレンドフォローシステムです.パラメータチューニングと最適化によって,良い結果を達成することができます.しかし,市場の環境の影響も完全に考慮され,潜在的なリスクも予防する必要があります.この戦略は基本的なテンプレートとして機能し,拡張と最適化のための多くの余地があります.
/*backtest start: 2024-01-25 00:00:00 end: 2024-02-01 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 14/08/2020 // Moving Average Displaced Envelope. These envelopes are calculated // by multiplying percentage factors with their displaced expotential // moving average (EMA) core. // How To Trade Using: // Adjust the envelopes percentage factors to control the quantity and // quality of the signals. If a previous high goes above the envelope // a sell signal is generated. Conversely, if the previous low goes below // the envelope a buy signal is given. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Moving Average Displaced Envelope Backtest", shorttitle="MA DE", overlay = true) Price = input(title="Source", type=input.source, defval=close) Period =input(defval=9, minval=1) perAb = input(title = "Percent above", defval=.5, minval=0.01, step = 0.1) perBl = input(title = "Percent below", defval=.5, minval=0.01, step = 0.1) disp = input(title = "Displacement", defval=13, minval=1) reverse = input(false, title="Trade reverse") pos = 0 sEMA = ema(Price, Period) top = sEMA[disp] * ((100 + perAb)/100) bott = sEMA[disp]* ((100 - perBl)/100) pos := iff(close < bott , 1, iff(close > top, -1, pos[1])) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )