我正在尝试创建一个加密货币交易机器人,可以模拟交易多个加密货币。例如,如果我有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_list和action_space是两个单独的列表和both should have same length.