
この戦略の主な考えは,移動平均線の金叉死叉を買賣信号として利用し,価格が双平線を破る方法と組み合わせてポジションを立て,ストップを行うことである.短期平均線上での長期平均線を突破すると買買信号を生成し,短期平均線下での長期平均線を突破すると売り信号を生成する.この戦略は,トレンド追跡と逆転取引の両方の特徴を持つ.
詳細は以下の通りです.
短期のSMAと長期のSMAを計算する.
価格が移動平均より高いか低いかを比較し,価格が移動平均の上を多頭とし,価格が移動平均の下を空頭とする判断の根拠.
短平均線で長平均線を履くときは多めに;短平均線の下で長平均線を履くときは空いてください.
余剰ポジションを入れ替える.
この戦略の主な利点は
双均線戦略は,トレンド追跡と反転取引を組み合わせ,市場トレンドを追跡し,反転の機会を捉える.
均線の金叉死叉具には一定の耐久性があり,偽突破を効果的に排除することができる.
平均線理論を利用して,トレンドの揺れの中での利益を固定する.
この戦略の主なリスクは
双均線戦略はパラメータに敏感であり,移動平均のパラメータを不適切に設定すると,取引が頻繁になるか,機会が逃れる可能性がある.
突破失敗は損失を招く可能性があり,リスクをコントロールするために有効な止損が必要である.
トレンドの逆転は成功とは限りません.
この戦略の主な最適化方向は
移動平均のパラメータをテストし,最適化して最適なパラメータの組み合わせを見つける.
トレンド判断の指標を追加し,トレンドと振動の市場を区別する.
リスク管理のための有効なストップを追加します.例えば,ストップを追跡し,ストップを掲げます.
戦略の安定性を高めるために,他の指標と組み合わせる.
要するに,この戦略は,双均線反転追跡戦略として,傾向追跡と反転取引を考慮するとともに,パラメータ最適化とリスク管理が置かれた場合に,よりよい効果を得ることができます.しかし,いかなる戦略も,方向判断誤り,止損失敗などのリスクに直面し,市場の変化に適応するために継続的にテストと最適化する必要があります.
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HPotter
// Simple SMA strategy
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors
//@version=4
strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true)
Resolution = input(title="Resolution", type=input.resolution, defval="D")
Source = input(title="Source", type=input.source, defval=close)
xSeries = security(syminfo.tickerid, Resolution, Source)
Length = input(title="Length", type=input.integer, defval=14, minval=2)
TriggerPrice = input(title="Trigger Price", type=input.source, defval=close)
BarColors = input(title="Painting bars", type=input.bool, defval=true)
ShowLine = input(title="Show Line", type=input.bool, defval=true)
UseAlerts = input(title="Use Alerts", type=input.bool, defval=false)
reverse = input(title="Trade Reverse", type=input.bool, defval=false)
pos = 0
xSMA = sma(xSeries, Length)
pos := iff(TriggerPrice > xSMA, 1,
iff(TriggerPrice < xSMA, -1, nz(pos[1], 0)))
nRes = ShowLine ? xSMA : na
alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY')
alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL')
alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position')
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()
nColor = BarColors ? possig == -1 ? color.red : possig == 1 ? color.green : color.blue : na
barcolor(nColor)
plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)