如何定义一个动作空间数组?

How to define an array of action spaces?

我正在尝试创建一个可以同时交易多个加密硬币的加密交易机器人。因此,例如,如果我有 n=4 个硬币(例如:0-BTC、1-ETH、2-DOT、3-SOL),那么操作 space 的示例将类似于:

action_spaces: [ 1000, 0.0, -3000, 2300]

其中:

因此,在给定的示例中,操作将是:

所以对于带有加密列表的 n = x[crypto0, crypto1, crypto2, ..., cryptoX] 我如何定义具有以下形式的操作 space:action_space = [action0, action1, action2, ..., actionX]

我建议使用 dictionaries. 假设您有加密列表:[crypto0, crypto1, crypto2, ..., cryptoX] 和操作 space [action0, action1, action2, ..., actionX].

crypto_list = ['crypto0', 'crypto1', 'crypto2', 'cryptoX']
action_space = ['action0', 'action1', 'action2', 'actionX']

cryto_action_map = dict(zip(crypto_list, action_space))

print(cryto_action_map)

这将给出类似

的输出
{'crypto0': 'action0', 'crypto1': 'action1', 'crypto2': 'action2', 'cryptoX': 'actionX'}

从这里您可以使用 items 方法迭代每个硬币和动作。

for coin, action in cryto_action_map.items():
    if action > 0:
        # BUY logic
        
    elif action == 0:
        # HOLD logic
        
    elif action < 0:
        # SELL logic

记住 crypto_listaction_space 是 2 个单独的列表,both should have same length.