add ability to integrate state info or not, and prevent state info integration during backtesting

This commit is contained in:
robcaulk
2022-11-12 18:46:48 +01:00
parent 9c6b97c678
commit e71a8b8ac1
3 changed files with 35 additions and 28 deletions

View File

@@ -2,9 +2,7 @@ import logging
from enum import Enum
import numpy as np
import pandas as pd
from gym import spaces
from pandas import DataFrame
from freqtrade.freqai.RL.BaseEnvironment import BaseEnvironment, Positions
@@ -145,19 +143,6 @@ class Base5ActionRLEnv(BaseEnvironment):
return observation, step_reward, self._done, info
def _get_observation(self):
features_window = self.signal_features[(
self._current_tick - self.window_size):self._current_tick]
features_and_state = DataFrame(np.zeros((len(features_window), 3)),
columns=['current_profit_pct', 'position', 'trade_duration'],
index=features_window.index)
features_and_state['current_profit_pct'] = self.get_unrealized_profit()
features_and_state['position'] = self._position.value
features_and_state['trade_duration'] = self.get_trade_duration()
features_and_state = pd.concat([features_window, features_and_state], axis=1)
return features_and_state
def get_trade_duration(self):
if self._last_trade_tick is None:
return 0