
BMSBのブレークアウト戦略は,移動平均に基づいたブレークアウト戦略である.この戦略は,20周期のシンプル移動平均 ((SMA) と21周期のインデックス移動平均 ((EMA) を使って市場のトレンド方向を決定する.閉塞価格のSMAを突破すると,戦略は買い信号を生じ,閉塞価格のEMAを突破すると,戦略は売り信号を生じます.この戦略の主な考え方は,トレンドの形成と逆転を捕捉し,トレンド方向に取引することです.
この戦略の核心は,2つの異なるサイクルの移動平均を使用して市場動向を判断することです.20サイクルのSMAは比較的遅いので,市場の中長期の傾向を表します.21サイクルのEMAは比較的速いので,市場の短期の傾向を表します.SMAを閉じる時,市場が中長期から上昇傾向に転じたことを示すため,戦略は買取シグナルを生じます.閉じる時EMAを閉じる時,市場が短期から下降傾向に転じたことを示すため,戦略は販売シグナルを生じます.この方法で,戦略は,トレンド形成の初期段階に介入し,トレンドの逆転をタイミングで退出することができます.
シンプルで理解しやすい:この戦略は,指標がシンプルで,原理が明確で,理解しやすく,実行可能である.
トレンド追跡: 2つの異なる周期の移動平均を介して,戦略は市場のトレンドの方向を効果的に捉え,トレンドが形成されたときにすぐに介入することができます.
タイムストップ:トレンドが逆転したときに,戦略は,下のEMAを通過するシグナルをタイムストップして,損失を制御することができる.
適応性:この戦略は,異なる市場と品種に適用され,優れた適応性を持っています.
振動市場: 市場の振動の状況では,この戦略により取引信号が多く発生し,取引が頻繁になり,取引コストが高くなる可能性があります.
遅滞性: 移動平均は遅滞の指標であるため,戦略の買入と売却の信号には一定の遅延があり,最適な取引時間を逃す可能性があります.
パラメータ最適化: 戦略のパフォーマンスは,移動平均の周期選択によって影響され,異なるパラメータは,異なる結果につながる可能性があります.
パラメータ最適化:SMAとEMAの周期パラメータを最適化することで,最適なパラメータの組み合わせを探して,戦略のパフォーマンスを向上させることができる.
トレンドフィルター:取引シグナルを生成する際に,他のトレンド指標または価格行動パターンを導入して,トレンドの強さと持続性をさらに確認し,信号の信頼性を高めることができます.
リスク管理: ストップ・ローズ・ストップ・メカニズムを導入し,単一取引のリスクの口を制御することができます.また,ポジション管理を通じて,市場の変動動向に応じてポジションのサイズを調整し,戦略の全体的なリスクを低減することができます.
多空選択時:買入と売却のシグナルを生成する際に,他の時間選択指標または市場情緒指標と組み合わせて,多空両者の力を評価し,より有利な方向を選択して取引を行う.
BMSB Breakout Strategyは,2つの異なる周期の移動平均によって市場の傾向を判断し,トレンドが形成されたときに間に合うように介入し,トレンドが逆転したときに間に合うように退出するシンプルで使いやすいトレンド追跡戦略である.この戦略の優点は,簡単に理解し,適応力があり,同時に,振動的な市場の下での取引が頻繁であり,信号遅れなどのリスクがある.パラメータ最適化,トレンドフィルター,リスク制御,多空選択時などの方法により,この戦略のパフォーマンスと安定性をさらに向上させることができます.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BMSB Breakout Strategy", overlay=true)
// Definición de la BMSB
smaLength = 20
emaLength = 21
source = close
sma = ta.sma(source, smaLength)
ema = ta.ema(source, emaLength)
outSma = request.security(syminfo.tickerid, timeframe.period, sma)
outEma = request.security(syminfo.tickerid, timeframe.period, ema)
smaPlot = plot(outSma, color=color.new(color.red, 0), title='20w SMA')
emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA')
fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true)
// Señales de Compra y Venta
buySignal = ta.crossover(close, outSma)
sellSignal = ta.crossunder(close, outEma)
// Lógica de la Estrategia
if (buySignal)
if (strategy.opentrades > 0)
strategy.close_all()
strategy.entry("Buy", strategy.long)
if (sellSignal)
if (strategy.opentrades > 0)
strategy.close_all()
strategy.entry("Sell", strategy.short)
plotshape(series=buySignal, title="Compra", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellSignal, title="Venta", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)