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

如何在Python单个for循环中遍历两个列表实现对应下单量挂单

解决交易所挂单循环中同时遍历价格和下单量的问题

核心解决方案

你需要同时遍历价格列表和下单量列表,利用Python的zip()函数就能实现两者的一一对应配对,直接替换固定的qty值。

优化下单量列表生成(可选但更简洁)

你当前手动计算每个下单量的方式过于繁琐,可以用循环或列表推导式自动生成:

# 方式1:循环生成
order_size_list = []
current_size = 0.01
for _ in range(8):
    order_size_list.append(current_size)
    current_size *= 1.25

# 方式2:列表推导式(更简洁)
order_size_list = [0.01 * (1.25 ** i) for i in range(8)]

修改挂单循环逻辑

将原循环改为同时遍历两个列表,把遍历到的下单量传入qty参数:

# 同时遍历价格和对应的下单量
for bid_price, order_size in zip(bid_price_list, order_size_list):
    session_perp.place_active_order(
        symbol="ETHUSDT",
        side="Buy",
        order_type="Limit",
        qty=order_size,  # 替换为遍历到的自定义下单量
        price=bid_price,
        time_in_force="PostOnly",
        reduce_only=False,
        close_on_trigger=False
    )

处理列表长度不一致的情况

如果bid_price_list和order_size_list长度不同,zip()会以较短的列表为准停止遍历。若想遍历完较长的列表,可使用itertools.zip_longest为缺失的元素设置默认值:

from itertools import zip_longest

# 当其中一个列表元素耗尽时,用fillvalue指定默认下单量
for bid_price, order_size in zip_longest(bid_price_list, order_size_list, fillvalue=0.01):
    session_perp.place_active_order(
        symbol="ETHUSDT",
        side="Buy",
        order_type="Limit",
        qty=order_size,
        price=bid_price,
        time_in_force="PostOnly",
        reduce_only=False,
        close_on_trigger=False
    )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:54:22