Сделайте агента RL, чтобы он играл против человека

В своей настройке я использую стабильные базовые показатели, чтобы создать агента, который найдет хорошую политику для покупки и продажи на валютном рынке.

С этой целью я сделал 3 вспомогательных файла для создания своей среды.

Один - это спотовые курсы данного процентного обменного курса, второй - действия клиента (покупка, продажа, ничего не делать), а второй - суммы, которые клиенты использовали в этой настройке.

Каждая строка данных представляет день. и каждую колонку в секунду в день. Таким образом, спотовая ставка [i,j] соответствует действию клиента и количеству i-го дня и j-й секунды.

Я хочу, чтобы мой агент отвечал на действия клиента. Поэтому, если клиент совершает покупку, для моего агента имеет смысл сделать ту же сумму, что и на продажу, чтобы уменьшить его подверженность риску или разбить сумму на более мелкие части с течением времени.

По сути, клиенты каждый раз нарушают работу агента.

Итак, я сделал функцию

def _client_action(self):
   spot = spots[i,j]
   amount = amounts[i,j]
   action = actions[i,j]

   # Disrupt the agent's variables with this function
   transaction(spot, amount,action)

def _agent_action(self, action):
   spot = spots[i,j]
   transaction(spot, action[0], action[1])

def step(self, action):
   _client_action()
   agent_action()

   reward = ...
   obs = self._next_obs()

   return obs, reward, done, {}

Возможна ли эта среда? Я начал это с парадигмой Alpha Go

Я хочу, чтобы моя система реагировала, когда против него принимаются меры. Но все, что я думаю, в то время он делает - это случайные ходы. Я использую A2C с MlpPolicy.

Затем следует скорректировать приведенный ниже тестовый код. Я предоставлю новые данные spot, c_amount, c_action или скармливаю их по одному, и агент должен выводить, что делать (Купить X, Продать X, Ничего не делать).

obs = env.reset()
        for i in range(0, len(client_amounts.index)):
            for j in range(0, len(client_amounts.columns)):
                c_amount = client_amounts.iloc[i,j]
                c_action = client_actions.iloc[i,j]

                action, _states = model.predict(obs)
                obs, rewards, dones, info = env.step(action)
                env.render()

0 ответов

Другие вопросы по тегам