|
10 | 10 | from finrock.render import PygameRender |
11 | 11 | from finrock.scalers import MinMaxScaler |
12 | 12 | from finrock.reward import simpleReward |
13 | | -from finrock.metrics import DifferentActions, AccountValue |
| 13 | +from finrock.metrics import DifferentActions, AccountValue, MaxDrawdown, SharpeRatio |
| 14 | +from finrock.indicators import BolingerBands, RSI, PSAR, SMA |
14 | 15 |
|
15 | 16 |
|
16 | 17 | df = pd.read_csv('Datasets/random_sinusoid.csv') |
17 | 18 | df = df[-1000:] |
18 | 19 |
|
19 | | -pd_data_feeder = PdDataFeeder(df) |
| 20 | +pd_data_feeder = PdDataFeeder( |
| 21 | + df, |
| 22 | + indicators = [ |
| 23 | + BolingerBands(data=df, period=20, std=2), |
| 24 | + RSI(data=df, period=14), |
| 25 | + PSAR(data=df), |
| 26 | + SMA(data=df, period=7), |
| 27 | + SMA(data=df, period=25), |
| 28 | + SMA(data=df, period=99), |
| 29 | + ] |
| 30 | + ) |
20 | 31 |
|
21 | 32 | env = TradingEnv( |
22 | 33 | data_feeder = pd_data_feeder, |
|
28 | 39 | metrics = [ |
29 | 40 | DifferentActions(), |
30 | 41 | AccountValue(), |
| 42 | + MaxDrawdown(), |
| 43 | + SharpeRatio(), |
31 | 44 | ] |
32 | 45 | ) |
33 | 46 |
|
34 | 47 | action_space = env.action_space |
35 | 48 | input_shape = env.observation_space.shape |
36 | 49 | pygameRender = PygameRender(frame_rate=120) |
37 | 50 |
|
38 | | -agent = tf.keras.models.load_model('runs/1701698276/ppo_sinusoid_actor.h5') |
| 51 | +agent = tf.keras.models.load_model('runs/1702982487/ppo_sinusoid_actor.h5') |
39 | 52 |
|
40 | 53 | state, info = env.reset() |
41 | 54 | pygameRender.render(info) |
|
51 | 64 | pygameRender.render(info) |
52 | 65 |
|
53 | 66 | if terminated or truncated: |
54 | | - print(rewards, info["metrics"]['account_value']) |
| 67 | + print(rewards) |
| 68 | + for metric, value in info['metrics'].items(): |
| 69 | + print(metric, value) |
55 | 70 | state, info = env.reset() |
56 | 71 | rewards = 0.0 |
57 | 72 | pygameRender.reset() |
|
0 commit comments