如何定义一个动作空间数组?
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]
其中:
BUY if action > 0
HOLD if action == 0
Sell if action < 0
因此,在给定的示例中,操作将是:
- 指数0:购买价值1000 USDT的btc
- 索引1:持有eth
- 索引2:卖出价值3000 USDT的DOT
- 索引3:购买价值2300 USDT的SOL
所以对于带有加密列表的 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_list 和 action_space 是 2 个单独的列表,both should have same length.
我正在尝试创建一个可以同时交易多个加密硬币的加密交易机器人。因此,例如,如果我有 n=4
个硬币(例如:0-BTC、1-ETH、2-DOT、3-SOL),那么操作 space 的示例将类似于:
action_spaces: [ 1000, 0.0, -3000, 2300]
其中:
BUY if action > 0
HOLD if action == 0
Sell if action < 0
因此,在给定的示例中,操作将是:
- 指数0:购买价值1000 USDT的btc
- 索引1:持有eth
- 索引2:卖出价值3000 USDT的DOT
- 索引3:购买价值2300 USDT的SOL
所以对于带有加密列表的 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_list 和 action_space 是 2 个单独的列表,both should have same length.