auto_trade_sys/ATR.md
薇薇安 11e3532ac3 a
2026-01-17 20:23:49 +08:00

31 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

将固定百分比止损,改为基于 ATR平均真实波幅 的动态止损。 这是专业交易系统的标准做法。
逻辑ATR指标精确衡量了当前价格的平均波动幅度。将止损设置为 1.5倍至2倍的ATR值意味着止损距离能随着市场波动自动调整。市场平静时收紧市场疯狂时放宽始终保持在“正常波动”之外。
示例如果当前ATR值为价格的3%,那么:
1.5倍ATR止损 = 价格反向4.5% 止损
2倍ATR止损 = 价格反向6% 止损
开仓时实时计算:
python
# 1. 获取当前ATR值 (假设为价格的3%)
current_atr_percent = get_current_atr(symbol) # 返回 0.03 (3%)
# 2. 根据ATR倍数计算动态止损距离
stop_distance = current_atr_percent * ATR_MULTIPLIER_SL # 0.03 * 1.5 = 0.045 (4.5%)
# 3. 根据盈亏比计算动态止盈距离
take_profit_distance = stop_distance * RISK_REWARD_RATIO # 0.045 * 3 = 0.135 (13.5%)
# 4. 计算出具体的止损价和止盈价
if side == 'BUY':
stop_loss_price = entry_price * (1 - stop_distance) # 做多,止损价在下
take_profit_price = entry_price * (1 + take_profit_distance)
else:
stop_loss_price = entry_price * (1 + stop_distance) # 做空,止损价在上
take_profit_price = entry_price * (1 - take_profit_distance)
先实施,再优化:不必追求完美。你可以先从 ATR_MULTIPLIER_SL = 1.5 和 RISK_REWARD_RATIO = 3.0 这个组合开始。这个组合意味着你允许价格反向波动“1.5倍的平均波幅”才止损同时追求3倍于此空间的利润。