You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助编写变量N的计算代码:交易入场点高低点数量占比

计算交易入场后最高高点与最低低点数量比值N的实现

核心定义

N = 自交易入场点以来的最高高点数量 / 最低低点数量
这里的「最高高点」指入场后价格突破此前所有高点的次数;「最低低点」指入场后价格跌破此前所有低点的次数。

实现步骤

  1. 定位交易入场点的索引/时间戳
  2. 提取入场点之后的最高价、最低价序列
  3. 遍历统计新高次数(最高高点数量)和新低次数(最低低点数量)
  4. 计算比值,处理除数为0的异常情况

示例代码(Python)

# 模拟交易K线数据:每一项为[最高价, 最低价]
trade_data = [
    [100, 90],  # K线0
    [102, 88],  # K线1(入场点)
    [105, 89],  # K线2:创出新高
    [103, 87],  # K线3:创出新低
    [106, 86],  # K线4:新高+新低
    [104, 88],  # K线5
]

# 入场点对应的K线索引
entry_idx = 1

# 初始化入场时的高低点
entry_high = trade_data[entry_idx][0]
entry_low = trade_data[entry_idx][1]

# 提取入场后的高低价数据
post_entry_highs = [k[0] for k in trade_data[entry_idx+1:]]
post_entry_lows = [k[1] for k in trade_data[entry_idx+1:]]

# 统计最高高点数量
high_count = 0
current_highest = entry_high
for h in post_entry_highs:
    if h > current_highest:
        high_count += 1
        current_highest = h

# 统计最低低点数量
low_count = 0
current_lowest = entry_low
for l in post_entry_lows:
    if l < current_lowest:
        low_count += 1
        current_lowest = l

# 计算N值,避免除以0报错
N = high_count / low_count if low_count != 0 else float('inf')

print(f"最高高点数量: {high_count}")
print(f"最低低点数量: {low_count}")
print(f"N值: {N}")

注意事项

  • 如果使用pandas处理实盘数据,可通过df.loc[entry_row_index:]直接提取入场后的数据段,替换示例中的列表遍历逻辑
  • 若你的「最高高点/最低低点」指的是结构浪型中的高低点(而非单纯的新高/新低),需要结合趋势判断(如均线、MACD等指标)调整统计逻辑
  • 除数为0时(入场后无新低),可根据策略需求将N设为float('inf')、None或其他默认值

内容的提问来源于stack exchange,提问作者user20738800

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 14:35:10