这是一个基于市场压力和K线重叠模式的量化交易策略。该策略通过分析交易量、K线形态以及价格重叠关系来识别潜在的市场反转点,结合止盈条件实现自动化交易。策略采用固定仓位进行交易,并设置20%的止盈目标。
策略的核心逻辑包含两个主要维度:市场压力和K线重叠。在市场压力方面,策略通过比较当前交易量与20周期交易量均线的关系来判断买卖压力。当绿色K线(上涨)的成交量超过均线时,表示存在买入压力;当红色K线(下跌)的成交量超过均线时,表示存在卖出压力。在K线重叠方面,策略关注相邻K线之间的重叠关系。当绿色K线与前一根红色K线重叠时,视为潜在的做多信号;当红色K线与前一根绿色K线重叠时,视为潜在的做空信号。
该策略通过结合市场压力和K线重叠模式来捕捉市场反转机会,具有较好的理论基础和实践可行性。策略的优势在于多维度信号验证和明确的风险控制,但也存在一定的市场风险和优化空间。通过进一步优化和完善,策略有望在实际交易中取得更好的表现。
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Pressure Reversal & Candle Overlap", overlay=true, default_qty_type=strategy.fixed, default_qty_value=0.1)
// Parameters
take_profit_percent = 20 // Take Profit Percentage
qty = 0.1 // Quantity to trade (BTC)
// Candle Definitions
green_candle = close > open
red_candle = close < open
current_body = math.abs(close - open)
// Previous Candle Data
prev_close = ta.valuewhen(green_candle or red_candle, close, 1)
prev_open = ta.valuewhen(green_candle or red_candle, open, 1)
// Check Candle Overlaps
green_overlaps_red = green_candle and close >= prev_open and open <= prev_close
red_overlaps_green = red_candle and close <= prev_open and open >= prev_close
// Define Buying and Selling Pressure
buying_pressure = green_candle and volume > ta.sma(volume, 20)
selling_pressure = red_candle and volume > ta.sma(volume, 20)
// Entry Conditions
long_entry_pressure = selling_pressure
long_entry_overlap = green_overlaps_red
short_entry_pressure = buying_pressure
short_entry_overlap = red_overlaps_green
// Calculate Take Profit Levels
take_profit_level_long = close * (1 + 20 / 100)
take_profit_level_short = close * (1 - 20 / 100)
// Strategy Logic
if (long_entry_pressure or long_entry_overlap)
strategy.entry("Buy Long", strategy.long, qty=qty)
strategy.exit("TP Long", "Buy Long", limit=take_profit_level_long)
if (short_entry_pressure or short_entry_overlap)
strategy.entry("Sell Short", strategy.short, qty=qty)
strategy.exit("TP Short", "Sell Short", limit=take_profit_level_short)