
この戦略は,双EMA均線交差を取引信号として採用し,快線周期は65で,慢線周期は240である.同時に,取引量をフィルター条件として使用し,現在の取引量が指定された値より大きい場合にのみ取引を行う.戦略は,取引ごとに固定リスク金額を設定し,リスク金額に応じて動的にポジションのサイズを計算する.快線上での遅い線を横切って取引量が条件を満たしたときに多行し,快線下での遅い線を横切って取引量が条件を満たしたときに空きをする.ストップ・ロースとストップ・ロースは,固定価格の距離設定に基づいて,多行時ストップ・ロースは開設価格の下に100ドル,ストップ・ロースは開設価格の上で1500ドル;空き時のストップ・ロースは開設価格の上で100ドル,開設価格の下に1500ドルである.
この戦略は,65/240双均線交差をトレンド判断の根拠として採用し,交差量フィルタリング条件を組み合わせて信号信頼性を改善する. 固定リスクポジション管理と固定価格のストップ・ストップの設定は,ある程度リスクを制御し,損失率を有利な方向に傾けさせる. しかし,戦略には,トレンド把握の相対的な遅れ,ポジション管理の柔軟性の欠如,ストップ・ストップのダイナミックな調整の欠如などの問題もあります. 将来,多均線システムを構築し,ポジション管理を最適化し,ダイナミックストップ・ストップを導入し,ショッキング指標の観点から戦略の最適化と改善を図るため,期間の安定性と信頼性の高い取引パフォーマンスを得ることができる.
/*backtest
start: 2024-05-06 00:00:00
end: 2024-05-13 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with 1:3 RR, Volume Filter, and Custom Stop Loss/Take Profit (BTC)", overlay=true, currency="USD", initial_capital=100)
// Define EMA lengths
ema_length_fast = 65
ema_length_slow = 240
// Calculate EMAs
ema_fast = ta.ema(close, ema_length_fast)
ema_slow = ta.ema(close, ema_length_slow)
// Define crossover conditions
bullish_crossover = ta.crossover(ema_fast, ema_slow)
bearish_crossover = ta.crossunder(ema_fast, ema_slow)
// Plot EMAs
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.red, title="Slow EMA")
// Define volume filter
volume_threshold = 1000 // Adjust as needed
// Define risk amount per trade
risk_per_trade = 0.5 // $10 USD
// Calculate position size based on risk amount
stop_loss_distance = 100
take_profit_distance = 1500
position_size = risk_per_trade / syminfo.mintick / stop_loss_distance
// Execute trades based on crossovers and volume filter
if (bullish_crossover and volume > volume_threshold)
strategy.entry("Buy", strategy.long, qty=position_size)
strategy.exit("Exit", "Buy", stop=close - stop_loss_distance, limit=close + take_profit_distance)
if (bearish_crossover and volume > volume_threshold)
strategy.entry("Sell", strategy.short, qty=position_size)
strategy.exit("Exit", "Sell", stop=close + stop_loss_distance, limit=close - take_profit_distance)