
この戦略は,20日間の簡易移動平均 ((EMA20) と50日間の簡易移動平均 ((EMA50) の金叉と死叉を計算して,入場と出場のタイミングを判断する.EMA20でEMA50を穿戴すると,多めにすること.EMA20の下ではEMA50を穿戴すると,空っぽにすること.同時に,ストップ・ロスト・メカニズムと組み合わせて,リスク報酬を制御すること.
この戦略の核心指標は,20日EMAと50日EMAである。EMA20は短期トレンドを代表し,EMA50は中期トレンドを代表する。短期トレンドが中期トレンドを突破すると,下落から上落に転じ,多額の利益を得ることができる;短期トレンドが中期トレンドを突破すると,上落から下落に転じ,空白から利益を得ることができる。したがって,EMA20とEMA50の金叉死叉形状によって入場と出場のタイミングを判断する。
具体的には,まず20日EMAと50日EMAの値を計算する。それから,グラフにEMA20とEMA50の線段を描画する。EMA20でEMA50を突破するときは,多行し,EMA20の下でEMA50を突破する時は,空きする。同時に,ストップ・損失比率とリスク・リターン比率を入力して,ストップ・損失価格とストップ・価格を計算する。そうすれば,1回の取引のリスクとリターンを効果的にコントロールできる。
この戦略の利点は以下の通りです.
この戦略にはいくつかのリスクがあります.
この戦略は以下の点で最適化できます.
異なるパラメータのEMA組み合わせをテストし,最適なパラメータを探します.
他の指標と組み合わせた信号のフィルタリングと検証.
動的に止損停止の比率を調整する. 異なる状況で異なる止損停止の設定を適用することができる.
適正に保持期間を短縮する. 突発的な出来事の影響を受ける可能性を下げる.
このEMA金叉死叉短線取引戦略は,簡単な指標によって入場タイミングを判断し,ストップ・ストップ・ストップを利用してリスクを制御する。操作が簡単で,短線アクティブ取引に適している。しかし,パラメータ最適化,シグナルフィルターなどの手段によって戦略のprofit因子をさらに向上させることができる問題もある。
/*backtest
start: 2023-01-05 00:00:00
end: 2024-01-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Swing Trading with 20/50 EMA Cross", shorttitle = "EMA Cross", overlay = true)
// Define input for stop-loss and take-profit levels
var float stopLossPct = input.float(1, title = "Stop Loss (%)") / 100
var float rewardRiskRatio = input.float(2, title = "Risk-Reward Ratio")
takeProfitPct = stopLossPct * rewardRiskRatio
// Calculate EMA values
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
// Plot EMAs on the chart
plot(ema20, title = "20 EMA", color = color.blue)
plot(ema50, title = "50 EMA", color = color.red)
// Trading conditions
longCondition = ta.crossover(ema20, ema50)
shortCondition = ta.crossunder(ema20, ema50)
// Execute long and short trades
strategy.entry("Long", strategy.long, when = longCondition)
strategy.entry("Short", strategy.short, when = shortCondition)
// Calculate stop-loss and take-profit levels based on risk-reward ratio
stopLossPrice = close * (1 - stopLossPct)
takeProfitPrice = close * (1 + takeProfitPct)
strategy.exit("Take Profit/Stop Loss", stop = stopLossPrice, limit = takeProfitPrice)