diff --git a/agents/lstm_agent.py b/agents/lstm_agent.py new file mode 100644 index 0000000..e69de29 diff --git a/data/raw/DAT_XLSX_EURUSD_M1_2021.xlsx b/data/raw/DAT_XLSX_EURUSD_M1_2021.xlsx new file mode 100644 index 0000000..efcf6d9 Binary files /dev/null and b/data/raw/DAT_XLSX_EURUSD_M1_2021.xlsx differ diff --git a/data/raw/DAT_XLSX_EURUSD_M1_2022.xlsx b/data/raw/DAT_XLSX_EURUSD_M1_2022.xlsx new file mode 100644 index 0000000..da18403 Binary files /dev/null and b/data/raw/DAT_XLSX_EURUSD_M1_2022.xlsx differ diff --git a/data/raw/DAT_XLSX_EURUSD_M1_2023.xlsx b/data/raw/DAT_XLSX_EURUSD_M1_2023.xlsx new file mode 100644 index 0000000..a3eaa3e Binary files /dev/null and b/data/raw/DAT_XLSX_EURUSD_M1_2023.xlsx differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12000.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12000.zip new file mode 100644 index 0000000..d15c86c Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12000.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12001.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12001.zip new file mode 100644 index 0000000..e61e41f Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12001.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12002.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12002.zip new file mode 100644 index 0000000..e1dc1ed Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12002.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12003.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12003.zip new file mode 100644 index 0000000..9694cad Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12003.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12004.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12004.zip new file mode 100644 index 0000000..e4f87a0 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12004.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12005.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12005.zip new file mode 100644 index 0000000..a61128c Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12005.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12006.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12006.zip new file mode 100644 index 0000000..6eaae42 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12006.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12007.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12007.zip new file mode 100644 index 0000000..463b4e8 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12007.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12008.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12008.zip new file mode 100644 index 0000000..045d689 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12008.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12009.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12009.zip new file mode 100644 index 0000000..0f0ca5a Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12009.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12010.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12010.zip new file mode 100644 index 0000000..8cf044a Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12010.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12011.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12011.zip new file mode 100644 index 0000000..47f5afb Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12011.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12012.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12012.zip new file mode 100644 index 0000000..41a4524 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12012.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12013.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12013.zip new file mode 100644 index 0000000..f394cc5 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12013.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12014.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12014.zip new file mode 100644 index 0000000..41aaf47 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12014.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12015.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12015.zip new file mode 100644 index 0000000..5c2b77f Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12015.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12016.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12016.zip new file mode 100644 index 0000000..a15f214 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12016.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12017.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12017.zip new file mode 100644 index 0000000..2579f82 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12017.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12018.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12018.zip new file mode 100644 index 0000000..a5158b3 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12018.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12019.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12019.zip new file mode 100644 index 0000000..dbbc6fd Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12019.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12020.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12020.zip new file mode 100644 index 0000000..032e927 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12020.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12021.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12021.zip new file mode 100644 index 0000000..fb79ee0 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12021.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12022.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12022.zip new file mode 100644 index 0000000..2364c9d Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12022.zip differ diff --git a/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12023.zip b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12023.zip new file mode 100644 index 0000000..992ea25 Binary files /dev/null and b/data/zips/EURUSD/HISTDATA_COM_XLSX_EURUSD_M12023.zip differ diff --git a/docker/DockerFile b/docker/DockerFile new file mode 100644 index 0000000..e69de29 diff --git a/env/trading_env.py b/env/trading_env.py new file mode 100644 index 0000000..e69de29 diff --git a/generate_perfect_trades.py b/generate_perfect_trades.py new file mode 100644 index 0000000..3e4a5bd --- /dev/null +++ b/generate_perfect_trades.py @@ -0,0 +1,104 @@ +import pandas as pd +import numpy as np +import os + +# Load 2022 EURUSD 1m data +df = pd.read_excel("data/DAT_XLSX_EURUSD_M1_2021.xlsx", header=None, names=[ + 'timestamp', 'open', 'high', 'low', 'close', 'volume' +]) +df['timestamp'] = pd.to_datetime(df['timestamp']) +df.set_index('timestamp', inplace=True) + +# Resample to 15-minute intervals +df = df.resample('15min').agg({ + 'open': 'first', + 'high': 'max', + 'low': 'min', + 'close': 'last', + 'volume': 'sum' +}).dropna() + +# Create perfect actions +lookahead = 4 # ~1 hour +profit_threshold = 0.001 +loss_threshold = 0.001 + +labels = [] +for i in range(len(df) - lookahead): + current_close = df.iloc[i]['close'] + future_window = df.iloc[i + 1:i + 1 + lookahead] + max_future_price = future_window['high'].max() + min_future_price = future_window['low'].min() + + if max_future_price >= current_close * (1 + profit_threshold): + labels.append(1) + elif min_future_price <= current_close * (1 - loss_threshold): + labels.append(-1) + else: + labels.append(0) + +labels += [0] * lookahead +df['perfect_action'] = labels + +# Simulate perfect trader +balance = 10000.0 +position = 0.0 +entry_price = 0.0 +win_count = 0 +loss_count = 0 +trades_count = 0 +trades = [] + +for i in range(len(df)): + price = df.iloc[i]['close'] + action = df.iloc[i]['perfect_action'] + + if action == 1 and position == 0: + position = balance / price + entry_price = price + trades.append({ + "timestamp": df.index[i], + "action": "buy", + "price": price, + "balance": balance + }) + balance = 0 + trades_count += 1 + + elif action == -1 and position > 0: + exit_value = position * price + pnl = exit_value - (position * entry_price) + if pnl > 0: + win_count += 1 + else: + loss_count += 1 + balance = exit_value + trades.append({ + "timestamp": df.index[i], + "action": "sell", + "price": price, + "balance": balance + }) + position = 0 + entry_price = 0 + +# Finalize any open position +if position > 0: + balance = position * df.iloc[-1]['close'] + +# Results +print("\n๐Ÿ“Š Perfect Trader Simulation:") +print(f"๐ŸŸข Starting Balance: $10,000.00") +print(f"๐Ÿ”š Ending Balance: ${balance:,.2f}") +print(f"๐Ÿ’ผ Total Trades: {trades_count}") +print(f"โœ… Wins: {win_count} | โŒ Losses: {loss_count}") +if trades_count > 0: + print(f"๐Ÿ“ˆ Win Rate: {win_count / trades_count * 100:.2f}%") + +# Save trade log +output_path = "ml/perfect_trades.csv" +os.makedirs("ml", exist_ok=True) + +trades_df = pd.DataFrame(trades) +trades_df.to_csv(output_path, index=False) +print(f"๐Ÿ“ Perfect trades saved to: {output_path}") diff --git a/main.py b/main.py new file mode 100644 index 0000000..5d92826 --- /dev/null +++ b/main.py @@ -0,0 +1,8 @@ +from backtest import run_backtest +from ai_backtest import run_ai_backtest + +if __name__ == "__main__": + + # run_backtest() # โ† SMA strategy + run_ai_backtest() # โ† AI model strategy + diff --git a/ml/__init__.py b/ml/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ml/__pycache__/__init__.cpython-311.pyc b/ml/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..36bc0bd Binary files /dev/null and b/ml/__pycache__/__init__.cpython-311.pyc differ diff --git a/ml/__pycache__/preprocessing.cpython-311.pyc b/ml/__pycache__/preprocessing.cpython-311.pyc new file mode 100644 index 0000000..d94eeb5 Binary files /dev/null and b/ml/__pycache__/preprocessing.cpython-311.pyc differ diff --git a/ml/__pycache__/train_mlp.cpython-311.pyc b/ml/__pycache__/train_mlp.cpython-311.pyc new file mode 100644 index 0000000..ec93cd9 Binary files /dev/null and b/ml/__pycache__/train_mlp.cpython-311.pyc differ diff --git a/ml/feature_names.txt b/ml/feature_names.txt new file mode 100644 index 0000000..e3d03f2 --- /dev/null +++ b/ml/feature_names.txt @@ -0,0 +1,19 @@ +open +high +low +close +volume +sma_10 +sma_30 +rsi_14 +momentum +price_delta +vol_rolling +bollinger_b +macd +day_of_week +hour +minute +sim_balance +buy_amount +pnl diff --git a/ml/models/__init__.py b/ml/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/ml/models/__pycache__/__init__.cpython-311.pyc b/ml/models/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..636463e Binary files /dev/null and b/ml/models/__pycache__/__init__.cpython-311.pyc differ diff --git a/ml/models/__pycache__/forex_mlp.cpython-311.pyc b/ml/models/__pycache__/forex_mlp.cpython-311.pyc new file mode 100644 index 0000000..3c92676 Binary files /dev/null and b/ml/models/__pycache__/forex_mlp.cpython-311.pyc differ diff --git a/ml/models/forex_mlp.pt b/ml/models/forex_mlp.pt new file mode 100644 index 0000000..7b72693 Binary files /dev/null and b/ml/models/forex_mlp.pt differ diff --git a/ml/models/forex_mlp.py b/ml/models/forex_mlp.py new file mode 100644 index 0000000..83ab061 --- /dev/null +++ b/ml/models/forex_mlp.py @@ -0,0 +1,16 @@ +import torch +import torch.nn as nn +import torch.nn.functional as F + +class ForexMLP(nn.Module): + def __init__(self, input_size): + super(ForexMLP, self).__init__() + self.fc1 = nn.Linear(input_size, 64) + self.fc2 = nn.Linear(64, 32) + self.out = nn.Linear(32, 2) # [buy_score, sell_score] + + def forward(self, x): + x = F.relu(self.fc1(x)) + x = F.relu(self.fc2(x)) + x = torch.sigmoid(self.out(x)) # We want probabilities between 0-1 + return x diff --git a/ml/perfect_trades.csv b/ml/perfect_trades.csv new file mode 100644 index 0000000..6602f76 --- /dev/null +++ b/ml/perfect_trades.csv @@ -0,0 +1,1371 @@ +timestamp,action,price,balance +2021-01-03 17:30:00,buy,1.22339,10000.0 +2021-01-04 00:45:00,sell,1.22551,10017.328897571502 +2021-01-04 01:00:00,buy,1.22461,10017.328897571502 +2021-01-04 07:15:00,sell,1.22991,10060.682980224045 +2021-01-04 08:15:00,buy,1.22883,10060.682980224045 +2021-01-04 08:45:00,sell,1.22986,10069.11580125676 +2021-01-04 20:45:00,buy,1.22569,10069.11580125676 +2021-01-05 01:45:00,sell,1.22694,10079.384625144994 +2021-01-05 02:30:00,buy,1.2265,10079.384625144994 +2021-01-05 04:15:00,sell,1.22838,10094.834476832946 +2021-01-05 05:45:00,buy,1.22771,10094.834476832946 +2021-01-05 06:15:00,sell,1.2283,10099.68574654756 +2021-01-05 08:45:00,buy,1.22625,10099.68574654756 +2021-01-05 09:00:00,sell,1.22711,10106.768910455432 +2021-01-05 09:45:00,buy,1.2264,10106.768910455432 +2021-01-05 13:15:00,sell,1.23025,10138.496780893505 +2021-01-05 18:45:00,buy,1.22984,10138.496780893505 +2021-01-05 19:45:00,sell,1.23088,10147.070283667954 +2021-01-05 21:45:00,buy,1.22787,10147.070283667954 +2021-01-06 02:30:00,sell,1.23376,10195.745016311315 +2021-01-06 03:15:00,buy,1.23248,10195.745016311315 +2021-01-06 06:15:00,sell,1.23468,10213.944613088452 +2021-01-06 09:00:00,buy,1.23035,10213.944613088452 +2021-01-06 09:45:00,sell,1.23094,10218.842591161132 +2021-01-06 11:00:00,buy,1.22721,10218.842591161132 +2021-01-06 20:15:00,sell,1.23311,10267.97124174893 +2021-01-07 01:00:00,buy,1.23129,10267.97124174893 +2021-01-07 02:00:00,sell,1.23195,10273.475112502005 +2021-01-07 03:00:00,buy,1.22975,10273.475112502005 +2021-01-07 03:15:00,sell,1.2306,10280.576111766593 +2021-01-07 05:45:00,buy,1.22494,10280.576111766593 +2021-01-07 06:30:00,sell,1.22639,10292.745553014378 +2021-01-07 06:45:00,buy,1.22567,10292.745553014378 +2021-01-07 08:00:00,sell,1.22756,10308.617108241475 +2021-01-07 08:45:00,buy,1.22685,10308.617108241475 +2021-01-07 09:00:00,sell,1.228,10318.279992599364 +2021-01-07 09:30:00,buy,1.22551,10318.279992599364 +2021-01-07 09:45:00,sell,1.2259,10321.563628960645 +2021-01-07 10:00:00,buy,1.22562,10321.563628960645 +2021-01-07 11:15:00,sell,1.22718,10334.701175068882 +2021-01-07 12:15:00,buy,1.22566,10334.701175068882 +2021-01-07 13:30:00,sell,1.22776,10352.40826550803 +2021-01-07 15:30:00,buy,1.22636,10352.40826550803 +2021-01-07 18:45:00,sell,1.22691,10357.051131017366 +2021-01-07 20:00:00,buy,1.22395,10357.051131017366 +2021-01-08 01:30:00,sell,1.22643,10378.036863118285 +2021-01-08 03:00:00,buy,1.22186,10378.036863118285 +2021-01-08 08:45:00,sell,1.22715,10422.968209594881 +2021-01-08 09:00:00,buy,1.22657,10422.968209594881 +2021-01-08 09:15:00,sell,1.22775,10432.995442029494 +2021-01-08 10:00:00,buy,1.22427,10432.995442029494 +2021-01-08 10:45:00,sell,1.22549,10443.392049345915 +2021-01-08 11:00:00,buy,1.2241,10443.392049345915 +2021-01-08 11:30:00,sell,1.22601,10459.687187663252 +2021-01-08 13:30:00,buy,1.21984,10459.687187663252 +2021-01-10 17:00:00,sell,1.22221,10480.00908121877 +2021-01-11 00:30:00,buy,1.21747,10480.00908121877 +2021-01-11 01:45:00,sell,1.21899,10493.093275329058 +2021-01-11 02:30:00,buy,1.21844,10493.093275329058 +2021-01-11 03:00:00,sell,1.21962,10503.25532685797 +2021-01-11 07:00:00,buy,1.21567,10503.25532685797 +2021-01-11 07:30:00,sell,1.21686,10513.536796203238 +2021-01-11 08:45:00,buy,1.21444,10513.536796203238 +2021-01-11 09:00:00,sell,1.21473,10516.047357178584 +2021-01-11 09:45:00,buy,1.21374,10516.047357178584 +2021-01-11 14:30:00,sell,1.21672,10541.866578036752 +2021-01-11 23:45:00,buy,1.21427,10541.866578036752 +2021-01-12 02:15:00,sell,1.21684,10564.178417335717 +2021-01-12 03:00:00,buy,1.21547,10564.178417335717 +2021-01-12 04:15:00,sell,1.21782,10584.603289426956 +2021-01-12 05:45:00,buy,1.21452,10584.603289426956 +2021-01-12 07:30:00,sell,1.21563,10594.276995624683 +2021-01-12 08:30:00,buy,1.2144,10594.276995624683 +2021-01-12 10:30:00,sell,1.21631,10610.93960190074 +2021-01-12 10:45:00,buy,1.21557,10610.93960190074 +2021-01-13 02:00:00,sell,1.2216,10663.576608243 +2021-01-13 06:45:00,buy,1.21627,10663.576608243 +2021-01-13 07:45:00,sell,1.21726,10672.256375763502 +2021-01-13 08:00:00,buy,1.21655,10672.256375763502 +2021-01-13 08:15:00,sell,1.21686,10674.97586898325 +2021-01-13 08:45:00,buy,1.21611,10674.97586898325 +2021-01-13 09:00:00,sell,1.21725,10684.982753632368 +2021-01-13 09:15:00,buy,1.21564,10684.982753632368 +2021-01-13 10:00:00,sell,1.21716,10698.34293739197 +2021-01-13 12:00:00,buy,1.21556,10698.34293739197 +2021-01-13 13:00:00,sell,1.21729,10713.568951148334 +2021-01-13 18:15:00,buy,1.21569,10713.568951148334 +2021-01-13 20:15:00,sell,1.21675,10722.910463448525 +2021-01-14 02:30:00,buy,1.21471,10722.910463448525 +2021-01-14 05:30:00,sell,1.21658,10739.41797764257 +2021-01-14 08:15:00,buy,1.21125,10739.41797764257 +2021-01-14 09:00:00,sell,1.21259,10751.298943661179 +2021-01-14 09:45:00,buy,1.2117,10751.298943661179 +2021-01-14 12:45:00,sell,1.21654,10794.243803682075 +2021-01-14 13:00:00,buy,1.21597,10794.243803682075 +2021-01-15 02:00:00,sell,1.21435,10779.862959613582 +2021-01-15 03:00:00,buy,1.21252,10779.862959613582 +2021-01-15 04:45:00,sell,1.2139,10792.131797145552 +2021-01-15 07:30:00,buy,1.21191,10792.131797145552 +2021-01-15 08:00:00,sell,1.21227,10795.337618903744 +2021-01-15 10:15:00,buy,1.20855,10795.337618903744 +2021-01-15 12:30:00,sell,1.20896,10798.999931943132 +2021-01-18 02:45:00,buy,1.20675,10798.999931943132 +2021-01-18 03:30:00,sell,1.20752,10805.890530615263 +2021-01-18 05:15:00,buy,1.20613,10805.890530615263 +2021-01-18 06:15:00,sell,1.20715,10815.028855954344 +2021-01-18 07:45:00,buy,1.2056,10815.028855954344 +2021-01-19 01:45:00,sell,1.20978,10852.526218776084 +2021-01-19 02:00:00,buy,1.20965,10852.526218776084 +2021-01-19 03:15:00,sell,1.21162,10870.200320087197 +2021-01-19 03:45:00,buy,1.21093,10870.200320087197 +2021-01-19 08:45:00,sell,1.21358,10893.988673541346 +2021-01-19 10:00:00,buy,1.21201,10893.988673541346 +2021-01-19 10:30:00,sell,1.21339,10906.392617708048 +2021-01-19 17:15:00,buy,1.21261,10906.392617708048 +2021-01-19 18:45:00,sell,1.21391,10918.08500883382 +2021-01-20 00:30:00,buy,1.21408,10918.08500883382 +2021-01-20 02:15:00,sell,1.21546,10930.49519375754 +2021-01-20 08:00:00,buy,1.21004,10930.49519375754 +2021-01-20 08:15:00,sell,1.21087,10937.992723600204 +2021-01-20 09:30:00,buy,1.21002,10937.992723600204 +2021-01-20 10:30:00,sell,1.21119,10948.568954973744 +2021-01-20 11:00:00,buy,1.20988,10948.568954973744 +2021-01-20 12:00:00,sell,1.21133,10961.69044221604 +2021-01-20 17:15:00,buy,1.21049,10961.69044221604 +2021-01-21 01:45:00,sell,1.2131,10985.325509051936 +2021-01-21 02:45:00,buy,1.21195,10985.325509051936 +2021-01-21 08:15:00,sell,1.21618,11023.666964477728 +2021-01-21 08:30:00,buy,1.21567,11023.666964477728 +2021-01-21 08:45:00,sell,1.21512,11018.679577415069 +2021-01-21 09:00:00,buy,1.21481,11018.679577415069 +2021-01-21 10:00:00,sell,1.21623,11031.559389895974 +2021-01-21 12:00:00,buy,1.21395,11031.559389895974 +2021-01-22 03:45:00,sell,1.21795,11067.90869387026 +2021-01-22 04:30:00,buy,1.2165,11067.90869387026 +2021-01-22 06:15:00,sell,1.21805,11082.01083811646 +2021-01-22 08:00:00,buy,1.21576,11082.01083811646 +2021-01-22 10:00:00,sell,1.21826,11104.799075182402 +2021-01-24 20:30:00,buy,1.21603,11104.799075182402 +2021-01-25 03:00:00,sell,1.21746,11117.857850605304 +2021-01-25 05:00:00,buy,1.2141,11117.857850605304 +2021-01-25 08:45:00,sell,1.21469,11123.26064784759 +2021-01-25 10:30:00,buy,1.21217,11123.26064784759 +2021-01-25 22:30:00,sell,1.21413,11141.24623639522 +2021-01-26 02:30:00,buy,1.21117,11141.24623639522 +2021-01-26 03:45:00,sell,1.21382,11165.622915578528 +2021-01-26 05:30:00,buy,1.2126,11165.622915578528 +2021-01-26 10:30:00,sell,1.2172,11207.97972360398 +2021-01-27 09:30:00,buy,1.20617,11207.97972360398 +2021-01-27 13:45:00,sell,1.21199,11262.060360654623 +2021-01-27 15:30:00,buy,1.20965,11262.060360654623 +2021-01-27 17:30:00,sell,1.21096,11274.256697671495 +2021-01-27 19:45:00,buy,1.20879,11274.256697671495 +2021-01-27 21:00:00,sell,1.21016,11287.03454301751 +2021-01-28 00:15:00,buy,1.20921,11287.03454301751 +2021-01-28 00:45:00,sell,1.21053,11299.355716012096 +2021-01-28 02:00:00,buy,1.20926,11299.355716012096 +2021-01-28 03:00:00,sell,1.21046,11310.568546056267 +2021-01-28 03:30:00,buy,1.20959,11310.568546056267 +2021-01-28 05:30:00,sell,1.21121,11325.716754163652 +2021-01-28 06:30:00,buy,1.20975,11325.716754163652 +2021-01-28 07:00:00,sell,1.21095,11336.951191117563 +2021-01-28 07:45:00,buy,1.2099,11336.951191117563 +2021-01-28 10:00:00,sell,1.21394,11374.806619510087 +2021-01-28 12:45:00,buy,1.21251,11374.806619510087 +2021-01-28 15:00:00,sell,1.21363,11385.313570721912 +2021-01-29 02:15:00,buy,1.21007,11385.313570721912 +2021-01-29 07:00:00,sell,1.21392,11421.537472849293 +2021-01-29 07:45:00,buy,1.21336,11421.537472849293 +2021-01-29 09:00:00,sell,1.21546,11441.305084022386 +2021-01-29 10:30:00,buy,1.21297,11441.305084022386 +2021-01-29 10:45:00,sell,1.2149,11459.509754222114 +2021-01-31 19:00:00,buy,1.21216,11459.509754222114 +2021-02-01 02:15:00,sell,1.21249,11462.629505920648 +2021-02-01 03:45:00,buy,1.20888,11462.629505920648 +2021-02-01 04:15:00,sell,1.21011,11474.292395779265 +2021-02-01 07:45:00,buy,1.20755,11474.292395779265 +2021-02-01 10:00:00,sell,1.20918,11489.78086135429 +2021-02-01 12:15:00,buy,1.20632,11489.78086135429 +2021-02-01 14:15:00,sell,1.20756,11501.591432569288 +2021-02-01 19:30:00,buy,1.20668,11501.591432569288 +2021-02-02 00:45:00,sell,1.20791,11513.315300920516 +2021-02-02 02:15:00,buy,1.20652,11513.315300920516 +2021-02-02 03:30:00,sell,1.20813,11528.678856961427 +2021-02-02 06:45:00,buy,1.20277,11528.678856961427 +2021-02-02 08:30:00,sell,1.20385,11539.030772261543 +2021-02-02 14:45:00,buy,1.20199,11539.030772261543 +2021-02-03 03:00:00,sell,1.20396,11557.942652245034 +2021-02-03 04:00:00,buy,1.20176,11557.942652245034 +2021-02-03 04:30:00,sell,1.20272,11567.175464908258 +2021-02-03 07:45:00,buy,1.20105,11567.175464908258 +2021-02-03 09:15:00,sell,1.20244,11580.562396256846 +2021-02-03 10:15:00,buy,1.20115,11580.562396256846 +2021-02-03 21:15:00,sell,1.20354,11603.604933930788 +2021-02-05 02:00:00,buy,1.19654,11603.604933930788 +2021-02-05 16:30:00,sell,1.20479,11683.610400279535 +2021-02-07 17:00:00,buy,1.20369,11683.610400279535 +2021-02-07 18:45:00,sell,1.20483,11694.675804043229 +2021-02-08 01:30:00,buy,1.20343,11694.675804043229 +2021-02-08 02:30:00,sell,1.20457,11705.75408064977 +2021-02-08 07:30:00,buy,1.20205,11705.75408064977 +2021-02-08 10:15:00,sell,1.20592,11743.440756155876 +2021-02-08 11:30:00,buy,1.20371,11743.440756155876 +2021-02-09 02:15:00,sell,1.20823,11787.538048874076 +2021-02-09 02:45:00,buy,1.20811,11787.538048874076 +2021-02-09 08:00:00,sell,1.21053,11811.150006459291 +2021-02-09 09:45:00,buy,1.20912,11811.150006459291 +2021-02-10 03:30:00,sell,1.21377,11856.572997998623 +2021-02-10 07:30:00,buy,1.21151,11856.572997998623 +2021-02-10 09:15:00,sell,1.21373,11878.299266915557 +2021-02-10 09:45:00,buy,1.21242,11878.299266915557 +2021-02-11 02:15:00,sell,1.21303,11884.275547868378 +2021-02-11 03:15:00,buy,1.21227,11884.275547868378 +2021-02-11 08:00:00,sell,1.2147,11908.097625112985 +2021-02-12 09:15:00,buy,1.2089,11908.097625112985 +2021-02-15 06:15:00,sell,1.21379,11956.265875081388 +2021-02-16 02:15:00,buy,1.21324,11956.265875081388 +2021-02-16 06:45:00,sell,1.21652,11988.58969565297 +2021-02-16 09:45:00,buy,1.20972,11988.58969565297 +2021-02-16 10:45:00,sell,1.21192,12010.39217666547 +2021-02-17 08:45:00,buy,1.20336,12010.39217666547 +2021-02-17 09:30:00,sell,1.20441,12020.871926520458 +2021-02-17 11:00:00,buy,1.20266,12020.871926520458 +2021-02-18 08:30:00,sell,1.20857,12079.943778154115 +2021-02-18 09:45:00,buy,1.20703,12079.943778154115 +2021-02-19 08:00:00,sell,1.21381,12147.797948154765 +2021-02-19 09:15:00,buy,1.2119,12147.797948154765 +2021-02-19 11:45:00,sell,1.21359,12164.738107022973 +2021-02-21 18:15:00,buy,1.21165,12164.738107022973 +2021-02-21 20:15:00,sell,1.21339,12182.20737975538 +2021-02-22 02:15:00,buy,1.21082,12182.20737975538 +2021-02-22 03:00:00,sell,1.21196,12193.677058496167 +2021-02-22 03:15:00,buy,1.21009,12193.677058496167 +2021-02-22 08:30:00,sell,1.21485,12241.64200556493 +2021-02-22 10:45:00,buy,1.21387,12241.64200556493 +2021-02-22 14:30:00,sell,1.2168,12271.190483636146 +2021-02-23 09:30:00,buy,1.2142,12271.190483636146 +2021-02-23 10:30:00,sell,1.21641,12293.525626914714 +2021-02-24 02:30:00,buy,1.21586,12293.525626914714 +2021-02-24 04:15:00,sell,1.21705,12305.557682822491 +2021-02-24 05:15:00,buy,1.21502,12305.557682822491 +2021-02-24 07:00:00,sell,1.21658,12321.357151131822 +2021-02-24 10:00:00,buy,1.21141,12321.357151131822 +2021-02-25 01:45:00,sell,1.21811,12389.503437618298 +2021-02-25 02:00:00,buy,1.21722,12389.503437618298 +2021-02-25 07:30:00,sell,1.22335,12451.897792026375 +2021-02-25 08:30:00,buy,1.22243,12451.897792026375 +2021-02-25 09:30:00,sell,1.22366,12464.426799236762 +2021-02-25 10:00:00,buy,1.22244,12464.426799236762 +2021-02-25 10:15:00,sell,1.22287,12468.811229984833 +2021-02-25 11:15:00,buy,1.22248,12468.811229984833 +2021-02-25 11:45:00,sell,1.2229,12473.095063435354 +2021-02-25 13:30:00,buy,1.2173,12473.095063435354 +2021-02-25 14:15:00,sell,1.21887,12489.18210791871 +2021-02-25 15:45:00,buy,1.21631,12489.18210791871 +2021-02-25 17:30:00,sell,1.21803,12506.843224924753 +2021-02-25 19:15:00,buy,1.21418,12506.843224924753 +2021-02-25 21:45:00,sell,1.21723,12538.26020744466 +2021-02-25 23:30:00,buy,1.21469,12538.26020744466 +2021-02-26 01:00:00,sell,1.21552,12546.82762462285 +2021-02-26 02:15:00,buy,1.21389,12546.82762462285 +2021-02-26 03:15:00,sell,1.21543,12562.745141483458 +2021-02-26 06:30:00,buy,1.21005,12562.745141483458 +2021-02-26 09:15:00,sell,1.21301,12593.475876262011 +2021-02-26 09:30:00,buy,1.21248,12593.475876262011 +2021-02-26 10:30:00,sell,1.21358,12604.90107376126 +2021-02-26 11:15:00,buy,1.20916,12604.90107376126 +2021-02-26 11:30:00,sell,1.20955,12608.966632842577 +2021-02-26 16:00:00,buy,1.20654,12608.966632842577 +2021-02-28 19:30:00,sell,1.20977,12642.721802355467 +2021-03-01 04:30:00,buy,1.2039,12642.721802355467 +2021-03-01 05:30:00,sell,1.20539,12658.368995216593 +2021-03-01 08:00:00,buy,1.20523,12658.368995216593 +2021-03-01 09:00:00,sell,1.20571,12663.410370819345 +2021-03-01 09:30:00,buy,1.20429,12663.410370819345 +2021-03-01 11:45:00,sell,1.20533,12674.346230774714 +2021-03-01 13:00:00,buy,1.20329,12674.346230774714 +2021-03-01 19:15:00,sell,1.20476,12689.82985397381 +2021-03-02 03:45:00,buy,1.20022,12689.82985397381 +2021-03-02 07:45:00,sell,1.20336,12723.02882228085 +2021-03-02 08:15:00,buy,1.20294,12723.02882228085 +2021-03-03 02:30:00,sell,1.21006,12798.33429488517 +2021-03-03 03:30:00,buy,1.20769,12798.33429488517 +2021-03-03 04:30:00,sell,1.21098,12833.199632703792 +2021-03-03 08:30:00,buy,1.20487,12833.199632703792 +2021-03-03 13:15:00,sell,1.20767,12863.022733097669 +2021-03-03 18:45:00,buy,1.20464,12863.022733097669 +2021-03-03 19:30:00,sell,1.2059,12876.476884249634 +2021-03-03 20:00:00,buy,1.20504,12876.476884249634 +2021-03-03 20:45:00,sell,1.2062,12888.87208539294 +2021-03-04 04:30:00,buy,1.20297,12888.87208539294 +2021-03-04 05:45:00,sell,1.20489,12909.443366808066 +2021-03-04 10:15:00,buy,1.20287,12909.443366808066 +2021-03-04 11:00:00,sell,1.20444,12926.292923356892 +2021-03-05 03:30:00,buy,1.19252,12926.292923356892 +2021-03-05 05:15:00,sell,1.19377,12939.842269409115 +2021-03-05 06:15:00,buy,1.19304,12939.842269409115 +2021-03-05 07:15:00,sell,1.19426,12953.074522785932 +2021-03-05 08:30:00,buy,1.19227,12953.074522785932 +2021-03-05 09:00:00,sell,1.19344,12965.785651298485 +2021-03-05 09:45:00,buy,1.19158,12965.785651298485 +2021-03-05 10:15:00,sell,1.19207,12971.117425051933 +2021-03-07 17:15:00,buy,1.19174,12971.117425051933 +2021-03-07 20:30:00,sell,1.19249,12979.280563042425 +2021-03-08 02:30:00,buy,1.18817,12979.280563042425 +2021-03-08 03:00:00,sell,1.18928,12991.405933507069 +2021-03-08 07:45:00,buy,1.18617,12991.405933507069 +2021-03-08 09:30:00,sell,1.18833,13015.06311318315 +2021-03-08 12:00:00,buy,1.18495,13015.06311318315 +2021-03-08 13:00:00,sell,1.18637,13030.659880659177 +2021-03-08 20:15:00,buy,1.18394,13030.659880659177 +2021-03-09 06:15:00,sell,1.1914,13112.766003190485 +2021-03-09 08:15:00,buy,1.18846,13112.766003190485 +2021-03-09 09:45:00,sell,1.19014,13131.302131360857 +2021-03-10 02:45:00,buy,1.18841,13131.302131360857 +2021-03-10 09:00:00,sell,1.19226,13173.842595683558 +2021-03-10 11:30:00,buy,1.18942,13173.842595683558 +2021-03-11 06:45:00,sell,1.19642,13251.373575631587 +2021-03-11 07:00:00,buy,1.19607,13251.373575631587 +2021-03-11 07:15:00,sell,1.19643,13255.362049957695 +2021-03-11 07:30:00,buy,1.19591,13255.362049957695 +2021-03-11 08:00:00,sell,1.1969,13266.335123541376 +2021-03-11 09:30:00,buy,1.19338,13266.335123541376 +2021-03-11 20:15:00,sell,1.19862,13324.586138345843 +2021-03-12 06:30:00,buy,1.19191,13324.586138345843 +2021-03-12 07:45:00,sell,1.19346,13341.913879965961 +2021-03-12 09:00:00,buy,1.19226,13341.913879965961 +2021-03-12 09:15:00,sell,1.19269,13346.725769124689 +2021-03-12 10:00:00,buy,1.19247,13346.725769124689 +2021-03-12 15:45:00,sell,1.19604,13386.683009974167 +2021-03-14 19:30:00,buy,1.19551,13386.683009974167 +2021-03-14 20:15:00,sell,1.19648,13397.544552344934 +2021-03-15 02:30:00,buy,1.19247,13397.544552344934 +2021-03-15 03:45:00,sell,1.19367,13411.026697357232 +2021-03-15 09:15:00,buy,1.19202,13411.026697357232 +2021-03-15 09:45:00,sell,1.19277,13419.464701772444 +2021-03-15 10:30:00,buy,1.19179,13419.464701772444 +2021-03-15 11:15:00,sell,1.19345,13438.156175442253 +2021-03-15 21:30:00,buy,1.19245,13438.156175442253 +2021-03-16 01:15:00,sell,1.1934,13448.86207369096 +2021-03-16 02:45:00,buy,1.19163,13448.86207369096 +2021-03-16 06:30:00,sell,1.19492,13485.993361273886 +2021-03-16 10:30:00,buy,1.18851,13485.993361273886 +2021-03-17 01:45:00,sell,1.19076,13511.524055220818 +2021-03-17 03:00:00,buy,1.18905,13511.524055220818 +2021-03-17 05:15:00,sell,1.19137,13537.886895982865 +2021-03-17 06:45:00,buy,1.18934,13537.886895982865 +2021-03-17 13:30:00,sell,1.19808,13637.371594614786 +2021-03-17 14:00:00,buy,1.19669,13637.371594614786 +2021-03-17 19:30:00,sell,1.19821,13654.693377886822 +2021-03-18 00:30:00,buy,1.19641,13654.693377886822 +2021-03-18 01:45:00,sell,1.19793,13672.041221798514 +2021-03-18 05:15:00,buy,1.19368,13672.041221798514 +2021-03-18 06:15:00,sell,1.19463,13682.922227730345 +2021-03-18 08:00:00,buy,1.19115,13682.922227730345 +2021-03-18 09:00:00,sell,1.19218,13694.753995261357 +2021-03-18 10:00:00,buy,1.19172,13694.753995261357 +2021-03-18 11:00:00,sell,1.19353,13715.553767633579 +2021-03-19 00:30:00,buy,1.19148,13715.553767633579 +2021-03-19 03:00:00,sell,1.19321,13735.468418335233 +2021-03-19 05:30:00,buy,1.18964,13735.468418335233 +2021-03-19 06:30:00,sell,1.19088,13749.785338444455 +2021-03-19 09:30:00,buy,1.18842,13749.785338444455 +2021-03-19 15:00:00,sell,1.19044,13773.156340601654 +2021-03-21 16:00:00,buy,1.1876,13773.156340601654 +2021-03-21 19:15:00,sell,1.18874,13786.377457331431 +2021-03-21 20:15:00,buy,1.18781,13786.377457331431 +2021-03-22 00:30:00,sell,1.1898,13809.474494012456 +2021-03-22 02:30:00,buy,1.18839,13809.474494012456 +2021-03-22 07:00:00,sell,1.19297,13862.69556889745 +2021-03-22 08:30:00,buy,1.19122,13862.69556889745 +2021-03-23 01:45:00,sell,1.19273,13880.26803268167 +2021-03-23 06:30:00,buy,1.18787,13880.26803268167 +2021-03-23 07:15:00,sell,1.18885,13891.719338524925 +2021-03-24 02:45:00,buy,1.18206,13891.719338524925 +2021-03-24 04:15:00,sell,1.18427,13917.691539376097 +2021-03-24 05:45:00,buy,1.18225,13917.691539376097 +2021-03-24 07:15:00,sell,1.18326,13929.581468286877 +2021-03-24 09:30:00,buy,1.18211,13929.581468286877 +2021-03-24 11:00:00,sell,1.18317,13942.072147120813 +2021-03-24 20:30:00,buy,1.18103,13942.072147120813 +2021-03-25 02:15:00,sell,1.18139,13946.321951082577 +2021-03-25 04:15:00,buy,1.18061,13946.321951082577 +2021-03-25 06:30:00,sell,1.18098,13950.692690888185 +2021-03-25 07:30:00,buy,1.17922,13950.692690888185 +2021-03-25 08:15:00,sell,1.18109,13972.815615645195 +2021-03-25 11:45:00,buy,1.17627,13972.815615645195 +2021-03-25 13:15:00,sell,1.1779,13992.178253010343 +2021-03-25 15:15:00,buy,1.17621,13992.178253010343 +2021-03-26 04:30:00,sell,1.17957,14032.148767569915 +2021-03-26 07:45:00,buy,1.17761,14032.148767569915 +2021-03-26 11:45:00,sell,1.17987,14059.078443960832 +2021-03-29 02:00:00,buy,1.17764,14059.078443960832 +2021-03-29 03:15:00,sell,1.17884,14073.404463909843 +2021-03-29 04:30:00,buy,1.17681,14073.404463909843 +2021-03-29 08:45:00,sell,1.17855,14094.21302584185 +2021-03-29 10:45:00,buy,1.17633,14094.21302584185 +2021-03-30 01:30:00,sell,1.17634,14094.332840970475 +2021-03-30 03:45:00,buy,1.17353,14094.332840970475 +2021-03-30 06:00:00,sell,1.17434,14104.061104927243 +2021-03-30 09:30:00,buy,1.17168,14104.061104927243 +2021-03-30 20:30:00,sell,1.17229,14111.403960718932 +2021-03-31 01:30:00,buy,1.17098,14111.403960718932 +2021-03-31 04:45:00,sell,1.17462,14155.269364412434 +2021-03-31 06:00:00,buy,1.17241,14155.269364412434 +2021-03-31 07:00:00,sell,1.17365,14170.240691859208 +2021-03-31 08:45:00,buy,1.17255,14170.240691859208 +2021-03-31 10:45:00,sell,1.17517,14201.903333633692 +2021-03-31 11:15:00,buy,1.17363,14201.903333633692 +2021-03-31 12:30:00,sell,1.17514,14220.17559493733 +2021-04-01 01:45:00,buy,1.17176,14220.17559493733 +2021-04-01 03:45:00,sell,1.17412,14248.815943134958 +2021-04-01 04:45:00,buy,1.17275,14248.815943134958 +2021-04-01 06:15:00,sell,1.1747,14272.508282584213 +2021-04-01 07:30:00,buy,1.17362,14272.508282584213 +2021-04-01 09:00:00,sell,1.17574,14298.289811153152 +2021-04-01 10:00:00,buy,1.17432,14298.289811153152 +2021-04-02 07:30:00,sell,1.17744,14336.27831872417 +2021-04-02 07:45:00,buy,1.1773,14336.27831872417 +2021-04-02 08:30:00,sell,1.17681,14330.311465435987 +2021-04-02 09:00:00,buy,1.17571,14330.311465435987 +2021-04-02 09:30:00,sell,1.17678,14343.353315269716 +2021-04-05 03:45:00,buy,1.17425,14343.353315269716 +2021-04-05 04:15:00,sell,1.17561,14359.965587365748 +2021-04-05 06:00:00,buy,1.17416,14359.965587365748 +2021-04-05 10:15:00,sell,1.18118,14445.820120328295 +2021-04-05 10:45:00,buy,1.17987,14445.820120328295 +2021-04-06 02:00:00,sell,1.18154,14466.266881073927 +2021-04-06 02:45:00,buy,1.18044,14466.266881073927 +2021-04-06 03:30:00,sell,1.18119,14475.458114987388 +2021-04-06 04:15:00,buy,1.1805,14475.458114987388 +2021-04-07 03:45:00,sell,1.18789,14566.075341137115 +2021-04-07 04:00:00,buy,1.18733,14566.075341137115 +2021-04-07 07:15:00,sell,1.18919,14588.893681560177 +2021-04-07 08:15:00,buy,1.18815,14588.893681560177 +2021-04-07 10:15:00,sell,1.19075,14620.818205881227 +2021-04-07 15:15:00,buy,1.18628,14620.818205881227 +2021-04-08 03:00:00,sell,1.18892,14653.356021627531 +2021-04-08 06:30:00,buy,1.18628,14653.356021627531 +2021-04-08 10:30:00,sell,1.1906,14706.718211003927 +2021-04-08 11:15:00,buy,1.19021,14706.718211003927 +2021-04-08 20:45:00,sell,1.19192,14727.847665588259 +2021-04-09 06:45:00,buy,1.18836,14727.847665588259 +2021-04-09 07:15:00,sell,1.18917,14737.886337883798 +2021-04-09 08:30:00,buy,1.18699,14737.886337883798 +2021-04-09 16:00:00,sell,1.19037,14779.853040064983 +2021-04-12 03:45:00,buy,1.18731,14779.853040064983 +2021-04-12 13:15:00,sell,1.19157,14832.88230281075 +2021-04-13 02:30:00,buy,1.18956,14832.88230281075 +2021-04-13 05:15:00,sell,1.19027,14841.735447196066 +2021-04-13 07:30:00,buy,1.18936,14841.735447196066 +2021-04-13 10:00:00,sell,1.19373,14896.267619039954 +2021-04-13 10:45:00,buy,1.19262,14896.267619039954 +2021-04-14 02:45:00,sell,1.19691,14949.85131551132 +2021-04-14 03:30:00,buy,1.1958,14949.85131551132 +2021-04-14 04:30:00,sell,1.19709,14965.978852053393 +2021-04-14 07:15:00,buy,1.19547,14965.978852053393 +2021-04-14 09:30:00,sell,1.19662,14980.375596162288 +2021-04-14 09:45:00,buy,1.19572,14980.375596162288 +2021-04-14 20:45:00,sell,1.19861,15016.582471913225 +2021-04-15 02:15:00,buy,1.19733,15016.582471913225 +2021-04-15 03:15:00,sell,1.19865,15033.1375476759 +2021-04-15 04:15:00,buy,1.19772,15033.1375476759 +2021-04-15 05:00:00,sell,1.19849,15042.802173725153 +2021-04-15 07:30:00,buy,1.19667,15042.802173725153 +2021-04-15 08:00:00,sell,1.197,15046.950455805703 +2021-04-15 08:15:00,buy,1.19668,15046.950455805703 +2021-04-15 08:30:00,sell,1.1972,15053.48889067302 +2021-04-15 08:45:00,buy,1.19582,15053.48889067302 +2021-04-15 10:00:00,sell,1.19836,15085.463487002158 +2021-04-15 13:00:00,buy,1.19573,15085.463487002158 +2021-04-15 19:45:00,sell,1.19692,15100.476660167951 +2021-04-16 02:15:00,buy,1.19589,15100.476660167951 +2021-04-16 03:45:00,sell,1.19875,15136.589817103857 +2021-04-16 05:30:00,buy,1.19729,15136.589817103857 +2021-04-18 20:00:00,sell,1.19667,15128.751544265526 +2021-04-19 01:45:00,buy,1.19666,15128.751544265526 +2021-04-19 08:15:00,sell,1.20371,15217.881036675293 +2021-04-19 10:00:00,buy,1.20195,15217.881036675293 +2021-04-19 10:15:00,sell,1.20284,15229.149320815764 +2021-04-19 22:00:00,buy,1.20442,15229.149320815764 +2021-04-20 03:30:00,sell,1.20767,15270.243569742759 +2021-04-20 08:30:00,buy,1.20337,15270.243569742759 +2021-04-20 10:15:00,sell,1.20536,15295.495806963056 +2021-04-21 06:15:00,buy,1.1999,15295.495806963056 +2021-04-21 08:30:00,sell,1.20114,15311.302469852159 +2021-04-21 09:15:00,buy,1.2003,15311.302469852159 +2021-04-21 23:15:00,sell,1.20443,15363.985698378769 +2021-04-22 02:00:00,buy,1.20305,15363.985698378769 +2021-04-22 03:30:00,sell,1.20451,15382.631157104202 +2021-04-22 04:45:00,buy,1.20261,15382.631157104202 +2021-04-22 07:00:00,sell,1.20543,15418.70188648699 +2021-04-22 07:45:00,buy,1.20447,15418.70188648699 +2021-04-22 08:45:00,sell,1.20645,15444.048329100957 +2021-04-22 10:15:00,buy,1.20054,15444.048329100957 +2021-04-22 10:45:00,sell,1.20226,15466.174841442116 +2021-04-23 02:00:00,buy,1.2027,15466.174841442116 +2021-04-23 09:15:00,sell,1.20651,15515.16970811368 +2021-04-23 10:45:00,buy,1.20493,15515.16970811368 +2021-04-26 01:45:00,sell,1.21066,15588.951523179694 +2021-04-26 04:15:00,buy,1.20957,15588.951523179694 +2021-04-26 07:15:00,sell,1.20916,15583.667438650065 +2021-04-26 09:45:00,buy,1.20663,15583.667438650065 +2021-04-27 03:15:00,sell,1.20694,15587.671099180618 +2021-04-27 05:00:00,buy,1.20572,15587.671099180618 +2021-04-27 07:45:00,sell,1.2088,15627.48965322756 +2021-04-27 08:30:00,buy,1.20777,15627.48965322756 +2021-04-27 09:00:00,sell,1.20852,15637.193998624381 +2021-04-27 09:15:00,buy,1.20781,15637.193998624381 +2021-04-27 10:00:00,sell,1.20888,15651.04700330105 +2021-04-27 12:45:00,buy,1.20707,15651.04700330105 +2021-04-28 02:00:00,sell,1.20768,15658.956352942754 +2021-04-28 02:45:00,buy,1.20593,15658.956352942754 +2021-04-28 08:30:00,sell,1.20706,15673.629361059997 +2021-04-28 09:00:00,buy,1.20733,15673.629361059997 +2021-04-28 12:15:00,sell,1.20927,15698.814555630212 +2021-04-28 13:15:00,buy,1.20815,15698.814555630212 +2021-04-28 14:30:00,sell,1.21288,15760.276619817712 +2021-04-28 15:00:00,buy,1.21152,15760.276619817712 +2021-04-28 22:30:00,sell,1.21391,15791.367366253071 +2021-04-29 06:15:00,buy,1.21179,15791.367366253071 +2021-04-29 08:00:00,sell,1.21282,15804.78974833845 +2021-04-29 08:15:00,buy,1.21231,15804.78974833845 +2021-04-29 08:30:00,sell,1.21348,15820.042945957503 +2021-04-29 09:45:00,buy,1.21062,15820.042945957503 +2021-04-30 03:00:00,sell,1.21093,15824.093939095934 +2021-04-30 10:00:00,buy,1.20608,15824.093939095934 +2021-04-30 10:15:00,sell,1.20724,15839.313451043196 +2021-04-30 16:30:00,buy,1.20206,15839.313451043196 +2021-05-03 06:45:00,sell,1.20571,15887.408799109273 +2021-05-03 08:45:00,buy,1.2043,15887.408799109273 +2021-05-03 10:45:00,sell,1.20732,15927.249349282247 +2021-05-03 12:45:00,buy,1.20528,15927.249349282247 +2021-05-04 02:00:00,sell,1.2037,15906.370338619277 +2021-05-04 07:15:00,buy,1.20088,15906.370338619277 +2021-05-04 10:00:00,sell,1.2025,15927.828202809342 +2021-05-04 10:30:00,buy,1.20199,15927.828202809342 +2021-05-04 10:45:00,sell,1.20324,15944.392221855685 +2021-05-04 11:00:00,buy,1.2008,15944.392221855685 +2021-05-04 14:00:00,sell,1.20226,15963.778308334624 +2021-05-05 05:00:00,buy,1.19935,15963.778308334624 +2021-05-05 07:15:00,sell,1.20123,15988.801782065953 +2021-05-05 08:30:00,buy,1.19968,15988.801782065953 +2021-05-05 09:30:00,sell,1.20058,16000.79658201582 +2021-05-05 09:45:00,buy,1.19979,16000.79658201582 +2021-05-05 21:45:00,sell,1.20094,16016.133362676868 +2021-05-06 01:30:00,buy,1.20074,16016.133362676868 +2021-05-06 08:00:00,sell,1.20594,16085.49383495723 +2021-05-06 08:30:00,buy,1.20533,16085.49383495723 +2021-05-07 03:00:00,sell,1.20818,16123.527947963317 +2021-05-07 03:30:00,buy,1.20724,16123.527947963317 +2021-05-07 04:30:00,sell,1.20877,16143.96215968624 +2021-05-07 07:30:00,buy,1.20737,16143.96215968624 +2021-05-07 08:45:00,sell,1.21289,16217.771075860624 +2021-05-07 09:00:00,buy,1.21185,16217.771075860624 +2021-05-07 11:30:00,sell,1.21614,16275.1826679846 +2021-05-07 12:30:00,buy,1.21442,16275.1826679846 +2021-05-09 18:00:00,sell,1.21732,16314.047335675476 +2021-05-10 03:30:00,buy,1.21376,16314.047335675476 +2021-05-10 04:45:00,sell,1.21709,16358.805589059835 +2021-05-10 07:15:00,buy,1.21588,16358.805589059835 +2021-05-10 08:30:00,sell,1.21708,16374.950740478453 +2021-05-10 09:00:00,buy,1.21649,16374.950740478453 +2021-05-10 09:15:00,sell,1.21743,16387.60390959291 +2021-05-10 09:45:00,buy,1.21591,16387.60390959291 +2021-05-10 10:00:00,sell,1.21707,16403.237978343994 +2021-05-10 11:00:00,buy,1.21562,16403.237978343994 +2021-05-10 12:15:00,sell,1.2168,16419.160569955227 +2021-05-11 02:45:00,buy,1.21302,16419.160569955227 +2021-05-11 06:00:00,sell,1.21668,16468.70149070347 +2021-05-11 06:30:00,buy,1.2154,16468.70149070347 +2021-05-11 09:00:00,sell,1.21651,16483.742019463287 +2021-05-11 09:15:00,buy,1.21529,16483.742019463287 +2021-05-11 09:45:00,sell,1.21715,16508.970368380993 +2021-05-11 11:00:00,buy,1.21595,16508.970368380993 +2021-05-11 13:15:00,sell,1.21596,16509.106138522595 +2021-05-12 01:45:00,buy,1.21221,16509.106138522595 +2021-05-12 05:45:00,sell,1.21349,16526.53847768603 +2021-05-12 07:45:00,buy,1.21183,16526.53847768603 +2021-05-12 09:00:00,sell,1.21374,16552.58642871248 +2021-05-12 09:15:00,buy,1.20937,16552.58642871248 +2021-05-12 09:30:00,sell,1.20997,16560.798598567217 +2021-05-12 12:45:00,buy,1.20663,16560.798598567217 +2021-05-13 03:00:00,sell,1.21019,16609.65901394799 +2021-05-13 06:15:00,buy,1.20653,16609.65901394799 +2021-05-13 09:00:00,sell,1.20897,16643.2492006769 +2021-05-13 09:15:00,buy,1.20829,16643.2492006769 +2021-05-13 09:45:00,sell,1.20974,16663.221815977016 +2021-05-13 11:15:00,buy,1.20703,16663.221815977016 +2021-05-13 12:15:00,sell,1.20833,16681.168501942375 +2021-05-13 13:45:00,buy,1.2063,16681.168501942375 +2021-05-14 04:15:00,sell,1.2124,16765.521588124793 +2021-05-14 06:15:00,buy,1.21057,16765.521588124793 +2021-05-14 10:00:00,sell,1.21447,16819.53377593193 +2021-05-17 01:30:00,buy,1.21291,16819.53377593193 +2021-05-17 03:00:00,sell,1.21441,16840.334412965098 +2021-05-17 03:45:00,buy,1.21355,16840.334412965098 +2021-05-17 06:45:00,sell,1.21667,16883.630398601003 +2021-05-17 08:15:00,buy,1.21374,16883.630398601003 +2021-05-18 08:30:00,sell,1.22287,17010.632512347955 +2021-05-18 10:00:00,buy,1.22067,17010.632512347955 +2021-05-18 10:45:00,sell,1.22182,17026.65832390161 +2021-05-18 11:45:00,buy,1.2202,17026.65832390161 +2021-05-19 02:15:00,sell,1.22441,17085.4046208559 +2021-05-19 07:15:00,buy,1.21986,17085.4046208559 +2021-05-19 09:30:00,sell,1.22321,17132.324845701267 +2021-05-19 14:00:00,buy,1.21852,17132.324845701267 +2021-05-19 14:15:00,sell,1.21902,17139.35481847385 +2021-05-19 19:45:00,buy,1.21704,17139.35481847385 +2021-05-19 20:45:00,sell,1.21849,17159.77490695639 +2021-05-20 01:30:00,buy,1.21788,17159.77490695639 +2021-05-20 03:45:00,sell,1.22027,17193.44970416763 +2021-05-20 06:00:00,buy,1.21839,17193.44970416763 +2021-05-21 02:00:00,sell,1.22356,17266.406749916976 +2021-05-21 07:45:00,buy,1.21862,17266.406749916976 +2021-05-21 08:45:00,sell,1.22056,17293.894259636858 +2021-05-21 10:00:00,buy,1.21783,17293.894259636858 +2021-05-21 10:45:00,sell,1.21886,17308.52085865924 +2021-05-21 12:45:00,buy,1.21641,17308.52085865924 +2021-05-21 16:00:00,sell,1.21862,17339.967353753524 +2021-05-24 04:30:00,buy,1.21908,17339.967353753524 +2021-05-24 06:30:00,sell,1.22176,17378.087175675024 +2021-05-24 08:30:00,buy,1.22084,17378.087175675024 +2021-05-24 10:15:00,sell,1.22267,17404.13637092705 +2021-05-24 20:00:00,buy,1.22149,17404.13637092705 +2021-05-25 03:15:00,sell,1.22605,17469.108545772062 +2021-05-25 06:45:00,buy,1.2248,17469.108545772062 +2021-05-25 08:00:00,sell,1.2264,17491.929066406643 +2021-05-25 12:30:00,buy,1.22363,17491.929066406643 +2021-05-26 01:00:00,sell,1.22615,17527.95275105588 +2021-05-26 08:45:00,buy,1.22199,17527.95275105588 +2021-05-26 10:00:00,sell,1.22297,17542.00965307311 +2021-05-26 21:00:00,buy,1.21758,17542.00965307311 +2021-05-27 03:45:00,sell,1.22057,17585.087404730235 +2021-05-27 04:45:00,buy,1.21824,17585.087404730235 +2021-05-27 06:45:00,sell,1.22051,17617.85446902687 +2021-05-27 08:45:00,buy,1.2186,17617.85446902687 +2021-05-27 10:15:00,sell,1.22031,17642.57671680468 +2021-05-27 12:45:00,buy,1.21875,17642.57671680468 +2021-05-28 01:00:00,sell,1.2188,17643.300514823834 +2021-05-28 03:15:00,buy,1.21812,17643.300514823834 +2021-05-28 04:30:00,sell,1.21992,17669.37178935071 +2021-05-28 08:30:00,buy,1.21424,17669.37178935071 +2021-06-01 03:15:00,sell,1.22342,17802.95726917862 +2021-06-01 04:00:00,buy,1.22229,17802.95726917862 +2021-06-01 05:15:00,sell,1.22375,17824.22253160652 +2021-06-01 08:45:00,buy,1.22246,17824.22253160652 +2021-06-01 11:00:00,sell,1.22509,17862.569557487222 +2021-06-02 07:00:00,buy,1.21675,17862.569557487222 +2021-06-03 01:00:00,sell,1.22034,17915.27276250993 +2021-06-03 03:45:00,buy,1.21811,17915.27276250993 +2021-06-03 06:00:00,sell,1.22005,17943.80518499991 +2021-06-04 02:15:00,buy,1.21052,17943.80518499991 +2021-06-04 09:45:00,sell,1.21801,18054.831108434177 +2021-06-07 02:45:00,buy,1.21525,18054.831108434177 +2021-06-07 03:45:00,sell,1.21677,18077.41357565065 +2021-06-07 06:30:00,buy,1.21551,18077.41357565065 +2021-06-08 02:15:00,sell,1.218,18114.44557028942 +2021-06-08 09:30:00,buy,1.21747,18114.44557028942 +2021-06-09 09:15:00,sell,1.22122,18170.24092531959 +2021-06-10 06:00:00,buy,1.21617,18170.24092531959 +2021-06-10 07:15:00,sell,1.21777,18194.145795099732 +2021-06-10 07:30:00,buy,1.21759,18194.145795099732 +2021-06-10 08:30:00,sell,1.21841,18206.398852000646 +2021-06-10 09:00:00,buy,1.21731,18206.398852000646 +2021-06-10 10:00:00,sell,1.21846,18223.59854532429 +2021-06-10 12:00:00,buy,1.21661,18223.59854532429 +2021-06-11 03:00:00,sell,1.2187,18254.90465078103 +2021-06-11 08:00:00,buy,1.21248,18254.90465078103 +2021-06-11 08:30:00,sell,1.2135,18270.261607385506 +2021-06-14 02:15:00,buy,1.20969,18270.261607385506 +2021-06-14 03:30:00,sell,1.21185,18302.88464723204 +2021-06-14 08:00:00,buy,1.21121,18302.88464723204 +2021-06-15 03:30:00,sell,1.21457,18353.658412652323 +2021-06-15 08:30:00,buy,1.2106,18353.658412652323 +2021-06-16 02:30:00,sell,1.2133,18394.592559120327 +2021-06-16 09:15:00,buy,1.21122,18394.592559120327 +2021-06-16 10:30:00,sell,1.21247,18413.576096957302 +2021-06-16 14:30:00,buy,1.2015,18413.576096957302 +2021-06-16 15:00:00,sell,1.20217,18423.844175180322 +2021-06-16 20:45:00,buy,1.19881,18423.844175180322 +2021-06-17 01:00:00,sell,1.19971,18437.67577464785 +2021-06-17 03:15:00,buy,1.19512,18437.67577464785 +2021-06-17 03:45:00,sell,1.19544,18442.61256446635 +2021-06-17 07:00:00,buy,1.19298,18442.61256446635 +2021-06-17 08:15:00,sell,1.194,18458.38103067346 +2021-06-17 08:30:00,buy,1.19374,18458.38103067346 +2021-06-17 09:15:00,sell,1.19452,18470.44189585677 +2021-06-17 09:45:00,buy,1.193,18470.44189585677 +2021-06-17 10:30:00,sell,1.19337,18476.170364843747 +2021-06-17 12:15:00,buy,1.18941,18476.170364843747 +2021-06-17 14:15:00,sell,1.19191,18515.00510300141 +2021-06-18 01:15:00,buy,1.18967,18515.00510300141 +2021-06-18 01:45:00,sell,1.19047,18527.455617919328 +2021-06-18 02:45:00,buy,1.18908,18527.455617919328 +2021-06-18 04:15:00,sell,1.19233,18578.094961578492 +2021-06-18 08:15:00,buy,1.1873,18578.094961578492 +2021-06-18 08:30:00,sell,1.18899,18604.538977821285 +2021-06-18 10:15:00,buy,1.18619,18604.538977821285 +2021-06-18 10:30:00,sell,1.18692,18615.988503996527 +2021-06-18 10:45:00,buy,1.18564,18615.988503996527 +2021-06-18 15:15:00,sell,1.18758,18646.448861017 +2021-06-18 16:30:00,buy,1.18609,18646.448861017 +2021-06-20 22:00:00,sell,1.18716,18663.27026603794 +2021-06-21 01:00:00,buy,1.18616,18663.27026603794 +2021-06-21 02:00:00,sell,1.18738,18682.465981392164 +2021-06-21 03:00:00,buy,1.18622,18682.465981392164 +2021-06-21 10:30:00,sell,1.19191,18772.081087724986 +2021-06-21 11:45:00,buy,1.19086,18772.081087724986 +2021-06-22 03:30:00,sell,1.19101,18774.445607620823 +2021-06-22 05:45:00,buy,1.18836,18774.445607620823 +2021-06-22 07:30:00,sell,1.18983,18797.669575983273 +2021-06-22 08:00:00,buy,1.18942,18797.669575983273 +2021-06-22 09:15:00,sell,1.1909,18821.059590420948 +2021-06-22 10:45:00,buy,1.18991,18821.059590420948 +2021-06-23 02:15:00,sell,1.19266,18864.55692540734 +2021-06-23 03:00:00,buy,1.19211,18864.55692540734 +2021-06-23 09:45:00,sell,1.19693,18940.83106485795 +2021-06-24 01:30:00,buy,1.19235,18940.83106485795 +2021-06-24 03:30:00,sell,1.19386,18964.81785976543 +2021-06-24 04:45:00,buy,1.19251,18964.81785976543 +2021-06-24 07:00:00,sell,1.19452,18996.78344822853 +2021-06-24 07:45:00,buy,1.19362,18996.78344822853 +2021-06-24 08:45:00,sell,1.19544,19025.7492379068 +2021-06-24 20:30:00,buy,1.19304,19025.7492379068 +2021-06-25 09:45:00,sell,1.19738,19094.96045604912 +2021-06-28 02:00:00,buy,1.19266,19094.96045604912 +2021-06-28 03:15:00,sell,1.1938,19113.21230898281 +2021-06-28 04:15:00,buy,1.19291,19113.21230898281 +2021-06-28 06:15:00,sell,1.19402,19130.997108894768 +2021-06-28 07:45:00,buy,1.1907,19130.997108894768 +2021-06-28 09:00:00,sell,1.19241,19158.471707917368 +2021-06-28 09:15:00,buy,1.19198,19158.471707917368 +2021-06-28 11:30:00,sell,1.19332,19180.00927741401 +2021-06-29 08:45:00,buy,1.18825,19180.00927741401 +2021-06-29 09:30:00,sell,1.18933,19197.441980986157 +2021-06-29 09:45:00,buy,1.18914,19197.441980986157 +2021-06-29 12:00:00,sell,1.19071,19222.788015860224 +2021-06-30 01:45:00,buy,1.18958,19222.788015860224 +2021-06-30 03:45:00,sell,1.19007,19230.706076123315 +2021-06-30 04:45:00,buy,1.18859,19230.706076123315 +2021-06-30 05:15:00,sell,1.18956,19246.40012107897 +2021-06-30 14:45:00,buy,1.18476,19246.40012107897 +2021-07-01 03:00:00,sell,1.18586,19264.269596865783 +2021-07-01 04:30:00,buy,1.18394,19264.269596865783 +2021-07-01 08:00:00,sell,1.18832,19335.537989549764 +2021-07-01 09:30:00,buy,1.18672,19335.537989549764 +2021-07-01 09:45:00,sell,1.18776,19352.48298037248 +2021-07-02 07:30:00,buy,1.18268,19352.48298037248 +2021-07-02 08:30:00,sell,1.18484,19387.827590273384 +2021-07-02 08:45:00,buy,1.18473,19387.827590273384 +2021-07-02 09:00:00,sell,1.18524,19396.173620230453 +2021-07-02 09:30:00,buy,1.18307,19396.173620230453 +2021-07-02 09:45:00,sell,1.18447,19419.126313704484 +2021-07-02 10:00:00,buy,1.18335,19419.126313704484 +2021-07-02 10:15:00,sell,1.18457,19439.14687744532 +2021-07-02 12:00:00,buy,1.184,19439.14687744532 +2021-07-05 02:30:00,sell,1.18653,19480.68491933716 +2021-07-05 03:00:00,buy,1.18579,19480.68491933716 +2021-07-05 07:00:00,sell,1.18771,19512.227532316803 +2021-07-06 01:00:00,buy,1.18776,19512.227532316803 +2021-07-06 02:30:00,sell,1.1891,19534.240720918297 +2021-07-06 09:00:00,buy,1.18251,19534.240720918297 +2021-07-06 09:45:00,sell,1.18325,19546.465004969574 +2021-07-06 11:00:00,buy,1.18187,19546.465004969574 +2021-07-06 11:15:00,sell,1.18294,19564.16129775585 +2021-07-07 03:00:00,buy,1.1819,19564.16129775585 +2021-07-07 03:15:00,sell,1.18242,19572.768932813666 +2021-07-07 03:30:00,buy,1.18177,19572.768932813666 +2021-07-07 04:00:00,sell,1.18273,19588.668691798495 +2021-07-07 04:30:00,buy,1.18179,19588.668691798495 +2021-07-07 08:00:00,sell,1.18307,19609.885232745284 +2021-07-07 10:15:00,buy,1.17848,19609.885232745284 +2021-07-07 14:45:00,sell,1.18055,19644.3299941598 +2021-07-08 01:00:00,buy,1.17936,19644.3299941598 +2021-07-08 01:45:00,sell,1.18056,19664.318119916985 +2021-07-08 02:45:00,buy,1.17971,19664.318119916985 +2021-07-08 08:15:00,sell,1.18498,19752.162553287864 +2021-07-08 08:30:00,buy,1.18494,19752.162553287864 +2021-07-08 10:15:00,sell,1.18631,19774.999543091566 +2021-07-09 02:45:00,buy,1.18277,19774.999543091566 +2021-07-09 04:00:00,sell,1.18424,19799.57680606606 +2021-07-09 04:45:00,buy,1.18321,19799.57680606606 +2021-07-09 10:30:00,sell,1.18695,19862.161146339287 +2021-07-12 02:30:00,buy,1.18593,19862.161146339287 +2021-07-12 04:45:00,sell,1.18704,19880.75161868794 +2021-07-12 07:45:00,buy,1.18377,19880.75161868794 +2021-07-12 10:30:00,sell,1.18691,19933.48615333798 +2021-07-13 07:30:00,buy,1.18367,19933.48615333798 +2021-07-13 07:45:00,sell,1.18393,19937.86465950935 +2021-07-13 08:45:00,buy,1.17993,19937.86465950935 +2021-07-13 10:15:00,sell,1.18312,19991.76767770859 +2021-07-14 03:45:00,buy,1.17837,19991.76767770859 +2021-07-14 04:15:00,sell,1.17955,20011.78709933312 +2021-07-14 05:00:00,buy,1.17834,20011.78709933312 +2021-07-15 02:15:00,sell,1.18398,20107.571405424944 +2021-07-15 03:15:00,buy,1.18285,20107.571405424944 +2021-07-15 05:15:00,sell,1.18463,20137.830083280678 +2021-07-15 08:45:00,buy,1.18065,20137.830083280678 +2021-07-15 10:45:00,sell,1.18177,20156.933432870544 +2021-07-16 03:30:00,buy,1.18011,20156.933432870544 +2021-07-16 05:30:00,sell,1.18198,20188.874070200513 +2021-07-16 08:30:00,buy,1.18016,20188.874070200513 +2021-07-16 09:15:00,sell,1.18096,20202.55958678823 +2021-07-16 10:00:00,buy,1.17973,20202.55958678823 +2021-07-19 02:00:00,sell,1.18018,20210.265715999194 +2021-07-19 05:00:00,buy,1.17667,20210.265715999194 +2021-07-19 07:00:00,sell,1.1778,20229.67438644977 +2021-07-19 07:45:00,buy,1.17712,20229.67438644977 +2021-07-19 09:45:00,sell,1.18208,20314.91564049081 +2021-07-20 02:00:00,buy,1.17779,20314.91564049081 +2021-07-20 03:00:00,sell,1.17857,20328.36934123507 +2021-07-20 03:15:00,buy,1.17771,20328.36934123507 +2021-07-20 05:30:00,sell,1.18002,20368.242088497344 +2021-07-20 07:15:00,buy,1.17773,20368.242088497344 +2021-07-20 07:30:00,sell,1.17882,20387.093084800796 +2021-07-20 09:15:00,buy,1.17587,20387.093084800796 +2021-07-20 10:00:00,sell,1.17689,20404.77772251287 +2021-07-20 11:00:00,buy,1.1759,20404.77772251287 +2021-07-21 01:15:00,sell,1.17747,20432.02111142719 +2021-07-21 03:30:00,buy,1.17561,20432.02111142719 +2021-07-22 03:00:00,sell,1.17993,20507.102414921857 +2021-07-22 04:00:00,buy,1.17817,20507.102414921857 +2021-07-22 07:45:00,sell,1.17937,20527.989488008006 +2021-07-22 08:00:00,buy,1.17751,20527.989488008006 +2021-07-22 09:00:00,sell,1.18207,20607.485740324602 +2021-07-22 13:15:00,buy,1.17591,20607.485740324602 +2021-07-23 04:15:00,sell,1.17799,20643.937144207448 +2021-07-23 07:15:00,buy,1.17618,20643.937144207448 +2021-07-23 08:30:00,sell,1.17777,20671.844318329855 +2021-07-26 02:15:00,buy,1.17795,20671.844318329855 +2021-07-26 03:15:00,sell,1.17972,20702.906047981745 +2021-07-26 04:00:00,buy,1.17704,20702.906047981745 +2021-07-26 07:30:00,sell,1.17944,20745.119544987076 +2021-07-26 08:30:00,buy,1.17844,20745.119544987076 +2021-07-27 01:45:00,sell,1.18008,20773.989912637342 +2021-07-27 07:00:00,buy,1.17892,20773.989912637342 +2021-07-27 08:45:00,sell,1.18186,20825.79625262916 +2021-07-27 09:30:00,buy,1.18045,20825.79625262916 +2021-07-27 13:30:00,sell,1.1839,20886.66202167619 +2021-07-28 03:45:00,buy,1.1807,20886.66202167619 +2021-07-28 04:45:00,sell,1.18288,20925.226367578834 +2021-07-28 09:45:00,buy,1.17866,20925.226367578834 +2021-07-28 13:00:00,sell,1.18177,20980.439451931547 +2021-07-28 13:30:00,buy,1.18114,20980.439451931547 +2021-07-29 02:00:00,sell,1.18621,21070.49721648214 +2021-07-29 02:15:00,buy,1.1857,21070.49721648214 +2021-07-30 05:00:00,sell,1.19056,21156.861909466967 +2021-07-30 06:00:00,buy,1.18855,21156.861909466967 +2021-07-30 06:45:00,sell,1.19011,21184.63079136404 +2021-07-30 07:45:00,buy,1.18833,21184.63079136404 +2021-07-30 08:00:00,sell,1.18905,21197.466396094864 +2021-07-30 15:45:00,buy,1.18621,21197.466396094864 +2021-08-02 07:45:00,sell,1.18898,21246.966047857353 +2021-08-02 08:45:00,buy,1.18729,21246.966047857353 +2021-08-02 11:00:00,sell,1.188,21259.67174393327 +2021-08-03 11:15:00,buy,1.18557,21259.67174393327 +2021-08-04 03:00:00,sell,1.18757,21295.535795391952 +2021-08-04 07:15:00,buy,1.1861,21295.535795391952 +2021-08-04 09:00:00,sell,1.1892,21351.19397005321 +2021-08-05 05:45:00,buy,1.18321,21351.19397005321 +2021-08-05 07:15:00,sell,1.18544,21391.434639548243 +2021-08-05 08:30:00,buy,1.18355,21391.434639548243 +2021-08-05 10:00:00,sell,1.18511,21419.630016201274 +2021-08-09 06:45:00,buy,1.17534,21419.630016201274 +2021-08-09 08:30:00,sell,1.1768,21446.237346695987 +2021-08-11 07:30:00,buy,1.17153,21446.237346695987 +2021-08-11 08:30:00,sell,1.17444,21499.508326251686 +2021-08-11 09:00:00,buy,1.17328,21499.508326251686 +2021-08-12 08:45:00,sell,1.174,21512.7018060646 +2021-08-13 06:30:00,buy,1.17477,21512.7018060646 +2021-08-16 03:15:00,sell,1.17904,21590.89518580012 +2021-08-16 08:15:00,buy,1.1771,21590.89518580012 +2021-08-16 10:45:00,sell,1.17876,21621.343648979484 +2021-08-17 02:45:00,buy,1.17612,21621.343648979484 +2021-08-17 04:15:00,sell,1.17835,21662.339122517238 +2021-08-18 02:45:00,buy,1.17169,21662.339122517238 +2021-08-18 06:15:00,sell,1.17179,21664.18793398807 +2021-08-18 07:00:00,buy,1.17113,21664.18793398807 +2021-08-18 08:15:00,sell,1.17244,21688.421013316172 +2021-08-18 13:00:00,buy,1.17021,21688.421013316172 +2021-08-18 14:15:00,sell,1.17222,21725.673921970832 +2021-08-19 03:15:00,buy,1.16764,21725.673921970832 +2021-08-19 04:15:00,sell,1.16933,21757.11887840272 +2021-08-19 05:00:00,buy,1.16854,21757.11887840272 +2021-08-19 09:45:00,sell,1.17001,21784.488899755226 +2021-08-19 10:45:00,buy,1.16823,21784.488899755226 +2021-08-20 03:30:00,sell,1.1683,21785.794219960135 +2021-08-20 06:00:00,buy,1.16716,21785.794219960135 +2021-08-20 06:30:00,sell,1.16829,21806.88639881184 +2021-08-20 08:30:00,buy,1.16709,21806.88639881184 +2021-08-20 09:30:00,sell,1.16841,21831.550383634287 +2021-08-20 10:45:00,buy,1.16785,21831.550383634287 +2021-08-23 09:15:00,sell,1.17405,21947.451922683424 +2021-08-24 07:45:00,buy,1.1736,21947.451922683424 +2021-08-24 08:30:00,sell,1.17472,21968.39700290957 +2021-08-24 09:30:00,buy,1.17395,21968.39700290957 +2021-08-24 10:30:00,sell,1.17637,22013.68302083796 +2021-08-25 03:00:00,buy,1.1735,22013.68302083796 +2021-08-25 06:15:00,sell,1.1749,22039.94561668728 +2021-08-25 08:30:00,buy,1.17318,22039.94561668728 +2021-08-26 03:15:00,sell,1.17708,22113.212965180333 +2021-08-26 05:00:00,buy,1.17589,22113.212965180333 +2021-08-26 07:30:00,sell,1.17736,22140.857067144643 +2021-08-26 09:00:00,buy,1.17536,22140.857067144643 +2021-08-26 10:00:00,sell,1.17654,22163.08533026337 +2021-08-27 08:45:00,buy,1.17561,22163.08533026337 +2021-08-27 10:00:00,sell,1.17962,22238.68350667762 +2021-08-27 10:15:00,buy,1.17891,22238.68350667762 +2021-08-27 10:30:00,sell,1.17987,22256.792722959108 +2021-08-27 11:30:00,buy,1.17877,22256.792722959108 +2021-08-30 07:45:00,sell,1.17996,22279.261553469147 +2021-08-30 09:45:00,buy,1.17884,22279.261553469147 +2021-08-31 08:00:00,sell,1.18341,22365.63139611052 +2021-08-31 09:45:00,buy,1.18202,22365.63139611052 +2021-08-31 10:00:00,sell,1.18276,22379.63333113118 +2021-09-01 01:45:00,buy,1.1799,22379.63333113118 +2021-09-01 02:45:00,sell,1.18092,22398.980077463708 +2021-09-01 03:30:00,buy,1.17999,22398.980077463708 +2021-09-02 07:30:00,sell,1.18503,22494.651108227034 +2021-09-02 08:30:00,buy,1.18404,22494.651108227034 +2021-09-03 09:00:00,sell,1.19018,22611.300172282736 +2021-09-07 02:15:00,buy,1.18667,22611.300172282736 +2021-09-07 03:15:00,sell,1.18787,22634.16546777916 +2021-09-07 04:00:00,buy,1.18669,22634.16546777916 +2021-09-07 04:45:00,sell,1.18762,22651.903692492462 +2021-09-07 06:15:00,buy,1.18639,22651.903692492462 +2021-09-07 06:45:00,sell,1.18746,22672.333346274914 +2021-09-07 09:00:00,buy,1.18462,22672.333346274914 +2021-09-07 09:30:00,sell,1.1855,22689.175585427318 +2021-09-08 10:30:00,buy,1.18031,22689.175585427318 +2021-09-09 07:30:00,sell,1.18301,22741.077860321755 +2021-09-09 08:30:00,buy,1.18171,22741.077860321755 +2021-09-09 09:00:00,sell,1.18292,22764.3633569419 +2021-09-09 10:30:00,buy,1.18054,22764.3633569419 +2021-09-10 04:45:00,sell,1.18477,22845.930484696884 +2021-09-10 09:00:00,buy,1.18248,22845.930484696884 +2021-09-10 10:45:00,sell,1.18333,22862.352784365372 +2021-09-13 07:45:00,buy,1.17739,22862.352784365372 +2021-09-14 04:45:00,sell,1.18211,22954.00491759413 +2021-09-14 07:30:00,buy,1.18106,22954.00491759413 +2021-09-14 08:45:00,sell,1.18414,23013.864988332443 +2021-09-15 03:45:00,buy,1.18168,23013.864988332443 +2021-09-15 07:00:00,sell,1.18304,23040.35173295377 +2021-09-16 14:00:00,buy,1.1755,23040.35173295377 +2021-09-17 03:00:00,sell,1.17832,23095.62505654963 +2021-09-20 05:15:00,buy,1.17017,23095.62505654963 +2021-09-21 02:45:00,sell,1.17312,23153.849155541076 +2021-09-21 07:00:00,buy,1.1735,23153.849155541076 +2021-09-21 09:00:00,sell,1.17371,23157.9925797615 +2021-09-21 11:15:00,buy,1.17157,23157.9925797615 +2021-09-22 12:30:00,sell,1.17354,23196.932844007028 +2021-09-22 13:00:00,buy,1.17331,23196.932844007028 +2021-09-22 14:00:00,sell,1.17523,23234.89221626201 +2021-09-22 14:45:00,buy,1.16937,23234.89221626201 +2021-09-22 15:15:00,sell,1.17031,23253.56962262893 +2021-09-22 22:00:00,buy,1.16899,23253.56962262893 +2021-09-23 03:00:00,sell,1.17178,23309.068351657523 +2021-09-23 03:30:00,buy,1.1714,23309.068351657523 +2021-09-23 05:00:00,sell,1.17297,23340.30895035319 +2021-09-23 07:30:00,buy,1.17169,23340.30895035319 +2021-09-23 10:15:00,sell,1.17445,23395.288725466893 +2021-09-24 08:45:00,buy,1.17065,23395.288725466893 +2021-09-27 02:00:00,sell,1.17186,23419.470418849043 +2021-09-27 06:00:00,buy,1.16958,23419.470418849043 +2021-09-27 06:30:00,sell,1.17038,23435.48948238901 +2021-09-27 07:30:00,buy,1.16936,23435.48948238901 +2021-09-27 08:30:00,sell,1.1707,23462.34481856128 +2021-09-27 09:15:00,buy,1.16968,23462.34481856128 +2021-09-28 01:15:00,sell,1.1699,23466.757748473803 +2021-09-28 03:00:00,buy,1.16747,23466.757748473803 +2021-09-28 03:45:00,sell,1.16869,23491.28038670274 +2021-09-28 07:00:00,buy,1.16789,23491.28038670274 +2021-09-28 07:30:00,sell,1.16892,23511.998107377032 +2021-09-28 08:30:00,buy,1.16757,23511.998107377032 +2021-09-28 09:00:00,sell,1.16842,23529.115024042647 +2021-09-28 09:15:00,buy,1.16845,23529.115024042647 +2021-09-28 10:15:00,sell,1.16927,23545.627390271165 +2021-09-28 10:45:00,buy,1.16738,23545.627390271165 +2021-09-29 02:00:00,sell,1.16818,23561.76309750635 +2021-09-29 03:00:00,buy,1.16598,23561.76309750635 +2021-09-29 05:15:00,sell,1.16679,23578.131326900493 +2021-09-29 07:15:00,buy,1.16452,23578.131326900493 +2021-09-29 08:00:00,sell,1.1653,23593.924050456106 +2021-09-29 09:30:00,buy,1.16332,23593.924050456106 +2021-09-29 09:45:00,sell,1.16359,23599.40006693792 +2021-09-30 03:00:00,buy,1.1593,23599.40006693792 +2021-09-30 05:15:00,sell,1.16001,23613.85324907156 +2021-09-30 06:45:00,buy,1.15709,23613.85324907156 +2021-09-30 08:45:00,sell,1.15906,23654.05694187045 +2021-09-30 09:00:00,buy,1.15814,23654.05694187045 +2021-09-30 09:15:00,sell,1.15896,23670.804767428963 +2021-09-30 10:15:00,buy,1.15855,23670.804767428963 +2021-09-30 10:45:00,sell,1.15885,23676.934189059648 +2021-09-30 13:45:00,buy,1.15686,23676.934189059648 +2021-10-01 03:15:00,sell,1.15893,23719.299949628217 +2021-10-01 06:00:00,buy,1.15786,23719.299949628217 +2021-10-01 09:00:00,sell,1.16015,23766.211663380014 +2021-10-01 11:15:00,buy,1.15899,23766.211663380014 +2021-10-04 08:15:00,sell,1.16382,23865.255488032624 +2021-10-04 09:00:00,buy,1.16267,23865.255488032624 +2021-10-04 10:00:00,sell,1.16363,23884.960688363335 +2021-10-05 10:00:00,buy,1.15861,23884.960688363335 +2021-10-06 01:00:00,sell,1.15886,23890.114484871297 +2021-10-06 09:45:00,buy,1.15425,23890.114484871297 +2021-10-06 10:15:00,sell,1.15457,23896.737691832666 +2021-10-06 11:00:00,buy,1.15381,23896.737691832666 +2021-10-07 07:30:00,sell,1.15677,23958.042710482034 +2021-10-07 09:00:00,buy,1.15513,23958.042710482034 +2021-10-07 11:15:00,sell,1.1566,23988.53133322095 +2021-10-08 04:00:00,buy,1.1547,23988.53133322095 +2021-10-08 08:30:00,sell,1.15756,24047.94693867086 +2021-10-08 09:30:00,buy,1.15614,24047.94693867086 +2021-10-08 11:00:00,sell,1.15777,24081.851269902403 +2021-10-08 13:15:00,buy,1.15616,24081.851269902403 +2021-10-11 02:30:00,sell,1.1586,24132.674440656072 +2021-10-11 05:45:00,buy,1.15553,24132.674440656072 +2021-10-11 08:00:00,sell,1.15734,24170.475398430935 +2021-10-11 08:30:00,buy,1.15644,24170.475398430935 +2021-10-12 02:30:00,sell,1.15672,24176.327611352972 +2021-10-12 08:30:00,buy,1.15342,24176.327611352972 +2021-10-12 09:00:00,sell,1.15455,24200.013042679664 +2021-10-12 10:00:00,buy,1.1534,24200.013042679664 +2021-10-12 10:45:00,sell,1.15481,24229.596897708427 +2021-10-12 19:45:00,buy,1.15304,24229.596897708427 +2021-10-13 04:30:00,sell,1.15593,24290.326391077586 +2021-10-13 05:00:00,buy,1.15518,24290.326391077586 +2021-10-13 07:30:00,sell,1.15636,24315.138615269025 +2021-10-13 08:30:00,buy,1.15435,24315.138615269025 +2021-10-14 05:00:00,sell,1.16195,24475.224424145053 +2021-10-14 22:00:00,buy,1.15986,24475.224424145053 +2021-10-15 03:45:00,sell,1.16119,24503.289922122494 +2021-10-15 05:30:00,buy,1.15994,24503.289922122494 +2021-10-15 07:30:00,sell,1.16014,24507.514845812013 +2021-10-15 08:45:00,buy,1.1592,24507.514845812013 +2021-10-15 09:15:00,sell,1.16036,24532.039274056617 +2021-10-15 09:45:00,buy,1.15935,24532.039274056617 +2021-10-15 10:45:00,sell,1.16056,24557.643075774482 +2021-10-18 02:30:00,buy,1.15737,24557.643075774482 +2021-10-18 03:45:00,sell,1.15927,24597.95820563267 +2021-10-18 06:00:00,buy,1.15786,24597.95820563267 +2021-10-18 09:15:00,sell,1.16104,24665.515170286355 +2021-10-18 11:00:00,buy,1.15959,24665.515170286355 +2021-10-19 09:45:00,sell,1.16554,24792.076985465173 +2021-10-19 10:30:00,buy,1.16334,24792.076985465173 +2021-10-19 10:45:00,sell,1.16437,24814.027437865185 +2021-10-19 20:15:00,buy,1.16313,24814.027437865185 +2021-10-20 02:00:00,sell,1.16434,24839.841382308037 +2021-10-20 03:30:00,buy,1.16183,24839.841382308037 +2021-10-20 07:00:00,sell,1.16351,24875.759660818905 +2021-10-20 07:45:00,buy,1.16228,24875.759660818905 +2021-10-20 23:45:00,sell,1.16647,24965.436359186624 +2021-10-21 08:00:00,buy,1.1637,24965.436359186624 +2021-10-21 10:00:00,sell,1.16483,24989.678812641883 +2021-10-21 10:15:00,buy,1.16395,24989.678812641883 +2021-10-21 13:15:00,sell,1.16388,24988.17593234901 +2021-10-22 02:00:00,buy,1.16259,24988.17593234901 +2021-10-22 07:00:00,sell,1.16425,25023.85521055345 +2021-10-22 08:30:00,buy,1.16335,25023.85521055345 +2021-10-22 10:15:00,sell,1.16497,25058.701684478834 +2021-10-22 10:30:00,buy,1.16431,25058.701684478834 +2021-10-22 10:45:00,sell,1.16458,25064.51272230794 +2021-10-24 19:30:00,buy,1.1636,25064.51272230794 +2021-10-25 01:45:00,sell,1.1657,25109.747748706053 +2021-10-25 02:30:00,buy,1.1648,25109.747748706053 +2021-10-25 03:30:00,sell,1.16627,25141.43673324468 +2021-10-25 08:30:00,buy,1.1595,25141.43673324468 +2021-10-26 02:30:00,sell,1.16061,25165.50486155335 +2021-10-26 03:15:00,buy,1.15969,25165.50486155335 +2021-10-26 08:30:00,sell,1.16161,25207.169245426783 +2021-10-27 01:45:00,buy,1.1596,25207.169245426783 +2021-10-27 03:30:00,sell,1.1608,25233.25462236238 +2021-10-27 06:15:00,buy,1.15894,25233.25462236238 +2021-10-27 09:15:00,sell,1.1621,25302.056358955007 +2021-10-27 11:00:00,buy,1.15925,25302.056358955007 +2021-10-27 14:00:00,sell,1.16153,25351.820161843443 +2021-10-27 20:45:00,buy,1.15924,25351.820161843443 +2021-10-28 03:30:00,sell,1.16115,25393.59061188754 +2021-10-28 05:15:00,buy,1.15877,25393.59061188754 +2021-10-28 06:45:00,sell,1.16062,25434.131998557878 +2021-10-28 07:30:00,buy,1.16001,25434.131998557878 +2021-10-28 12:15:00,sell,1.16869,25624.447828376142 +2021-10-29 02:30:00,buy,1.16626,25624.447828376142 +2021-10-29 03:30:00,sell,1.16693,25639.16871398056 +2021-10-29 12:15:00,buy,1.15403,25639.16871398056 +2021-11-01 08:00:00,sell,1.15771,25720.927542492343 +2021-11-01 08:45:00,buy,1.1572,25720.927542492343 +2021-11-02 02:30:00,sell,1.16111,25807.834582495067 +2021-11-02 05:00:00,buy,1.15935,25807.834582495067 +2021-11-02 05:45:00,sell,1.1606,25835.660341090934 +2021-11-02 09:00:00,buy,1.15831,25835.660341090934 +2021-11-02 09:30:00,sell,1.15966,25865.7715733694 +2021-11-03 03:45:00,buy,1.15856,25865.7715733694 +2021-11-03 04:15:00,sell,1.15909,25877.60424404151 +2021-11-03 09:00:00,buy,1.15638,25877.60424404151 +2021-11-03 13:45:00,sell,1.16098,25980.543571531256 +2021-11-03 14:00:00,buy,1.16041,25980.543571531256 +2021-11-03 21:30:00,sell,1.16057,25984.12582863991 +2021-11-04 07:00:00,buy,1.15481,25984.12582863991 +2021-11-04 08:00:00,sell,1.15688,26030.702443377646 +2021-11-04 10:15:00,buy,1.15283,26030.702443377646 +2021-11-05 02:45:00,sell,1.15603,26102.957891118254 +2021-11-05 07:30:00,buy,1.15243,26102.957891118254 +2021-11-05 08:15:00,sell,1.15305,26117.00111621001 +2021-11-05 08:45:00,buy,1.15189,26117.00111621001 +2021-11-05 15:00:00,sell,1.15686,26229.686785455822 +2021-11-08 02:30:00,buy,1.15558,26229.686785455822 +2021-11-08 04:00:00,sell,1.15718,26266.004045062884 +2021-11-08 05:00:00,buy,1.15573,26266.004045062884 +2021-11-08 08:00:00,sell,1.15788,26314.866589685666 +2021-11-08 09:00:00,buy,1.15705,26314.866589685666 +2021-11-09 02:00:00,sell,1.1601,26384.232946453772 +2021-11-09 04:00:00,buy,1.15864,26384.232946453772 +2021-11-09 05:45:00,sell,1.15906,26393.79707149478 +2021-11-09 07:45:00,buy,1.15721,26393.79707149478 +2021-11-09 09:30:00,sell,1.16013,26460.39681350251 +2021-11-09 11:00:00,buy,1.15737,26460.39681350251 +2021-11-10 01:30:00,sell,1.15797,26474.114326560648 +2021-11-10 03:30:00,buy,1.15656,26474.114326560648 +2021-11-10 05:00:00,sell,1.15807,26508.6788218165 +2021-11-10 07:15:00,buy,1.15485,26508.6788218165 +2021-11-10 07:30:00,sell,1.15517,26516.024171622088 +2021-11-10 08:15:00,buy,1.1557,26516.024171622088 +2021-11-10 09:15:00,sell,1.15636,26531.16700795788 +2021-11-10 10:30:00,buy,1.15154,26531.16700795788 +2021-11-10 11:00:00,sell,1.1529,26562.501036416135 +2021-11-11 02:45:00,buy,1.14601,26562.501036416135 +2021-11-11 03:30:00,sell,1.14712,26588.228888834896 +2021-11-11 04:00:00,buy,1.14622,26588.228888834896 +2021-11-11 05:00:00,sell,1.1472,26610.9614046792 +2021-11-11 06:00:00,buy,1.14563,26610.9614046792 +2021-11-11 07:00:00,sell,1.14733,26650.44940201513 +2021-11-11 08:15:00,buy,1.14574,26650.44940201513 +2021-11-11 10:30:00,sell,1.14749,26691.15522223047 +2021-11-12 02:00:00,buy,1.14421,26691.15522223047 +2021-11-12 03:30:00,sell,1.14508,26711.449840389152 +2021-11-12 09:00:00,buy,1.14419,26711.449840389152 +2021-11-12 10:00:00,sell,1.14544,26740.631455593346 +2021-11-14 19:45:00,buy,1.14457,26740.631455593346 +2021-11-15 02:30:00,sell,1.14543,26760.72366756099 +2021-11-15 03:30:00,buy,1.1437,26760.72366756099 +2021-11-15 08:15:00,sell,1.14464,26782.718141852773 +2021-11-15 15:45:00,buy,1.136,26782.718141852773 +2021-11-15 18:00:00,sell,1.13714,26809.595165340197 +2021-11-15 18:45:00,buy,1.13668,26809.595165340197 +2021-11-16 03:15:00,sell,1.13746,26827.99214974123 +2021-11-16 05:15:00,buy,1.13556,26827.99214974123 +2021-11-16 07:15:00,sell,1.13708,26863.90266795921 +2021-11-16 07:45:00,buy,1.13622,26863.90266795921 +2021-11-16 08:00:00,sell,1.13682,26878.08860166991 +2021-11-16 09:00:00,buy,1.13348,26878.08860166991 +2021-11-16 10:45:00,sell,1.13501,26914.36932612959 +2021-11-16 22:30:00,buy,1.12794,26914.36932612959 +2021-11-17 02:15:00,sell,1.1313,26994.54405256521 +2021-11-17 02:45:00,buy,1.13027,26994.54405256521 +2021-11-17 07:00:00,sell,1.13276,27054.013395899885 +2021-11-17 08:45:00,buy,1.12988,27054.013395899885 +2021-11-17 09:30:00,sell,1.13173,27098.31006880534 +2021-11-17 10:30:00,buy,1.12995,27098.31006880534 +2021-11-17 13:15:00,sell,1.13243,27157.785097762935 +2021-11-17 20:00:00,buy,1.13189,27157.785097762935 +2021-11-17 23:30:00,sell,1.13286,27181.058606270675 +2021-11-18 01:30:00,buy,1.13145,27181.058606270675 +2021-11-18 03:15:00,sell,1.13383,27238.23384113118 +2021-11-18 05:00:00,buy,1.1331,27238.23384113118 +2021-11-18 07:30:00,sell,1.13463,27275.013029002443 +2021-11-18 08:45:00,buy,1.13345,27275.013029002443 +2021-11-19 01:45:00,sell,1.13586,27333.006572078797 +2021-11-19 05:00:00,buy,1.12861,27333.006572078797 +2021-11-19 05:15:00,sell,1.12977,27361.099790837816 +2021-11-19 07:45:00,buy,1.12572,27361.099790837816 +2021-11-19 09:15:00,sell,1.13142,27499.640696931496 +2021-11-19 09:45:00,buy,1.13072,27499.640696931496 +2021-11-19 10:30:00,sell,1.13197,27530.041283169612 +2021-11-19 16:45:00,buy,1.12794,27530.041283169612 +2021-11-21 17:15:00,sell,1.12858,27545.661995637678 +2021-11-21 18:15:00,buy,1.12727,27545.661995637678 +2021-11-21 19:45:00,sell,1.12805,27564.721862711755 +2021-11-22 02:45:00,buy,1.126,27564.721862711755 +2021-11-22 05:45:00,sell,1.12859,27628.125619038954 +2021-11-22 09:00:00,buy,1.12524,27628.125619038954 +2021-11-22 09:45:00,sell,1.12574,27640.40216698385 +2021-11-22 10:00:00,buy,1.12444,27640.40216698385 +2021-11-22 11:15:00,sell,1.12637,27687.84442818256 +2021-11-23 01:15:00,buy,1.12346,27687.84442818256 +2021-11-23 02:15:00,sell,1.12552,27738.613444900613 +2021-11-23 02:30:00,buy,1.12503,27738.613444900613 +2021-11-23 03:45:00,sell,1.1267,27779.78877751662 +2021-11-23 07:15:00,buy,1.124,27779.78877751662 +2021-11-23 08:45:00,sell,1.12518,27808.952612710098 +2021-11-23 09:30:00,buy,1.12443,27808.952612710098 +2021-11-23 12:00:00,sell,1.12626,27854.211440099316 +2021-11-24 02:30:00,buy,1.12425,27854.211440099316 +2021-11-24 02:45:00,sell,1.12454,27861.396426817246 +2021-11-24 03:45:00,buy,1.1222,27861.396426817246 +2021-11-24 04:00:00,sell,1.12309,27883.49288272516 +2021-11-24 04:45:00,buy,1.12077,27883.49288272516 +2021-11-24 06:30:00,sell,1.12182,27909.615697867306 +2021-11-24 09:00:00,buy,1.11938,27909.615697867306 +2021-11-24 09:30:00,sell,1.12078,27944.52204064368 +2021-11-24 10:15:00,buy,1.11934,27944.52204064368 +2021-11-24 10:30:00,sell,1.11992,27959.00184372726 +2021-11-25 18:45:00,buy,1.12091,27959.00184372726 +2021-11-26 03:15:00,sell,1.12696,28109.907769407775 +2021-11-26 03:30:00,buy,1.12629,28109.907769407775 +2021-11-26 04:00:00,sell,1.12709,28129.874142380566 +2021-11-26 04:30:00,buy,1.1256,28129.874142380566 +2021-11-26 06:15:00,sell,1.12868,28206.846434809962 +2021-11-26 06:45:00,buy,1.12778,28206.846434809962 +2021-11-26 07:45:00,sell,1.12916,28241.361542437367 +2021-11-26 08:15:00,buy,1.12803,28241.361542437367 +2021-11-26 09:00:00,sell,1.12952,28278.665185689966 +2021-11-26 09:15:00,buy,1.12882,28278.665185689966 +2021-11-26 10:45:00,sell,1.13167,28350.062038845663 +2021-11-26 12:00:00,buy,1.12973,28350.062038845663 +2021-11-26 15:45:00,sell,1.13232,28415.056914329725 +2021-11-29 02:45:00,buy,1.12639,28415.056914329725 +2021-11-29 06:45:00,sell,1.12921,28486.196093919752 +2021-11-29 08:45:00,buy,1.12623,28486.196093919752 +2021-11-29 09:15:00,sell,1.12697,28504.91321662959 +2021-11-29 09:45:00,buy,1.12608,28504.91321662959 +2021-11-29 18:15:00,sell,1.12989,28601.357269765565 +2021-11-29 23:15:00,buy,1.12958,28601.357269765565 +2021-11-30 05:30:00,sell,1.13682,28784.67658015801 +2021-11-30 07:00:00,buy,1.13425,28784.67658015801 +2021-11-30 09:30:00,sell,1.13742,28865.123946046577 +2021-11-30 10:45:00,buy,1.12593,28865.123946046577 +2021-11-30 13:15:00,sell,1.13189,29017.918647953833 +2021-11-30 13:45:00,buy,1.13103,29017.918647953833 +2021-11-30 19:15:00,sell,1.13337,29077.9541285655 +2021-12-01 01:45:00,buy,1.13321,29077.9541285655 +2021-12-01 03:00:00,sell,1.1339,29095.65939797603 +2021-12-01 03:30:00,buy,1.13059,29095.65939797603 +2021-12-01 05:00:00,sell,1.1334,29167.97456342797 +2021-12-01 05:30:00,buy,1.13226,29167.97456342797 +2021-12-01 06:15:00,sell,1.13301,29187.29519731292 +2021-12-01 07:30:00,buy,1.1322,29187.29519731292 +2021-12-01 09:30:00,sell,1.13495,29258.18820366569 +2021-12-01 19:45:00,buy,1.13154,29258.18820366569 +2021-12-02 01:30:00,sell,1.13236,29279.390913536317 +2021-12-02 02:30:00,buy,1.13105,29279.390913536317 +2021-12-02 03:45:00,sell,1.13249,29316.6680656653 +2021-12-02 04:15:00,buy,1.13188,29316.6680656653 +2021-12-02 07:30:00,sell,1.13472,29390.22651471157 +2021-12-02 08:30:00,buy,1.13339,29390.22651471157 +2021-12-02 09:15:00,sell,1.13407,29407.859768957685 +2021-12-03 02:00:00,buy,1.12834,29407.859768957685 +2021-12-03 03:00:00,sell,1.12968,29442.784110991477 +2021-12-03 04:15:00,buy,1.12892,29442.784110991477 +2021-12-03 06:00:00,sell,1.13134,29505.898891089804 +2021-12-03 07:30:00,buy,1.13096,29505.898891089804 +2021-12-03 08:30:00,sell,1.13144,29518.421731391605 +2021-12-03 09:00:00,buy,1.12918,29518.421731391605 +2021-12-03 09:15:00,sell,1.12993,29538.027831657768 +2021-12-03 10:00:00,buy,1.1276,29538.027831657768 +2021-12-03 13:45:00,sell,1.13244,29664.81397453221 +2021-12-06 02:45:00,buy,1.12752,29664.81397453221 +2021-12-06 05:15:00,sell,1.1309,29753.74106339442 +2021-12-06 08:00:00,buy,1.12867,29753.74106339442 +2021-12-06 08:45:00,sell,1.12971,29781.15730614556 +2021-12-06 10:45:00,buy,1.12722,29781.15730614556 +2021-12-06 11:30:00,sell,1.12876,29821.844112848295 +2021-12-06 20:30:00,buy,1.12802,29821.844112848295 +2021-12-07 02:15:00,sell,1.12927,29854.89078324515 +2021-12-07 04:00:00,buy,1.12585,29854.89078324515 +2021-12-07 04:45:00,sell,1.12745,29897.31901547253 +2021-12-07 09:15:00,buy,1.12367,29897.31901547253 +2021-12-07 10:15:00,sell,1.12531,29940.954249291513 +2021-12-07 20:30:00,buy,1.12774,29940.954249291513 +2021-12-08 04:15:00,sell,1.12846,29960.069902775023 +2021-12-08 04:30:00,buy,1.12837,29960.069902775023 +2021-12-08 05:30:00,sell,1.12935,29986.09050639327 +2021-12-08 06:30:00,buy,1.12758,29986.09050639327 +2021-12-08 08:45:00,sell,1.13162,30093.52750035009 +2021-12-08 09:15:00,buy,1.13063,30093.52750035009 +2021-12-09 01:30:00,sell,1.13307,30158.472006599575 +2021-12-09 10:30:00,buy,1.12811,30158.472006599575 +2021-12-09 11:00:00,sell,1.12919,30187.344323809004 +2021-12-10 06:45:00,buy,1.12676,30187.344323809004 +2021-12-10 08:45:00,sell,1.12936,30257.00165566486 +2021-12-10 09:00:00,buy,1.12921,30257.00165566486 +2021-12-10 10:00:00,sell,1.13036,30287.815722051106 +2021-12-10 10:15:00,buy,1.13028,30287.815722051106 +2021-12-10 16:00:00,sell,1.13152,30321.04367573988 +2021-12-13 05:30:00,buy,1.12662,30321.04367573988 +2021-12-13 09:00:00,sell,1.1294,30395.862604410202 +2021-12-13 10:00:00,buy,1.1277,30395.862604410202 +2021-12-13 10:15:00,sell,1.12854,30418.503842849244 +2021-12-13 10:45:00,buy,1.12755,30418.503842849244 +2021-12-13 12:15:00,sell,1.13049,30497.817754691714 +2021-12-14 02:45:00,buy,1.12706,30497.817754691714 +2021-12-14 08:00:00,sell,1.13091,30601.99730001811 +2021-12-15 02:45:00,buy,1.12641,30601.99730001811 +2021-12-15 05:00:00,sell,1.12745,30630.251734186862 +2021-12-15 06:15:00,buy,1.12638,30630.251734186862 +2021-12-15 07:00:00,sell,1.12707,30649.015271977474 +2021-12-15 08:00:00,buy,1.12615,30649.015271977474 +2021-12-15 08:45:00,sell,1.12735,30681.67417028265 +2021-12-15 10:45:00,buy,1.12518,30681.67417028265 +2021-12-15 13:00:00,sell,1.12578,30698.035112089445 +2021-12-15 13:45:00,buy,1.12591,30698.035112089445 +2021-12-15 18:00:00,sell,1.12976,30803.005700485985 +2021-12-16 01:00:00,buy,1.12855,30803.005700485985 +2021-12-16 04:45:00,sell,1.13133,30878.883912215504 +2021-12-16 06:00:00,buy,1.12949,30878.883912215504 +2021-12-16 08:45:00,sell,1.13592,31054.672297730685 +2021-12-16 10:30:00,buy,1.13006,31054.672297730685 +2021-12-17 00:45:00,sell,1.1348,31184.930112971684 +2021-12-17 02:30:00,buy,1.13234,31184.930112971684 +2021-12-17 04:30:00,sell,1.13372,31222.93566214941 +2021-12-17 06:45:00,buy,1.13181,31222.93566214941 +2021-12-17 07:45:00,sell,1.13305,31257.14320601372 +2021-12-20 02:00:00,buy,1.12497,31257.14320601372 +2021-12-20 03:45:00,sell,1.12676,31306.878120134774 +2021-12-20 07:30:00,buy,1.12713,31306.878120134774 +2021-12-20 09:45:00,sell,1.12991,31384.09469779128 +2021-12-20 10:45:00,buy,1.12888,31384.09469779128 +2021-12-20 11:15:00,sell,1.13017,31419.958104141064 +2021-12-21 01:30:00,buy,1.12767,31419.958104141064 +2021-12-21 05:15:00,sell,1.12931,31465.652971691674 +2021-12-21 06:15:00,buy,1.12771,31465.652971691674 +2021-12-21 08:15:00,sell,1.12928,31509.459513413887 +2021-12-21 10:00:00,buy,1.12713,31509.459513413887 +2021-12-21 10:15:00,sell,1.12772,31525.953246268942 +2021-12-21 19:45:00,buy,1.12821,31525.953246268942 +2021-12-21 20:30:00,sell,1.12928,31555.85261781636 +2021-12-22 03:45:00,buy,1.12731,31555.85261781636 +2021-12-22 09:15:00,sell,1.13169,31678.458320299294 +2021-12-22 09:45:00,buy,1.13083,31678.458320299294 +2021-12-22 11:00:00,sell,1.13342,31751.013175626427 +2021-12-22 18:30:00,buy,1.13269,31751.013175626427 +2021-12-23 02:00:00,sell,1.13367,31778.484057255217 +2021-12-23 09:00:00,buy,1.1295,31778.484057255217 +2021-12-23 10:00:00,sell,1.13206,31850.509660784723 +2021-12-23 10:45:00,buy,1.13086,31850.509660784723 +2021-12-24 05:45:00,sell,1.13412,31942.327093087715 +2021-12-24 07:45:00,buy,1.13213,31942.327093087715 +2021-12-24 09:45:00,sell,1.13251,31953.048551131727 +2021-12-24 12:30:00,buy,1.13106,31953.048551131727 +2021-12-24 13:45:00,sell,1.13202,31980.169063402594 +2021-12-24 15:00:00,buy,1.13085,31980.169063402594 +2021-12-24 16:00:00,sell,1.13154,31999.682099308106 +2021-12-26 17:15:00,buy,1.13109,31999.682099308106 +2021-12-27 02:30:00,sell,1.13263,32043.250259607405 +2021-12-27 04:30:00,buy,1.13102,32043.250259607405 +2021-12-27 06:00:00,sell,1.13162,32060.24903076598 +2021-12-27 07:00:00,buy,1.13066,32060.24903076598 +2021-12-27 09:45:00,sell,1.13297,32125.749866791903 +2021-12-27 10:45:00,buy,1.13187,32125.749866791903 +2021-12-28 08:00:00,sell,1.13303,32158.674027557252 +2021-12-28 10:00:00,buy,1.12956,32158.674027557252 +2021-12-28 12:00:00,sell,1.13148,32213.336598941612 +2021-12-29 05:15:00,buy,1.12852,32213.336598941612 +2021-12-29 10:30:00,sell,1.1363,32435.414859619108 +2021-12-29 17:45:00,buy,1.13473,32435.414859619108 +2021-12-30 00:15:00,sell,1.13309,32388.53667681811 +2021-12-30 04:45:00,buy,1.13015,32388.53667681811 +2021-12-30 07:45:00,sell,1.13429,32507.18335366811 +2021-12-30 08:45:00,buy,1.13037,32507.18335366811 +2021-12-30 09:45:00,sell,1.13339,32594.032521399095 +2021-12-30 10:30:00,buy,1.13166,32594.032521399095 +2021-12-30 10:45:00,sell,1.13305,32634.067253743382 +2021-12-30 13:30:00,buy,1.13047,32634.067253743382 +2021-12-31 00:00:00,sell,1.13215,32682.564987417238 +2021-12-31 02:45:00,buy,1.13047,32682.564987417238 +2021-12-31 05:00:00,sell,1.13324,32762.647346980204 +2021-12-31 06:45:00,buy,1.13189,32762.647346980204 +2021-12-31 07:30:00,sell,1.13337,32805.48606635535 +2021-12-31 07:45:00,buy,1.13252,32805.48606635535 +2021-12-31 10:30:00,sell,1.13709,32937.86436547876 diff --git a/ml/preprocessing.py b/ml/preprocessing.py new file mode 100644 index 0000000..b7bb209 --- /dev/null +++ b/ml/preprocessing.py @@ -0,0 +1,65 @@ +# ml/preprocessing.py + +import pandas as pd +import numpy as np + +def load_and_preprocess_data(path): + df = pd.read_excel(path, header=None, names=[ + 'timestamp', 'open', 'high', 'low', 'close', 'volume' + ]) + df['timestamp'] = pd.to_datetime(df['timestamp']) + df.set_index('timestamp', inplace=True) + + # Resample to 15-minute intervals + df = df.resample('15min').agg({ + 'open': 'first', + 'high': 'max', + 'low': 'min', + 'close': 'last', + 'volume': 'sum' + }).dropna() + + # Add features + df['sma_10'] = df['close'].rolling(10).mean() + df['sma_30'] = df['close'].rolling(30).mean() + df['rsi_14'] = 100 - (100 / (1 + df['close'].pct_change().add(1).rolling(14).mean())) + df['momentum'] = df['close'] - df['close'].shift(4) + df['price_delta'] = df['close'] - df['open'] + df['vol_rolling'] = df['volume'].rolling(10).mean() + + # Bollinger %B + rolling_mean = df['close'].rolling(20).mean() + rolling_std = df['close'].rolling(20).std() + df['bollinger_b'] = (df['close'] - rolling_mean) / (2 * rolling_std) + + # MACD + ema12 = df['close'].ewm(span=12, adjust=False).mean() + ema26 = df['close'].ewm(span=26, adjust=False).mean() + df['macd'] = ema12 - ema26 + + # Timestamp-based features + df['hour'] = df.index.hour + df['weekday'] = df.index.weekday + + # Simulated portfolio balance and buy-in value (placeholders for now) + df['balance'] = 10000.0 # Placeholder: could be dynamic in real-time + df['buy_in'] = df['close'].shift(1) # Simulated buy price + df['pnl_per_trade'] = df['close'] - df['buy_in'] # Fake PnL calc + + # Target: Will price rise X% in next N intervals? + future_window = 4 + threshold = 0.001 + df['future_max'] = df['close'].shift(-future_window).rolling(future_window).max() + df['target'] = np.where(df['future_max'] > df['close'] * (1 + threshold), 1, 0) + + df.dropna(inplace=True) + + # Define feature set + features = [ + 'open', 'high', 'low', 'close', 'volume', + 'sma_10', 'sma_30', 'rsi_14', 'momentum', + 'price_delta', 'vol_rolling', 'bollinger_b', 'macd', + 'hour', 'weekday', 'balance', 'buy_in', 'pnl_per_trade' + ] + + return df[features], df['target'] diff --git a/ml/scaler.pkl b/ml/scaler.pkl new file mode 100644 index 0000000..6c6eaa2 Binary files /dev/null and b/ml/scaler.pkl differ diff --git a/ml/train_mlp.py b/ml/train_mlp.py new file mode 100644 index 0000000..81487c9 --- /dev/null +++ b/ml/train_mlp.py @@ -0,0 +1,106 @@ +# ml/train_mlp.py + +import os +import sys +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) + +import torch +import torch.nn as nn +from torch.utils.data import DataLoader, TensorDataset +from sklearn.preprocessing import StandardScaler +from sklearn.model_selection import train_test_split +from sklearn.metrics import classification_report +from ml.models.forex_mlp import ForexMLP +from ml.preprocessing import load_and_preprocess_data +import numpy as np +import joblib +import pandas as pd + + +# Load + preprocess +features_df, labels = load_and_preprocess_data("data/DAT_XLSX_EURUSD_M1_2021.xlsx") + +# Encode targets into two-element vectors: [Buy, Sell] +def encode_targets(labels): + encoded = [] + for val in labels: + if val == 1: + encoded.append([1, 0]) + elif val == -1: + encoded.append([0, 1]) + else: + encoded.append([0, 0]) + return torch.tensor(encoded, dtype=torch.float32) + +# Train-test split +X_train, X_test, y_train, y_test = train_test_split(features_df, labels, test_size=0.3, shuffle=False) + +# Scale +scaler = StandardScaler() +X_train_scaled = scaler.fit_transform(X_train) +X_test_scaled = scaler.transform(X_test) + +# Save scaler +# ๐ŸŸข Convert to DataFrame for easier manipulation +train_df = X_train.copy() +train_df['target'] = y_train.values + +# ๐Ÿงช Split into minority and majority +minority = train_df[train_df['target'] == 1] +majority = train_df[train_df['target'] == 0] + +# ๐Ÿ” Oversample minority class to match majority count +minority_oversampled = minority.sample(len(majority), replace=True, random_state=42) + +# ๐Ÿ”„ Combine + shuffle +balanced_df = pd.concat([majority, minority_oversampled]).sample(frac=1, random_state=42) + +# โœ… Re-split into features and labels +X_balanced = balanced_df.drop(columns=['target']) +y_balanced = balanced_df['target'] + +# ๐Ÿ”ข Scale +scaler = StandardScaler() +X_scaled = scaler.fit_transform(X_balanced) +X_test_scaled = scaler.transform(X_test) # Use the original test set! + +# ๐Ÿ’พ Save scaler +os.makedirs("ml", exist_ok=True) +joblib.dump(scaler, "ml/scaler.pkl") + +# ๐Ÿ“ฆ Wrap in TensorDataset with encoded 2D targets +y_encoded = encode_targets(y_balanced.values) +train_dataset = TensorDataset(torch.tensor(X_scaled, dtype=torch.float32), y_encoded) +train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True) + + +# Init model +model = ForexMLP(input_size=X_train.shape[1]) +criterion = nn.BCELoss() +optimizer = torch.optim.Adam(model.parameters(), lr=0.001) + +# Training loop +epochs = 100 +for epoch in range(epochs): + total_loss = 0.0 + for inputs, targets in train_loader: + optimizer.zero_grad() + outputs = model(inputs) + loss = criterion(outputs, targets) + loss.backward() + optimizer.step() + total_loss += loss.item() + print(f"๐Ÿ“‰ Epoch {epoch + 1} | Loss: {total_loss / len(train_loader):.4f}") + +# Save model +torch.save(model.state_dict(), "ml/models/forex_mlp.pt") +print("โœ… Trained model saved to ml/models/forex_mlp.pt") + +# Evaluation +model.eval() +with torch.no_grad(): + preds = model(torch.tensor(X_test_scaled, dtype=torch.float32)) + preds_bin = (preds > 0.5).int() + y_test_encoded = encode_targets(y_test.values).int() + print("๐Ÿ“Š Evaluation Report:") + print(classification_report(y_test_encoded, preds_bin)) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..3779bf8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,22 @@ +backtrader +pandas +# numpy==2.2.4 +numpy<2 +matplotlib +requests +openpyxl +ta +scikit-learn +xgboost +joblib +matplotlib +seaborn +torch==2.1.0 +torchvision==0.16.0 +torchaudio==2.1.0 +scikit-learn +pandas +matplotlib +seaborn +tqdm +tensorboard \ No newline at end of file diff --git a/strategies/pytorch_strategy.py b/strategies/pytorch_strategy.py new file mode 100644 index 0000000..786321b --- /dev/null +++ b/strategies/pytorch_strategy.py @@ -0,0 +1,41 @@ +import backtrader as bt +import torch +import numpy as np +import pandas as pd +from ml.models.forex_mlp import ForexMLP + +class PyTorchAIModel(bt.Strategy): + def __init__(self): + self.model = ForexMLP() + self.model.load_state_dict(torch.load("ml/models/forex_mlp.pt", map_location=torch.device("cpu"))) + self.model.eval() + + self.buy_threshold = 0.7 + self.sell_threshold = 0.6 + + def next(self): + # Skip early bars (for indicators if you add them) + if len(self.datas[0]) < 30: + return + + # Create feature vector for the current candle + features = np.array([[ + self.data.open[0], + self.data.high[0], + self.data.low[0], + self.data.close[0], + self.data.volume[0] + ]], dtype=np.float32) + + inputs = torch.tensor(features) + with torch.no_grad(): + output = self.model(inputs) + buy_score, sell_score = output[0].numpy() + + print(f"[AI] Buy: {buy_score:.3f}, Sell: {sell_score:.3f}") + + # Trade logic + if buy_score > self.buy_threshold and not self.position: + self.buy() + elif sell_score > self.sell_threshold and self.position: + self.close()