diff --git a/README.md b/README.md
index a62b957..251d9d2 100644
--- a/README.md
+++ b/README.md
@@ -38,7 +38,6 @@ CONFIG = EQT_CONFIG # For equity data
```
Each configuration dictionary specifies:
-- `security_type`: "CRYPTO" or "EQUITY".
- `data_directory`: Path to the data files.
- `datafiles`: A list of database files to process. You can comment/uncomment specific files to include/exclude them from the backtest.
- `db_table_name`: The name of the table within the SQLite database.
diff --git a/configuration/zscore.cfg b/configuration/zscore.cfg
new file mode 100644
index 0000000..b05cefe
--- /dev/null
+++ b/configuration/zscore.cfg
@@ -0,0 +1,46 @@
+{
+ "instrument_type_specifics": {
+ "CRYPTO": {
+ "data_directory": "./data/crypto",
+ "datafiles": [
+ "20250602.mktdata.ohlcv.db"
+ ],
+ "db_table_name": "md_1min_bars",
+ "exchange_id": "BNBSPOT",
+ "instrument_id_pfx": "PAIR-",
+ },
+ "EQUITY": {
+ "data_directory": "./data/equity",
+ "datafiles": [
+ "20250602.mktdata.ohlcv.db"
+ ],
+ "db_table_name": "md_1min_bars",
+ "exchange_id": "BNBSPOT",
+ "instrument_id_pfx": "STOCK-",
+ }
+ },
+
+ # ====== Funding ======
+ "funding_per_pair": 2000.0,
+ # ====== Trading Parameters ======
+ "price_column": "close",
+ "dis-equilibrium_open_trshld": 2.0,
+ "dis-equilibrium_close_trshld": 0.5,
+ "training_minutes": 120,
+ "fit_method_class": "pt_trading.z-score_rolling_fit.ZScoreRollingFit",
+
+ # ====== Stop Conditions ======
+ "stop_close_conditions": {
+ "profit": 2.0,
+ "loss": -0.5
+ }
+
+ # ====== End of Session Closeout ======
+ "close_outstanding_positions": true,
+ # "close_outstanding_positions": false,
+ "trading_hours": {
+ "begin_session": "9:30:00",
+ "end_session": "22:30:00",
+ "timezone": "America/New_York"
+ }
+}
\ No newline at end of file
diff --git a/lib/tools/data_loader.py b/lib/tools/data_loader.py
index 08a5f28..7149ad0 100644
--- a/lib/tools/data_loader.py
+++ b/lib/tools/data_loader.py
@@ -42,16 +42,11 @@ def load_market_data(datafile: str, config: Dict) -> pd.DataFrame:
'"' + config["instrument_id_pfx"] + instrument + '"'
for instrument in config["instruments"]
]
- security_type = config["security_type"]
exchange_id = config["exchange_id"]
query = "select"
- if security_type == "CRYPTO":
- query += " strftime('%Y-%m-%d %H:%M:%S', tstamp_ns/1000000000, 'unixepoch') as tstamp"
- query += ", tstamp as time_ns"
- else:
- query += " tstamp"
- query += ", tstamp_ns as time_ns"
+ query += " tstamp"
+ query += ", tstamp_ns as time_ns"
query += f", substr(instrument_id, {len(config['instrument_id_pfx']) + 1}) as symbol"
query += ", open"
diff --git a/research/notebooks/single_pair_test.ipynb b/research/notebooks/single_pair_test.ipynb
index 3f02227..8e941f7 100644
--- a/research/notebooks/single_pair_test.ipynb
+++ b/research/notebooks/single_pair_test.ipynb
@@ -14,7 +14,7 @@
},
{
"cell_type": "code",
- "execution_count": 97,
+ "execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
@@ -47,6 +47,7 @@
"\n",
"# ================================ C R Y P T O ================================\n",
"CONFIG_FILE = \"/home/oleg/develop/pairs_trading/configuration/crypto_zscore.cfg\"\n",
+ "CONFIG_FILE = \"/home/oleg/develop/pairs_trading/configuration/crypto_vecm.cfg\"\n",
"\n",
"# Date for data file selection (format: YYYYMMDD)\n",
"TRADING_DATE = \"20250602\" # Change this to your desired date\n",
@@ -56,6 +57,10 @@
"SYMBOL_B = \"SOL-USDT\" # Change this to your desired symbol B\n",
"# ================================ C R Y P T O ================================\n",
"\n",
+ "# ================================ E Q U I T Y VS. C R Y P T O ================================\n",
+ "\n",
+ "# ================================ E Q U I T Y VS. C R Y P T O ================================\n",
+ "\n",
"FIT_METHOD_TYPE = \"RollingFit\"\n",
"TRD_DATE = f\"{TRADING_DATE[0:4]}-{TRADING_DATE[4:6]}-{TRADING_DATE[6:8]}\"\n"
]
@@ -76,7 +81,7 @@
},
{
"cell_type": "code",
- "execution_count": 98,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
@@ -117,7 +122,7 @@
},
{
"cell_type": "code",
- "execution_count": 99,
+ "execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
@@ -196,7 +201,7 @@
},
{
"cell_type": "code",
- "execution_count": 100,
+ "execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
@@ -223,7 +228,7 @@
" PT_BT_CONFIG = dict(CONFIG)\n",
"\n",
" if PT_BT_CONFIG:\n",
- " print(f\"✓ Successfully loaded {PT_BT_CONFIG['security_type']} configuration\")\n",
+ " print(f\"✓ Successfully loaded configuration\")\n",
" print(f\" Data directory: {PT_BT_CONFIG['data_directory']}\")\n",
" print(f\" Database table: {PT_BT_CONFIG['db_table_name']}\")\n",
" print(f\" Exchange: {PT_BT_CONFIG['exchange_id']}\")\n",
@@ -244,7 +249,6 @@
" \n",
" print(f\"\\nData Configuration:\")\n",
" print(f\" Data File: {DATA_FILE}\")\n",
- " print(f\" Security Type: {PT_BT_CONFIG['security_type']}\")\n",
" \n",
" # Verify data file exists\n",
" data_file_path = f\"{PT_BT_CONFIG['data_directory']}/{DATA_FILE}\"\n",
@@ -283,7 +287,7 @@
},
{
"cell_type": "code",
- "execution_count": 101,
+ "execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
@@ -344,7 +348,7 @@
},
{
"cell_type": "code",
- "execution_count": 102,
+ "execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -389,7 +393,7 @@
},
{
"cell_type": "code",
- "execution_count": 103,
+ "execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
@@ -481,7 +485,7 @@
},
{
"cell_type": "code",
- "execution_count": 104,
+ "execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
@@ -552,7 +556,7 @@
},
{
"cell_type": "code",
- "execution_count": 105,
+ "execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
@@ -1045,7 +1049,7 @@
},
{
"cell_type": "code",
- "execution_count": 106,
+ "execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
@@ -1115,7 +1119,7 @@
},
{
"cell_type": "code",
- "execution_count": 107,
+ "execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
@@ -1196,7 +1200,7 @@
},
{
"cell_type": "code",
- "execution_count": 108,
+ "execution_count": 12,
"metadata": {},
"outputs": [
{
@@ -1205,26 +1209,25 @@
"text": [
"Setup complete!\n",
"Trading Parameters:\n",
- " Configuration: /home/oleg/develop/pairs_trading/configuration/crypto_zscore.cfg\n",
+ " Configuration: /home/oleg/develop/pairs_trading/configuration/crypto_vecm.cfg\n",
" Symbol A: ADA-USDT\n",
" Symbol B: SOL-USDT\n",
" Trading Date: 2025-06-02\n",
"\n",
- "Loading /home/oleg/develop/pairs_trading/configuration/crypto_zscore.cfg configuration using HJSON...\n",
- "✓ Successfully loaded CRYPTO configuration\n",
+ "Loading /home/oleg/develop/pairs_trading/configuration/crypto_vecm.cfg configuration using HJSON...\n",
+ "✓ Successfully loaded configuration\n",
" Data directory: /home/oleg/develop/pairs_trading/data/crypto\n",
" Database table: md_1min_bars\n",
" Exchange: BNBSPOT\n",
" Training window: 120 minutes\n",
" Open threshold: 2\n",
- " Close threshold: 0.5\n",
- "Fit Model: pt_trading.z-score_rolling_fit.ZScoreRollingFit\n",
+ " Close threshold: 1\n",
+ "Fit Model: pt_trading.vecm_rolling_fit.VECMRollingFit\n",
"Load configuration SUCCESS\n",
- " Fit Method: ZScoreRollingFit\n",
+ " Fit Method: VECMRollingFit\n",
"\n",
"Data Configuration:\n",
" Data File: 20250602.mktdata.ohlcv.db\n",
- " Security Type: CRYPTO\n",
" ✓ Data file found: /home/oleg/develop/pairs_trading/data/crypto/20250602.mktdata.ohlcv.db\n",
"Loading data from: /home/oleg/develop/pairs_trading/data/crypto/20250602.mktdata.ohlcv.db\n",
"Loaded 1258 rows of market data\n",
@@ -1403,7 +1406,7 @@
"\n",
"Strategy Configuration:\n",
" Open threshold: 2\n",
- " Close threshold: 0.5\n",
+ " Close threshold: 1\n",
" Training minutes: 120\n",
" Funding per pair: $2000\n"
]
@@ -1444,108 +1447,89 @@
"Processing first 200 iterations for demonstration...\n",
"***ADA-USDT & SOL-USDT*** STARTING....\n",
"ADA-USDT & SOL-USDT: current offset=510 * Training data length=119 < 120 * Not enough training data. Completing the job.\n",
- "OPEN_TRADES: 2025-06-02 15:31:00 open_scaled_disequilibrium=2.892080636255072\n",
+ "OPEN_TRADES: 2025-06-02 15:48:00 open_scaled_disequilibrium=2.0818049024547634\n",
"OPEN TRADES:\n",
" time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 15:31:00 ADA-USDT BUY OPEN 0.6733 -2.892081 2.892081 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 15:31:00 SOL-USDT SELL OPEN 153.1600 -2.892081 2.892081 ADA-USDT & SOL-USDT OPEN\n",
+ "0 2025-06-02 15:48:00 ADA-USDT SELL OPEN 0.6736 0.002199 2.081805 ADA-USDT & SOL-USDT OPEN\n",
+ "1 2025-06-02 15:48:00 SOL-USDT BUY OPEN 152.8000 0.002199 2.081805 ADA-USDT & SOL-USDT OPEN\n",
"CLOSE TRADES:\n",
" time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 15:41:00 ADA-USDT SELL CLOSE 0.6735 0.014633 0.014633 ADA-USDT & SOL-USDT CLOSE\n",
- "1 2025-06-02 15:41:00 SOL-USDT BUY CLOSE 153.0800 0.014633 0.014633 ADA-USDT & SOL-USDT CLOSE\n",
- "OPEN_TRADES: 2025-06-02 16:44:00 open_scaled_disequilibrium=2.364778510607668\n",
+ "0 2025-06-02 16:04:00 ADA-USDT BUY CLOSE 0.6731 0.000948 0.798953 ADA-USDT & SOL-USDT CLOSE\n",
+ "1 2025-06-02 16:04:00 SOL-USDT SELL CLOSE 152.9400 0.000948 0.798953 ADA-USDT & SOL-USDT CLOSE\n",
+ "OPEN_TRADES: 2025-06-02 17:29:00 open_scaled_disequilibrium=2.1389572377792994\n",
"OPEN TRADES:\n",
" time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 16:44:00 ADA-USDT BUY OPEN 0.6708 -2.364779 2.364779 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 16:44:00 SOL-USDT SELL OPEN 152.4700 -2.364779 2.364779 ADA-USDT & SOL-USDT OPEN\n",
- "CLOSE TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 17:01:00 ADA-USDT SELL CLOSE 0.6745 -0.45725 0.45725 ADA-USDT & SOL-USDT CLOSE\n",
- "1 2025-06-02 17:01:00 SOL-USDT BUY CLOSE 153.2100 -0.45725 0.45725 ADA-USDT & SOL-USDT CLOSE\n",
- "OPEN_TRADES: 2025-06-02 17:06:00 open_scaled_disequilibrium=2.191024540541887\n",
- "OPEN TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 17:06:00 ADA-USDT BUY OPEN 0.6738 -2.191025 2.191025 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 17:06:00 SOL-USDT SELL OPEN 152.9000 -2.191025 2.191025 ADA-USDT & SOL-USDT OPEN\n",
+ "0 2025-06-02 17:29:00 ADA-USDT BUY OPEN 0.6745 -0.001016 2.138957 ADA-USDT & SOL-USDT OPEN\n",
+ "1 2025-06-02 17:29:00 SOL-USDT SELL OPEN 153.4400 -0.001016 2.138957 ADA-USDT & SOL-USDT OPEN\n",
"STOP CLOSE TRADES:\n",
" time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 17:14:00 ADA-USDT SELL CLOSE 0.6717 -0.939467 0.939467 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "1 2025-06-02 17:14:00 SOL-USDT BUY CLOSE 152.5400 -0.939467 0.939467 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "OPEN_TRADES: 2025-06-02 17:24:00 open_scaled_disequilibrium=2.748538160528875\n",
+ "0 2025-06-02 17:35:00 ADA-USDT SELL CLOSE 0.6712 -0.00227 3.90593 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "1 2025-06-02 17:35:00 SOL-USDT BUY CLOSE 153.0300 -0.00227 3.90593 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "OPEN_TRADES: 2025-06-02 17:36:00 open_scaled_disequilibrium=2.9327807569100677\n",
"OPEN TRADES:\n",
" time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 17:24:00 ADA-USDT BUY OPEN 0.6755 -2.748538 2.748538 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 17:24:00 SOL-USDT SELL OPEN 153.5600 -2.748538 2.748538 ADA-USDT & SOL-USDT OPEN\n",
+ "0 2025-06-02 17:36:00 ADA-USDT BUY OPEN 0.6715 -0.001793 2.932781 ADA-USDT & SOL-USDT OPEN\n",
+ "1 2025-06-02 17:36:00 SOL-USDT SELL OPEN 152.9900 -0.001793 2.932781 ADA-USDT & SOL-USDT OPEN\n",
+ "CLOSE TRADES:\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 18:16:00 ADA-USDT SELL CLOSE 0.6752 0.000173 0.95951 ADA-USDT & SOL-USDT CLOSE\n",
+ "1 2025-06-02 18:16:00 SOL-USDT BUY CLOSE 153.8700 0.000173 0.95951 ADA-USDT & SOL-USDT CLOSE\n",
+ "OPEN_TRADES: 2025-06-02 19:03:00 open_scaled_disequilibrium=2.2278377496743373\n",
+ "OPEN TRADES:\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 19:03:00 ADA-USDT SELL OPEN 0.6775 0.002985 2.227838 ADA-USDT & SOL-USDT OPEN\n",
+ "1 2025-06-02 19:03:00 SOL-USDT BUY OPEN 153.6100 0.002985 2.227838 ADA-USDT & SOL-USDT OPEN\n",
"STOP CLOSE TRADES:\n",
" time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 17:33:00 ADA-USDT SELL CLOSE 0.6722 -1.168442 1.168442 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "1 2025-06-02 17:33:00 SOL-USDT BUY CLOSE 153.2400 -1.168442 1.168442 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "OPEN_TRADES: 2025-06-02 18:02:00 open_scaled_disequilibrium=2.0472288892294728\n",
+ "0 2025-06-02 19:08:00 ADA-USDT BUY CLOSE 0.6763 0.00987 2.980161 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "1 2025-06-02 19:08:00 SOL-USDT SELL CLOSE 153.0100 0.00987 2.980161 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "OPEN_TRADES: 2025-06-02 19:09:00 open_scaled_disequilibrium=2.8642081530160217\n",
"OPEN TRADES:\n",
" time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 18:02:00 ADA-USDT SELL OPEN 0.6741 2.047229 2.047229 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 18:02:00 SOL-USDT BUY OPEN 153.5900 2.047229 2.047229 ADA-USDT & SOL-USDT OPEN\n",
- "CLOSE TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 18:06:00 ADA-USDT BUY CLOSE 0.6746 -0.089168 0.089168 ADA-USDT & SOL-USDT CLOSE\n",
- "1 2025-06-02 18:06:00 SOL-USDT SELL CLOSE 153.7900 -0.089168 0.089168 ADA-USDT & SOL-USDT CLOSE\n",
- "OPEN_TRADES: 2025-06-02 19:35:00 open_scaled_disequilibrium=2.016877535891162\n",
- "OPEN TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 19:35:00 ADA-USDT BUY OPEN 0.6719 -2.016878 2.016878 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 19:35:00 SOL-USDT SELL OPEN 151.9900 -2.016878 2.016878 ADA-USDT & SOL-USDT OPEN\n",
- "STOP CLOSE TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 20:09:00 ADA-USDT SELL CLOSE 0.6791 -1.119561 1.119561 ADA-USDT & SOL-USDT CLOSE_STOP_PROFIT\n",
- "1 2025-06-02 20:09:00 SOL-USDT BUY CLOSE 153.7500 -1.119561 1.119561 ADA-USDT & SOL-USDT CLOSE_STOP_PROFIT\n",
- "OPEN_TRADES: 2025-06-02 20:32:00 open_scaled_disequilibrium=2.1193116614341356\n",
- "OPEN TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 20:32:00 ADA-USDT BUY OPEN 0.6811 -2.119312 2.119312 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 20:32:00 SOL-USDT SELL OPEN 154.2200 -2.119312 2.119312 ADA-USDT & SOL-USDT OPEN\n",
- "CLOSE TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 21:04:00 ADA-USDT SELL CLOSE 0.6845 -0.316305 0.316305 ADA-USDT & SOL-USDT CLOSE\n",
- "1 2025-06-02 21:04:00 SOL-USDT BUY CLOSE 154.7200 -0.316305 0.316305 ADA-USDT & SOL-USDT CLOSE\n",
- "OPEN_TRADES: 2025-06-02 21:33:00 open_scaled_disequilibrium=2.1162146947771068\n",
- "OPEN TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 21:33:00 ADA-USDT SELL OPEN 0.6819 2.116215 2.116215 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 21:33:00 SOL-USDT BUY OPEN 154.5100 2.116215 2.116215 ADA-USDT & SOL-USDT OPEN\n",
- "CLOSE TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 21:40:00 ADA-USDT BUY CLOSE 0.6833 -0.195611 0.195611 ADA-USDT & SOL-USDT CLOSE\n",
- "1 2025-06-02 21:40:00 SOL-USDT SELL CLOSE 154.9200 -0.195611 0.195611 ADA-USDT & SOL-USDT CLOSE\n",
- "OPEN_TRADES: 2025-06-02 21:58:00 open_scaled_disequilibrium=2.0841568077931436\n",
- "OPEN TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 21:58:00 ADA-USDT BUY OPEN 0.6842 -2.084157 2.084157 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 21:58:00 SOL-USDT SELL OPEN 155.2900 -2.084157 2.084157 ADA-USDT & SOL-USDT OPEN\n",
- "CLOSE TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 22:06:00 ADA-USDT SELL CLOSE 0.6887 -0.396354 0.396354 ADA-USDT & SOL-USDT CLOSE\n",
- "1 2025-06-02 22:06:00 SOL-USDT BUY CLOSE 155.8300 -0.396354 0.396354 ADA-USDT & SOL-USDT CLOSE\n",
- "OPEN_TRADES: 2025-06-02 22:19:00 open_scaled_disequilibrium=2.10216298924875\n",
- "OPEN TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 22:19:00 ADA-USDT SELL OPEN 0.6905 2.102163 2.102163 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 22:19:00 SOL-USDT BUY OPEN 156.2700 2.102163 2.102163 ADA-USDT & SOL-USDT OPEN\n",
+ "0 2025-06-02 19:09:00 ADA-USDT BUY OPEN 0.6765 -0.006175 2.864208 ADA-USDT & SOL-USDT OPEN\n",
+ "1 2025-06-02 19:09:00 SOL-USDT SELL OPEN 153.0500 -0.006175 2.864208 ADA-USDT & SOL-USDT OPEN\n",
"STOP CLOSE TRADES:\n",
" time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 22:22:00 ADA-USDT BUY CLOSE 0.6882 1.931205 1.931205 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "1 2025-06-02 22:22:00 SOL-USDT SELL CLOSE 155.9200 1.931205 1.931205 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "OPEN_TRADES: 2025-06-02 23:55:00 open_scaled_disequilibrium=2.2438675739562233\n",
+ "0 2025-06-02 19:11:00 ADA-USDT SELL CLOSE 0.6748 -0.009987 2.846697 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "1 2025-06-02 19:11:00 SOL-USDT BUY CLOSE 152.6200 -0.009987 2.846697 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "OPEN_TRADES: 2025-06-02 19:12:00 open_scaled_disequilibrium=3.418633634727695\n",
"OPEN TRADES:\n",
" time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 23:55:00 ADA-USDT BUY OPEN 0.6892 -2.243868 2.243868 ADA-USDT & SOL-USDT OPEN\n",
- "1 2025-06-02 23:55:00 SOL-USDT SELL OPEN 156.9400 -2.243868 2.243868 ADA-USDT & SOL-USDT OPEN\n",
- "ADA-USDT & SOL-USDT: *** Position is NOT CLOSED. ***\n",
- "CLOSE_POSITION TRADES:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 23:59:00 ADA-USDT SELL CLOSE 0.6896 -2.951683 2.951683 ADA-USDT & SOL-USDT CLOSE_POSITION\n",
- "1 2025-06-02 23:59:00 SOL-USDT BUY CLOSE 156.8300 -2.951683 2.951683 ADA-USDT & SOL-USDT CLOSE_POSITION\n",
- "***ADA-USDT & SOL-USDT*** FINISHED *** Num Trades:44\n",
- "Generated 44 trading signals\n",
+ "0 2025-06-02 19:12:00 ADA-USDT SELL OPEN 0.6739 0.009692 3.418634 ADA-USDT & SOL-USDT OPEN\n",
+ "1 2025-06-02 19:12:00 SOL-USDT BUY OPEN 152.1700 0.009692 3.418634 ADA-USDT & SOL-USDT OPEN\n",
+ "STOP CLOSE TRADES:\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 19:34:00 ADA-USDT BUY CLOSE 0.6717 -0.00109 1.588587 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "1 2025-06-02 19:34:00 SOL-USDT SELL CLOSE 151.8300 -0.00109 1.588587 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "OPEN_TRADES: 2025-06-02 21:48:00 open_scaled_disequilibrium=2.5214214864370303\n",
+ "OPEN TRADES:\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 21:48:00 ADA-USDT BUY OPEN 0.6827 -0.00224 2.521421 ADA-USDT & SOL-USDT OPEN\n",
+ "1 2025-06-02 21:48:00 SOL-USDT SELL OPEN 155.2000 -0.00224 2.521421 ADA-USDT & SOL-USDT OPEN\n",
+ "CLOSE TRADES:\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 22:04:00 ADA-USDT SELL CLOSE 0.6883 -0.002265 0.428332 ADA-USDT & SOL-USDT CLOSE\n",
+ "1 2025-06-02 22:04:00 SOL-USDT BUY CLOSE 156.0400 -0.002265 0.428332 ADA-USDT & SOL-USDT CLOSE\n",
+ "OPEN_TRADES: 2025-06-02 22:09:00 open_scaled_disequilibrium=2.670046055313119\n",
+ "OPEN TRADES:\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 22:09:00 ADA-USDT SELL OPEN 0.69 0.002581 2.670046 ADA-USDT & SOL-USDT OPEN\n",
+ "1 2025-06-02 22:09:00 SOL-USDT BUY OPEN 155.67 0.002581 2.670046 ADA-USDT & SOL-USDT OPEN\n",
+ "CLOSE TRADES:\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 22:14:00 ADA-USDT BUY CLOSE 0.6891 0.000614 0.859073 ADA-USDT & SOL-USDT CLOSE\n",
+ "1 2025-06-02 22:14:00 SOL-USDT SELL CLOSE 155.8800 0.000614 0.859073 ADA-USDT & SOL-USDT CLOSE\n",
+ "OPEN_TRADES: 2025-06-02 23:40:00 open_scaled_disequilibrium=2.1923551272389994\n",
+ "OPEN TRADES:\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 23:40:00 ADA-USDT BUY OPEN 0.6896 -0.001467 2.192355 ADA-USDT & SOL-USDT OPEN\n",
+ "1 2025-06-02 23:40:00 SOL-USDT SELL OPEN 157.0000 -0.001467 2.192355 ADA-USDT & SOL-USDT OPEN\n",
+ "CLOSE TRADES:\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 23:58:00 ADA-USDT SELL CLOSE 0.6896 -0.000184 0.896276 ADA-USDT & SOL-USDT CLOSE\n",
+ "1 2025-06-02 23:58:00 SOL-USDT BUY CLOSE 156.8200 -0.000184 0.896276 ADA-USDT & SOL-USDT CLOSE\n",
+ "***ADA-USDT & SOL-USDT*** FINISHED *** Num Trades:36\n",
+ "Generated 36 trading signals\n",
"\n",
"Strategy execution completed!\n",
"\n",
@@ -1574,58 +1558,50 @@
"text": [
"=== SLIDING FIT INTERACTIVE VISUALIZATION ===\n",
"Note: Rolling Fit strategy visualization with interactive plotly charts\n",
- "Using consistent timeline with 749 timestamps\n",
+ "Using consistent timeline with 629 timestamps\n",
"Timeline range: 2025-06-02 13:30:00 to 2025-06-02 23:59:00\n",
"\n",
"Symbol_A trades:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "0 2025-06-02 15:31:00 ADA-USDT BUY OPEN 0.6733 -2.892081 2.892081 ADA-USDT & SOL-USDT OPEN\n",
- "2 2025-06-02 15:41:00 ADA-USDT SELL CLOSE 0.6735 0.014633 0.014633 ADA-USDT & SOL-USDT CLOSE\n",
- "4 2025-06-02 16:44:00 ADA-USDT BUY OPEN 0.6708 -2.364779 2.364779 ADA-USDT & SOL-USDT OPEN\n",
- "6 2025-06-02 17:01:00 ADA-USDT SELL CLOSE 0.6745 -0.457250 0.457250 ADA-USDT & SOL-USDT CLOSE\n",
- "8 2025-06-02 17:06:00 ADA-USDT BUY OPEN 0.6738 -2.191025 2.191025 ADA-USDT & SOL-USDT OPEN\n",
- "10 2025-06-02 17:14:00 ADA-USDT SELL CLOSE 0.6717 -0.939467 0.939467 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "12 2025-06-02 17:24:00 ADA-USDT BUY OPEN 0.6755 -2.748538 2.748538 ADA-USDT & SOL-USDT OPEN\n",
- "14 2025-06-02 17:33:00 ADA-USDT SELL CLOSE 0.6722 -1.168442 1.168442 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "16 2025-06-02 18:02:00 ADA-USDT SELL OPEN 0.6741 2.047229 2.047229 ADA-USDT & SOL-USDT OPEN\n",
- "18 2025-06-02 18:06:00 ADA-USDT BUY CLOSE 0.6746 -0.089168 0.089168 ADA-USDT & SOL-USDT CLOSE\n",
- "20 2025-06-02 19:35:00 ADA-USDT BUY OPEN 0.6719 -2.016878 2.016878 ADA-USDT & SOL-USDT OPEN\n",
- "22 2025-06-02 20:09:00 ADA-USDT SELL CLOSE 0.6791 -1.119561 1.119561 ADA-USDT & SOL-USDT CLOSE_STOP_PROFIT\n",
- "24 2025-06-02 20:32:00 ADA-USDT BUY OPEN 0.6811 -2.119312 2.119312 ADA-USDT & SOL-USDT OPEN\n",
- "26 2025-06-02 21:04:00 ADA-USDT SELL CLOSE 0.6845 -0.316305 0.316305 ADA-USDT & SOL-USDT CLOSE\n",
- "28 2025-06-02 21:33:00 ADA-USDT SELL OPEN 0.6819 2.116215 2.116215 ADA-USDT & SOL-USDT OPEN\n",
- "30 2025-06-02 21:40:00 ADA-USDT BUY CLOSE 0.6833 -0.195611 0.195611 ADA-USDT & SOL-USDT CLOSE\n",
- "32 2025-06-02 21:58:00 ADA-USDT BUY OPEN 0.6842 -2.084157 2.084157 ADA-USDT & SOL-USDT OPEN\n",
- "34 2025-06-02 22:06:00 ADA-USDT SELL CLOSE 0.6887 -0.396354 0.396354 ADA-USDT & SOL-USDT CLOSE\n",
- "36 2025-06-02 22:19:00 ADA-USDT SELL OPEN 0.6905 2.102163 2.102163 ADA-USDT & SOL-USDT OPEN\n",
- "38 2025-06-02 22:22:00 ADA-USDT BUY CLOSE 0.6882 1.931205 1.931205 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "40 2025-06-02 23:55:00 ADA-USDT BUY OPEN 0.6892 -2.243868 2.243868 ADA-USDT & SOL-USDT OPEN\n",
- "42 2025-06-02 23:59:00 ADA-USDT SELL CLOSE 0.6896 -2.951683 2.951683 ADA-USDT & SOL-USDT CLOSE_POSITION\n",
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "0 2025-06-02 15:48:00 ADA-USDT SELL OPEN 0.6736 0.002199 2.081805 ADA-USDT & SOL-USDT OPEN\n",
+ "2 2025-06-02 16:04:00 ADA-USDT BUY CLOSE 0.6731 0.000948 0.798953 ADA-USDT & SOL-USDT CLOSE\n",
+ "4 2025-06-02 17:29:00 ADA-USDT BUY OPEN 0.6745 -0.001016 2.138957 ADA-USDT & SOL-USDT OPEN\n",
+ "6 2025-06-02 17:35:00 ADA-USDT SELL CLOSE 0.6712 -0.002270 3.905930 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "8 2025-06-02 17:36:00 ADA-USDT BUY OPEN 0.6715 -0.001793 2.932781 ADA-USDT & SOL-USDT OPEN\n",
+ "10 2025-06-02 18:16:00 ADA-USDT SELL CLOSE 0.6752 0.000173 0.959510 ADA-USDT & SOL-USDT CLOSE\n",
+ "12 2025-06-02 19:03:00 ADA-USDT SELL OPEN 0.6775 0.002985 2.227838 ADA-USDT & SOL-USDT OPEN\n",
+ "14 2025-06-02 19:08:00 ADA-USDT BUY CLOSE 0.6763 0.009870 2.980161 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "16 2025-06-02 19:09:00 ADA-USDT BUY OPEN 0.6765 -0.006175 2.864208 ADA-USDT & SOL-USDT OPEN\n",
+ "18 2025-06-02 19:11:00 ADA-USDT SELL CLOSE 0.6748 -0.009987 2.846697 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "20 2025-06-02 19:12:00 ADA-USDT SELL OPEN 0.6739 0.009692 3.418634 ADA-USDT & SOL-USDT OPEN\n",
+ "22 2025-06-02 19:34:00 ADA-USDT BUY CLOSE 0.6717 -0.001090 1.588587 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "24 2025-06-02 21:48:00 ADA-USDT BUY OPEN 0.6827 -0.002240 2.521421 ADA-USDT & SOL-USDT OPEN\n",
+ "26 2025-06-02 22:04:00 ADA-USDT SELL CLOSE 0.6883 -0.002265 0.428332 ADA-USDT & SOL-USDT CLOSE\n",
+ "28 2025-06-02 22:09:00 ADA-USDT SELL OPEN 0.6900 0.002581 2.670046 ADA-USDT & SOL-USDT OPEN\n",
+ "30 2025-06-02 22:14:00 ADA-USDT BUY CLOSE 0.6891 0.000614 0.859073 ADA-USDT & SOL-USDT CLOSE\n",
+ "32 2025-06-02 23:40:00 ADA-USDT BUY OPEN 0.6896 -0.001467 2.192355 ADA-USDT & SOL-USDT OPEN\n",
+ "34 2025-06-02 23:58:00 ADA-USDT SELL CLOSE 0.6896 -0.000184 0.896276 ADA-USDT & SOL-USDT CLOSE\n",
"\n",
"Symbol_B trades:\n",
- " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
- "1 2025-06-02 15:31:00 SOL-USDT SELL OPEN 153.16 -2.892081 2.892081 ADA-USDT & SOL-USDT OPEN\n",
- "3 2025-06-02 15:41:00 SOL-USDT BUY CLOSE 153.08 0.014633 0.014633 ADA-USDT & SOL-USDT CLOSE\n",
- "5 2025-06-02 16:44:00 SOL-USDT SELL OPEN 152.47 -2.364779 2.364779 ADA-USDT & SOL-USDT OPEN\n",
- "7 2025-06-02 17:01:00 SOL-USDT BUY CLOSE 153.21 -0.457250 0.457250 ADA-USDT & SOL-USDT CLOSE\n",
- "9 2025-06-02 17:06:00 SOL-USDT SELL OPEN 152.90 -2.191025 2.191025 ADA-USDT & SOL-USDT OPEN\n",
- "11 2025-06-02 17:14:00 SOL-USDT BUY CLOSE 152.54 -0.939467 0.939467 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "13 2025-06-02 17:24:00 SOL-USDT SELL OPEN 153.56 -2.748538 2.748538 ADA-USDT & SOL-USDT OPEN\n",
- "15 2025-06-02 17:33:00 SOL-USDT BUY CLOSE 153.24 -1.168442 1.168442 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "17 2025-06-02 18:02:00 SOL-USDT BUY OPEN 153.59 2.047229 2.047229 ADA-USDT & SOL-USDT OPEN\n",
- "19 2025-06-02 18:06:00 SOL-USDT SELL CLOSE 153.79 -0.089168 0.089168 ADA-USDT & SOL-USDT CLOSE\n",
- "21 2025-06-02 19:35:00 SOL-USDT SELL OPEN 151.99 -2.016878 2.016878 ADA-USDT & SOL-USDT OPEN\n",
- "23 2025-06-02 20:09:00 SOL-USDT BUY CLOSE 153.75 -1.119561 1.119561 ADA-USDT & SOL-USDT CLOSE_STOP_PROFIT\n",
- "25 2025-06-02 20:32:00 SOL-USDT SELL OPEN 154.22 -2.119312 2.119312 ADA-USDT & SOL-USDT OPEN\n",
- "27 2025-06-02 21:04:00 SOL-USDT BUY CLOSE 154.72 -0.316305 0.316305 ADA-USDT & SOL-USDT CLOSE\n",
- "29 2025-06-02 21:33:00 SOL-USDT BUY OPEN 154.51 2.116215 2.116215 ADA-USDT & SOL-USDT OPEN\n",
- "31 2025-06-02 21:40:00 SOL-USDT SELL CLOSE 154.92 -0.195611 0.195611 ADA-USDT & SOL-USDT CLOSE\n",
- "33 2025-06-02 21:58:00 SOL-USDT SELL OPEN 155.29 -2.084157 2.084157 ADA-USDT & SOL-USDT OPEN\n",
- "35 2025-06-02 22:06:00 SOL-USDT BUY CLOSE 155.83 -0.396354 0.396354 ADA-USDT & SOL-USDT CLOSE\n",
- "37 2025-06-02 22:19:00 SOL-USDT BUY OPEN 156.27 2.102163 2.102163 ADA-USDT & SOL-USDT OPEN\n",
- "39 2025-06-02 22:22:00 SOL-USDT SELL CLOSE 155.92 1.931205 1.931205 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
- "41 2025-06-02 23:55:00 SOL-USDT SELL OPEN 156.94 -2.243868 2.243868 ADA-USDT & SOL-USDT OPEN\n",
- "43 2025-06-02 23:59:00 SOL-USDT BUY CLOSE 156.83 -2.951683 2.951683 ADA-USDT & SOL-USDT CLOSE_POSITION\n"
+ " time symbol side action price disequilibrium scaled_disequilibrium pair status\n",
+ "1 2025-06-02 15:48:00 SOL-USDT BUY OPEN 152.80 0.002199 2.081805 ADA-USDT & SOL-USDT OPEN\n",
+ "3 2025-06-02 16:04:00 SOL-USDT SELL CLOSE 152.94 0.000948 0.798953 ADA-USDT & SOL-USDT CLOSE\n",
+ "5 2025-06-02 17:29:00 SOL-USDT SELL OPEN 153.44 -0.001016 2.138957 ADA-USDT & SOL-USDT OPEN\n",
+ "7 2025-06-02 17:35:00 SOL-USDT BUY CLOSE 153.03 -0.002270 3.905930 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "9 2025-06-02 17:36:00 SOL-USDT SELL OPEN 152.99 -0.001793 2.932781 ADA-USDT & SOL-USDT OPEN\n",
+ "11 2025-06-02 18:16:00 SOL-USDT BUY CLOSE 153.87 0.000173 0.959510 ADA-USDT & SOL-USDT CLOSE\n",
+ "13 2025-06-02 19:03:00 SOL-USDT BUY OPEN 153.61 0.002985 2.227838 ADA-USDT & SOL-USDT OPEN\n",
+ "15 2025-06-02 19:08:00 SOL-USDT SELL CLOSE 153.01 0.009870 2.980161 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "17 2025-06-02 19:09:00 SOL-USDT SELL OPEN 153.05 -0.006175 2.864208 ADA-USDT & SOL-USDT OPEN\n",
+ "19 2025-06-02 19:11:00 SOL-USDT BUY CLOSE 152.62 -0.009987 2.846697 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "21 2025-06-02 19:12:00 SOL-USDT BUY OPEN 152.17 0.009692 3.418634 ADA-USDT & SOL-USDT OPEN\n",
+ "23 2025-06-02 19:34:00 SOL-USDT SELL CLOSE 151.83 -0.001090 1.588587 ADA-USDT & SOL-USDT CLOSE_STOP_LOSS\n",
+ "25 2025-06-02 21:48:00 SOL-USDT SELL OPEN 155.20 -0.002240 2.521421 ADA-USDT & SOL-USDT OPEN\n",
+ "27 2025-06-02 22:04:00 SOL-USDT BUY CLOSE 156.04 -0.002265 0.428332 ADA-USDT & SOL-USDT CLOSE\n",
+ "29 2025-06-02 22:09:00 SOL-USDT BUY OPEN 155.67 0.002581 2.670046 ADA-USDT & SOL-USDT OPEN\n",
+ "31 2025-06-02 22:14:00 SOL-USDT SELL CLOSE 155.88 0.000614 0.859073 ADA-USDT & SOL-USDT CLOSE\n",
+ "33 2025-06-02 23:40:00 SOL-USDT SELL OPEN 157.00 -0.001467 2.192355 ADA-USDT & SOL-USDT OPEN\n",
+ "35 2025-06-02 23:58:00 SOL-USDT BUY CLOSE 156.82 -0.000184 0.896276 ADA-USDT & SOL-USDT CLOSE\n"
]
},
{
@@ -1644,126 +1620,6 @@
"opacity": 0.8,
"type": "scatter",
"x": [
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
- "NaT",
"2025-06-02T13:30:00.000000000",
"2025-06-02T13:31:00.000000000",
"2025-06-02T13:32:00.000000000",
@@ -2396,7 +2252,7 @@
],
"xaxis": "x",
"y": {
- "bdata": "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",
+ "bdata": "AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAAAAD4fwAAAAAAAPh/AAAAAAAA+H8AAAAA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",
"dtype": "f8"
},
"yaxis": "y"
@@ -3693,112 +3549,6 @@
},
"yaxis": "y2"
},
- {
- "hovertemplate": "%{text}
Time: 2025-06-02 15:31:00
Normalized Price: 1.0036
Actual Price: $0.67",
- "ADA-USDT BUY OPEN
Time: 2025-06-02 16:44:00
Normalized Price: 0.9999
Actual Price: $0.67",
- "ADA-USDT BUY OPEN
Time: 2025-06-02 17:06:00
Normalized Price: 1.0043
Actual Price: $0.67",
- "ADA-USDT BUY OPEN
Time: 2025-06-02 17:24:00
Normalized Price: 1.0069
Actual Price: $0.68",
- "ADA-USDT BUY CLOSE
Time: 2025-06-02 18:06:00
Normalized Price: 1.0055
Actual Price: $0.67",
- "ADA-USDT BUY OPEN
Time: 2025-06-02 19:35:00
Normalized Price: 1.0015
Actual Price: $0.67",
- "ADA-USDT BUY OPEN
Time: 2025-06-02 20:32:00
Normalized Price: 1.0152
Actual Price: $0.68",
- "ADA-USDT BUY CLOSE
Time: 2025-06-02 21:40:00
Normalized Price: 1.0185
Actual Price: $0.68",
- "ADA-USDT BUY OPEN
Time: 2025-06-02 21:58:00
Normalized Price: 1.0198
Actual Price: $0.68",
- "ADA-USDT BUY CLOSE_STOP_LOSS
Time: 2025-06-02 22:22:00
Normalized Price: 1.0258
Actual Price: $0.69",
- "ADA-USDT BUY OPEN
Time: 2025-06-02 23:55:00
Normalized Price: 1.0273
Actual Price: $0.69"
- ],
- "type": "scatter",
- "x": [
- "2025-06-02T15:31:00",
- "2025-06-02T16:44:00",
- "2025-06-02T17:06:00",
- "2025-06-02T17:24:00",
- "2025-06-02T18:06:00",
- "2025-06-02T19:35:00",
- "2025-06-02T20:32:00",
- "2025-06-02T21:40:00",
- "2025-06-02T21:58:00",
- "2025-06-02T22:22:00",
- "2025-06-02T23:55:00"
- ],
- "xaxis": "x2",
- "y": [
- 1.0035772842450439,
- 0.9998509464897897,
- 1.0043225517960948,
- 1.0068564614696676,
- 1.005514979877776,
- 1.0014905351021017,
- 1.0152034580414369,
- 1.0184826352660605,
- 1.019824116857952,
- 1.0257862572663585,
- 1.0272767923684603
- ],
- "yaxis": "y2"
- },
- {
- "hovertemplate": "%{text}
Time: 2025-06-02 15:31:00
Normalized Price: 0.9966
Actual Price: $153.16",
- "SOL-USDT SELL OPEN
Time: 2025-06-02 16:44:00
Normalized Price: 0.9921
Actual Price: $152.47",
- "SOL-USDT SELL OPEN
Time: 2025-06-02 17:06:00
Normalized Price: 0.9949
Actual Price: $152.90",
- "SOL-USDT SELL OPEN
Time: 2025-06-02 17:24:00
Normalized Price: 0.9992
Actual Price: $153.56",
- "SOL-USDT SELL CLOSE
Time: 2025-06-02 18:06:00
Normalized Price: 1.0007
Actual Price: $153.79",
- "SOL-USDT SELL OPEN
Time: 2025-06-02 19:35:00
Normalized Price: 0.9890
Actual Price: $151.99",
- "SOL-USDT SELL OPEN
Time: 2025-06-02 20:32:00
Normalized Price: 1.0035
Actual Price: $154.22",
- "SOL-USDT SELL CLOSE
Time: 2025-06-02 21:40:00
Normalized Price: 1.0081
Actual Price: $154.92",
- "SOL-USDT SELL OPEN
Time: 2025-06-02 21:58:00
Normalized Price: 1.0105
Actual Price: $155.29",
- "SOL-USDT SELL CLOSE_STOP_LOSS
Time: 2025-06-02 22:22:00
Normalized Price: 1.0146
Actual Price: $155.92",
- "SOL-USDT SELL OPEN
Time: 2025-06-02 23:55:00
Normalized Price: 1.0212
Actual Price: $156.94"
- ],
- "type": "scatter",
- "x": [
- "2025-06-02T15:31:00",
- "2025-06-02T16:44:00",
- "2025-06-02T17:06:00",
- "2025-06-02T17:24:00",
- "2025-06-02T18:06:00",
- "2025-06-02T19:35:00",
- "2025-06-02T20:32:00",
- "2025-06-02T21:40:00",
- "2025-06-02T21:58:00",
- "2025-06-02T22:22:00",
- "2025-06-02T23:55:00"
- ],
- "xaxis": "x2",
- "y": [
- 0.9966163456533055,
- 0.9921264966163456,
- 0.9949245184799583,
- 0.9992191566892243,
- 1.0007157730348775,
- 0.9890031233732431,
- 1.0035137948984902,
- 1.008068714211348,
- 1.010476314419573,
- 1.0145757418011452,
- 1.021212909942738
- ],
- "yaxis": "y2"
- },
{
"hovertemplate": "%{text}
Time: 2025-06-02 15:41:00
Normalized Price: 1.0039
Actual Price: $0.67",
- "ADA-USDT SELL CLOSE
Time: 2025-06-02 17:01:00
Normalized Price: 1.0054
Actual Price: $0.67",
- "ADA-USDT SELL CLOSE_STOP_LOSS
Time: 2025-06-02 17:14:00
Normalized Price: 1.0012
Actual Price: $0.67",
- "ADA-USDT SELL CLOSE_STOP_LOSS
Time: 2025-06-02 17:33:00
Normalized Price: 1.0019
Actual Price: $0.67",
- "ADA-USDT SELL OPEN
Time: 2025-06-02 18:02:00
Normalized Price: 1.0048
Actual Price: $0.67",
- "ADA-USDT SELL CLOSE_STOP_PROFIT
Time: 2025-06-02 20:09:00
Normalized Price: 1.0122
Actual Price: $0.68",
- "ADA-USDT SELL CLOSE
Time: 2025-06-02 21:04:00
Normalized Price: 1.0203
Actual Price: $0.68",
- "ADA-USDT SELL OPEN
Time: 2025-06-02 21:33:00
Normalized Price: 1.0164
Actual Price: $0.68",
- "ADA-USDT SELL CLOSE
Time: 2025-06-02 22:06:00
Normalized Price: 1.0265
Actual Price: $0.69",
- "ADA-USDT SELL OPEN
Time: 2025-06-02 22:19:00
Normalized Price: 1.0292
Actual Price: $0.69",
- "ADA-USDT SELL CLOSE_POSITION
Time: 2025-06-02 23:59:00
Normalized Price: 1.0279
Actual Price: $0.69"
+ "ADA-USDT SELL OPEN
Time: 2025-06-02 15:48:00
Normalized Price: 1.0040
Actual Price: $0.67",
+ "ADA-USDT SELL CLOSE_STOP_LOSS
Time: 2025-06-02 17:35:00
Normalized Price: 1.0004
Actual Price: $0.67",
+ "ADA-USDT SELL CLOSE
Time: 2025-06-02 18:16:00
Normalized Price: 1.0064
Actual Price: $0.68",
+ "ADA-USDT SELL OPEN
Time: 2025-06-02 19:03:00
Normalized Price: 1.0098
Actual Price: $0.68",
+ "ADA-USDT SELL CLOSE_STOP_LOSS
Time: 2025-06-02 19:11:00
Normalized Price: 1.0058
Actual Price: $0.67",
+ "ADA-USDT SELL OPEN
Time: 2025-06-02 19:12:00
Normalized Price: 1.0045
Actual Price: $0.67",
+ "ADA-USDT SELL CLOSE
Time: 2025-06-02 22:04:00
Normalized Price: 1.0259
Actual Price: $0.69",
+ "ADA-USDT SELL OPEN
Time: 2025-06-02 22:09:00
Normalized Price: 1.0285
Actual Price: $0.69",
+ "ADA-USDT SELL CLOSE
Time: 2025-06-02 23:58:00
Normalized Price: 1.0279
Actual Price: $0.69"
],
"type": "scatter",
"x": [
- "2025-06-02T15:41:00",
- "2025-06-02T17:01:00",
- "2025-06-02T17:14:00",
- "2025-06-02T17:33:00",
- "2025-06-02T18:02:00",
- "2025-06-02T20:09:00",
- "2025-06-02T21:04:00",
- "2025-06-02T21:33:00",
- "2025-06-02T22:06:00",
- "2025-06-02T22:19:00",
- "2025-06-02T23:59:00"
+ "2025-06-02T15:48:00",
+ "2025-06-02T17:35:00",
+ "2025-06-02T18:16:00",
+ "2025-06-02T19:03:00",
+ "2025-06-02T19:11:00",
+ "2025-06-02T19:12:00",
+ "2025-06-02T22:04:00",
+ "2025-06-02T22:09:00",
+ "2025-06-02T23:58:00"
],
"xaxis": "x2",
"y": [
- 1.003875391265464,
- 1.0053659263675658,
- 1.0011924280816813,
- 1.0019376956327322,
- 1.0047697123267252,
- 1.0122223878372336,
- 1.0202712773885825,
- 1.0163958861231182,
- 1.0265315248174094,
- 1.0292144880011924,
+ 1.0040244447756743,
+ 1.0004471605306304,
+ 1.0064093009390371,
+ 1.0098375316738708,
+ 1.0058130868981963,
+ 1.004471605306305,
+ 1.0259353107765687,
+ 1.0284692204501416,
1.027873006409301
],
"yaxis": "y2"
@@ -3863,45 +3607,133 @@
"name": "SOL-USDT BUY",
"showlegend": true,
"text": [
- "SOL-USDT BUY CLOSE
Time: 2025-06-02 15:41:00
Normalized Price: 0.9961
Actual Price: $153.08",
- "SOL-USDT BUY CLOSE
Time: 2025-06-02 17:01:00
Normalized Price: 0.9969
Actual Price: $153.21",
- "SOL-USDT BUY CLOSE_STOP_LOSS
Time: 2025-06-02 17:14:00
Normalized Price: 0.9926
Actual Price: $152.54",
- "SOL-USDT BUY CLOSE_STOP_LOSS
Time: 2025-06-02 17:33:00
Normalized Price: 0.9971
Actual Price: $153.24",
- "SOL-USDT BUY OPEN
Time: 2025-06-02 18:02:00
Normalized Price: 0.9994
Actual Price: $153.59",
- "SOL-USDT BUY CLOSE_STOP_PROFIT
Time: 2025-06-02 20:09:00
Normalized Price: 1.0005
Actual Price: $153.75",
- "SOL-USDT BUY CLOSE
Time: 2025-06-02 21:04:00
Normalized Price: 1.0068
Actual Price: $154.72",
- "SOL-USDT BUY OPEN
Time: 2025-06-02 21:33:00
Normalized Price: 1.0054
Actual Price: $154.51",
- "SOL-USDT BUY CLOSE
Time: 2025-06-02 22:06:00
Normalized Price: 1.0140
Actual Price: $155.83",
- "SOL-USDT BUY OPEN
Time: 2025-06-02 22:19:00
Normalized Price: 1.0169
Actual Price: $156.27",
- "SOL-USDT BUY CLOSE_POSITION
Time: 2025-06-02 23:59:00
Normalized Price: 1.0205
Actual Price: $156.83"
+ "SOL-USDT BUY OPEN
Time: 2025-06-02 15:48:00
Normalized Price: 0.9943
Actual Price: $152.80",
+ "SOL-USDT BUY CLOSE_STOP_LOSS
Time: 2025-06-02 17:35:00
Normalized Price: 0.9958
Actual Price: $153.03",
+ "SOL-USDT BUY CLOSE
Time: 2025-06-02 18:16:00
Normalized Price: 1.0012
Actual Price: $153.87",
+ "SOL-USDT BUY OPEN
Time: 2025-06-02 19:03:00
Normalized Price: 0.9995
Actual Price: $153.61",
+ "SOL-USDT BUY CLOSE_STOP_LOSS
Time: 2025-06-02 19:11:00
Normalized Price: 0.9931
Actual Price: $152.62",
+ "SOL-USDT BUY OPEN
Time: 2025-06-02 19:12:00
Normalized Price: 0.9902
Actual Price: $152.17",
+ "SOL-USDT BUY CLOSE
Time: 2025-06-02 22:04:00
Normalized Price: 1.0154
Actual Price: $156.04",
+ "SOL-USDT BUY OPEN
Time: 2025-06-02 22:09:00
Normalized Price: 1.0129
Actual Price: $155.67",
+ "SOL-USDT BUY CLOSE
Time: 2025-06-02 23:58:00
Normalized Price: 1.0204
Actual Price: $156.82"
],
"type": "scatter",
"x": [
- "2025-06-02T15:41:00",
- "2025-06-02T17:01:00",
- "2025-06-02T17:14:00",
- "2025-06-02T17:33:00",
- "2025-06-02T18:02:00",
- "2025-06-02T20:09:00",
- "2025-06-02T21:04:00",
- "2025-06-02T21:33:00",
- "2025-06-02T22:06:00",
- "2025-06-02T22:19:00",
- "2025-06-02T23:59:00"
+ "2025-06-02T15:48:00",
+ "2025-06-02T17:35:00",
+ "2025-06-02T18:16:00",
+ "2025-06-02T19:03:00",
+ "2025-06-02T19:11:00",
+ "2025-06-02T19:12:00",
+ "2025-06-02T22:04:00",
+ "2025-06-02T22:09:00",
+ "2025-06-02T23:58:00"
],
"xaxis": "x2",
"y": [
- 0.9960957834461218,
- 0.9969416970327954,
- 0.9925819885476314,
- 0.9971369078604894,
- 0.9994143675169183,
- 1.0004554919312858,
- 1.0067673086933888,
- 1.0054008328995314,
- 1.0139901093180634,
- 1.0168532014575742,
- 1.0204971369078606
+ 0.9942738157209787,
+ 0.995770432066632,
+ 1.0012363352420615,
+ 0.9995445080687143,
+ 0.9931025507548152,
+ 0.9901743883394064,
+ 1.0153565851119208,
+ 1.012948984903696,
+ 1.0204320666319624
+ ],
+ "yaxis": "y2"
+ },
+ {
+ "hovertemplate": "%{text}
Time: 2025-06-02 16:04:00
Normalized Price: 1.0033
Actual Price: $0.67",
+ "ADA-USDT BUY OPEN
Time: 2025-06-02 17:29:00
Normalized Price: 1.0054
Actual Price: $0.67",
+ "ADA-USDT BUY OPEN
Time: 2025-06-02 17:36:00
Normalized Price: 1.0009
Actual Price: $0.67",
+ "ADA-USDT BUY CLOSE_STOP_LOSS
Time: 2025-06-02 19:08:00
Normalized Price: 1.0080
Actual Price: $0.68",
+ "ADA-USDT BUY OPEN
Time: 2025-06-02 19:09:00
Normalized Price: 1.0083
Actual Price: $0.68",
+ "ADA-USDT BUY CLOSE_STOP_LOSS
Time: 2025-06-02 19:34:00
Normalized Price: 1.0012
Actual Price: $0.67",
+ "ADA-USDT BUY OPEN
Time: 2025-06-02 21:48:00
Normalized Price: 1.0176
Actual Price: $0.68",
+ "ADA-USDT BUY CLOSE
Time: 2025-06-02 22:14:00
Normalized Price: 1.0271
Actual Price: $0.69",
+ "ADA-USDT BUY OPEN
Time: 2025-06-02 23:40:00
Normalized Price: 1.0279
Actual Price: $0.69"
+ ],
+ "type": "scatter",
+ "x": [
+ "2025-06-02T16:04:00",
+ "2025-06-02T17:29:00",
+ "2025-06-02T17:36:00",
+ "2025-06-02T19:08:00",
+ "2025-06-02T19:09:00",
+ "2025-06-02T19:34:00",
+ "2025-06-02T21:48:00",
+ "2025-06-02T22:14:00",
+ "2025-06-02T23:40:00"
+ ],
+ "xaxis": "x2",
+ "y": [
+ 1.0032791772246237,
+ 1.0053659263675658,
+ 1.0008943210612609,
+ 1.0080488895513489,
+ 1.008346996571769,
+ 1.0011924280816813,
+ 1.0175883142047994,
+ 1.02712773885825,
+ 1.027873006409301
+ ],
+ "yaxis": "y2"
+ },
+ {
+ "hovertemplate": "%{text}
Time: 2025-06-02 16:04:00
Normalized Price: 0.9952
Actual Price: $152.94",
+ "SOL-USDT SELL OPEN
Time: 2025-06-02 17:29:00
Normalized Price: 0.9984
Actual Price: $153.44",
+ "SOL-USDT SELL OPEN
Time: 2025-06-02 17:36:00
Normalized Price: 0.9955
Actual Price: $152.99",
+ "SOL-USDT SELL CLOSE_STOP_LOSS
Time: 2025-06-02 19:08:00
Normalized Price: 0.9956
Actual Price: $153.01",
+ "SOL-USDT SELL OPEN
Time: 2025-06-02 19:09:00
Normalized Price: 0.9959
Actual Price: $153.05",
+ "SOL-USDT SELL CLOSE_STOP_LOSS
Time: 2025-06-02 19:34:00
Normalized Price: 0.9880
Actual Price: $151.83",
+ "SOL-USDT SELL OPEN
Time: 2025-06-02 21:48:00
Normalized Price: 1.0099
Actual Price: $155.20",
+ "SOL-USDT SELL CLOSE
Time: 2025-06-02 22:14:00
Normalized Price: 1.0143
Actual Price: $155.88",
+ "SOL-USDT SELL OPEN
Time: 2025-06-02 23:40:00
Normalized Price: 1.0216
Actual Price: $157.00"
+ ],
+ "type": "scatter",
+ "x": [
+ "2025-06-02T16:04:00",
+ "2025-06-02T17:29:00",
+ "2025-06-02T17:36:00",
+ "2025-06-02T19:08:00",
+ "2025-06-02T19:09:00",
+ "2025-06-02T19:34:00",
+ "2025-06-02T21:48:00",
+ "2025-06-02T22:14:00",
+ "2025-06-02T23:40:00"
+ ],
+ "xaxis": "x2",
+ "y": [
+ 0.9951847995835502,
+ 0.9984383133784487,
+ 0.9955101509630401,
+ 0.9956402915148359,
+ 0.9959005726184279,
+ 0.9879619989588756,
+ 1.0098906819364912,
+ 1.0143154606975533,
+ 1.0216033315981259
],
"yaxis": "y2"
},
@@ -4562,18 +4394,15 @@
"showlegend": true,
"type": "scatter",
"x": [
- "2025-06-02T15:31:00.000000000",
- "2025-06-02T16:44:00.000000000",
- "2025-06-02T17:06:00.000000000",
- "2025-06-02T17:24:00.000000000",
- "2025-06-02T19:35:00.000000000",
- "2025-06-02T20:32:00.000000000",
- "2025-06-02T21:58:00.000000000",
- "2025-06-02T23:55:00.000000000"
+ "2025-06-02T17:29:00.000000000",
+ "2025-06-02T17:36:00.000000000",
+ "2025-06-02T19:09:00.000000000",
+ "2025-06-02T21:48:00.000000000",
+ "2025-06-02T23:40:00.000000000"
],
"xaxis": "x3",
"y": {
- "bdata": "lrIMcayL5T+BBMWPMXflPwBvgQTFj+U/BFYOLbKd5T851sVtNIDlP3rHKTqSy+U/24r9Zffk5T8E54wo7Q3mPw==",
+ "bdata": "L90kBoGV5T+wcmiR7XzlP9nO91PjpeU/m1Wfq63Y5T+MSuoENBHmPw==",
"dtype": "f8"
},
"yaxis": "y3"
@@ -4589,13 +4418,14 @@
"showlegend": true,
"type": "scatter",
"x": [
- "2025-06-02T18:06:00.000000000",
- "2025-06-02T21:40:00.000000000",
- "2025-06-02T22:22:00.000000000"
+ "2025-06-02T16:04:00.000000000",
+ "2025-06-02T19:08:00.000000000",
+ "2025-06-02T19:34:00.000000000",
+ "2025-06-02T22:14:00.000000000"
],
"xaxis": "x3",
"y": {
- "bdata": "ETY8vVKW5T/oaiv2l93lPy9uowG8BeY/",
+ "bdata": "0gDeAgmK5T8VHcnlP6TlP3Qkl/+QfuU/Io51cRsN5j8=",
"dtype": "f8"
},
"yaxis": "y3"
@@ -4611,13 +4441,14 @@
"showlegend": true,
"type": "scatter",
"x": [
- "2025-06-02T18:02:00.000000000",
- "2025-06-02T21:33:00.000000000",
- "2025-06-02T22:19:00.000000000"
+ "2025-06-02T15:48:00.000000000",
+ "2025-06-02T19:03:00.000000000",
+ "2025-06-02T19:12:00.000000000",
+ "2025-06-02T22:09:00.000000000"
],
"xaxis": "x3",
"y": {
- "bdata": "p3nHKTqS5T+KjuTyH9LlP39qvHSTGOY/",
+ "bdata": "PL1SliGO5T+uR+F6FK7lP+PHmLuWkOU/FK5H4XoU5j8=",
"dtype": "f8"
},
"yaxis": "y3"
@@ -4633,18 +4464,15 @@
"showlegend": true,
"type": "scatter",
"x": [
- "2025-06-02T15:41:00.000000000",
- "2025-06-02T17:01:00.000000000",
- "2025-06-02T17:14:00.000000000",
- "2025-06-02T17:33:00.000000000",
- "2025-06-02T20:09:00.000000000",
- "2025-06-02T21:04:00.000000000",
- "2025-06-02T22:06:00.000000000",
- "2025-06-02T23:59:00.000000000"
+ "2025-06-02T17:35:00.000000000",
+ "2025-06-02T18:16:00.000000000",
+ "2025-06-02T19:11:00.000000000",
+ "2025-06-02T22:04:00.000000000",
+ "2025-06-02T23:58:00.000000000"
],
"xaxis": "x3",
"y": {
- "bdata": "WmQ730+N5T8v3SQGgZXlP3Qkl/+QfuU/3+ALk6mC5T/Q1VbsL7vlP4GVQ4ts5+U/mSoYldQJ5j+MSuoENBHmPw==",
+ "bdata": "CmgibHh65T9eS8gHPZvlP9Xnaiv2l+U/Ece6uI0G5j+MSuoENBHmPw==",
"dtype": "f8"
},
"yaxis": "y3"
@@ -5306,13 +5134,14 @@
"showlegend": true,
"type": "scatter",
"x": [
- "2025-06-02T18:02:00.000000000",
- "2025-06-02T21:33:00.000000000",
- "2025-06-02T22:19:00.000000000"
+ "2025-06-02T15:48:00.000000000",
+ "2025-06-02T19:03:00.000000000",
+ "2025-06-02T19:12:00.000000000",
+ "2025-06-02T22:09:00.000000000"
],
"xaxis": "x4",
"y": {
- "bdata": "exSuR+EyY0C4HoXrUVBjQHE9CtejiGNA",
+ "bdata": "mpmZmZkZY0DsUbgehTNjQD0K16NwBWNAPQrXo3B1Y0A=",
"dtype": "f8"
},
"yaxis": "y4"
@@ -5328,18 +5157,15 @@
"showlegend": true,
"type": "scatter",
"x": [
- "2025-06-02T15:41:00.000000000",
- "2025-06-02T17:01:00.000000000",
- "2025-06-02T17:14:00.000000000",
- "2025-06-02T17:33:00.000000000",
- "2025-06-02T20:09:00.000000000",
- "2025-06-02T21:04:00.000000000",
- "2025-06-02T22:06:00.000000000",
- "2025-06-02T23:59:00.000000000"
+ "2025-06-02T17:35:00.000000000",
+ "2025-06-02T18:16:00.000000000",
+ "2025-06-02T19:11:00.000000000",
+ "2025-06-02T22:04:00.000000000",
+ "2025-06-02T23:58:00.000000000"
],
"xaxis": "x4",
"y": {
- "bdata": "w/UoXI8iY0AfhetRuCZjQOF6FK5HEWNASOF6FK4nY0AAAAAAADhjQNejcD0KV2NAw/UoXI96Y0DD9Shcj5pjQA==",
+ "bdata": "KVyPwvUgY0CkcD0K1ztjQKRwPQrXE2NA4XoUrkeBY0AK16NwPZpjQA==",
"dtype": "f8"
},
"yaxis": "y4"
@@ -5355,18 +5181,15 @@
"showlegend": true,
"type": "scatter",
"x": [
- "2025-06-02T15:31:00.000000000",
- "2025-06-02T16:44:00.000000000",
- "2025-06-02T17:06:00.000000000",
- "2025-06-02T17:24:00.000000000",
- "2025-06-02T19:35:00.000000000",
- "2025-06-02T20:32:00.000000000",
- "2025-06-02T21:58:00.000000000",
- "2025-06-02T23:55:00.000000000"
+ "2025-06-02T17:29:00.000000000",
+ "2025-06-02T17:36:00.000000000",
+ "2025-06-02T19:09:00.000000000",
+ "2025-06-02T21:48:00.000000000",
+ "2025-06-02T23:40:00.000000000"
],
"xaxis": "x4",
"y": {
- "bdata": "hetRuB4lY0DXo3A9Cg9jQM3MzMzMHGNAUrgehesxY0BI4XoUrv9iQNejcD0KR2NA4XoUrkdpY0CuR+F6FJ5jQA==",
+ "bdata": "rkfhehQuY0BI4XoUrh9jQJqZmZmZIWNAZmZmZmZmY0AAAAAAAKBjQA==",
"dtype": "f8"
},
"yaxis": "y4"
@@ -5382,13 +5205,14 @@
"showlegend": true,
"type": "scatter",
"x": [
- "2025-06-02T18:06:00.000000000",
- "2025-06-02T21:40:00.000000000",
- "2025-06-02T22:22:00.000000000"
+ "2025-06-02T16:04:00.000000000",
+ "2025-06-02T19:08:00.000000000",
+ "2025-06-02T19:34:00.000000000",
+ "2025-06-02T22:14:00.000000000"
],
"xaxis": "x4",
"y": {
- "bdata": "4XoUrkc5Y0A9CtejcF1jQD0K16NwfWNA",
+ "bdata": "rkfhehQeY0C4HoXrUSBjQMP1KFyP+mJAXI/C9Sh8Y0A=",
"dtype": "f8"
},
"yaxis": "y4"
@@ -5493,8 +5317,8 @@
"x0": "2025-06-02T13:30:00",
"x1": "2025-06-02T23:59:00",
"xref": "x",
- "y0": 0.5,
- "y1": 0.5,
+ "y0": 1,
+ "y1": 1,
"yref": "y"
},
{
@@ -5508,8 +5332,8 @@
"x0": "2025-06-02T13:30:00",
"x1": "2025-06-02T23:59:00",
"xref": "x",
- "y0": -0.5,
- "y1": -0.5,
+ "y0": -1,
+ "y1": -1,
"yref": "y"
},
{
@@ -6399,9 +6223,9 @@
},
"text/html": [
"