等级: 免费版 
- 注册: 
 - 2025-4-8
 
- 曾用名: 
 
 
 
 | 
 
 
 楼主 |
发表于 2025-6-11 14:31
|
显示全部楼层
 
 
 
老师,您好!多谢您的回复。我是用如下程序取昨日收盘价: 
def get_previous_day_close(context, contract, current_time): 
    """获取前一交易日的收盘价""" 
    try: 
        bars = history_bars(contract, 1, '1d', ['close'], skip_suspended=True, include_now=False) 
        if bars is None or len(bars) < 1: 
            print(f"无法获取 {contract} 的前一日收盘价") 
            return None 
         
        if isinstance(bars, np.ndarray): 
            previous_close = bars[-1, 0] if bars.ndim == 2 else bars[-1] 
        elif isinstance(bars, list) and all(isinstance(bar, dict) for bar in bars): 
            previous_close = bars[-1]['close'] 
        else: 
            print(f"无法识别 {contract} 的 bars 类型: {type(bars)}") 
            return None 
         
        return previous_close 
    except Exception as e: 
        print(f"获取 {contract} 的前一日收盘价失败: {str(e)}") 
        return None 
我用如下程序算涨跌幅的: 
def calculate_price_change(context, contract): 
    """计算给定合约的涨跌幅,使用文华交易软件逻辑""" 
    current_time = datetime.datetime.now() 
    try: 
        current_price = get_current_price(contract) 
        if current_price is None: 
            return None 
 
        if is_night_session(current_time): 
            reference_price = get_today_afternoon_close(context, contract, current_time) 
        else: 
            reference_price = get_previous_day_close(context, contract, current_time) 
 
        if reference_price is None: 
            return None 
 
        price_change = (current_price - reference_price) / reference_price * 100 
        #print(f"当前时间{current_time},期货ID{contract},当前价{current_price},收盘价{reference_price},百分比{price_change}%") 
        return price_change 
    except Exception as e: 
        print(f"计算 {contract} 的涨跌幅时出错: {str(e)}") 
        return None 
目前算出来的涨跌幅如下: 
14:24:09 > 当前涨幅第一: AG00, 对应涨幅=6.98%, 跌幅第一: JM00, 对应跌幅=-27.03% 
14:24:09 > 开多期货ID是 AG00: 涨幅=6.98%, 收盘价8312.0,交易价格=8892.0, 时间: 2025-06-11 14:24:09.292278,百分比6.977863330125119% 
14:24:09 > 开空期货ID是 JM00: 跌幅=-27.03%, 收盘价1078.5,交易价格=787.0, 时间: 2025-06-11 14:24:09.309176,百分比-27.028280018544276% 
14:24:09 > 当前持仓: {'AG00': {'direction': 'long', 'open_price': 8892.0}, 'JM00': {'direction': 'short', 'open_price': 787.0}} 
这个收盘价就是get_previous_day_close函数获取的,非常不准。 |   
 
 
 
 |