该策略采用双EMA均线交叉作为交易信号,快线周期为65,慢线周期为240。同时使用成交量作为过滤条件,只有在当前成交量大于指定阈值时才会进行交易。策略对每笔交易设置固定风险金额(\(10),并根据风险金额动态计算仓位大小。当快线上穿慢线且成交量满足条件时做多,快线下穿慢线且成交量满足条件时做空。止损位和止盈位根据固定价格距离设置,做多时止损位在开仓价下方\)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)