如何定义动作空间数组



我正在尝试创建一个加密货币交易机器人,可以模拟交易多个加密货币。例如,如果我有n=4硬币(例如:0-BTC、1-ETH、2-DOT、3-SOL(,那么动作空间的例子应该是:

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

其中:

  • BUY if action > 0
  • HOLD if action == 0
  • Sell if action < 0

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

  • 指数0:购买价值1000美元的btc
  • 索引1:保持eth
  • 指数2:卖出价值3000美元的DOT
  • 指数3:买入价值2300美元的SOL

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

我建议使用dictionaries.,假设您有加密列表:[crypto0, crypto1, crypto2, ..., cryptoX]和操作空间[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是两个单独的列表和both should have same length.

最新更新