
この戦略は,異なるタイプの移動平均を計算して,価格の傾向の方向を判断し,単一開口を可能にします. 価格が移動平均を破るとき,ポジションを多めに開くか,空っぽにする.
この策略は7種類の異なる移動平均の選択を許容する.これには,シンプル移動平均 (SMA),インデックス移動平均 (EMA),交割量重み平均 (VWMA),二次移動平均 (DEMA),三次移動平均 (TEMA),カフマン自律移動平均 (KAMA) と価格チャネルの中線が含まれている.選択した移動平均と収束価格の関係を計算して価格の方向性を判断する.
閉盘価格が下から上方へ移動平均線を突破すると,上昇傾向と判断して,多額のポジションを開く.閉盘価格が上から下方へ移動平均線を突破すると,下落傾向と判断して,ポジションを空にする.このようにして,価格トレンドの転換点を捕捉して,片側でのポジションを開くことができる.
この戦略の利点は以下の通りです.
選択可能な移動平均の種類は,異なる品種と周期に柔軟に対応します.
リスクの管理に有効な方法としては, 単独のポジションを開くことです
投資を進めて,簡単に儲けられる.
簡単に理解し,実行できます.
この戦略にはいくつかのリスクがあります.
価格が移動平均の近くで振動すると,複数の誤信号が発生し,反転開設が行われます. リスクを制御するために適切なストップを設定できます.
価格の急上昇または急落によるリスクを完全に回避することはできません. 他の指標と組み合わせてトレンドシグナルを判断できます.
分析者は適切な移動平均のパラメータを選択する必要があります. 適切なパラメータがない場合,取引信号の遅延が起こりやすくなります.
この戦略は以下の点で最適化できます.
MACD,RSIなどの他の技術指標と組み合わせてトレンドシグナルを判断し,取引ポートフォリオを形成します.
ストップロジックを追加する. 移動ストップまたは単一のストップを掛ける.
パラメータをテストし,最適化し,最適なパラメータの組み合わせを選択する.例えば,移動平均周期,移動平均のタイプなどのパラメータ.
取引先は,取引先の取引先と取引先の取引先を比較し,取引先の取引先を比較し,取引先の取引先を比較し,取引先の取引先を比較する.
この戦略は,移動平均に基づいて価格トレンドの方向を判断し,単面開口を実現する.使用はシンプルで,容易に実現し,リスクを効果的に制御できる.しかし,誤ったシグナルと逆開口のリスクも発生する可能性がある.判断シグナルを他の指標と組み合わせ,パラメータを最適化,ストップロスを追加するなど,この戦略を継続的に改善し,より安定的かつ信頼性のあるようにすることができる.
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Noro's MAs Tests v1.1", shorttitle = "MAs tests 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
needlong = input(true, "long")
needshort = input(true, "short")
len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length")
type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type")
src = input(close, defval = close, title = "Source")
anti = input(true, defval = true, title = "Antipila")
//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)
//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3
//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
kama = nz(kama[1]) + nsmooth * (src - nz(kama[1]))
//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2
ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0
plot(ma, color = blue, linewidth = 3, transp = 0)
trend = anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1]
longCondition = trend == 1 and trend[1] == -1
if (longCondition)
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
shortCondition = trend == -1 and trend[1] == 1
if (shortCondition)
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)