
この戦略は,移動平均位移動包帯線指標に基づいて取引シグナル生成を行う.その中で,包帯線は移動平均のパーセント因数で計算される.前期高点が突破して軌道上なら,売り信号を生じ,前期低点が落ちて軌道下なら,買い信号を生成する.
この戦略は,移転指数移動平均 (EMA) を中心の指標として使用し,その一定の周期後に,パーセント因子で拡大して上下軌道を形成する.これは,移動平均移転率の完全なネットワークシステムを構成する.具体的には,ネットワークネットワークシステムは,次のものから構成される.
% above と % below は,上下軌道とコア指数移動平均の間の周期的な位移を制御する.
この方法で,上記のパラメータを調整することで適切な取引区間を形成できます. 価格が区間を破れば取引信号が生成されます.具体的には:
注目すべきは,この策略は,逆関数も提供しており,もし true に設定されれば,信号の方向は上述の逆になります.
この戦略の利点は以下の通りです.
この戦略にはいくつかのリスクがあります.
このリスクに対して,以下のような方法で最適化することができます.
この戦略は,以下のような観点から,改善する余地があります.
これらの最適化により,戦略の安定性,適応性,および効果をさらに高めることができます.
移動平均線策は,単純な指数移動平均システムとパラメータ化区間を利用して,明確な取引ルールを形成し,容易に解釈し,実施し,典型的なトレンド追跡戦略の1つである.パラメータの調整と最適化により,この戦略はより良い効果を生むことができる.しかし,市場環境の影響を十分に考慮し,潜在的なリスクを防ぎ込むことも必要である.この戦略は,基礎テンプレートであり,その後の拡張と最適化には大きな余地がある.
/*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 )