From 6bf111ae347919a5da0a301df728f1c2ee136bb9 Mon Sep 17 00:00:00 2001 From: luisleo526 Date: Sat, 26 Sep 2026 06:05:29 +0800 Subject: [PATCH 1/8] Copy H-MEASURE's session.ismarket tapes into the test fixtures The engine lane H-MEASURE (row G2-36, branch r5/hmeasure at 2b494497) recorded six `lab tv` tapes of TradingView's own session.ismarket on every bar of CME_MINI:ES1!, OANDA:EURUSD, OANDA:XAUUSD and BINANCE:ETHUSDT.P 60, across both 2025 US DST switches and the Thanksgiving week: all 1,138 bars in market. The files are copied byte for byte; the README records their provenance, sha256 and campaign notes. Co-Authored-By: Claude Opus 5.5 (1M context) --- tests/fixtures/session_ismarket/README.md | 32 ++ .../hm-g236-es1-60-dst-mar/meta.json | 16 + .../hm-g236-es1-60-dst-mar/metrics.json | 40 ++ .../hm-g236-es1-60-dst-mar/strategy.pine | 17 + .../hm-g236-es1-60-dst-mar/tv_trades.csv | 421 +++++++++++++++++ .../hm-g236-es1-60-dst-nov/meta.json | 16 + .../hm-g236-es1-60-dst-nov/metrics.json | 40 ++ .../hm-g236-es1-60-dst-nov/strategy.pine | 17 + .../hm-g236-es1-60-dst-nov/tv_trades.csv | 419 +++++++++++++++++ .../hm-g236-es1-60-thanksgiving/meta.json | 16 + .../hm-g236-es1-60-thanksgiving/metrics.json | 40 ++ .../hm-g236-es1-60-thanksgiving/strategy.pine | 17 + .../hm-g236-es1-60-thanksgiving/tv_trades.csv | 385 +++++++++++++++ .../hm-g236-eth-60-24x7/meta.json | 16 + .../hm-g236-eth-60-24x7/metrics.json | 40 ++ .../hm-g236-eth-60-24x7/strategy.pine | 17 + .../hm-g236-eth-60-24x7/tv_trades.csv | 195 ++++++++ .../hm-g236-eurusd-60-dst-mar/meta.json | 16 + .../hm-g236-eurusd-60-dst-mar/metrics.json | 40 ++ .../hm-g236-eurusd-60-dst-mar/strategy.pine | 17 + .../hm-g236-eurusd-60-dst-mar/tv_trades.csv | 441 ++++++++++++++++++ .../hm-g236-xauusd-60-dst-mar/meta.json | 16 + .../hm-g236-xauusd-60-dst-mar/metrics.json | 40 ++ .../hm-g236-xauusd-60-dst-mar/strategy.pine | 17 + .../hm-g236-xauusd-60-dst-mar/tv_trades.csv | 421 +++++++++++++++++ 25 files changed, 2752 insertions(+) create mode 100644 tests/fixtures/session_ismarket/README.md create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/meta.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/metrics.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/strategy.pine create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/meta.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/metrics.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/strategy.pine create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/meta.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/metrics.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/strategy.pine create mode 100644 tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/meta.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/metrics.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/strategy.pine create mode 100644 tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/meta.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/metrics.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/strategy.pine create mode 100644 tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/meta.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/metrics.json create mode 100644 tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/strategy.pine create mode 100644 tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/tv_trades.csv diff --git a/tests/fixtures/session_ismarket/README.md b/tests/fixtures/session_ismarket/README.md new file mode 100644 index 0000000..952ff65 --- /dev/null +++ b/tests/fixtures/session_ismarket/README.md @@ -0,0 +1,32 @@ +# session.* TradingView tapes + +TradingView's own session flags on every bar of six 60-minute charts. Each +directory is one `lab tv` export (channel `ws-report-v1`, `rangeProof` +covered), byte for byte: `strategy.pine`, `tv_trades.csv` (times at UTC+8, +the `lab tv` rendering), `meta.json`, `metrics.json`. `metrics.json` +`tvTradesCsvHash` is the sha256 of `tv_trades.csv`, and `meta.json` +`pine_sha256` that of `strategy.pine`. The probes are public; no closed or +scraped strategy is involved. + +Each probe reverses its position at the close of every chart bar +(`process_orders_on_close=true`), so every entry is one chart bar, dated at +its open, and its Signal is the flags TradingView evaluated there. +`tests/test_e2e_session_ismarket.py` replays every tape on flat bars stamped +at the tape's entry times: the flags are a function of a bar's time and the +symbol's session and timezone only. + +## `hm-g236-*`: session.ismarket (engine lane H-MEASURE, row G2-36) + +Copied unchanged from the engine repository, branch `r5/hmeasure` at +`2b494497`, `tests/fixtures/session_ismarket/` (H-MEASURE's +`tests/test_session_ismarket_tape.cpp` reads them there). The Signal is `M1` +when `session.ismarket` is true, `M0` when it is false. + +| tape | chart | window | bars | flags | tv_trades.csv sha256 | exported (UTC) | campaign note | +|---|---|---|---|---|---|---|---| +| `hm-g236-es1-60-dst-mar` | CME_MINI:ES1! 60 | 2025-03-02 .. 03-14 (US DST 03-09) | 210 | all `M1` | `c1a6b73b032a51b6e8007d6fdbe4b59dc6aaa09ff7eafdceab7914ff46c9443d` | 2026-09-25 19:00:57 | `tv-tape-hm-g236-es1-60-dst-mar-c1a6b73b` | +| `hm-g236-es1-60-dst-nov` | CME_MINI:ES1! 60 | 2025-10-26 .. 11-07 (US DST 11-02) | 209 | all `M1` | `a7fbd62928dc49caf7bcdc6c9d8569139eab036860aa375aa0fc2c7db9b408b9` | 2026-09-25 19:01:22 | `tv-tape-hm-g236-es1-60-dst-nov-a7fbd629` | +| `hm-g236-es1-60-thanksgiving` | CME_MINI:ES1! 60 | 2025-11-23 .. 12-05 | 192 | all `M1` | `52512b7df99b764b8f13f8101b7e37481bdad5dfbf86620868f11fe175efaf8f` | 2026-09-25 19:01:26 | `tv-tape-hm-g236-es1-60-thanksgiving-52512b7d` | +| `hm-g236-eurusd-60-dst-mar` | OANDA:EURUSD 60 | 2025-03-02 .. 03-14 | 220 | all `M1` | `60713d2c22442ffe14070fddb1c5cd7fbf6fc6054c0b532b4c4275de305decf1` | 2026-09-25 19:01:34 | `tv-tape-hm-g236-eurusd-60-dst-mar-60713d2c` | +| `hm-g236-xauusd-60-dst-mar` | OANDA:XAUUSD 60 | 2025-03-02 .. 03-14 | 210 | all `M1` | `ebc226aea010125fb66b7cda3a86563846a243463723816ee529f8f044c54cf6` | 2026-09-25 19:01:37 | `tv-tape-hm-g236-xauusd-60-dst-mar-ebc226ae` | +| `hm-g236-eth-60-24x7` | BINANCE:ETHUSDT.P 60 | 2025-03-07 .. 03-11 | 97 | all `M1` | `96b7e8890b41a9e8aa60698a43cdffd5f42c55bb8d2d0223f7985c13b5040b74` | 2026-09-25 19:01:29 | `tv-tape-hm-g236-eth-60-24x7-96b7e889` | diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/meta.json b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/meta.json new file mode 100644 index 0000000..7f72931 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/meta.json @@ -0,0 +1,16 @@ +{ + "title": "HM G2-36 session.ismarket", + "slug": "hm-g236-es1-60-dst-mar", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T19:00:57.146Z", + "chart": { + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14" + }, + "pine_sha256": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tv_trades_sha256": "c1a6b73b032a51b6e8007d6fdbe4b59dc6aaa09ff7eafdceab7914ff46c9443d", + "tv_trades_rows": 420 +} diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/metrics.json b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/metrics.json new file mode 100644 index 0000000..d5be06f --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "hm-g236-es1-60-dst-mar", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14", + "deepBacktesting": true, + "trades": 210, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tvTradesCsvHash": "c1a6b73b032a51b6e8007d6fdbe4b59dc6aaa09ff7eafdceab7914ff46c9443d", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74408", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "requestedRange": { + "from": 1740873600000, + "to": 1741910400000 + }, + "returnedRange": { + "from": 1740956400000, + "to": 1741910400000 + }, + "rangeProof": "covered", + "rawFrameSha256": "dd2a73e6d9048e68a73c3b403e5252328ffc51d40f35495673e8f8b91bba5d13", + "decodedReportSha256": "0a4ea6224dffe15b4e453a11b5a70f6f6243737d2e90fccc16edcca560c2072c", + "closedTrades": 210, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T19:00:57.145Z" +} diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/strategy.pine b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/strategy.pine new file mode 100644 index 0000000..182c911 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/strategy.pine @@ -0,0 +1,17 @@ +// H-MEASURE (R5 wave H) row G2-36: which chart bars does TradingView flag +// session.ismarket on? process_orders_on_close=true: every bar reverses the +// position at its own close, so every trade's ENTRY is one chart bar (TradingView +// dates a process_orders_on_close fill at the bar's open) and the entry's Signal +// (its comment) is the flag TradingView evaluated on that bar: "M1" when +// session.ismarket is true, "M0" when it is false. +//@version=6 +strategy("HM G2-36 session.ismarket", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +flag = session.ismarket ? "M1" : "M0" +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/tv_trades.csv b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/tv_trades.csv new file mode 100644 index 0000000..813bf8c --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-mar/tv_trades.csv @@ -0,0 +1,421 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-03 08:00,M1,5955.25,1,298712.5,-950,-0.32,0,75,0.03,-1362.5,-0.46,-950,0.00,1 +1,Entry long,2025-03-03 07:00,M1,5974.25,1,298712.5,-950,-0.32,0,75,0.03,-1362.5,-0.46,-950,0.00,1 +2,Exit short,2025-03-03 09:00,M1,5965.25,1,297762.5,-500,-0.17,0,187.5,0.06,-575,-0.19,-1450,0.00,1 +2,Entry short,2025-03-03 08:00,M1,5955.25,1,297762.5,-500,-0.17,0,187.5,0.06,-575,-0.19,-1450,0.00,1 +3,Exit long,2025-03-03 10:00,M1,5964.25,1,298262.5,-50,-0.02,0,187.5,0.06,-275,-0.09,-1500,0.00,1 +3,Entry long,2025-03-03 09:00,M1,5965.25,1,298262.5,-50,-0.02,0,187.5,0.06,-275,-0.09,-1500,0.00,1 +4,Exit short,2025-03-03 11:00,M1,5965,1,298212.5,-37.5,-0.01,0,337.5,0.11,-62.5,-0.02,-1537.5,0.00,1 +4,Entry short,2025-03-03 10:00,M1,5964.25,1,298212.5,-37.5,-0.01,0,337.5,0.11,-62.5,-0.02,-1537.5,0.00,1 +5,Exit long,2025-03-03 12:00,M1,5972,1,298250,350,0.12,0,375,0.13,-37.5,-0.01,-1187.5,0.00,1 +5,Entry long,2025-03-03 11:00,M1,5965,1,298250,350,0.12,0,375,0.13,-37.5,-0.01,-1187.5,0.00,1 +6,Exit short,2025-03-03 13:00,M1,5977.25,1,298600,-262.5,-0.09,0,62.5,0.02,-362.5,-0.12,-1450,0.00,1 +6,Entry short,2025-03-03 12:00,M1,5972,1,298600,-262.5,-0.09,0,62.5,0.02,-362.5,-0.12,-1450,0.00,1 +7,Exit long,2025-03-03 14:00,M1,5979.5,1,298862.5,112.5,0.04,0,250,0.08,-275,-0.09,-1337.5,0.00,1 +7,Entry long,2025-03-03 13:00,M1,5977.25,1,298862.5,112.5,0.04,0,250,0.08,-275,-0.09,-1337.5,0.00,1 +8,Exit short,2025-03-03 15:00,M1,5971.25,1,298975,412.5,0.14,0,737.5,0.25,-62.5,-0.02,-925,0.00,1 +8,Entry short,2025-03-03 14:00,M1,5979.5,1,298975,412.5,0.14,0,737.5,0.25,-62.5,-0.02,-925,0.00,1 +9,Exit long,2025-03-03 16:00,M1,5966.75,1,298562.5,-225,-0.08,0,362.5,0.12,-775,-0.26,-1150,0.00,1 +9,Entry long,2025-03-03 15:00,M1,5971.25,1,298562.5,-225,-0.08,0,362.5,0.12,-775,-0.26,-1150,0.00,1 +10,Exit short,2025-03-03 17:00,M1,5982,1,298337.5,-762.5,-0.26,0,225,0.08,-787.5,-0.26,-1912.5,0.00,1 +10,Entry short,2025-03-03 16:00,M1,5966.75,1,298337.5,-762.5,-0.26,0,225,0.08,-787.5,-0.26,-1912.5,0.00,1 +11,Exit long,2025-03-03 18:00,M1,5982,1,299100,0,0.00,0,75,0.03,-362.5,-0.12,-1912.5,0.00,1 +11,Entry long,2025-03-03 17:00,M1,5982,1,299100,0,0.00,0,75,0.03,-362.5,-0.12,-1912.5,0.00,1 +12,Exit short,2025-03-03 19:00,M1,5988.5,1,299100,-325,-0.11,0,62.5,0.02,-362.5,-0.12,-2237.5,0.00,1 +12,Entry short,2025-03-03 18:00,M1,5982,1,299100,-325,-0.11,0,62.5,0.02,-362.5,-0.12,-2237.5,0.00,1 +13,Exit long,2025-03-03 20:00,M1,5992,1,299425,175,0.06,0,600,0.20,-112.5,-0.04,-2062.5,0.00,1 +13,Entry long,2025-03-03 19:00,M1,5988.5,1,299425,175,0.06,0,600,0.20,-112.5,-0.04,-2062.5,0.00,1 +14,Exit short,2025-03-03 21:00,M1,5985.25,1,299600,337.5,0.11,0,587.5,0.20,-62.5,-0.02,-1725,0.00,1 +14,Entry short,2025-03-03 20:00,M1,5992,1,299600,337.5,0.11,0,587.5,0.20,-62.5,-0.02,-1725,0.00,1 +15,Exit long,2025-03-03 22:00,M1,5951.5,1,299262.5,-1687.5,-0.56,0,587.5,0.20,-1875,-0.63,-3412.5,0.00,1 +15,Entry long,2025-03-03 21:00,M1,5985.25,1,299262.5,-1687.5,-0.56,0,587.5,0.20,-1875,-0.63,-3412.5,0.00,1 +16,Exit short,2025-03-03 23:00,M1,5947.25,1,297575,212.5,0.07,0,1050,0.35,-1162.5,-0.39,-3200,0.00,1 +16,Entry short,2025-03-03 22:00,M1,5951.5,1,297575,212.5,0.07,0,1050,0.35,-1162.5,-0.39,-3200,0.00,1 +17,Exit long,2025-03-04 00:00,M1,5953.5,1,297362.5,312.5,0.11,0,1075,0.36,-637.5,-0.21,-2887.5,0.00,1 +17,Entry long,2025-03-03 23:00,M1,5947.25,1,297362.5,312.5,0.11,0,1075,0.36,-637.5,-0.21,-2887.5,0.00,1 +18,Exit short,2025-03-04 01:00,M1,5943.25,1,297675,512.5,0.17,0,812.5,0.27,-600,-0.20,-2375,0.00,1 +18,Entry short,2025-03-04 00:00,M1,5953.5,1,297675,512.5,0.17,0,812.5,0.27,-600,-0.20,-2375,0.00,1 +19,Exit long,2025-03-04 02:00,M1,5914.75,1,297162.5,-1425,-0.48,0,75,0.03,-2275,-0.77,-3800,0.00,1 +19,Entry long,2025-03-04 01:00,M1,5943.25,1,297162.5,-1425,-0.48,0,75,0.03,-2275,-0.77,-3800,0.00,1 +20,Exit short,2025-03-04 03:00,M1,5883.5,1,295737.5,1562.5,0.53,0,1612.5,0.55,-737.5,-0.25,-2237.5,0.00,1 +20,Entry short,2025-03-04 02:00,M1,5914.75,1,295737.5,1562.5,0.53,0,1612.5,0.55,-737.5,-0.25,-2237.5,0.00,1 +21,Exit long,2025-03-04 04:00,M1,5862.75,1,294175,-1037.5,-0.35,0,37.5,0.01,-3087.5,-1.05,-3275,0.00,1 +21,Entry long,2025-03-04 03:00,M1,5883.5,1,294175,-1037.5,-0.35,0,37.5,0.01,-3087.5,-1.05,-3275,0.00,1 +22,Exit short,2025-03-04 05:00,M1,5875,1,293137.5,-612.5,-0.21,0,87.5,0.03,-675,-0.23,-3887.5,0.00,1 +22,Entry short,2025-03-04 04:00,M1,5862.75,1,293137.5,-612.5,-0.21,0,87.5,0.03,-675,-0.23,-3887.5,0.00,1 +23,Exit long,2025-03-04 07:00,M1,5870.25,1,293750,-237.5,-0.08,0,300,0.10,-375,-0.13,-4125,0.00,1 +23,Entry long,2025-03-04 05:00,M1,5875,1,293750,-237.5,-0.08,0,300,0.10,-375,-0.13,-4125,0.00,1 +24,Exit short,2025-03-04 08:00,M1,5877,1,293512.5,-337.5,-0.11,0,437.5,0.15,-462.5,-0.16,-4462.5,0.00,1 +24,Entry short,2025-03-04 07:00,M1,5870.25,1,293512.5,-337.5,-0.11,0,437.5,0.15,-462.5,-0.16,-4462.5,0.00,1 +25,Exit long,2025-03-04 09:00,M1,5861.25,1,293850,-787.5,-0.27,0,225,0.08,-875,-0.30,-5250,0.00,1 +25,Entry long,2025-03-04 08:00,M1,5877,1,293850,-787.5,-0.27,0,225,0.08,-875,-0.30,-5250,0.00,1 +26,Exit short,2025-03-04 10:00,M1,5871,1,293062.5,-487.5,-0.17,0,75,0.03,-625,-0.21,-5737.5,0.00,1 +26,Entry short,2025-03-04 09:00,M1,5861.25,1,293062.5,-487.5,-0.17,0,75,0.03,-625,-0.21,-5737.5,0.00,1 +27,Exit long,2025-03-04 11:00,M1,5874,1,293550,150,0.05,0,337.5,0.11,-200,-0.07,-5587.5,0.00,1 +27,Entry long,2025-03-04 10:00,M1,5871,1,293550,150,0.05,0,337.5,0.11,-200,-0.07,-5587.5,0.00,1 +28,Exit short,2025-03-04 12:00,M1,5870,1,293700,200,0.07,0,275,0.09,-200,-0.07,-5387.5,0.00,1 +28,Entry short,2025-03-04 11:00,M1,5874,1,293700,200,0.07,0,275,0.09,-200,-0.07,-5387.5,0.00,1 +29,Exit long,2025-03-04 13:00,M1,5877.75,1,293500,387.5,0.13,0,700,0.24,-537.5,-0.18,-5000,0.00,1 +29,Entry long,2025-03-04 12:00,M1,5870,1,293500,387.5,0.13,0,700,0.24,-537.5,-0.18,-5000,0.00,1 +30,Exit short,2025-03-04 14:00,M1,5878.25,1,293887.5,-25,-0.01,0,437.5,0.15,-187.5,-0.06,-5025,0.00,1 +30,Entry short,2025-03-04 13:00,M1,5877.75,1,293887.5,-25,-0.01,0,437.5,0.15,-187.5,-0.06,-5025,0.00,1 +31,Exit long,2025-03-04 15:00,M1,5863.25,1,293912.5,-750,-0.26,0,50,0.02,-912.5,-0.31,-5775,0.00,1 +31,Entry long,2025-03-04 14:00,M1,5878.25,1,293912.5,-750,-0.26,0,50,0.02,-912.5,-0.31,-5775,0.00,1 +32,Exit short,2025-03-04 16:00,M1,5867.75,1,293162.5,-225,-0.08,0,337.5,0.12,-762.5,-0.26,-6000,0.00,1 +32,Entry short,2025-03-04 15:00,M1,5863.25,1,293162.5,-225,-0.08,0,337.5,0.12,-762.5,-0.26,-6000,0.00,1 +33,Exit long,2025-03-04 17:00,M1,5863.25,1,293387.5,-225,-0.08,0,462.5,0.16,-412.5,-0.14,-6225,0.00,1 +33,Entry long,2025-03-04 16:00,M1,5867.75,1,293387.5,-225,-0.08,0,462.5,0.16,-412.5,-0.14,-6225,0.00,1 +34,Exit short,2025-03-04 18:00,M1,5855.75,1,293162.5,375,0.13,0,725,0.25,-137.5,-0.05,-5850,0.00,1 +34,Entry short,2025-03-04 17:00,M1,5863.25,1,293162.5,375,0.13,0,725,0.25,-137.5,-0.05,-5850,0.00,1 +35,Exit long,2025-03-04 19:00,M1,5856,1,292787.5,12.5,0.00,0,262.5,0.09,-337.5,-0.12,-5837.5,0.00,1 +35,Entry long,2025-03-04 18:00,M1,5855.75,1,292787.5,12.5,0.00,0,262.5,0.09,-337.5,-0.12,-5837.5,0.00,1 +36,Exit short,2025-03-04 20:00,M1,5823.75,1,292800,1612.5,0.55,0,1750,0.60,0,0.00,-4225,0.00,1 +36,Entry short,2025-03-04 19:00,M1,5856,1,292800,1612.5,0.55,0,1750,0.60,0,0.00,-4225,0.00,1 +37,Exit long,2025-03-04 21:00,M1,5820.75,1,291187.5,-150,-0.05,0,237.5,0.08,-587.5,-0.20,-4375,0.00,1 +37,Entry long,2025-03-04 20:00,M1,5823.75,1,291187.5,-150,-0.05,0,237.5,0.08,-587.5,-0.20,-4375,0.00,1 +38,Exit short,2025-03-04 22:00,M1,5779,1,291037.5,2087.5,0.72,0,2137.5,0.73,-750,-0.26,-2287.5,0.00,1 +38,Entry short,2025-03-04 21:00,M1,5820.75,1,291037.5,2087.5,0.72,0,2137.5,0.73,-750,-0.26,-2287.5,0.00,1 +39,Exit long,2025-03-04 23:00,M1,5762.5,1,288950,-825,-0.29,0,237.5,0.08,-1750,-0.61,-3112.5,0.00,1 +39,Entry long,2025-03-04 22:00,M1,5779,1,288950,-825,-0.29,0,237.5,0.08,-1750,-0.61,-3112.5,0.00,1 +40,Exit short,2025-03-05 00:00,M1,5781.5,1,288125,-950,-0.33,0,887.5,0.31,-1250,-0.43,-4062.5,0.00,1 +40,Entry short,2025-03-04 23:00,M1,5762.5,1,288125,-950,-0.33,0,887.5,0.31,-1250,-0.43,-4062.5,0.00,1 +41,Exit long,2025-03-05 01:00,M1,5786.75,1,289075,262.5,0.09,0,1287.5,0.45,-337.5,-0.12,-3800,0.00,1 +41,Entry long,2025-03-05 00:00,M1,5781.5,1,289075,262.5,0.09,0,1287.5,0.45,-337.5,-0.12,-3800,0.00,1 +42,Exit short,2025-03-05 02:00,M1,5824.5,1,289337.5,-1887.5,-0.65,0,225,0.08,-2175,-0.75,-5687.5,0.00,1 +42,Entry short,2025-03-05 01:00,M1,5786.75,1,289337.5,-1887.5,-0.65,0,225,0.08,-2175,-0.75,-5687.5,0.00,1 +43,Exit long,2025-03-05 03:00,M1,5850.5,1,291225,1300,0.45,0,1437.5,0.49,-50,-0.02,-4387.5,0.00,1 +43,Entry long,2025-03-05 02:00,M1,5824.5,1,291225,1300,0.45,0,1437.5,0.49,-50,-0.02,-4387.5,0.00,1 +44,Exit short,2025-03-05 04:00,M1,5790.75,1,292525,2987.5,1.02,0,4112.5,1.41,-1262.5,-0.43,-1400,0.00,1 +44,Entry short,2025-03-05 03:00,M1,5850.5,1,292525,2987.5,1.02,0,4112.5,1.41,-1262.5,-0.43,-1400,0.00,1 +45,Exit long,2025-03-05 05:00,M1,5825,1,289537.5,1712.5,0.59,0,2462.5,0.85,-12.5,0.00,312.5,0.00,1 +45,Entry long,2025-03-05 04:00,M1,5790.75,1,289537.5,1712.5,0.59,0,2462.5,0.85,-12.5,0.00,312.5,0.00,1 +46,Exit short,2025-03-05 07:00,M1,5834,1,291250,-450,-0.15,0,87.5,0.03,-650,-0.22,-137.5,0.00,1 +46,Entry short,2025-03-05 05:00,M1,5825,1,291250,-450,-0.15,0,87.5,0.03,-650,-0.22,-137.5,0.00,1 +47,Exit long,2025-03-05 08:00,M1,5826.5,1,291700,-375,-0.13,0,137.5,0.05,-962.5,-0.33,-512.5,0.00,1 +47,Entry long,2025-03-05 07:00,M1,5834,1,291700,-375,-0.13,0,137.5,0.05,-962.5,-0.33,-512.5,0.00,1 +48,Exit short,2025-03-05 09:00,M1,5820,1,291325,325,0.11,0,925,0.32,-100,-0.03,-187.5,0.00,1 +48,Entry short,2025-03-05 08:00,M1,5826.5,1,291325,325,0.11,0,925,0.32,-100,-0.03,-187.5,0.00,1 +49,Exit long,2025-03-05 10:00,M1,5814,1,291000,-300,-0.10,0,150,0.05,-612.5,-0.21,-487.5,0.00,1 +49,Entry long,2025-03-05 09:00,M1,5820,1,291000,-300,-0.10,0,150,0.05,-612.5,-0.21,-487.5,0.00,1 +50,Exit short,2025-03-05 11:00,M1,5828.75,1,290700,-737.5,-0.25,0,250,0.09,-937.5,-0.32,-1225,0.00,1 +50,Entry short,2025-03-05 10:00,M1,5814,1,290700,-737.5,-0.25,0,250,0.09,-937.5,-0.32,-1225,0.00,1 +51,Exit long,2025-03-05 12:00,M1,5826.75,1,291437.5,-100,-0.03,0,262.5,0.09,-187.5,-0.06,-1325,0.00,1 +51,Entry long,2025-03-05 11:00,M1,5828.75,1,291437.5,-100,-0.03,0,262.5,0.09,-187.5,-0.06,-1325,0.00,1 +52,Exit short,2025-03-05 13:00,M1,5827,1,291337.5,-12.5,0.00,0,462.5,0.16,-112.5,-0.04,-1337.5,0.00,1 +52,Entry short,2025-03-05 12:00,M1,5826.75,1,291337.5,-12.5,0.00,0,462.5,0.16,-112.5,-0.04,-1337.5,0.00,1 +53,Exit long,2025-03-05 14:00,M1,5826,1,291350,-50,-0.02,0,137.5,0.05,-437.5,-0.15,-1387.5,0.00,1 +53,Entry long,2025-03-05 13:00,M1,5827,1,291350,-50,-0.02,0,137.5,0.05,-437.5,-0.15,-1387.5,0.00,1 +54,Exit short,2025-03-05 15:00,M1,5822,1,291300,200,0.07,0,250,0.09,-325,-0.11,-1187.5,0.00,1 +54,Entry short,2025-03-05 14:00,M1,5826,1,291300,200,0.07,0,250,0.09,-325,-0.11,-1187.5,0.00,1 +55,Exit long,2025-03-05 16:00,M1,5824.5,1,291100,125,0.04,0,750,0.26,-237.5,-0.08,-1062.5,0.00,1 +55,Entry long,2025-03-05 15:00,M1,5822,1,291100,125,0.04,0,750,0.26,-237.5,-0.08,-1062.5,0.00,1 +56,Exit short,2025-03-05 17:00,M1,5839.5,1,291225,-750,-0.26,0,225,0.08,-987.5,-0.34,-1812.5,0.00,1 +56,Entry short,2025-03-05 16:00,M1,5824.5,1,291225,-750,-0.26,0,225,0.08,-987.5,-0.34,-1812.5,0.00,1 +57,Exit long,2025-03-05 18:00,M1,5823.25,1,291975,-812.5,-0.28,0,162.5,0.06,-850,-0.29,-2625,0.00,1 +57,Entry long,2025-03-05 17:00,M1,5839.5,1,291975,-812.5,-0.28,0,162.5,0.06,-850,-0.29,-2625,0.00,1 +58,Exit short,2025-03-05 19:00,M1,5809.75,1,291162.5,675,0.23,0,1350,0.46,-112.5,-0.04,-1950,0.00,1 +58,Entry short,2025-03-05 18:00,M1,5823.25,1,291162.5,675,0.23,0,1350,0.46,-112.5,-0.04,-1950,0.00,1 +59,Exit long,2025-03-05 20:00,M1,5802.5,1,290487.5,-362.5,-0.12,0,337.5,0.12,-612.5,-0.21,-2312.5,0.00,1 +59,Entry long,2025-03-05 19:00,M1,5809.75,1,290487.5,-362.5,-0.12,0,337.5,0.12,-612.5,-0.21,-2312.5,0.00,1 +60,Exit short,2025-03-05 21:00,M1,5788.5,1,290125,700,0.24,0,937.5,0.32,-550,-0.19,-1612.5,0.00,1 +60,Entry short,2025-03-05 20:00,M1,5802.5,1,290125,700,0.24,0,937.5,0.32,-550,-0.19,-1612.5,0.00,1 +61,Exit long,2025-03-05 22:00,M1,5778.25,1,289425,-512.5,-0.18,0,1212.5,0.42,-912.5,-0.32,-2125,0.00,1 +61,Entry long,2025-03-05 21:00,M1,5788.5,1,289425,-512.5,-0.18,0,1212.5,0.42,-912.5,-0.32,-2125,0.00,1 +62,Exit short,2025-03-05 23:00,M1,5789.5,1,288912.5,-562.5,-0.19,0,187.5,0.06,-1937.5,-0.67,-2687.5,0.00,1 +62,Entry short,2025-03-05 22:00,M1,5778.25,1,288912.5,-562.5,-0.19,0,187.5,0.06,-1937.5,-0.67,-2687.5,0.00,1 +63,Exit long,2025-03-06 00:00,M1,5779.5,1,289475,-500,-0.17,0,0,0.00,-1937.5,-0.67,-3187.5,0.00,1 +63,Entry long,2025-03-05 23:00,M1,5789.5,1,289475,-500,-0.17,0,0,0.00,-1937.5,-0.67,-3187.5,0.00,1 +64,Exit short,2025-03-06 01:00,M1,5828,1,288975,-2425,-0.84,0,75,0.03,-2500,-0.87,-5612.5,0.00,1 +64,Entry short,2025-03-06 00:00,M1,5779.5,1,288975,-2425,-0.84,0,75,0.03,-2500,-0.87,-5612.5,0.00,1 +65,Exit long,2025-03-06 02:00,M1,5835.25,1,291400,362.5,0.12,0,412.5,0.14,-1512.5,-0.52,-5250,0.00,1 +65,Entry long,2025-03-06 01:00,M1,5828,1,291400,362.5,0.12,0,412.5,0.14,-1512.5,-0.52,-5250,0.00,1 +66,Exit short,2025-03-06 03:00,M1,5851.25,1,291762.5,-800,-0.27,0,325,0.11,-1450,-0.50,-6050,0.00,1 +66,Entry short,2025-03-06 02:00,M1,5835.25,1,291762.5,-800,-0.27,0,325,0.11,-1450,-0.50,-6050,0.00,1 +67,Exit long,2025-03-06 04:00,M1,5850.75,1,292562.5,-25,-0.01,0,912.5,0.31,-862.5,-0.29,-6075,0.00,1 +67,Entry long,2025-03-06 03:00,M1,5851.25,1,292562.5,-25,-0.01,0,912.5,0.31,-862.5,-0.29,-6075,0.00,1 +68,Exit short,2025-03-06 05:00,M1,5845.5,1,292537.5,262.5,0.09,0,475,0.16,-62.5,-0.02,-5812.5,0.00,1 +68,Entry short,2025-03-06 04:00,M1,5850.75,1,292537.5,262.5,0.09,0,475,0.16,-62.5,-0.02,-5812.5,0.00,1 +69,Exit long,2025-03-06 07:00,M1,5845.25,1,292275,-12.5,0.00,0,400,0.14,-200,-0.07,-5825,0.00,1 +69,Entry long,2025-03-06 05:00,M1,5845.5,1,292275,-12.5,0.00,0,400,0.14,-200,-0.07,-5825,0.00,1 +70,Exit short,2025-03-06 08:00,M1,5839.5,1,292262.5,287.5,0.10,0,362.5,0.12,-237.5,-0.08,-5537.5,0.00,1 +70,Entry short,2025-03-06 07:00,M1,5845.25,1,292262.5,287.5,0.10,0,362.5,0.12,-237.5,-0.08,-5537.5,0.00,1 +71,Exit long,2025-03-06 09:00,M1,5843.25,1,291975,187.5,0.06,0,275,0.09,-50,-0.02,-5350,0.00,1 +71,Entry long,2025-03-06 08:00,M1,5839.5,1,291975,187.5,0.06,0,275,0.09,-50,-0.02,-5350,0.00,1 +72,Exit short,2025-03-06 10:00,M1,5840.75,1,292162.5,125,0.04,0,187.5,0.06,-175,-0.06,-5225,0.00,1 +72,Entry short,2025-03-06 09:00,M1,5843.25,1,292162.5,125,0.04,0,187.5,0.06,-175,-0.06,-5225,0.00,1 +73,Exit long,2025-03-06 11:00,M1,5846.5,1,292037.5,287.5,0.10,0,325,0.11,-100,-0.03,-4937.5,0.00,1 +73,Entry long,2025-03-06 10:00,M1,5840.75,1,292037.5,287.5,0.10,0,325,0.11,-100,-0.03,-4937.5,0.00,1 +74,Exit short,2025-03-06 12:00,M1,5849.25,1,292325,-137.5,-0.05,0,12.5,0.00,-175,-0.06,-5075,0.00,1 +74,Entry short,2025-03-06 11:00,M1,5846.5,1,292325,-137.5,-0.05,0,12.5,0.00,-175,-0.06,-5075,0.00,1 +75,Exit long,2025-03-06 13:00,M1,5842.75,1,292462.5,-325,-0.11,0,37.5,0.01,-325,-0.11,-5400,0.00,1 +75,Entry long,2025-03-06 12:00,M1,5849.25,1,292462.5,-325,-0.11,0,37.5,0.01,-325,-0.11,-5400,0.00,1 +76,Exit short,2025-03-06 14:00,M1,5848.25,1,292137.5,-275,-0.09,0,112.5,0.04,-337.5,-0.12,-5675,0.00,1 +76,Entry short,2025-03-06 13:00,M1,5842.75,1,292137.5,-275,-0.09,0,112.5,0.04,-337.5,-0.12,-5675,0.00,1 +77,Exit long,2025-03-06 15:00,M1,5824.5,1,292412.5,-1187.5,-0.41,0,87.5,0.03,-1225,-0.42,-6862.5,0.00,1 +77,Entry long,2025-03-06 14:00,M1,5848.25,1,292412.5,-1187.5,-0.41,0,87.5,0.03,-1225,-0.42,-6862.5,0.00,1 +78,Exit short,2025-03-06 16:00,M1,5803.75,1,291225,1037.5,0.36,0,1162.5,0.40,-312.5,-0.11,-5825,0.00,1 +78,Entry short,2025-03-06 15:00,M1,5824.5,1,291225,1037.5,0.36,0,1162.5,0.40,-312.5,-0.11,-5825,0.00,1 +79,Exit long,2025-03-06 17:00,M1,5792.5,1,290187.5,-562.5,-0.19,0,487.5,0.17,-875,-0.30,-6387.5,0.00,1 +79,Entry long,2025-03-06 16:00,M1,5803.75,1,290187.5,-562.5,-0.19,0,487.5,0.17,-875,-0.30,-6387.5,0.00,1 +80,Exit short,2025-03-06 18:00,M1,5781.5,1,289625,550,0.19,0,650,0.22,-262.5,-0.09,-5837.5,0.00,1 +80,Entry short,2025-03-06 17:00,M1,5792.5,1,289625,550,0.19,0,650,0.22,-262.5,-0.09,-5837.5,0.00,1 +81,Exit long,2025-03-06 19:00,M1,5796.75,1,289075,762.5,0.26,0,787.5,0.27,-300,-0.10,-5075,0.00,1 +81,Entry long,2025-03-06 18:00,M1,5781.5,1,289075,762.5,0.26,0,787.5,0.27,-300,-0.10,-5075,0.00,1 +82,Exit short,2025-03-06 20:00,M1,5784.75,1,289837.5,600,0.21,0,825,0.28,-50,-0.02,-4475,0.00,1 +82,Entry short,2025-03-06 19:00,M1,5796.75,1,289837.5,600,0.21,0,825,0.28,-50,-0.02,-4475,0.00,1 +83,Exit long,2025-03-06 21:00,M1,5779.5,1,289237.5,-262.5,-0.09,0,300,0.10,-775,-0.27,-4737.5,0.00,1 +83,Entry long,2025-03-06 20:00,M1,5784.75,1,289237.5,-262.5,-0.09,0,300,0.10,-775,-0.27,-4737.5,0.00,1 +84,Exit short,2025-03-06 22:00,M1,5763.25,1,288975,812.5,0.28,0,1312.5,0.45,-462.5,-0.16,-3925,0.00,1 +84,Entry short,2025-03-06 21:00,M1,5779.5,1,288975,812.5,0.28,0,1312.5,0.45,-462.5,-0.16,-3925,0.00,1 +85,Exit long,2025-03-06 23:00,M1,5806.5,1,288162.5,2162.5,0.75,0,2837.5,0.98,-175,-0.06,-1762.5,0.00,1 +85,Entry long,2025-03-06 22:00,M1,5763.25,1,288162.5,2162.5,0.75,0,2837.5,0.98,-175,-0.06,-1762.5,0.00,1 +86,Exit short,2025-03-07 00:00,M1,5764.25,1,290325,2112.5,0.73,0,2175,0.75,-737.5,-0.25,350,0.00,1 +86,Entry short,2025-03-06 23:00,M1,5806.5,1,290325,2112.5,0.73,0,2175,0.75,-737.5,-0.25,350,0.00,1 +87,Exit long,2025-03-07 01:00,M1,5749.5,1,288212.5,-737.5,-0.26,0,225,0.08,-1762.5,-0.61,-387.5,0.00,1 +87,Entry long,2025-03-07 00:00,M1,5764.25,1,288212.5,-737.5,-0.26,0,225,0.08,-1762.5,-0.61,-387.5,0.00,1 +88,Exit short,2025-03-07 02:00,M1,5740,1,287475,475,0.17,0,1337.5,0.47,-537.5,-0.19,87.5,0.00,1 +88,Entry short,2025-03-07 01:00,M1,5749.5,1,287475,475,0.17,0,1337.5,0.47,-537.5,-0.19,87.5,0.00,1 +89,Exit long,2025-03-07 03:00,M1,5729,1,287000,-550,-0.19,0,1425,0.50,-1000,-0.35,-462.5,0.00,1 +89,Entry long,2025-03-07 02:00,M1,5740,1,287000,-550,-0.19,0,1425,0.50,-1000,-0.35,-462.5,0.00,1 +90,Exit short,2025-03-07 04:00,M1,5747.75,1,286450,-937.5,-0.33,0,275,0.10,-1637.5,-0.57,-1400,0.00,1 +90,Entry short,2025-03-07 03:00,M1,5729,1,286450,-937.5,-0.33,0,275,0.10,-1637.5,-0.57,-1400,0.00,1 +91,Exit long,2025-03-07 05:00,M1,5761.25,1,287387.5,675,0.23,0,1200,0.42,-175,-0.06,-725,0.00,1 +91,Entry long,2025-03-07 04:00,M1,5747.75,1,287387.5,675,0.23,0,1200,0.42,-175,-0.06,-725,0.00,1 +92,Exit short,2025-03-07 07:00,M1,5764.75,1,288062.5,-175,-0.06,0,0,0.00,-425,-0.15,-900,0.00,1 +92,Entry short,2025-03-07 05:00,M1,5761.25,1,288062.5,-175,-0.06,0,0,0.00,-425,-0.15,-900,0.00,1 +93,Exit long,2025-03-07 08:00,M1,5763.75,1,288237.5,-50,-0.02,0,250,0.09,-425,-0.15,-950,0.00,1 +93,Entry long,2025-03-07 07:00,M1,5764.75,1,288237.5,-50,-0.02,0,250,0.09,-425,-0.15,-950,0.00,1 +94,Exit short,2025-03-07 09:00,M1,5768.75,1,288187.5,-250,-0.09,0,125,0.04,-537.5,-0.19,-1200,0.00,1 +94,Entry short,2025-03-07 08:00,M1,5763.75,1,288187.5,-250,-0.09,0,125,0.04,-537.5,-0.19,-1200,0.00,1 +95,Exit long,2025-03-07 10:00,M1,5768.25,1,288437.5,-25,-0.01,0,287.5,0.10,-275,-0.10,-1225,0.00,1 +95,Entry long,2025-03-07 09:00,M1,5768.75,1,288437.5,-25,-0.01,0,287.5,0.10,-275,-0.10,-1225,0.00,1 +96,Exit short,2025-03-07 11:00,M1,5761.25,1,288412.5,350,0.12,0,375,0.13,-37.5,-0.01,-875,0.00,1 +96,Entry short,2025-03-07 10:00,M1,5768.25,1,288412.5,350,0.12,0,375,0.13,-37.5,-0.01,-875,0.00,1 +97,Exit long,2025-03-07 12:00,M1,5764.25,1,288062.5,150,0.05,0,212.5,0.07,-200,-0.07,-725,0.00,1 +97,Entry long,2025-03-07 11:00,M1,5761.25,1,288062.5,150,0.05,0,212.5,0.07,-200,-0.07,-725,0.00,1 +98,Exit short,2025-03-07 13:00,M1,5757,1,288212.5,362.5,0.13,0,487.5,0.17,-25,-0.01,-362.5,0.00,1 +98,Entry short,2025-03-07 12:00,M1,5764.25,1,288212.5,362.5,0.13,0,487.5,0.17,-25,-0.01,-362.5,0.00,1 +99,Exit long,2025-03-07 14:00,M1,5752,1,287850,-250,-0.09,0,37.5,0.01,-350,-0.12,-612.5,0.00,1 +99,Entry long,2025-03-07 13:00,M1,5757,1,287850,-250,-0.09,0,37.5,0.01,-350,-0.12,-612.5,0.00,1 +100,Exit short,2025-03-07 15:00,M1,5762.25,1,287600,-512.5,-0.18,0,75,0.03,-612.5,-0.21,-1125,0.00,1 +100,Entry short,2025-03-07 14:00,M1,5752,1,287600,-512.5,-0.18,0,75,0.03,-612.5,-0.21,-1125,0.00,1 +101,Exit long,2025-03-07 16:00,M1,5760.25,1,288112.5,-100,-0.03,0,212.5,0.07,-425,-0.15,-1225,0.00,1 +101,Entry long,2025-03-07 15:00,M1,5762.25,1,288112.5,-100,-0.03,0,212.5,0.07,-425,-0.15,-1225,0.00,1 +102,Exit short,2025-03-07 17:00,M1,5767.75,1,288012.5,-375,-0.13,0,100,0.03,-650,-0.23,-1600,0.00,1 +102,Entry short,2025-03-07 16:00,M1,5760.25,1,288012.5,-375,-0.13,0,100,0.03,-650,-0.23,-1600,0.00,1 +103,Exit long,2025-03-07 18:00,M1,5763.5,1,288387.5,-212.5,-0.07,0,37.5,0.01,-562.5,-0.20,-1812.5,0.00,1 +103,Entry long,2025-03-07 17:00,M1,5767.75,1,288387.5,-212.5,-0.07,0,37.5,0.01,-562.5,-0.20,-1812.5,0.00,1 +104,Exit short,2025-03-07 19:00,M1,5765.25,1,288175,-87.5,-0.03,0,275,0.10,-275,-0.10,-1900,0.00,1 +104,Entry short,2025-03-07 18:00,M1,5763.5,1,288175,-87.5,-0.03,0,275,0.10,-275,-0.10,-1900,0.00,1 +105,Exit long,2025-03-07 20:00,M1,5751.5,1,288262.5,-687.5,-0.24,0,25,0.01,-987.5,-0.34,-2587.5,0.00,1 +105,Entry long,2025-03-07 19:00,M1,5765.25,1,288262.5,-687.5,-0.24,0,25,0.01,-987.5,-0.34,-2587.5,0.00,1 +106,Exit short,2025-03-07 21:00,M1,5734.5,1,287575,850,0.30,0,1112.5,0.39,-1750,-0.61,-1737.5,0.00,1 +106,Entry short,2025-03-07 20:00,M1,5751.5,1,287575,850,0.30,0,1112.5,0.39,-1750,-0.61,-1737.5,0.00,1 +107,Exit long,2025-03-07 22:00,M1,5756.25,1,286725,1087.5,0.38,0,2175,0.76,-675,-0.24,-650,0.00,1 +107,Entry long,2025-03-07 21:00,M1,5734.5,1,286725,1087.5,0.38,0,2175,0.76,-675,-0.24,-650,0.00,1 +108,Exit short,2025-03-07 23:00,M1,5726,1,287812.5,1512.5,0.53,0,2750,0.96,-587.5,-0.20,862.5,0.00,1 +108,Entry short,2025-03-07 22:00,M1,5756.25,1,287812.5,1512.5,0.53,0,2750,0.96,-587.5,-0.20,862.5,0.00,1 +109,Exit long,2025-03-08 00:00,M1,5687.75,1,286300,-1912.5,-0.67,0,187.5,0.07,-2650,-0.93,-1050,0.00,1 +109,Entry long,2025-03-07 23:00,M1,5726,1,286300,-1912.5,-0.67,0,187.5,0.07,-2650,-0.93,-1050,0.00,1 +110,Exit short,2025-03-08 01:00,M1,5718.5,1,284387.5,-1537.5,-0.54,0,662.5,0.23,-3000,-1.05,-2587.5,0.00,1 +110,Entry short,2025-03-08 00:00,M1,5687.75,1,284387.5,-1537.5,-0.54,0,662.5,0.23,-3000,-1.05,-2587.5,0.00,1 +111,Exit long,2025-03-08 02:00,M1,5769.75,1,285925,2562.5,0.90,0,2575,0.90,-25,-0.01,-25,0.00,1 +111,Entry long,2025-03-08 01:00,M1,5718.5,1,285925,2562.5,0.90,0,2575,0.90,-25,-0.01,-25,0.00,1 +112,Exit short,2025-03-08 03:00,M1,5769,1,288487.5,37.5,0.01,0,575,0.20,-1025,-0.36,12.5,0.00,1 +112,Entry short,2025-03-08 02:00,M1,5769.75,1,288487.5,37.5,0.01,0,575,0.20,-1025,-0.36,12.5,0.00,1 +113,Exit long,2025-03-08 04:00,M1,5775,1,288450,300,0.10,0,1100,0.38,-1187.5,-0.41,312.5,0.00,1 +113,Entry long,2025-03-08 03:00,M1,5769,1,288450,300,0.10,0,1100,0.38,-1187.5,-0.41,312.5,0.00,1 +114,Exit short,2025-03-08 05:00,M1,5771.75,1,288750,162.5,0.06,0,737.5,0.26,-112.5,-0.04,475,0.00,1 +114,Entry short,2025-03-08 04:00,M1,5775,1,288750,162.5,0.06,0,737.5,0.26,-112.5,-0.04,475,0.00,1 +115,Exit long,2025-03-10 06:00,M1,5728,1,288587.5,-2187.5,-0.76,0,0,0.00,-2450,-0.85,-1712.5,0.00,1 +115,Entry long,2025-03-08 05:00,M1,5771.75,1,288587.5,-2187.5,-0.76,0,0,0.00,-2450,-0.85,-1712.5,0.00,1 +116,Exit short,2025-03-10 07:00,M1,5733.25,1,286400,-262.5,-0.09,0,875,0.31,-500,-0.17,-1975,0.00,1 +116,Entry short,2025-03-10 06:00,M1,5728,1,286400,-262.5,-0.09,0,875,0.31,-500,-0.17,-1975,0.00,1 +117,Exit long,2025-03-10 08:00,M1,5738.25,1,286662.5,250,0.09,0,325,0.11,-350,-0.12,-1725,0.00,1 +117,Entry long,2025-03-10 07:00,M1,5733.25,1,286662.5,250,0.09,0,325,0.11,-350,-0.12,-1725,0.00,1 +118,Exit short,2025-03-10 09:00,M1,5752,1,286912.5,-687.5,-0.24,0,37.5,0.01,-712.5,-0.25,-2412.5,0.00,1 +118,Entry short,2025-03-10 08:00,M1,5738.25,1,286912.5,-687.5,-0.24,0,37.5,0.01,-712.5,-0.25,-2412.5,0.00,1 +119,Exit long,2025-03-10 10:00,M1,5752.25,1,287600,12.5,0.00,0,162.5,0.06,-200,-0.07,-2400,0.00,1 +119,Entry long,2025-03-10 09:00,M1,5752,1,287600,12.5,0.00,0,162.5,0.06,-200,-0.07,-2400,0.00,1 +120,Exit short,2025-03-10 11:00,M1,5750.5,1,287612.5,87.5,0.03,0,387.5,0.13,-125,-0.04,-2312.5,0.00,1 +120,Entry short,2025-03-10 10:00,M1,5752.25,1,287612.5,87.5,0.03,0,387.5,0.13,-125,-0.04,-2312.5,0.00,1 +121,Exit long,2025-03-10 12:00,M1,5745.5,1,287525,-250,-0.09,0,362.5,0.13,-275,-0.10,-2562.5,0.00,1 +121,Entry long,2025-03-10 11:00,M1,5750.5,1,287525,-250,-0.09,0,362.5,0.13,-275,-0.10,-2562.5,0.00,1 +122,Exit short,2025-03-10 13:00,M1,5743.5,1,287275,100,0.03,0,212.5,0.07,-362.5,-0.13,-2462.5,0.00,1 +122,Entry short,2025-03-10 12:00,M1,5745.5,1,287275,100,0.03,0,212.5,0.07,-362.5,-0.13,-2462.5,0.00,1 +123,Exit long,2025-03-10 14:00,M1,5748.25,1,287175,237.5,0.08,0,425,0.15,0,0.00,-2225,0.00,1 +123,Entry long,2025-03-10 13:00,M1,5743.5,1,287175,237.5,0.08,0,425,0.15,0,0.00,-2225,0.00,1 +124,Exit short,2025-03-10 15:00,M1,5743.25,1,287412.5,250,0.09,0,300,0.10,-287.5,-0.10,-1975,0.00,1 +124,Entry short,2025-03-10 14:00,M1,5748.25,1,287412.5,250,0.09,0,300,0.10,-287.5,-0.10,-1975,0.00,1 +125,Exit long,2025-03-10 16:00,M1,5705.75,1,287162.5,-1875,-0.65,0,250,0.09,-2012.5,-0.70,-3850,0.00,1 +125,Entry long,2025-03-10 15:00,M1,5743.25,1,287162.5,-1875,-0.65,0,250,0.09,-2012.5,-0.70,-3850,0.00,1 +126,Exit short,2025-03-10 17:00,M1,5718.5,1,285287.5,-637.5,-0.22,0,137.5,0.05,-1287.5,-0.45,-4487.5,0.00,1 +126,Entry short,2025-03-10 16:00,M1,5705.75,1,285287.5,-637.5,-0.22,0,137.5,0.05,-1287.5,-0.45,-4487.5,0.00,1 +127,Exit long,2025-03-10 18:00,M1,5709,1,285925,-475,-0.17,0,325,0.11,-625,-0.22,-4962.5,0.00,1 +127,Entry long,2025-03-10 17:00,M1,5718.5,1,285925,-475,-0.17,0,325,0.11,-625,-0.22,-4962.5,0.00,1 +128,Exit short,2025-03-10 19:00,M1,5706.5,1,285450,125,0.04,0,362.5,0.13,-712.5,-0.25,-4837.5,0.00,1 +128,Entry short,2025-03-10 18:00,M1,5709,1,285450,125,0.04,0,362.5,0.13,-712.5,-0.25,-4837.5,0.00,1 +129,Exit long,2025-03-10 20:00,M1,5701,1,285325,-275,-0.10,0,50,0.02,-962.5,-0.34,-5112.5,0.00,1 +129,Entry long,2025-03-10 19:00,M1,5706.5,1,285325,-275,-0.10,0,50,0.02,-962.5,-0.34,-5112.5,0.00,1 +130,Exit short,2025-03-10 21:00,M1,5689.25,1,285050,587.5,0.21,0,1087.5,0.38,-512.5,-0.18,-4525,0.00,1 +130,Entry short,2025-03-10 20:00,M1,5701,1,285050,587.5,0.21,0,1087.5,0.38,-512.5,-0.18,-4525,0.00,1 +131,Exit long,2025-03-10 22:00,M1,5655,1,284462.5,-1712.5,-0.60,0,12.5,0.00,-2137.5,-0.75,-6237.5,0.00,1 +131,Entry long,2025-03-10 21:00,M1,5689.25,1,284462.5,-1712.5,-0.60,0,12.5,0.00,-2137.5,-0.75,-6237.5,0.00,1 +132,Exit short,2025-03-10 23:00,M1,5653.75,1,282750,62.5,0.02,0,162.5,0.06,-1350,-0.48,-6175,0.00,1 +132,Entry short,2025-03-10 22:00,M1,5655,1,282750,62.5,0.02,0,162.5,0.06,-1350,-0.48,-6175,0.00,1 +133,Exit long,2025-03-11 00:00,M1,5645.75,1,282687.5,-400,-0.14,0,662.5,0.23,-687.5,-0.24,-6575,0.00,1 +133,Entry long,2025-03-10 23:00,M1,5653.75,1,282687.5,-400,-0.14,0,662.5,0.23,-687.5,-0.24,-6575,0.00,1 +134,Exit short,2025-03-11 01:00,M1,5619.75,1,282287.5,1300,0.46,0,1450,0.51,-75,-0.03,-5275,0.00,1 +134,Entry short,2025-03-11 00:00,M1,5645.75,1,282287.5,1300,0.46,0,1450,0.51,-75,-0.03,-5275,0.00,1 +135,Exit long,2025-03-11 02:00,M1,5588.75,1,280987.5,-1550,-0.55,0,575,0.20,-1675,-0.60,-6825,0.00,1 +135,Entry long,2025-03-11 01:00,M1,5619.75,1,280987.5,-1550,-0.55,0,575,0.20,-1675,-0.60,-6825,0.00,1 +136,Exit short,2025-03-11 03:00,M1,5623.5,1,279437.5,-1737.5,-0.62,0,862.5,0.31,-2612.5,-0.93,-8562.5,0.00,1 +136,Entry short,2025-03-11 02:00,M1,5588.75,1,279437.5,-1737.5,-0.62,0,862.5,0.31,-2612.5,-0.93,-8562.5,0.00,1 +137,Exit long,2025-03-11 04:00,M1,5628.75,1,281175,262.5,0.09,0,387.5,0.14,-500,-0.18,-8300,0.00,1 +137,Entry long,2025-03-11 03:00,M1,5623.5,1,281175,262.5,0.09,0,387.5,0.14,-500,-0.18,-8300,0.00,1 +138,Exit short,2025-03-11 06:00,M1,5611.25,1,281437.5,875,0.31,0,1162.5,0.41,0,0.00,-7425,0.00,1 +138,Entry short,2025-03-11 04:00,M1,5628.75,1,281437.5,875,0.31,0,1162.5,0.41,0,0.00,-7425,0.00,1 +139,Exit long,2025-03-11 07:00,M1,5602,1,280562.5,-462.5,-0.16,0,200,0.07,-1362.5,-0.49,-7887.5,0.00,1 +139,Entry long,2025-03-11 06:00,M1,5611.25,1,280562.5,-462.5,-0.16,0,200,0.07,-1362.5,-0.49,-7887.5,0.00,1 +140,Exit short,2025-03-11 08:00,M1,5573.5,1,280100,1425,0.51,0,2162.5,0.77,-262.5,-0.09,-6462.5,0.00,1 +140,Entry short,2025-03-11 07:00,M1,5602,1,280100,1425,0.51,0,2162.5,0.77,-262.5,-0.09,-6462.5,0.00,1 +141,Exit long,2025-03-11 09:00,M1,5586.5,1,278675,650,0.23,0,787.5,0.28,-775,-0.28,-5812.5,0.00,1 +141,Entry long,2025-03-11 08:00,M1,5573.5,1,278675,650,0.23,0,787.5,0.28,-775,-0.28,-5812.5,0.00,1 +142,Exit short,2025-03-11 10:00,M1,5613.5,1,279325,-1350,-0.48,0,100,0.04,-1712.5,-0.61,-7162.5,0.00,1 +142,Entry short,2025-03-11 09:00,M1,5586.5,1,279325,-1350,-0.48,0,100,0.04,-1712.5,-0.61,-7162.5,0.00,1 +143,Exit long,2025-03-11 11:00,M1,5624,1,280675,525,0.19,0,1175,0.42,0,0.00,-6637.5,0.00,1 +143,Entry long,2025-03-11 10:00,M1,5613.5,1,280675,525,0.19,0,1175,0.42,0,0.00,-6637.5,0.00,1 +144,Exit short,2025-03-11 12:00,M1,5630.5,1,281200,-325,-0.12,0,200,0.07,-675,-0.24,-6962.5,0.00,1 +144,Entry short,2025-03-11 11:00,M1,5624,1,281200,-325,-0.12,0,200,0.07,-675,-0.24,-6962.5,0.00,1 +145,Exit long,2025-03-11 13:00,M1,5633.75,1,281525,162.5,0.06,0,312.5,0.11,-237.5,-0.08,-6800,0.00,1 +145,Entry long,2025-03-11 12:00,M1,5630.5,1,281525,162.5,0.06,0,312.5,0.11,-237.5,-0.08,-6800,0.00,1 +146,Exit short,2025-03-11 14:00,M1,5630,1,281687.5,187.5,0.07,0,300,0.11,-262.5,-0.09,-6612.5,0.00,1 +146,Entry short,2025-03-11 13:00,M1,5633.75,1,281687.5,187.5,0.07,0,300,0.11,-262.5,-0.09,-6612.5,0.00,1 +147,Exit long,2025-03-11 15:00,M1,5633.5,1,281500,175,0.06,0,325,0.12,-725,-0.26,-6437.5,0.00,1 +147,Entry long,2025-03-11 14:00,M1,5630,1,281500,175,0.06,0,325,0.12,-725,-0.26,-6437.5,0.00,1 +148,Exit short,2025-03-11 16:00,M1,5644,1,281675,-525,-0.19,0,212.5,0.08,-525,-0.19,-6962.5,0.00,1 +148,Entry short,2025-03-11 15:00,M1,5633.5,1,281675,-525,-0.19,0,212.5,0.08,-525,-0.19,-6962.5,0.00,1 +149,Exit long,2025-03-11 17:00,M1,5640.75,1,282200,-162.5,-0.06,0,150,0.05,-312.5,-0.11,-7125,0.00,1 +149,Entry long,2025-03-11 16:00,M1,5644,1,282200,-162.5,-0.06,0,150,0.05,-312.5,-0.11,-7125,0.00,1 +150,Exit short,2025-03-11 18:00,M1,5639.5,1,282037.5,62.5,0.02,0,437.5,0.16,-200,-0.07,-7062.5,0.00,1 +150,Entry short,2025-03-11 17:00,M1,5640.75,1,282037.5,62.5,0.02,0,437.5,0.16,-200,-0.07,-7062.5,0.00,1 +151,Exit long,2025-03-11 19:00,M1,5651,1,281975,575,0.20,0,575,0.20,-650,-0.23,-6487.5,0.00,1 +151,Entry long,2025-03-11 18:00,M1,5639.5,1,281975,575,0.20,0,575,0.20,-650,-0.23,-6487.5,0.00,1 +152,Exit short,2025-03-11 20:00,M1,5619.25,1,282550,1587.5,0.56,0,1737.5,0.61,-37.5,-0.01,-4900,0.00,1 +152,Entry short,2025-03-11 19:00,M1,5651,1,282550,1587.5,0.56,0,1737.5,0.61,-37.5,-0.01,-4900,0.00,1 +153,Exit long,2025-03-11 21:00,M1,5613.25,1,280962.5,-300,-0.11,0,662.5,0.24,-1087.5,-0.39,-5200,0.00,1 +153,Entry long,2025-03-11 20:00,M1,5619.25,1,280962.5,-300,-0.11,0,662.5,0.24,-1087.5,-0.39,-5200,0.00,1 +154,Exit short,2025-03-11 22:00,M1,5562.75,1,280662.5,2525,0.90,0,2937.5,1.05,-1125,-0.40,-2675,0.00,1 +154,Entry short,2025-03-11 21:00,M1,5613.25,1,280662.5,2525,0.90,0,2937.5,1.05,-1125,-0.40,-2675,0.00,1 +155,Exit long,2025-03-11 23:00,M1,5586.5,1,278137.5,1187.5,0.43,0,2600,0.93,-325,-0.12,-1487.5,0.00,1 +155,Entry long,2025-03-11 22:00,M1,5562.75,1,278137.5,1187.5,0.43,0,2600,0.93,-325,-0.12,-1487.5,0.00,1 +156,Exit short,2025-03-12 00:00,M1,5557.25,1,279325,1462.5,0.52,0,1825,0.65,-237.5,-0.09,-25,0.00,1 +156,Entry short,2025-03-11 23:00,M1,5586.5,1,279325,1462.5,0.52,0,1825,0.65,-237.5,-0.09,-25,0.00,1 +157,Exit long,2025-03-12 01:00,M1,5557.25,1,277862.5,0,0.00,0,562.5,0.20,-1162.5,-0.42,-25,0.00,1 +157,Entry long,2025-03-12 00:00,M1,5557.25,1,277862.5,0,0.00,0,562.5,0.20,-1162.5,-0.42,-25,0.00,1 +158,Exit short,2025-03-12 02:00,M1,5630.25,1,277862.5,-3650,-1.31,0,75,0.03,-4325,-1.56,-3675,0.00,1 +158,Entry short,2025-03-12 01:00,M1,5557.25,1,277862.5,-3650,-1.31,0,75,0.03,-4325,-1.56,-3675,0.00,1 +159,Exit long,2025-03-12 03:00,M1,5575.75,1,281512.5,-2725,-0.97,0,537.5,0.19,-2762.5,-0.98,-6400,0.00,1 +159,Entry long,2025-03-12 02:00,M1,5630.25,1,281512.5,-2725,-0.97,0,537.5,0.19,-2762.5,-0.98,-6400,0.00,1 +160,Exit short,2025-03-12 04:00,M1,5576.75,1,278787.5,-50,-0.02,0,150,0.05,-687.5,-0.25,-6450,0.00,1 +160,Entry short,2025-03-12 03:00,M1,5575.75,1,278787.5,-50,-0.02,0,150,0.05,-687.5,-0.25,-6450,0.00,1 +161,Exit long,2025-03-12 06:00,M1,5591.75,1,278837.5,750,0.27,0,887.5,0.32,-125,-0.04,-5700,0.00,1 +161,Entry long,2025-03-12 04:00,M1,5576.75,1,278837.5,750,0.27,0,887.5,0.32,-125,-0.04,-5700,0.00,1 +162,Exit short,2025-03-12 07:00,M1,5593.5,1,279587.5,-87.5,-0.03,0,462.5,0.17,-87.5,-0.03,-5787.5,0.00,1 +162,Entry short,2025-03-12 06:00,M1,5591.75,1,279587.5,-87.5,-0.03,0,462.5,0.17,-87.5,-0.03,-5787.5,0.00,1 +163,Exit long,2025-03-12 08:00,M1,5592.25,1,279675,-62.5,-0.02,0,250,0.09,-387.5,-0.14,-5850,0.00,1 +163,Entry long,2025-03-12 07:00,M1,5593.5,1,279675,-62.5,-0.02,0,250,0.09,-387.5,-0.14,-5850,0.00,1 +164,Exit short,2025-03-12 09:00,M1,5593.75,1,279612.5,-75,-0.03,0,337.5,0.12,-175,-0.06,-5925,0.00,1 +164,Entry short,2025-03-12 08:00,M1,5592.25,1,279612.5,-75,-0.03,0,337.5,0.12,-175,-0.06,-5925,0.00,1 +165,Exit long,2025-03-12 10:00,M1,5590.75,1,279687.5,-150,-0.05,0,250,0.09,-212.5,-0.08,-6075,0.00,1 +165,Entry long,2025-03-12 09:00,M1,5593.75,1,279687.5,-150,-0.05,0,250,0.09,-212.5,-0.08,-6075,0.00,1 +166,Exit short,2025-03-12 11:00,M1,5588.75,1,279537.5,100,0.04,0,287.5,0.10,-125,-0.04,-5975,0.00,1 +166,Entry short,2025-03-12 10:00,M1,5590.75,1,279537.5,100,0.04,0,287.5,0.10,-125,-0.04,-5975,0.00,1 +167,Exit long,2025-03-12 12:00,M1,5590.75,1,279437.5,100,0.04,0,362.5,0.13,-112.5,-0.04,-5875,0.00,1 +167,Entry long,2025-03-12 11:00,M1,5588.75,1,279437.5,100,0.04,0,362.5,0.13,-112.5,-0.04,-5875,0.00,1 +168,Exit short,2025-03-12 13:00,M1,5597,1,279537.5,-312.5,-0.11,0,62.5,0.02,-350,-0.13,-6187.5,0.00,1 +168,Entry short,2025-03-12 12:00,M1,5590.75,1,279537.5,-312.5,-0.11,0,62.5,0.02,-350,-0.13,-6187.5,0.00,1 +169,Exit long,2025-03-12 14:00,M1,5582,1,279850,-750,-0.27,0,0,0.00,-900,-0.32,-6937.5,0.00,1 +169,Entry long,2025-03-12 13:00,M1,5597,1,279850,-750,-0.27,0,0,0.00,-900,-0.32,-6937.5,0.00,1 +170,Exit short,2025-03-12 15:00,M1,5596.25,1,279100,-712.5,-0.26,0,225,0.08,-775,-0.28,-7650,0.00,1 +170,Entry short,2025-03-12 14:00,M1,5582,1,279100,-712.5,-0.26,0,225,0.08,-775,-0.28,-7650,0.00,1 +171,Exit long,2025-03-12 16:00,M1,5611.25,1,279812.5,750,0.27,0,837.5,0.30,-512.5,-0.18,-6900,0.00,1 +171,Entry long,2025-03-12 15:00,M1,5596.25,1,279812.5,750,0.27,0,837.5,0.30,-512.5,-0.18,-6900,0.00,1 +172,Exit short,2025-03-12 17:00,M1,5615.5,1,280562.5,-212.5,-0.08,0,212.5,0.08,-250,-0.09,-7112.5,0.00,1 +172,Entry short,2025-03-12 16:00,M1,5611.25,1,280562.5,-212.5,-0.08,0,212.5,0.08,-250,-0.09,-7112.5,0.00,1 +173,Exit long,2025-03-12 18:00,M1,5613.75,1,280775,-87.5,-0.03,0,87.5,0.03,-500,-0.18,-7200,0.00,1 +173,Entry long,2025-03-12 17:00,M1,5615.5,1,280775,-87.5,-0.03,0,87.5,0.03,-500,-0.18,-7200,0.00,1 +174,Exit short,2025-03-12 19:00,M1,5621.75,1,280687.5,-400,-0.14,0,37.5,0.01,-675,-0.24,-7600,0.00,1 +174,Entry short,2025-03-12 18:00,M1,5613.75,1,280687.5,-400,-0.14,0,37.5,0.01,-675,-0.24,-7600,0.00,1 +175,Exit long,2025-03-12 20:00,M1,5643.75,1,281087.5,1100,0.39,0,2662.5,0.95,-262.5,-0.09,-6500,0.00,1 +175,Entry long,2025-03-12 19:00,M1,5621.75,1,281087.5,1100,0.39,0,2662.5,0.95,-262.5,-0.09,-6500,0.00,1 +176,Exit short,2025-03-12 21:00,M1,5608.5,1,282187.5,1762.5,0.62,0,2337.5,0.83,-125,-0.04,-4737.5,0.00,1 +176,Entry short,2025-03-12 20:00,M1,5643.75,1,282187.5,1762.5,0.62,0,2337.5,0.83,-125,-0.04,-4737.5,0.00,1 +177,Exit long,2025-03-12 22:00,M1,5569.5,1,280425,-1950,-0.70,0,537.5,0.19,-2012.5,-0.72,-6687.5,0.00,1 +177,Entry long,2025-03-12 21:00,M1,5608.5,1,280425,-1950,-0.70,0,537.5,0.19,-2012.5,-0.72,-6687.5,0.00,1 +178,Exit short,2025-03-12 23:00,M1,5604.75,1,278475,-1762.5,-0.63,0,962.5,0.35,-1837.5,-0.66,-8450,0.00,1 +178,Entry short,2025-03-12 22:00,M1,5569.5,1,278475,-1762.5,-0.63,0,962.5,0.35,-1837.5,-0.66,-8450,0.00,1 +179,Exit long,2025-03-13 00:00,M1,5604.5,1,280237.5,-12.5,0.00,0,1087.5,0.39,-450,-0.16,-8462.5,0.00,1 +179,Entry long,2025-03-12 23:00,M1,5604.75,1,280237.5,-12.5,0.00,0,1087.5,0.39,-450,-0.16,-8462.5,0.00,1 +180,Exit short,2025-03-13 01:00,M1,5593.75,1,280225,537.5,0.19,0,587.5,0.21,-1350,-0.48,-7925,0.00,1 +180,Entry short,2025-03-13 00:00,M1,5604.5,1,280225,537.5,0.19,0,587.5,0.21,-1350,-0.48,-7925,0.00,1 +181,Exit long,2025-03-13 02:00,M1,5626,1,279687.5,1612.5,0.58,0,1962.5,0.70,-100,-0.04,-6312.5,0.00,1 +181,Entry long,2025-03-13 01:00,M1,5593.75,1,279687.5,1612.5,0.58,0,1962.5,0.70,-100,-0.04,-6312.5,0.00,1 +182,Exit short,2025-03-13 03:00,M1,5602.75,1,281300,1162.5,0.41,0,1537.5,0.55,0,0.00,-5150,0.00,1 +182,Entry short,2025-03-13 02:00,M1,5626,1,281300,1162.5,0.41,0,1537.5,0.55,0,0.00,-5150,0.00,1 +183,Exit long,2025-03-13 04:00,M1,5597.25,1,280137.5,-275,-0.10,0,62.5,0.02,-387.5,-0.14,-5425,0.00,1 +183,Entry long,2025-03-13 03:00,M1,5602.75,1,280137.5,-275,-0.10,0,62.5,0.02,-387.5,-0.14,-5425,0.00,1 +184,Exit short,2025-03-13 06:00,M1,5609.25,1,279862.5,-600,-0.21,0,87.5,0.03,-687.5,-0.25,-6025,0.00,1 +184,Entry short,2025-03-13 04:00,M1,5597.25,1,279862.5,-600,-0.21,0,87.5,0.03,-687.5,-0.25,-6025,0.00,1 +185,Exit long,2025-03-13 07:00,M1,5620.5,1,280462.5,562.5,0.20,0,600,0.21,-25,-0.01,-5462.5,0.00,1 +185,Entry long,2025-03-13 06:00,M1,5609.25,1,280462.5,562.5,0.20,0,600,0.21,-25,-0.01,-5462.5,0.00,1 +186,Exit short,2025-03-13 08:00,M1,5611,1,281025,475,0.17,0,525,0.19,-125,-0.04,-4987.5,0.00,1 +186,Entry short,2025-03-13 07:00,M1,5620.5,1,281025,475,0.17,0,525,0.19,-125,-0.04,-4987.5,0.00,1 +187,Exit long,2025-03-13 09:00,M1,5612.25,1,280550,62.5,0.02,0,137.5,0.05,-362.5,-0.13,-4925,0.00,1 +187,Entry long,2025-03-13 08:00,M1,5611,1,280550,62.5,0.02,0,137.5,0.05,-362.5,-0.13,-4925,0.00,1 +188,Exit short,2025-03-13 10:00,M1,5603.25,1,280612.5,450,0.16,0,487.5,0.17,-50,-0.02,-4475,0.00,1 +188,Entry short,2025-03-13 09:00,M1,5612.25,1,280612.5,450,0.16,0,487.5,0.17,-50,-0.02,-4475,0.00,1 +189,Exit long,2025-03-13 11:00,M1,5588.5,1,280162.5,-737.5,-0.26,0,37.5,0.01,-850,-0.30,-5212.5,0.00,1 +189,Entry long,2025-03-13 10:00,M1,5603.25,1,280162.5,-737.5,-0.26,0,37.5,0.01,-850,-0.30,-5212.5,0.00,1 +190,Exit short,2025-03-13 12:00,M1,5580.75,1,279425,387.5,0.14,0,587.5,0.21,-237.5,-0.08,-4825,0.00,1 +190,Entry short,2025-03-13 11:00,M1,5588.5,1,279425,387.5,0.14,0,587.5,0.21,-237.5,-0.08,-4825,0.00,1 +191,Exit long,2025-03-13 13:00,M1,5577.5,1,279037.5,-162.5,-0.06,0,187.5,0.07,-500,-0.18,-4987.5,0.00,1 +191,Entry long,2025-03-13 12:00,M1,5580.75,1,279037.5,-162.5,-0.06,0,187.5,0.07,-500,-0.18,-4987.5,0.00,1 +192,Exit short,2025-03-13 14:00,M1,5582,1,278875,-225,-0.08,0,700,0.25,-375,-0.13,-5212.5,0.00,1 +192,Entry short,2025-03-13 13:00,M1,5577.5,1,278875,-225,-0.08,0,700,0.25,-375,-0.13,-5212.5,0.00,1 +193,Exit long,2025-03-13 15:00,M1,5567,1,279100,-750,-0.27,0,150,0.05,-900,-0.32,-5962.5,0.00,1 +193,Entry long,2025-03-13 14:00,M1,5582,1,279100,-750,-0.27,0,150,0.05,-900,-0.32,-5962.5,0.00,1 +194,Exit short,2025-03-13 16:00,M1,5580,1,278350,-650,-0.23,0,387.5,0.14,-675,-0.24,-6612.5,0.00,1 +194,Entry short,2025-03-13 15:00,M1,5567,1,278350,-650,-0.23,0,387.5,0.14,-675,-0.24,-6612.5,0.00,1 +195,Exit long,2025-03-13 17:00,M1,5604.5,1,279000,1225,0.44,0,1275,0.46,-400,-0.14,-5387.5,0.00,1 +195,Entry long,2025-03-13 16:00,M1,5580,1,279000,1225,0.44,0,1275,0.46,-400,-0.14,-5387.5,0.00,1 +196,Exit short,2025-03-13 18:00,M1,5599.75,1,280225,237.5,0.08,0,450,0.16,-262.5,-0.09,-5150,0.00,1 +196,Entry short,2025-03-13 17:00,M1,5604.5,1,280225,237.5,0.08,0,450,0.16,-262.5,-0.09,-5150,0.00,1 +197,Exit long,2025-03-13 19:00,M1,5590.75,1,279987.5,-450,-0.16,0,162.5,0.06,-975,-0.35,-5600,0.00,1 +197,Entry long,2025-03-13 18:00,M1,5599.75,1,279987.5,-450,-0.16,0,162.5,0.06,-975,-0.35,-5600,0.00,1 +198,Exit short,2025-03-13 20:00,M1,5594.75,1,279537.5,-200,-0.07,0,775,0.28,-662.5,-0.24,-5800,0.00,1 +198,Entry short,2025-03-13 19:00,M1,5590.75,1,279537.5,-200,-0.07,0,775,0.28,-662.5,-0.24,-5800,0.00,1 +199,Exit long,2025-03-13 21:00,M1,5563,1,279737.5,-1587.5,-0.57,0,400,0.14,-1900,-0.68,-7387.5,0.00,1 +199,Entry long,2025-03-13 20:00,M1,5594.75,1,279737.5,-1587.5,-0.57,0,400,0.14,-1900,-0.68,-7387.5,0.00,1 +200,Exit short,2025-03-13 22:00,M1,5572.75,1,278150,-487.5,-0.18,0,300,0.11,-2037.5,-0.73,-7875,0.00,1 +200,Entry short,2025-03-13 21:00,M1,5563,1,278150,-487.5,-0.18,0,300,0.11,-2037.5,-0.73,-7875,0.00,1 +201,Exit long,2025-03-13 23:00,M1,5537.75,1,278637.5,-1750,-0.63,0,487.5,0.17,-1825,-0.65,-9625,0.00,1 +201,Entry long,2025-03-13 22:00,M1,5572.75,1,278637.5,-1750,-0.63,0,487.5,0.17,-1825,-0.65,-9625,0.00,1 +202,Exit short,2025-03-14 00:00,M1,5538.75,1,276887.5,-50,-0.02,0,600,0.22,-1050,-0.38,-9675,0.00,1 +202,Entry short,2025-03-13 23:00,M1,5537.75,1,276887.5,-50,-0.02,0,600,0.22,-1050,-0.38,-9675,0.00,1 +203,Exit long,2025-03-14 01:00,M1,5513.25,1,276937.5,-1275,-0.46,0,362.5,0.13,-1475,-0.53,-10950,0.00,1 +203,Entry long,2025-03-14 00:00,M1,5538.75,1,276937.5,-1275,-0.46,0,362.5,0.13,-1475,-0.53,-10950,0.00,1 +204,Exit short,2025-03-14 02:00,M1,5552,1,275662.5,-1937.5,-0.70,0,62.5,0.02,-2112.5,-0.77,-12887.5,0.00,1 +204,Entry short,2025-03-14 01:00,M1,5513.25,1,275662.5,-1937.5,-0.70,0,62.5,0.02,-2112.5,-0.77,-12887.5,0.00,1 +205,Exit long,2025-03-14 03:00,M1,5528.25,1,277600,-1187.5,-0.43,0,350,0.13,-1900,-0.68,-14075,0.00,1 +205,Entry long,2025-03-14 02:00,M1,5552,1,277600,-1187.5,-0.43,0,350,0.13,-1900,-0.68,-14075,0.00,1 +206,Exit short,2025-03-14 04:00,M1,5537.5,1,276412.5,-462.5,-0.17,0,75,0.03,-837.5,-0.30,-14537.5,0.00,1 +206,Entry short,2025-03-14 03:00,M1,5528.25,1,276412.5,-462.5,-0.17,0,75,0.03,-837.5,-0.30,-14537.5,0.00,1 +207,Exit long,2025-03-14 06:00,M1,5552.5,1,276875,750,0.27,0,975,0.35,0,0.00,-13787.5,0.00,1 +207,Entry long,2025-03-14 04:00,M1,5537.5,1,276875,750,0.27,0,975,0.35,0,0.00,-13787.5,0.00,1 +208,Exit short,2025-03-14 07:00,M1,5552.75,1,277625,-12.5,0.00,0,112.5,0.04,-300,-0.11,-13800,0.00,1 +208,Entry short,2025-03-14 06:00,M1,5552.5,1,277625,-12.5,0.00,0,112.5,0.04,-300,-0.11,-13800,0.00,1 +209,Exit long,2025-03-14 08:00,M1,5561.75,1,277637.5,450,0.16,0,712.5,0.26,-262.5,-0.09,-13350,0.00,1 +209,Entry long,2025-03-14 07:00,M1,5552.75,1,277637.5,450,0.16,0,712.5,0.26,-262.5,-0.09,-13350,0.00,1 +210,Exit short,2025-03-14 08:00,,5561.75,1,278087.5,0,0.00,0,0,0.00,0,0.00,-13350,0.00,0 +210,Entry short,2025-03-14 08:00,M1,5561.75,1,278087.5,0,0.00,0,0,0.00,0,0.00,-13350,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/meta.json b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/meta.json new file mode 100644 index 0000000..68c6365 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/meta.json @@ -0,0 +1,16 @@ +{ + "title": "HM G2-36 session.ismarket", + "slug": "hm-g236-es1-60-dst-nov", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T19:01:22.037Z", + "chart": { + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-10-26", + "to": "2025-11-07" + }, + "pine_sha256": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tv_trades_sha256": "a7fbd62928dc49caf7bcdc6c9d8569139eab036860aa375aa0fc2c7db9b408b9", + "tv_trades_rows": 418 +} diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/metrics.json b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/metrics.json new file mode 100644 index 0000000..cb6041d --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "hm-g236-es1-60-dst-nov", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-10-26", + "to": "2025-11-07", + "deepBacktesting": true, + "trades": 209, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tvTradesCsvHash": "a7fbd62928dc49caf7bcdc6c9d8569139eab036860aa375aa0fc2c7db9b408b9", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74408", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "requestedRange": { + "from": 1761436800000, + "to": 1762473600000 + }, + "returnedRange": { + "from": 1761516000000, + "to": 1762473600000 + }, + "rangeProof": "covered", + "rawFrameSha256": "d9ed91d21a449c6aa884b9b2984bc8562ec0bbc5e93889beb91682363d3453d3", + "decodedReportSha256": "63f8540b624b68698af1094b9771ca67f7bf9b76f7ff3ad6fe2b184067742940", + "closedTrades": 209, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T19:01:22.036Z" +} diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/strategy.pine b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/strategy.pine new file mode 100644 index 0000000..182c911 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/strategy.pine @@ -0,0 +1,17 @@ +// H-MEASURE (R5 wave H) row G2-36: which chart bars does TradingView flag +// session.ismarket on? process_orders_on_close=true: every bar reverses the +// position at its own close, so every trade's ENTRY is one chart bar (TradingView +// dates a process_orders_on_close fill at the bar's open) and the entry's Signal +// (its comment) is the flag TradingView evaluated on that bar: "M1" when +// session.ismarket is true, "M0" when it is false. +//@version=6 +strategy("HM G2-36 session.ismarket", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +flag = session.ismarket ? "M1" : "M0" +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/tv_trades.csv b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/tv_trades.csv new file mode 100644 index 0000000..ee151be --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-dst-nov/tv_trades.csv @@ -0,0 +1,419 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-10-27 07:00,M1,6870.75,1,343600,-62.5,-0.02,0,237.5,0.07,-162.5,-0.05,-62.5,0.00,1 +1,Entry long,2025-10-27 06:00,M1,6872,1,343600,-62.5,-0.02,0,237.5,0.07,-162.5,-0.05,-62.5,0.00,1 +2,Exit short,2025-10-27 08:00,M1,6872.25,1,343537.5,-75,-0.02,0,75,0.02,-300,-0.09,-137.5,0.00,1 +2,Entry short,2025-10-27 07:00,M1,6870.75,1,343537.5,-75,-0.02,0,75,0.02,-300,-0.09,-137.5,0.00,1 +3,Exit long,2025-10-27 09:00,M1,6869.5,1,343612.5,-137.5,-0.04,0,50,0.01,-150,-0.04,-275,0.00,1 +3,Entry long,2025-10-27 08:00,M1,6872.25,1,343612.5,-137.5,-0.04,0,50,0.01,-150,-0.04,-275,0.00,1 +4,Exit short,2025-10-27 10:00,M1,6875,1,343475,-275,-0.08,0,100,0.03,-287.5,-0.08,-550,0.00,1 +4,Entry short,2025-10-27 09:00,M1,6869.5,1,343475,-275,-0.08,0,100,0.03,-287.5,-0.08,-550,0.00,1 +5,Exit long,2025-10-27 11:00,M1,6878.5,1,343750,175,0.05,0,312.5,0.09,-37.5,-0.01,-375,0.00,1 +5,Entry long,2025-10-27 10:00,M1,6875,1,343750,175,0.05,0,312.5,0.09,-37.5,-0.01,-375,0.00,1 +6,Exit short,2025-10-27 12:00,M1,6879.25,1,343925,-37.5,-0.01,0,75,0.02,-100,-0.03,-412.5,0.00,1 +6,Entry short,2025-10-27 11:00,M1,6878.5,1,343925,-37.5,-0.01,0,75,0.02,-100,-0.03,-412.5,0.00,1 +7,Exit long,2025-10-27 13:00,M1,6882.75,1,343962.5,175,0.05,0,225,0.07,-12.5,0.00,-237.5,0.00,1 +7,Entry long,2025-10-27 12:00,M1,6879.25,1,343962.5,175,0.05,0,225,0.07,-12.5,0.00,-237.5,0.00,1 +8,Exit short,2025-10-27 14:00,M1,6884.5,1,344137.5,-87.5,-0.03,0,25,0.01,-275,-0.08,-325,0.00,1 +8,Entry short,2025-10-27 13:00,M1,6882.75,1,344137.5,-87.5,-0.03,0,25,0.01,-275,-0.08,-325,0.00,1 +9,Exit long,2025-10-27 15:00,M1,6882.75,1,344225,-87.5,-0.03,0,225,0.07,-87.5,-0.03,-412.5,0.00,1 +9,Entry long,2025-10-27 14:00,M1,6884.5,1,344225,-87.5,-0.03,0,225,0.07,-87.5,-0.03,-412.5,0.00,1 +10,Exit short,2025-10-27 16:00,M1,6881,1,344137.5,87.5,0.03,0,312.5,0.09,-75,-0.02,-325,0.00,1 +10,Entry short,2025-10-27 15:00,M1,6882.75,1,344137.5,87.5,0.03,0,312.5,0.09,-75,-0.02,-325,0.00,1 +11,Exit long,2025-10-27 17:00,M1,6887,1,344050,300,0.09,0,300,0.09,-112.5,-0.03,-25,0.00,1 +11,Entry long,2025-10-27 16:00,M1,6881,1,344050,300,0.09,0,300,0.09,-112.5,-0.03,-25,0.00,1 +12,Exit short,2025-10-27 18:00,M1,6886.5,1,344350,25,0.01,0,150,0.04,-75,-0.02,0,0.00,1 +12,Entry short,2025-10-27 17:00,M1,6887,1,344350,25,0.01,0,150,0.04,-75,-0.02,0,0.00,1 +13,Exit long,2025-10-27 19:00,M1,6880.25,1,344325,-312.5,-0.09,0,125,0.04,-387.5,-0.11,-312.5,0.00,1 +13,Entry long,2025-10-27 18:00,M1,6886.5,1,344325,-312.5,-0.09,0,125,0.04,-387.5,-0.11,-312.5,0.00,1 +14,Exit short,2025-10-27 20:00,M1,6883,1,344012.5,-137.5,-0.04,0,50,0.01,-250,-0.07,-450,0.00,1 +14,Entry short,2025-10-27 19:00,M1,6880.25,1,344012.5,-137.5,-0.04,0,50,0.01,-250,-0.07,-450,0.00,1 +15,Exit long,2025-10-27 21:00,M1,6886.75,1,344150,187.5,0.05,0,300,0.09,-300,-0.09,-262.5,0.00,1 +15,Entry long,2025-10-27 20:00,M1,6883,1,344150,187.5,0.05,0,300,0.09,-300,-0.09,-262.5,0.00,1 +16,Exit short,2025-10-27 22:00,M1,6883,1,344337.5,187.5,0.05,0,350,0.10,-287.5,-0.08,-75,0.00,1 +16,Entry short,2025-10-27 21:00,M1,6886.75,1,344337.5,187.5,0.05,0,350,0.10,-287.5,-0.08,-75,0.00,1 +17,Exit long,2025-10-27 23:00,M1,6890.25,1,344150,362.5,0.11,0,462.5,0.13,-87.5,-0.03,287.5,0.00,1 +17,Entry long,2025-10-27 22:00,M1,6883,1,344150,362.5,0.11,0,462.5,0.13,-87.5,-0.03,287.5,0.00,1 +18,Exit short,2025-10-28 00:00,M1,6893.75,1,344512.5,-175,-0.05,0,25,0.01,-237.5,-0.07,112.5,0.00,1 +18,Entry short,2025-10-27 23:00,M1,6890.25,1,344512.5,-175,-0.05,0,25,0.01,-237.5,-0.07,112.5,0.00,1 +19,Exit long,2025-10-28 01:00,M1,6895.5,1,344687.5,87.5,0.03,0,112.5,0.03,-300,-0.09,200,0.00,1 +19,Entry long,2025-10-28 00:00,M1,6893.75,1,344687.5,87.5,0.03,0,112.5,0.03,-300,-0.09,200,0.00,1 +20,Exit short,2025-10-28 02:00,M1,6897.5,1,344775,-100,-0.03,0,87.5,0.03,-162.5,-0.05,100,0.00,1 +20,Entry short,2025-10-28 01:00,M1,6895.5,1,344775,-100,-0.03,0,87.5,0.03,-162.5,-0.05,100,0.00,1 +21,Exit long,2025-10-28 03:00,M1,6907.5,1,344875,500,0.14,0,712.5,0.21,-62.5,-0.02,600,0.00,1 +21,Entry long,2025-10-28 02:00,M1,6897.5,1,344875,500,0.14,0,712.5,0.21,-62.5,-0.02,600,0.00,1 +22,Exit short,2025-10-28 04:00,M1,6914,1,345375,-325,-0.09,0,25,0.01,-437.5,-0.13,275,0.00,1 +22,Entry short,2025-10-28 03:00,M1,6907.5,1,345375,-325,-0.09,0,25,0.01,-437.5,-0.13,275,0.00,1 +23,Exit long,2025-10-28 06:00,M1,6911.75,1,345700,-112.5,-0.03,0,0,0.00,-187.5,-0.05,162.5,0.00,1 +23,Entry long,2025-10-28 04:00,M1,6914,1,345700,-112.5,-0.03,0,0,0.00,-187.5,-0.05,162.5,0.00,1 +24,Exit short,2025-10-28 07:00,M1,6911,1,345587.5,37.5,0.01,0,50,0.01,-300,-0.09,200,0.00,1 +24,Entry short,2025-10-28 06:00,M1,6911.75,1,345587.5,37.5,0.01,0,50,0.01,-300,-0.09,200,0.00,1 +25,Exit long,2025-10-28 08:00,M1,6909,1,345550,-100,-0.03,0,50,0.01,-125,-0.04,100,0.00,1 +25,Entry long,2025-10-28 07:00,M1,6911,1,345550,-100,-0.03,0,50,0.01,-125,-0.04,100,0.00,1 +26,Exit short,2025-10-28 09:00,M1,6907.25,1,345450,87.5,0.03,0,150,0.04,-62.5,-0.02,187.5,0.00,1 +26,Entry short,2025-10-28 08:00,M1,6909,1,345450,87.5,0.03,0,150,0.04,-62.5,-0.02,187.5,0.00,1 +27,Exit long,2025-10-28 10:00,M1,6907.75,1,345362.5,25,0.01,0,100,0.03,-100,-0.03,212.5,0.00,1 +27,Entry long,2025-10-28 09:00,M1,6907.25,1,345362.5,25,0.01,0,100,0.03,-100,-0.03,212.5,0.00,1 +28,Exit short,2025-10-28 11:00,M1,6908.25,1,345387.5,-25,-0.01,0,87.5,0.03,-112.5,-0.03,187.5,0.00,1 +28,Entry short,2025-10-28 10:00,M1,6907.75,1,345387.5,-25,-0.01,0,87.5,0.03,-112.5,-0.03,187.5,0.00,1 +29,Exit long,2025-10-28 12:00,M1,6905,1,345412.5,-162.5,-0.05,0,37.5,0.01,-175,-0.05,25,0.00,1 +29,Entry long,2025-10-28 11:00,M1,6908.25,1,345412.5,-162.5,-0.05,0,37.5,0.01,-175,-0.05,25,0.00,1 +30,Exit short,2025-10-28 13:00,M1,6904.75,1,345250,12.5,0.00,0,137.5,0.04,-75,-0.02,37.5,0.00,1 +30,Entry short,2025-10-28 12:00,M1,6905,1,345250,12.5,0.00,0,137.5,0.04,-75,-0.02,37.5,0.00,1 +31,Exit long,2025-10-28 14:00,M1,6903.75,1,345237.5,-50,-0.01,0,250,0.07,-62.5,-0.02,-12.5,0.00,1 +31,Entry long,2025-10-28 13:00,M1,6904.75,1,345237.5,-50,-0.01,0,250,0.07,-62.5,-0.02,-12.5,0.00,1 +32,Exit short,2025-10-28 15:00,M1,6903.5,1,345187.5,12.5,0.00,0,75,0.02,-250,-0.07,0,0.00,1 +32,Entry short,2025-10-28 14:00,M1,6903.75,1,345187.5,12.5,0.00,0,75,0.02,-250,-0.07,0,0.00,1 +33,Exit long,2025-10-28 16:00,M1,6906.75,1,345175,162.5,0.05,0,225,0.07,-100,-0.03,162.5,0.00,1 +33,Entry long,2025-10-28 15:00,M1,6903.5,1,345175,162.5,0.05,0,225,0.07,-100,-0.03,162.5,0.00,1 +34,Exit short,2025-10-28 17:00,M1,6907.25,1,345337.5,-25,-0.01,0,137.5,0.04,-75,-0.02,137.5,0.00,1 +34,Entry short,2025-10-28 16:00,M1,6906.75,1,345337.5,-25,-0.01,0,137.5,0.04,-75,-0.02,137.5,0.00,1 +35,Exit long,2025-10-28 18:00,M1,6907.5,1,345362.5,12.5,0.00,0,162.5,0.05,-62.5,-0.02,150,0.00,1 +35,Entry long,2025-10-28 17:00,M1,6907.25,1,345362.5,12.5,0.00,0,162.5,0.05,-62.5,-0.02,150,0.00,1 +36,Exit short,2025-10-28 19:00,M1,6912.5,1,345375,-250,-0.07,0,25,0.01,-325,-0.09,-100,0.00,1 +36,Entry short,2025-10-28 18:00,M1,6907.5,1,345375,-250,-0.07,0,25,0.01,-325,-0.09,-100,0.00,1 +37,Exit long,2025-10-28 20:00,M1,6916,1,345625,175,0.05,0,287.5,0.08,-12.5,0.00,75,0.00,1 +37,Entry long,2025-10-28 19:00,M1,6912.5,1,345625,175,0.05,0,287.5,0.08,-12.5,0.00,75,0.00,1 +38,Exit short,2025-10-28 21:00,M1,6911.5,1,345800,225,0.07,0,462.5,0.13,-575,-0.17,300,0.00,1 +38,Entry short,2025-10-28 20:00,M1,6916,1,345800,225,0.07,0,462.5,0.13,-575,-0.17,300,0.00,1 +39,Exit long,2025-10-28 22:00,M1,6913.75,1,345575,112.5,0.03,0,375,0.11,-75,-0.02,412.5,0.00,1 +39,Entry long,2025-10-28 21:00,M1,6911.5,1,345575,112.5,0.03,0,375,0.11,-75,-0.02,412.5,0.00,1 +40,Exit short,2025-10-28 23:00,M1,6911,1,345687.5,137.5,0.04,0,537.5,0.16,-187.5,-0.05,550,0.00,1 +40,Entry short,2025-10-28 22:00,M1,6913.75,1,345687.5,137.5,0.04,0,537.5,0.16,-187.5,-0.05,550,0.00,1 +41,Exit long,2025-10-29 00:00,M1,6924.25,1,345550,662.5,0.19,0,950,0.27,-12.5,0.00,1212.5,0.00,1 +41,Entry long,2025-10-28 23:00,M1,6911,1,345550,662.5,0.19,0,950,0.27,-12.5,0.00,1212.5,0.00,1 +42,Exit short,2025-10-29 01:00,M1,6931.5,1,346212.5,-362.5,-0.10,0,12.5,0.00,-412.5,-0.12,850,0.00,1 +42,Entry short,2025-10-29 00:00,M1,6924.25,1,346212.5,-362.5,-0.10,0,12.5,0.00,-412.5,-0.12,850,0.00,1 +43,Exit long,2025-10-29 02:00,M1,6937,1,346575,275,0.08,0,412.5,0.12,-25,-0.01,1125,0.00,1 +43,Entry long,2025-10-29 01:00,M1,6931.5,1,346575,275,0.08,0,412.5,0.12,-25,-0.01,1125,0.00,1 +44,Exit short,2025-10-29 03:00,M1,6925.5,1,346850,575,0.17,0,637.5,0.18,-387.5,-0.11,1700,0.00,1 +44,Entry short,2025-10-29 02:00,M1,6937,1,346850,575,0.17,0,637.5,0.18,-387.5,-0.11,1700,0.00,1 +45,Exit long,2025-10-29 04:00,M1,6927.5,1,346275,100,0.03,0,125,0.04,-200,-0.06,1800,0.00,1 +45,Entry long,2025-10-29 03:00,M1,6925.5,1,346275,100,0.03,0,125,0.04,-200,-0.06,1800,0.00,1 +46,Exit short,2025-10-29 06:00,M1,6926,1,346375,75,0.02,0,112.5,0.03,-200,-0.06,1875,0.00,1 +46,Entry short,2025-10-29 04:00,M1,6927.5,1,346375,75,0.02,0,112.5,0.03,-200,-0.06,1875,0.00,1 +47,Exit long,2025-10-29 07:00,M1,6927.75,1,346300,87.5,0.03,0,150,0.04,-75,-0.02,1962.5,0.00,1 +47,Entry long,2025-10-29 06:00,M1,6926,1,346300,87.5,0.03,0,150,0.04,-75,-0.02,1962.5,0.00,1 +48,Exit short,2025-10-29 08:00,M1,6926,1,346387.5,87.5,0.03,0,162.5,0.05,-137.5,-0.04,2050,0.00,1 +48,Entry short,2025-10-29 07:00,M1,6927.75,1,346387.5,87.5,0.03,0,162.5,0.05,-137.5,-0.04,2050,0.00,1 +49,Exit long,2025-10-29 09:00,M1,6932.75,1,346300,337.5,0.10,0,450,0.13,-25,-0.01,2387.5,0.00,1 +49,Entry long,2025-10-29 08:00,M1,6926,1,346300,337.5,0.10,0,450,0.13,-25,-0.01,2387.5,0.00,1 +50,Exit short,2025-10-29 10:00,M1,6937.5,1,346637.5,-237.5,-0.07,0,12.5,0.00,-362.5,-0.10,2150,0.00,1 +50,Entry short,2025-10-29 09:00,M1,6932.75,1,346637.5,-237.5,-0.07,0,12.5,0.00,-362.5,-0.10,2150,0.00,1 +51,Exit long,2025-10-29 11:00,M1,6938,1,346875,25,0.01,0,87.5,0.03,-150,-0.04,2175,0.00,1 +51,Entry long,2025-10-29 10:00,M1,6937.5,1,346875,25,0.01,0,87.5,0.03,-150,-0.04,2175,0.00,1 +52,Exit short,2025-10-29 12:00,M1,6938.75,1,346900,-37.5,-0.01,0,250,0.07,-62.5,-0.02,2137.5,0.00,1 +52,Entry short,2025-10-29 11:00,M1,6938,1,346900,-37.5,-0.01,0,250,0.07,-62.5,-0.02,2137.5,0.00,1 +53,Exit long,2025-10-29 13:00,M1,6940.5,1,346937.5,87.5,0.03,0,125,0.04,-25,-0.01,2225,0.00,1 +53,Entry long,2025-10-29 12:00,M1,6938.75,1,346937.5,87.5,0.03,0,125,0.04,-25,-0.01,2225,0.00,1 +54,Exit short,2025-10-29 14:00,M1,6943,1,347025,-125,-0.04,0,50,0.01,-175,-0.05,2100,0.00,1 +54,Entry short,2025-10-29 13:00,M1,6940.5,1,347025,-125,-0.04,0,50,0.01,-175,-0.05,2100,0.00,1 +55,Exit long,2025-10-29 15:00,M1,6945,1,347150,100,0.03,0,125,0.04,-175,-0.05,2200,0.00,1 +55,Entry long,2025-10-29 14:00,M1,6943,1,347150,100,0.03,0,125,0.04,-175,-0.05,2200,0.00,1 +56,Exit short,2025-10-29 16:00,M1,6937.25,1,347250,387.5,0.11,0,462.5,0.13,-212.5,-0.06,2587.5,0.00,1 +56,Entry short,2025-10-29 15:00,M1,6945,1,347250,387.5,0.11,0,462.5,0.13,-212.5,-0.06,2587.5,0.00,1 +57,Exit long,2025-10-29 17:00,M1,6935.75,1,346862.5,-75,-0.02,0,25,0.01,-325,-0.09,2512.5,0.00,1 +57,Entry long,2025-10-29 16:00,M1,6937.25,1,346862.5,-75,-0.02,0,25,0.01,-325,-0.09,2512.5,0.00,1 +58,Exit short,2025-10-29 18:00,M1,6938.75,1,346787.5,-150,-0.04,0,62.5,0.02,-337.5,-0.10,2362.5,0.00,1 +58,Entry short,2025-10-29 17:00,M1,6935.75,1,346787.5,-150,-0.04,0,62.5,0.02,-337.5,-0.10,2362.5,0.00,1 +59,Exit long,2025-10-29 19:00,M1,6943,1,346937.5,212.5,0.06,0,487.5,0.14,-100,-0.03,2575,0.00,1 +59,Entry long,2025-10-29 18:00,M1,6938.75,1,346937.5,212.5,0.06,0,487.5,0.14,-100,-0.03,2575,0.00,1 +60,Exit short,2025-10-29 20:00,M1,6942,1,347150,50,0.01,0,275,0.08,-150,-0.04,2625,0.00,1 +60,Entry short,2025-10-29 19:00,M1,6943,1,347150,50,0.01,0,275,0.08,-150,-0.04,2625,0.00,1 +61,Exit long,2025-10-29 21:00,M1,6950.75,1,347100,437.5,0.13,0,487.5,0.14,-287.5,-0.08,3062.5,0.00,1 +61,Entry long,2025-10-29 20:00,M1,6942,1,347100,437.5,0.13,0,487.5,0.14,-287.5,-0.08,3062.5,0.00,1 +62,Exit short,2025-10-29 22:00,M1,6938,1,347537.5,637.5,0.18,0,912.5,0.26,-62.5,-0.02,3700,0.00,1 +62,Entry short,2025-10-29 21:00,M1,6950.75,1,347537.5,637.5,0.18,0,912.5,0.26,-62.5,-0.02,3700,0.00,1 +63,Exit long,2025-10-29 23:00,M1,6934.75,1,346900,-162.5,-0.05,0,237.5,0.07,-262.5,-0.08,3537.5,0.00,1 +63,Entry long,2025-10-29 22:00,M1,6938,1,346900,-162.5,-0.05,0,237.5,0.07,-262.5,-0.08,3537.5,0.00,1 +64,Exit short,2025-10-30 00:00,M1,6940,1,346737.5,-262.5,-0.08,0,250,0.07,-387.5,-0.11,3275,0.00,1 +64,Entry short,2025-10-29 23:00,M1,6934.75,1,346737.5,-262.5,-0.08,0,250,0.07,-387.5,-0.11,3275,0.00,1 +65,Exit long,2025-10-30 01:00,M1,6935,1,347000,-250,-0.07,0,125,0.04,-475,-0.14,3025,0.00,1 +65,Entry long,2025-10-30 00:00,M1,6940,1,347000,-250,-0.07,0,125,0.04,-475,-0.14,3025,0.00,1 +66,Exit short,2025-10-30 02:00,M1,6914.75,1,346750,1012.5,0.29,0,2637.5,0.76,-475,-0.14,4037.5,0.00,1 +66,Entry short,2025-10-30 01:00,M1,6935,1,346750,1012.5,0.29,0,2637.5,0.76,-475,-0.14,4037.5,0.00,1 +67,Exit long,2025-10-30 03:00,M1,6928,1,345737.5,662.5,0.19,0,700,0.20,-987.5,-0.29,4700,0.00,1 +67,Entry long,2025-10-30 02:00,M1,6914.75,1,345737.5,662.5,0.19,0,700,0.20,-987.5,-0.29,4700,0.00,1 +68,Exit short,2025-10-30 04:00,M1,6918,1,346400,500,0.14,0,1125,0.32,-875,-0.25,5200,0.00,1 +68,Entry short,2025-10-30 03:00,M1,6928,1,346400,500,0.14,0,1125,0.32,-875,-0.25,5200,0.00,1 +69,Exit long,2025-10-30 06:00,M1,6913,1,345900,-250,-0.07,0,212.5,0.06,-775,-0.22,4950,0.00,1 +69,Entry long,2025-10-30 04:00,M1,6918,1,345900,-250,-0.07,0,212.5,0.06,-775,-0.22,4950,0.00,1 +70,Exit short,2025-10-30 07:00,M1,6922.25,1,345650,-462.5,-0.13,0,237.5,0.07,-587.5,-0.17,4487.5,0.00,1 +70,Entry short,2025-10-30 06:00,M1,6913,1,345650,-462.5,-0.13,0,237.5,0.07,-587.5,-0.17,4487.5,0.00,1 +71,Exit long,2025-10-30 08:00,M1,6933,1,346112.5,537.5,0.16,0,887.5,0.26,0,0.00,5025,0.00,1 +71,Entry long,2025-10-30 07:00,M1,6922.25,1,346112.5,537.5,0.16,0,887.5,0.26,0,0.00,5025,0.00,1 +72,Exit short,2025-10-30 09:00,M1,6935.75,1,346650,-137.5,-0.04,0,337.5,0.10,-312.5,-0.09,4887.5,0.00,1 +72,Entry short,2025-10-30 08:00,M1,6933,1,346650,-137.5,-0.04,0,337.5,0.10,-312.5,-0.09,4887.5,0.00,1 +73,Exit long,2025-10-30 10:00,M1,6944.25,1,346787.5,425,0.12,0,650,0.19,-12.5,0.00,5312.5,0.00,1 +73,Entry long,2025-10-30 09:00,M1,6935.75,1,346787.5,425,0.12,0,650,0.19,-12.5,0.00,5312.5,0.00,1 +74,Exit short,2025-10-30 11:00,M1,6948,1,347212.5,-187.5,-0.05,0,12.5,0.00,-475,-0.14,5125,0.00,1 +74,Entry short,2025-10-30 10:00,M1,6944.25,1,347212.5,-187.5,-0.05,0,12.5,0.00,-475,-0.14,5125,0.00,1 +75,Exit long,2025-10-30 12:00,M1,6914.25,1,347400,-1687.5,-0.49,0,50,0.01,-2350,-0.68,3437.5,0.00,1 +75,Entry long,2025-10-30 11:00,M1,6948,1,347400,-1687.5,-0.49,0,50,0.01,-2350,-0.68,3437.5,0.00,1 +76,Exit short,2025-10-30 13:00,M1,6929.75,1,345712.5,-775,-0.22,0,100,0.03,-1237.5,-0.36,2662.5,0.00,1 +76,Entry short,2025-10-30 12:00,M1,6914.25,1,345712.5,-775,-0.22,0,100,0.03,-1237.5,-0.36,2662.5,0.00,1 +77,Exit long,2025-10-30 14:00,M1,6919.25,1,346487.5,-525,-0.15,0,25,0.01,-687.5,-0.20,2137.5,0.00,1 +77,Entry long,2025-10-30 13:00,M1,6929.75,1,346487.5,-525,-0.15,0,25,0.01,-687.5,-0.20,2137.5,0.00,1 +78,Exit short,2025-10-30 15:00,M1,6927.25,1,345962.5,-400,-0.12,0,375,0.11,-675,-0.20,1737.5,0.00,1 +78,Entry short,2025-10-30 14:00,M1,6919.25,1,345962.5,-400,-0.12,0,375,0.11,-675,-0.20,1737.5,0.00,1 +79,Exit long,2025-10-30 16:00,M1,6922,1,346362.5,-262.5,-0.08,0,112.5,0.03,-562.5,-0.16,1475,0.00,1 +79,Entry long,2025-10-30 15:00,M1,6927.25,1,346362.5,-262.5,-0.08,0,112.5,0.03,-562.5,-0.16,1475,0.00,1 +80,Exit short,2025-10-30 17:00,M1,6908.25,1,346100,687.5,0.20,0,812.5,0.23,-187.5,-0.05,2162.5,0.00,1 +80,Entry short,2025-10-30 16:00,M1,6922,1,346100,687.5,0.20,0,812.5,0.23,-187.5,-0.05,2162.5,0.00,1 +81,Exit long,2025-10-30 18:00,M1,6918,1,345412.5,487.5,0.14,0,600,0.17,-75,-0.02,2650,0.00,1 +81,Entry long,2025-10-30 17:00,M1,6908.25,1,345412.5,487.5,0.14,0,600,0.17,-75,-0.02,2650,0.00,1 +82,Exit short,2025-10-30 19:00,M1,6921.75,1,345900,-187.5,-0.05,0,75,0.02,-587.5,-0.17,2462.5,0.00,1 +82,Entry short,2025-10-30 18:00,M1,6918,1,345900,-187.5,-0.05,0,75,0.02,-587.5,-0.17,2462.5,0.00,1 +83,Exit long,2025-10-30 20:00,M1,6891,1,346087.5,-1537.5,-0.44,0,150,0.04,-1562.5,-0.45,925,0.00,1 +83,Entry long,2025-10-30 19:00,M1,6921.75,1,346087.5,-1537.5,-0.44,0,150,0.04,-1562.5,-0.45,925,0.00,1 +84,Exit short,2025-10-30 21:00,M1,6904.25,1,344550,-662.5,-0.19,0,1162.5,0.34,-987.5,-0.29,262.5,0.00,1 +84,Entry short,2025-10-30 20:00,M1,6891,1,344550,-662.5,-0.19,0,1162.5,0.34,-987.5,-0.29,262.5,0.00,1 +85,Exit long,2025-10-30 22:00,M1,6898.25,1,345212.5,-300,-0.09,0,475,0.14,-900,-0.26,-37.5,0.00,1 +85,Entry long,2025-10-30 21:00,M1,6904.25,1,345212.5,-300,-0.09,0,475,0.14,-900,-0.26,-37.5,0.00,1 +86,Exit short,2025-10-30 23:00,M1,6887.75,1,344912.5,525,0.15,0,725,0.21,-562.5,-0.16,487.5,0.00,1 +86,Entry short,2025-10-30 22:00,M1,6898.25,1,344912.5,525,0.15,0,725,0.21,-562.5,-0.16,487.5,0.00,1 +87,Exit long,2025-10-31 00:00,M1,6898.25,1,344387.5,525,0.15,0,900,0.26,-87.5,-0.03,1012.5,0.00,1 +87,Entry long,2025-10-30 23:00,M1,6887.75,1,344387.5,525,0.15,0,900,0.26,-87.5,-0.03,1012.5,0.00,1 +88,Exit short,2025-10-31 01:00,M1,6898.25,1,344912.5,0,0.00,0,712.5,0.21,-112.5,-0.03,1012.5,0.00,1 +88,Entry short,2025-10-31 00:00,M1,6898.25,1,344912.5,0,0.00,0,712.5,0.21,-112.5,-0.03,1012.5,0.00,1 +89,Exit long,2025-10-31 02:00,M1,6877.5,1,344912.5,-1037.5,-0.30,0,0,0.00,-1150,-0.33,-25,0.00,1 +89,Entry long,2025-10-31 01:00,M1,6898.25,1,344912.5,-1037.5,-0.30,0,0,0.00,-1150,-0.33,-25,0.00,1 +90,Exit short,2025-10-31 03:00,M1,6853.75,1,343875,1187.5,0.35,0,1250,0.36,-37.5,-0.01,1162.5,0.00,1 +90,Entry short,2025-10-31 02:00,M1,6877.5,1,343875,1187.5,0.35,0,1250,0.36,-37.5,-0.01,1162.5,0.00,1 +91,Exit long,2025-10-31 04:00,M1,6894,1,342687.5,2012.5,0.59,0,2137.5,0.62,-137.5,-0.04,3175,0.00,1 +91,Entry long,2025-10-31 03:00,M1,6853.75,1,342687.5,2012.5,0.59,0,2137.5,0.62,-137.5,-0.04,3175,0.00,1 +92,Exit short,2025-10-31 06:00,M1,6893.25,1,344700,37.5,0.01,0,162.5,0.05,-300,-0.09,3212.5,0.00,1 +92,Entry short,2025-10-31 04:00,M1,6894,1,344700,37.5,0.01,0,162.5,0.05,-300,-0.09,3212.5,0.00,1 +93,Exit long,2025-10-31 07:00,M1,6898.5,1,344662.5,262.5,0.08,0,300,0.09,-262.5,-0.08,3475,0.00,1 +93,Entry long,2025-10-31 06:00,M1,6893.25,1,344662.5,262.5,0.08,0,300,0.09,-262.5,-0.08,3475,0.00,1 +94,Exit short,2025-10-31 08:00,M1,6901,1,344925,-125,-0.04,0,462.5,0.13,-237.5,-0.07,3350,0.00,1 +94,Entry short,2025-10-31 07:00,M1,6898.5,1,344925,-125,-0.04,0,462.5,0.13,-237.5,-0.07,3350,0.00,1 +95,Exit long,2025-10-31 09:00,M1,6903.25,1,345050,112.5,0.03,0,150,0.04,-275,-0.08,3462.5,0.00,1 +95,Entry long,2025-10-31 08:00,M1,6901,1,345050,112.5,0.03,0,150,0.04,-275,-0.08,3462.5,0.00,1 +96,Exit short,2025-10-31 10:00,M1,6897,1,345162.5,312.5,0.09,0,500,0.14,-62.5,-0.02,3775,0.00,1 +96,Entry short,2025-10-31 09:00,M1,6903.25,1,345162.5,312.5,0.09,0,500,0.14,-62.5,-0.02,3775,0.00,1 +97,Exit long,2025-10-31 11:00,M1,6900,1,344850,150,0.04,0,175,0.05,-200,-0.06,3925,0.00,1 +97,Entry long,2025-10-31 10:00,M1,6897,1,344850,150,0.04,0,175,0.05,-200,-0.06,3925,0.00,1 +98,Exit short,2025-10-31 12:00,M1,6901,1,345000,-50,-0.01,0,12.5,0.00,-150,-0.04,3875,0.00,1 +98,Entry short,2025-10-31 11:00,M1,6900,1,345000,-50,-0.01,0,12.5,0.00,-150,-0.04,3875,0.00,1 +99,Exit long,2025-10-31 13:00,M1,6895.25,1,345050,-287.5,-0.08,0,12.5,0.00,-350,-0.10,3587.5,0.00,1 +99,Entry long,2025-10-31 12:00,M1,6901,1,345050,-287.5,-0.08,0,12.5,0.00,-350,-0.10,3587.5,0.00,1 +100,Exit short,2025-10-31 14:00,M1,6895.75,1,344762.5,-25,-0.01,0,50,0.01,-362.5,-0.11,3562.5,0.00,1 +100,Entry short,2025-10-31 13:00,M1,6895.25,1,344762.5,-25,-0.01,0,50,0.01,-362.5,-0.11,3562.5,0.00,1 +101,Exit long,2025-10-31 15:00,M1,6905.75,1,344787.5,500,0.15,0,525,0.15,-137.5,-0.04,4062.5,0.00,1 +101,Entry long,2025-10-31 14:00,M1,6895.75,1,344787.5,500,0.15,0,525,0.15,-137.5,-0.04,4062.5,0.00,1 +102,Exit short,2025-10-31 16:00,M1,6903.25,1,345287.5,125,0.04,0,475,0.14,-12.5,0.00,4187.5,0.00,1 +102,Entry short,2025-10-31 15:00,M1,6905.75,1,345287.5,125,0.04,0,475,0.14,-12.5,0.00,4187.5,0.00,1 +103,Exit long,2025-10-31 17:00,M1,6899.75,1,345162.5,-175,-0.05,0,137.5,0.04,-225,-0.07,4012.5,0.00,1 +103,Entry long,2025-10-31 16:00,M1,6903.25,1,345162.5,-175,-0.05,0,137.5,0.04,-225,-0.07,4012.5,0.00,1 +104,Exit short,2025-10-31 18:00,M1,6898,1,344987.5,87.5,0.03,0,325,0.09,-50,-0.01,4100,0.00,1 +104,Entry short,2025-10-31 17:00,M1,6899.75,1,344987.5,87.5,0.03,0,325,0.09,-50,-0.01,4100,0.00,1 +105,Exit long,2025-10-31 19:00,M1,6907.75,1,344900,487.5,0.14,0,675,0.20,-162.5,-0.05,4587.5,0.00,1 +105,Entry long,2025-10-31 18:00,M1,6898,1,344900,487.5,0.14,0,675,0.20,-162.5,-0.05,4587.5,0.00,1 +106,Exit short,2025-10-31 20:00,M1,6905.75,1,345387.5,100,0.03,0,300,0.09,-537.5,-0.16,4687.5,0.00,1 +106,Entry short,2025-10-31 19:00,M1,6907.75,1,345387.5,100,0.03,0,300,0.09,-537.5,-0.16,4687.5,0.00,1 +107,Exit long,2025-10-31 21:00,M1,6886.25,1,345287.5,-975,-0.28,0,25,0.01,-1287.5,-0.37,3712.5,0.00,1 +107,Entry long,2025-10-31 20:00,M1,6905.75,1,345287.5,-975,-0.28,0,25,0.01,-1287.5,-0.37,3712.5,0.00,1 +108,Exit short,2025-10-31 22:00,M1,6896.5,1,344312.5,-512.5,-0.15,0,625,0.18,-662.5,-0.19,3200,0.00,1 +108,Entry short,2025-10-31 21:00,M1,6886.25,1,344312.5,-512.5,-0.15,0,625,0.18,-662.5,-0.19,3200,0.00,1 +109,Exit long,2025-10-31 23:00,M1,6873.5,1,344825,-1150,-0.33,0,150,0.04,-1200,-0.35,2050,0.00,1 +109,Entry long,2025-10-31 22:00,M1,6896.5,1,344825,-1150,-0.33,0,150,0.04,-1200,-0.35,2050,0.00,1 +110,Exit short,2025-11-01 00:00,M1,6855,1,343675,925,0.27,0,1050,0.31,-137.5,-0.04,2975,0.00,1 +110,Entry short,2025-10-31 23:00,M1,6873.5,1,343675,925,0.27,0,1050,0.31,-137.5,-0.04,2975,0.00,1 +111,Exit long,2025-11-01 01:00,M1,6860.5,1,342750,275,0.08,0,575,0.17,-575,-0.17,3250,0.00,1 +111,Entry long,2025-11-01 00:00,M1,6855,1,342750,275,0.08,0,575,0.17,-575,-0.17,3250,0.00,1 +112,Exit short,2025-11-01 02:00,M1,6878,1,343025,-875,-0.26,0,50,0.01,-937.5,-0.27,2375,0.00,1 +112,Entry short,2025-11-01 01:00,M1,6860.5,1,343025,-875,-0.26,0,50,0.01,-937.5,-0.27,2375,0.00,1 +113,Exit long,2025-11-01 03:00,M1,6872,1,343900,-300,-0.09,0,1100,0.32,-312.5,-0.09,2075,0.00,1 +113,Entry long,2025-11-01 02:00,M1,6878,1,343900,-300,-0.09,0,1100,0.32,-312.5,-0.09,2075,0.00,1 +114,Exit short,2025-11-01 04:00,M1,6872.25,1,343600,-12.5,0.00,0,262.5,0.08,-137.5,-0.04,2062.5,0.00,1 +114,Entry short,2025-11-01 03:00,M1,6872,1,343600,-12.5,0.00,0,262.5,0.08,-137.5,-0.04,2062.5,0.00,1 +115,Exit long,2025-11-03 07:00,M1,6892.5,1,343612.5,1012.5,0.29,0,1137.5,0.33,0,0.00,3075,0.00,1 +115,Entry long,2025-11-01 04:00,M1,6872.25,1,343612.5,1012.5,0.29,0,1137.5,0.33,0,0.00,3075,0.00,1 +116,Exit short,2025-11-03 08:00,M1,6898.25,1,344625,-287.5,-0.08,0,25,0.01,-300,-0.09,2787.5,0.00,1 +116,Entry short,2025-11-03 07:00,M1,6892.5,1,344625,-287.5,-0.08,0,25,0.01,-300,-0.09,2787.5,0.00,1 +117,Exit long,2025-11-03 09:00,M1,6891.5,1,344912.5,-337.5,-0.10,0,50,0.01,-350,-0.10,2450,0.00,1 +117,Entry long,2025-11-03 08:00,M1,6898.25,1,344912.5,-337.5,-0.10,0,50,0.01,-350,-0.10,2450,0.00,1 +118,Exit short,2025-11-03 10:00,M1,6888.5,1,344575,150,0.04,0,212.5,0.06,-225,-0.07,2600,0.00,1 +118,Entry short,2025-11-03 09:00,M1,6891.5,1,344575,150,0.04,0,212.5,0.06,-225,-0.07,2600,0.00,1 +119,Exit long,2025-11-03 11:00,M1,6886.25,1,344425,-112.5,-0.03,0,25,0.01,-387.5,-0.11,2487.5,0.00,1 +119,Entry long,2025-11-03 10:00,M1,6888.5,1,344425,-112.5,-0.03,0,25,0.01,-387.5,-0.11,2487.5,0.00,1 +120,Exit short,2025-11-03 12:00,M1,6887,1,344312.5,-37.5,-0.01,0,125,0.04,-87.5,-0.03,2450,0.00,1 +120,Entry short,2025-11-03 11:00,M1,6886.25,1,344312.5,-37.5,-0.01,0,125,0.04,-87.5,-0.03,2450,0.00,1 +121,Exit long,2025-11-03 13:00,M1,6884.75,1,344350,-112.5,-0.03,0,87.5,0.03,-250,-0.07,2337.5,0.00,1 +121,Entry long,2025-11-03 12:00,M1,6887,1,344350,-112.5,-0.03,0,87.5,0.03,-250,-0.07,2337.5,0.00,1 +122,Exit short,2025-11-03 14:00,M1,6880.5,1,344237.5,212.5,0.06,0,350,0.10,-162.5,-0.05,2550,0.00,1 +122,Entry short,2025-11-03 13:00,M1,6884.75,1,344237.5,212.5,0.06,0,350,0.10,-162.5,-0.05,2550,0.00,1 +123,Exit long,2025-11-03 15:00,M1,6876,1,344025,-225,-0.07,0,0,0.00,-337.5,-0.10,2325,0.00,1 +123,Entry long,2025-11-03 14:00,M1,6880.5,1,344025,-225,-0.07,0,0,0.00,-337.5,-0.10,2325,0.00,1 +124,Exit short,2025-11-03 16:00,M1,6887.25,1,343800,-562.5,-0.16,0,137.5,0.04,-675,-0.20,1762.5,0.00,1 +124,Entry short,2025-11-03 15:00,M1,6876,1,343800,-562.5,-0.16,0,137.5,0.04,-675,-0.20,1762.5,0.00,1 +125,Exit long,2025-11-03 17:00,M1,6894.75,1,344362.5,375,0.11,0,750,0.22,-12.5,0.00,2137.5,0.00,1 +125,Entry long,2025-11-03 16:00,M1,6887.25,1,344362.5,375,0.11,0,750,0.22,-12.5,0.00,2137.5,0.00,1 +126,Exit short,2025-11-03 18:00,M1,6895.75,1,344737.5,-50,-0.01,0,75,0.02,-300,-0.09,2087.5,0.00,1 +126,Entry short,2025-11-03 17:00,M1,6894.75,1,344737.5,-50,-0.01,0,75,0.02,-300,-0.09,2087.5,0.00,1 +127,Exit long,2025-11-03 19:00,M1,6896,1,344787.5,12.5,0.00,0,362.5,0.11,0,0.00,2100,0.00,1 +127,Entry long,2025-11-03 18:00,M1,6895.75,1,344787.5,12.5,0.00,0,362.5,0.11,0,0.00,2100,0.00,1 +128,Exit short,2025-11-03 20:00,M1,6891.75,1,344800,212.5,0.06,0,225,0.07,-212.5,-0.06,2312.5,0.00,1 +128,Entry short,2025-11-03 19:00,M1,6896,1,344800,212.5,0.06,0,225,0.07,-212.5,-0.06,2312.5,0.00,1 +129,Exit long,2025-11-03 21:00,M1,6896.5,1,344587.5,237.5,0.07,0,275,0.08,-300,-0.09,2550,0.00,1 +129,Entry long,2025-11-03 20:00,M1,6891.75,1,344587.5,237.5,0.07,0,275,0.08,-300,-0.09,2550,0.00,1 +130,Exit short,2025-11-03 22:00,M1,6875.75,1,344825,1037.5,0.30,0,1212.5,0.35,-650,-0.19,3587.5,0.00,1 +130,Entry short,2025-11-03 21:00,M1,6896.5,1,344825,1037.5,0.30,0,1212.5,0.35,-650,-0.19,3587.5,0.00,1 +131,Exit long,2025-11-03 23:00,M1,6874.25,1,343787.5,-75,-0.02,0,237.5,0.07,-1312.5,-0.38,3512.5,0.00,1 +131,Entry long,2025-11-03 22:00,M1,6875.75,1,343787.5,-75,-0.02,0,237.5,0.07,-1312.5,-0.38,3512.5,0.00,1 +132,Exit short,2025-11-04 00:00,M1,6884.75,1,343712.5,-525,-0.15,0,275,0.08,-625,-0.18,2987.5,0.00,1 +132,Entry short,2025-11-03 23:00,M1,6874.25,1,343712.5,-525,-0.15,0,275,0.08,-625,-0.18,2987.5,0.00,1 +133,Exit long,2025-11-04 01:00,M1,6889.25,1,344237.5,225,0.07,0,287.5,0.08,-500,-0.15,3212.5,0.00,1 +133,Entry long,2025-11-04 00:00,M1,6884.75,1,344237.5,225,0.07,0,287.5,0.08,-500,-0.15,3212.5,0.00,1 +134,Exit short,2025-11-04 02:00,M1,6886.75,1,344462.5,125,0.04,0,212.5,0.06,-200,-0.06,3337.5,0.00,1 +134,Entry short,2025-11-04 01:00,M1,6889.25,1,344462.5,125,0.04,0,212.5,0.06,-200,-0.06,3337.5,0.00,1 +135,Exit long,2025-11-04 03:00,M1,6885,1,344337.5,-87.5,-0.03,0,137.5,0.04,-512.5,-0.15,3250,0.00,1 +135,Entry long,2025-11-04 02:00,M1,6886.75,1,344337.5,-87.5,-0.03,0,137.5,0.04,-512.5,-0.15,3250,0.00,1 +136,Exit short,2025-11-04 04:00,M1,6885.25,1,344250,-12.5,0.00,0,462.5,0.13,-125,-0.04,3237.5,0.00,1 +136,Entry short,2025-11-04 03:00,M1,6885,1,344250,-12.5,0.00,0,462.5,0.13,-125,-0.04,3237.5,0.00,1 +137,Exit long,2025-11-04 05:00,M1,6884,1,344262.5,-62.5,-0.02,0,362.5,0.11,-150,-0.04,3175,0.00,1 +137,Entry long,2025-11-04 04:00,M1,6885.25,1,344262.5,-62.5,-0.02,0,362.5,0.11,-150,-0.04,3175,0.00,1 +138,Exit short,2025-11-04 07:00,M1,6876.25,1,344200,387.5,0.11,0,462.5,0.13,0,0.00,3562.5,0.00,1 +138,Entry short,2025-11-04 05:00,M1,6884,1,344200,387.5,0.11,0,462.5,0.13,0,0.00,3562.5,0.00,1 +139,Exit long,2025-11-04 08:00,M1,6869.25,1,343812.5,-350,-0.10,0,0,0.00,-687.5,-0.20,3212.5,0.00,1 +139,Entry long,2025-11-04 07:00,M1,6876.25,1,343812.5,-350,-0.10,0,0,0.00,-687.5,-0.20,3212.5,0.00,1 +140,Exit short,2025-11-04 09:00,M1,6866,1,343462.5,162.5,0.05,0,362.5,0.11,-100,-0.03,3375,0.00,1 +140,Entry short,2025-11-04 08:00,M1,6869.25,1,343462.5,162.5,0.05,0,362.5,0.11,-100,-0.03,3375,0.00,1 +141,Exit long,2025-11-04 10:00,M1,6853,1,343300,-650,-0.19,0,12.5,0.00,-650,-0.19,2725,0.00,1 +141,Entry long,2025-11-04 09:00,M1,6866,1,343300,-650,-0.19,0,12.5,0.00,-650,-0.19,2725,0.00,1 +142,Exit short,2025-11-04 11:00,M1,6852.5,1,342650,25,0.01,0,37.5,0.01,-450,-0.13,2750,0.00,1 +142,Entry short,2025-11-04 10:00,M1,6853,1,342650,25,0.01,0,37.5,0.01,-450,-0.13,2750,0.00,1 +143,Exit long,2025-11-04 12:00,M1,6849.25,1,342625,-162.5,-0.05,0,112.5,0.03,-325,-0.09,2587.5,0.00,1 +143,Entry long,2025-11-04 11:00,M1,6852.5,1,342625,-162.5,-0.05,0,112.5,0.03,-325,-0.09,2587.5,0.00,1 +144,Exit short,2025-11-04 13:00,M1,6830,1,342462.5,962.5,0.28,0,1137.5,0.33,-50,-0.01,3550,0.00,1 +144,Entry short,2025-11-04 12:00,M1,6849.25,1,342462.5,962.5,0.28,0,1137.5,0.33,-50,-0.01,3550,0.00,1 +145,Exit long,2025-11-04 14:00,M1,6820.5,1,341500,-475,-0.14,0,25,0.01,-762.5,-0.22,3075,0.00,1 +145,Entry long,2025-11-04 13:00,M1,6830,1,341500,-475,-0.14,0,25,0.01,-762.5,-0.22,3075,0.00,1 +146,Exit short,2025-11-04 15:00,M1,6821.5,1,341025,-50,-0.01,0,437.5,0.13,-200,-0.06,3025,0.00,1 +146,Entry short,2025-11-04 14:00,M1,6820.5,1,341025,-50,-0.01,0,437.5,0.13,-200,-0.06,3025,0.00,1 +147,Exit long,2025-11-04 16:00,M1,6814.25,1,341075,-362.5,-0.11,0,12.5,0.00,-750,-0.22,2662.5,0.00,1 +147,Entry long,2025-11-04 15:00,M1,6821.5,1,341075,-362.5,-0.11,0,12.5,0.00,-750,-0.22,2662.5,0.00,1 +148,Exit short,2025-11-04 17:00,M1,6792.75,1,340712.5,1075,0.32,0,1137.5,0.33,-225,-0.07,3737.5,0.00,1 +148,Entry short,2025-11-04 16:00,M1,6814.25,1,340712.5,1075,0.32,0,1137.5,0.33,-225,-0.07,3737.5,0.00,1 +149,Exit long,2025-11-04 18:00,M1,6813.5,1,339637.5,1037.5,0.31,0,1125,0.33,-325,-0.10,4775,0.00,1 +149,Entry long,2025-11-04 17:00,M1,6792.75,1,339637.5,1037.5,0.31,0,1125,0.33,-325,-0.10,4775,0.00,1 +150,Exit short,2025-11-04 19:00,M1,6812.75,1,340675,37.5,0.01,0,137.5,0.04,-212.5,-0.06,4812.5,0.00,1 +150,Entry short,2025-11-04 18:00,M1,6813.5,1,340675,37.5,0.01,0,137.5,0.04,-212.5,-0.06,4812.5,0.00,1 +151,Exit long,2025-11-04 20:00,M1,6814.5,1,340637.5,87.5,0.03,0,387.5,0.11,-387.5,-0.11,4900,0.00,1 +151,Entry long,2025-11-04 19:00,M1,6812.75,1,340637.5,87.5,0.03,0,387.5,0.11,-387.5,-0.11,4900,0.00,1 +152,Exit short,2025-11-04 21:00,M1,6809,1,340725,275,0.08,0,612.5,0.18,-100,-0.03,5175,0.00,1 +152,Entry short,2025-11-04 20:00,M1,6814.5,1,340725,275,0.08,0,612.5,0.18,-100,-0.03,5175,0.00,1 +153,Exit long,2025-11-04 22:00,M1,6836.5,1,340450,1375,0.40,0,1437.5,0.42,-662.5,-0.19,6550,0.00,1 +153,Entry long,2025-11-04 21:00,M1,6809,1,340450,1375,0.40,0,1437.5,0.42,-662.5,-0.19,6550,0.00,1 +154,Exit short,2025-11-04 23:00,M1,6831.25,1,341825,262.5,0.08,0,537.5,0.16,-637.5,-0.19,6812.5,0.00,1 +154,Entry short,2025-11-04 22:00,M1,6836.5,1,341825,262.5,0.08,0,537.5,0.16,-637.5,-0.19,6812.5,0.00,1 +155,Exit long,2025-11-05 00:00,M1,6831.5,1,341562.5,12.5,0.00,0,337.5,0.10,-362.5,-0.11,6825,0.00,1 +155,Entry long,2025-11-04 23:00,M1,6831.25,1,341562.5,12.5,0.00,0,337.5,0.10,-362.5,-0.11,6825,0.00,1 +156,Exit short,2025-11-05 01:00,M1,6809.25,1,341575,1112.5,0.33,0,1275,0.37,-12.5,0.00,7937.5,0.00,1 +156,Entry short,2025-11-05 00:00,M1,6831.5,1,341575,1112.5,0.33,0,1275,0.37,-12.5,0.00,7937.5,0.00,1 +157,Exit long,2025-11-05 02:00,M1,6810.5,1,340462.5,62.5,0.02,0,200,0.06,-650,-0.19,8000,0.00,1 +157,Entry long,2025-11-05 01:00,M1,6809.25,1,340462.5,62.5,0.02,0,200,0.06,-650,-0.19,8000,0.00,1 +158,Exit short,2025-11-05 03:00,M1,6801.25,1,340525,462.5,0.14,0,787.5,0.23,-275,-0.08,8462.5,0.00,1 +158,Entry short,2025-11-05 02:00,M1,6810.5,1,340525,462.5,0.14,0,787.5,0.23,-275,-0.08,8462.5,0.00,1 +159,Exit long,2025-11-05 04:00,M1,6803.5,1,340062.5,112.5,0.03,0,687.5,0.20,-275,-0.08,8575,0.00,1 +159,Entry long,2025-11-05 03:00,M1,6801.25,1,340062.5,112.5,0.03,0,687.5,0.20,-275,-0.08,8575,0.00,1 +160,Exit short,2025-11-05 05:00,M1,6806.25,1,340175,-137.5,-0.04,0,337.5,0.10,-225,-0.07,8437.5,0.00,1 +160,Entry short,2025-11-05 04:00,M1,6803.5,1,340175,-137.5,-0.04,0,337.5,0.10,-225,-0.07,8437.5,0.00,1 +161,Exit long,2025-11-05 07:00,M1,6793.25,1,340312.5,-650,-0.19,0,12.5,0.00,-662.5,-0.19,7787.5,0.00,1 +161,Entry long,2025-11-05 05:00,M1,6806.25,1,340312.5,-650,-0.19,0,12.5,0.00,-662.5,-0.19,7787.5,0.00,1 +162,Exit short,2025-11-05 08:00,M1,6773.25,1,339662.5,1000,0.29,0,1012.5,0.30,-12.5,0.00,8787.5,0.00,1 +162,Entry short,2025-11-05 07:00,M1,6793.25,1,339662.5,1000,0.29,0,1012.5,0.30,-12.5,0.00,8787.5,0.00,1 +163,Exit long,2025-11-05 09:00,M1,6760,1,338662.5,-662.5,-0.20,0,12.5,0.00,-1237.5,-0.37,8125,0.00,1 +163,Entry long,2025-11-05 08:00,M1,6773.25,1,338662.5,-662.5,-0.20,0,12.5,0.00,-1237.5,-0.37,8125,0.00,1 +164,Exit short,2025-11-05 10:00,M1,6775.25,1,338000,-762.5,-0.23,0,362.5,0.11,-850,-0.25,7362.5,0.00,1 +164,Entry short,2025-11-05 09:00,M1,6760,1,338000,-762.5,-0.23,0,362.5,0.11,-850,-0.25,7362.5,0.00,1 +165,Exit long,2025-11-05 11:00,M1,6795,1,338762.5,987.5,0.29,0,1000,0.30,0,0.00,8350,0.00,1 +165,Entry long,2025-11-05 10:00,M1,6775.25,1,338762.5,987.5,0.29,0,1000,0.30,0,0.00,8350,0.00,1 +166,Exit short,2025-11-05 12:00,M1,6786.75,1,339750,412.5,0.12,0,612.5,0.18,-37.5,-0.01,8762.5,0.00,1 +166,Entry short,2025-11-05 11:00,M1,6795,1,339750,412.5,0.12,0,612.5,0.18,-37.5,-0.01,8762.5,0.00,1 +167,Exit long,2025-11-05 13:00,M1,6789,1,339337.5,112.5,0.03,0,600,0.18,-112.5,-0.03,8875,0.00,1 +167,Entry long,2025-11-05 12:00,M1,6786.75,1,339337.5,112.5,0.03,0,600,0.18,-112.5,-0.03,8875,0.00,1 +168,Exit short,2025-11-05 14:00,M1,6797.75,1,339450,-437.5,-0.13,0,287.5,0.08,-612.5,-0.18,8437.5,0.00,1 +168,Entry short,2025-11-05 13:00,M1,6789,1,339450,-437.5,-0.13,0,287.5,0.08,-612.5,-0.18,8437.5,0.00,1 +169,Exit long,2025-11-05 15:00,M1,6787,1,339887.5,-537.5,-0.16,0,50,0.01,-575,-0.17,7900,0.00,1 +169,Entry long,2025-11-05 14:00,M1,6797.75,1,339887.5,-537.5,-0.16,0,50,0.01,-575,-0.17,7900,0.00,1 +170,Exit short,2025-11-05 16:00,M1,6795,1,339350,-400,-0.12,0,250,0.07,-675,-0.20,7500,0.00,1 +170,Entry short,2025-11-05 15:00,M1,6787,1,339350,-400,-0.12,0,250,0.07,-675,-0.20,7500,0.00,1 +171,Exit long,2025-11-05 17:00,M1,6794,1,339750,-50,-0.01,0,312.5,0.09,-362.5,-0.11,7450,0.00,1 +171,Entry long,2025-11-05 16:00,M1,6795,1,339750,-50,-0.01,0,312.5,0.09,-362.5,-0.11,7450,0.00,1 +172,Exit short,2025-11-05 18:00,M1,6773.5,1,339700,1025,0.30,0,1037.5,0.31,-237.5,-0.07,8475,0.00,1 +172,Entry short,2025-11-05 17:00,M1,6794,1,339700,1025,0.30,0,1037.5,0.31,-237.5,-0.07,8475,0.00,1 +173,Exit long,2025-11-05 19:00,M1,6787.25,1,338675,687.5,0.20,0,775,0.23,-87.5,-0.03,9162.5,0.00,1 +173,Entry long,2025-11-05 18:00,M1,6773.5,1,338675,687.5,0.20,0,775,0.23,-87.5,-0.03,9162.5,0.00,1 +174,Exit short,2025-11-05 20:00,M1,6795.25,1,339362.5,-400,-0.12,0,262.5,0.08,-462.5,-0.14,8762.5,0.00,1 +174,Entry short,2025-11-05 19:00,M1,6787.25,1,339362.5,-400,-0.12,0,262.5,0.08,-462.5,-0.14,8762.5,0.00,1 +175,Exit long,2025-11-05 21:00,M1,6805.5,1,339762.5,512.5,0.15,0,625,0.18,-237.5,-0.07,9275,0.00,1 +175,Entry long,2025-11-05 20:00,M1,6795.25,1,339762.5,512.5,0.15,0,625,0.18,-237.5,-0.07,9275,0.00,1 +176,Exit short,2025-11-05 22:00,M1,6822,1,340275,-825,-0.24,0,787.5,0.23,-950,-0.28,8450,0.00,1 +176,Entry short,2025-11-05 21:00,M1,6805.5,1,340275,-825,-0.24,0,787.5,0.23,-950,-0.28,8450,0.00,1 +177,Exit long,2025-11-05 23:00,M1,6827,1,341100,250,0.07,0,462.5,0.14,-625,-0.18,8700,0.00,1 +177,Entry long,2025-11-05 22:00,M1,6822,1,341100,250,0.07,0,462.5,0.14,-625,-0.18,8700,0.00,1 +178,Exit short,2025-11-06 00:00,M1,6842.5,1,341350,-775,-0.23,0,550,0.16,-975,-0.29,7925,0.00,1 +178,Entry short,2025-11-05 23:00,M1,6827,1,341350,-775,-0.23,0,550,0.16,-975,-0.29,7925,0.00,1 +179,Exit long,2025-11-06 01:00,M1,6851,1,342125,425,0.12,0,762.5,0.22,-175,-0.05,8350,0.00,1 +179,Entry long,2025-11-06 00:00,M1,6842.5,1,342125,425,0.12,0,762.5,0.22,-175,-0.05,8350,0.00,1 +180,Exit short,2025-11-06 02:00,M1,6855.5,1,342550,-225,-0.07,0,100,0.03,-325,-0.09,8125,0.00,1 +180,Entry short,2025-11-06 01:00,M1,6851,1,342550,-225,-0.07,0,100,0.03,-325,-0.09,8125,0.00,1 +181,Exit long,2025-11-06 03:00,M1,6851.25,1,342775,-212.5,-0.06,0,0,0.00,-462.5,-0.13,7912.5,0.00,1 +181,Entry long,2025-11-06 02:00,M1,6855.5,1,342775,-212.5,-0.06,0,0,0.00,-462.5,-0.13,7912.5,0.00,1 +182,Exit short,2025-11-06 04:00,M1,6824.25,1,342562.5,1350,0.39,0,1412.5,0.41,-162.5,-0.05,9262.5,0.00,1 +182,Entry short,2025-11-06 03:00,M1,6851.25,1,342562.5,1350,0.39,0,1412.5,0.41,-162.5,-0.05,9262.5,0.00,1 +183,Exit long,2025-11-06 05:00,M1,6827.5,1,341212.5,162.5,0.05,0,325,0.10,-212.5,-0.06,9425,0.00,1 +183,Entry long,2025-11-06 04:00,M1,6824.25,1,341212.5,162.5,0.05,0,325,0.10,-212.5,-0.06,9425,0.00,1 +184,Exit short,2025-11-06 07:00,M1,6834.75,1,341375,-362.5,-0.11,0,337.5,0.10,-375,-0.11,9062.5,0.00,1 +184,Entry short,2025-11-06 05:00,M1,6827.5,1,341375,-362.5,-0.11,0,337.5,0.10,-375,-0.11,9062.5,0.00,1 +185,Exit long,2025-11-06 08:00,M1,6821,1,341737.5,-687.5,-0.20,0,12.5,0.00,-1212.5,-0.35,8375,0.00,1 +185,Entry long,2025-11-06 07:00,M1,6834.75,1,341737.5,-687.5,-0.20,0,12.5,0.00,-1212.5,-0.35,8375,0.00,1 +186,Exit short,2025-11-06 09:00,M1,6815,1,341050,300,0.09,0,775,0.23,0,0.00,8675,0.00,1 +186,Entry short,2025-11-06 08:00,M1,6821,1,341050,300,0.09,0,775,0.23,0,0.00,8675,0.00,1 +187,Exit long,2025-11-06 10:00,M1,6822.25,1,340750,362.5,0.11,0,400,0.12,-350,-0.10,9037.5,0.00,1 +187,Entry long,2025-11-06 09:00,M1,6815,1,340750,362.5,0.11,0,400,0.12,-350,-0.10,9037.5,0.00,1 +188,Exit short,2025-11-06 11:00,M1,6823.25,1,341112.5,-50,-0.01,0,150,0.04,-187.5,-0.05,8987.5,0.00,1 +188,Entry short,2025-11-06 10:00,M1,6822.25,1,341112.5,-50,-0.01,0,150,0.04,-187.5,-0.05,8987.5,0.00,1 +189,Exit long,2025-11-06 12:00,M1,6826.5,1,341162.5,162.5,0.05,0,212.5,0.06,-162.5,-0.05,9150,0.00,1 +189,Entry long,2025-11-06 11:00,M1,6823.25,1,341162.5,162.5,0.05,0,212.5,0.06,-162.5,-0.05,9150,0.00,1 +190,Exit short,2025-11-06 13:00,M1,6818,1,341325,425,0.12,0,500,0.15,-37.5,-0.01,9575,0.00,1 +190,Entry short,2025-11-06 12:00,M1,6826.5,1,341325,425,0.12,0,500,0.15,-37.5,-0.01,9575,0.00,1 +191,Exit long,2025-11-06 14:00,M1,6815.25,1,340900,-137.5,-0.04,0,162.5,0.05,-225,-0.07,9437.5,0.00,1 +191,Entry long,2025-11-06 13:00,M1,6818,1,340900,-137.5,-0.04,0,162.5,0.05,-225,-0.07,9437.5,0.00,1 +192,Exit short,2025-11-06 15:00,M1,6808.5,1,340762.5,337.5,0.10,0,375,0.11,-325,-0.10,9775,0.00,1 +192,Entry short,2025-11-06 14:00,M1,6815.25,1,340762.5,337.5,0.10,0,375,0.11,-325,-0.10,9775,0.00,1 +193,Exit long,2025-11-06 16:00,M1,6812.75,1,340425,212.5,0.06,0,312.5,0.09,-225,-0.07,9987.5,0.00,1 +193,Entry long,2025-11-06 15:00,M1,6808.5,1,340425,212.5,0.06,0,312.5,0.09,-225,-0.07,9987.5,0.00,1 +194,Exit short,2025-11-06 17:00,M1,6823.75,1,340637.5,-550,-0.16,0,25,0.01,-737.5,-0.22,9437.5,0.00,1 +194,Entry short,2025-11-06 16:00,M1,6812.75,1,340637.5,-550,-0.16,0,25,0.01,-737.5,-0.22,9437.5,0.00,1 +195,Exit long,2025-11-06 18:00,M1,6829,1,341187.5,262.5,0.08,0,475,0.14,-50,-0.01,9700,0.00,1 +195,Entry long,2025-11-06 17:00,M1,6823.75,1,341187.5,262.5,0.08,0,475,0.14,-50,-0.01,9700,0.00,1 +196,Exit short,2025-11-06 19:00,M1,6828.5,1,341450,25,0.01,0,100,0.03,-250,-0.07,9725,0.00,1 +196,Entry short,2025-11-06 18:00,M1,6829,1,341450,25,0.01,0,100,0.03,-250,-0.07,9725,0.00,1 +197,Exit long,2025-11-06 20:00,M1,6836.25,1,341425,387.5,0.11,0,487.5,0.14,-25,-0.01,10112.5,0.00,1 +197,Entry long,2025-11-06 19:00,M1,6828.5,1,341425,387.5,0.11,0,487.5,0.14,-25,-0.01,10112.5,0.00,1 +198,Exit short,2025-11-06 21:00,M1,6832,1,341812.5,212.5,0.06,0,262.5,0.08,-362.5,-0.11,10325,0.00,1 +198,Entry short,2025-11-06 20:00,M1,6836.25,1,341812.5,212.5,0.06,0,262.5,0.08,-362.5,-0.11,10325,0.00,1 +199,Exit long,2025-11-06 22:00,M1,6788.5,1,341600,-2175,-0.64,0,112.5,0.03,-2200,-0.64,8150,0.00,1 +199,Entry long,2025-11-06 21:00,M1,6832,1,341600,-2175,-0.64,0,112.5,0.03,-2200,-0.64,8150,0.00,1 +200,Exit short,2025-11-06 23:00,M1,6756.25,1,339425,1612.5,0.48,0,1712.5,0.50,-612.5,-0.18,9762.5,0.00,1 +200,Entry short,2025-11-06 22:00,M1,6788.5,1,339425,1612.5,0.48,0,1712.5,0.50,-612.5,-0.18,9762.5,0.00,1 +201,Exit long,2025-11-07 00:00,M1,6738.75,1,337812.5,-875,-0.26,0,525,0.16,-975,-0.29,8887.5,0.00,1 +201,Entry long,2025-11-06 23:00,M1,6756.25,1,337812.5,-875,-0.26,0,525,0.16,-975,-0.29,8887.5,0.00,1 +202,Exit short,2025-11-07 01:00,M1,6757.75,1,336937.5,-950,-0.28,0,262.5,0.08,-1187.5,-0.35,7937.5,0.00,1 +202,Entry short,2025-11-07 00:00,M1,6738.75,1,336937.5,-950,-0.28,0,262.5,0.08,-1187.5,-0.35,7937.5,0.00,1 +203,Exit long,2025-11-07 02:00,M1,6762,1,337887.5,212.5,0.06,0,562.5,0.17,-987.5,-0.29,8150,0.00,1 +203,Entry long,2025-11-07 01:00,M1,6757.75,1,337887.5,212.5,0.06,0,562.5,0.17,-987.5,-0.29,8150,0.00,1 +204,Exit short,2025-11-07 03:00,M1,6777,1,338100,-750,-0.22,0,125,0.04,-1125,-0.33,7400,0.00,1 +204,Entry short,2025-11-07 02:00,M1,6762,1,338100,-750,-0.22,0,125,0.04,-1125,-0.33,7400,0.00,1 +205,Exit long,2025-11-07 04:00,M1,6750,1,338850,-1350,-0.40,0,187.5,0.06,-1725,-0.51,6050,0.00,1 +205,Entry long,2025-11-07 03:00,M1,6777,1,338850,-1350,-0.40,0,187.5,0.06,-1725,-0.51,6050,0.00,1 +206,Exit short,2025-11-07 05:00,M1,6764.75,1,337500,-737.5,-0.22,0,62.5,0.02,-875,-0.26,5312.5,0.00,1 +206,Entry short,2025-11-07 04:00,M1,6750,1,337500,-737.5,-0.22,0,62.5,0.02,-875,-0.26,5312.5,0.00,1 +207,Exit long,2025-11-07 07:00,M1,6765,1,338237.5,12.5,0.00,0,225,0.07,-437.5,-0.13,5325,0.00,1 +207,Entry long,2025-11-07 05:00,M1,6764.75,1,338237.5,12.5,0.00,0,225,0.07,-437.5,-0.13,5325,0.00,1 +208,Exit short,2025-11-07 08:00,M1,6766.5,1,338250,-75,-0.02,0,375,0.11,-350,-0.10,5250,0.00,1 +208,Entry short,2025-11-07 07:00,M1,6765,1,338250,-75,-0.02,0,375,0.11,-350,-0.10,5250,0.00,1 +209,Exit long,2025-11-07 08:00,,6766.5,1,338325,0,0.00,0,0,0.00,0,0.00,5250,0.00,0 +209,Entry long,2025-11-07 08:00,M1,6766.5,1,338325,0,0.00,0,0,0.00,0,0.00,5250,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/meta.json b/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/meta.json new file mode 100644 index 0000000..5031841 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/meta.json @@ -0,0 +1,16 @@ +{ + "title": "HM G2-36 session.ismarket", + "slug": "hm-g236-es1-60-thanksgiving", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T19:01:26.476Z", + "chart": { + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-11-23", + "to": "2025-12-05" + }, + "pine_sha256": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tv_trades_sha256": "52512b7df99b764b8f13f8101b7e37481bdad5dfbf86620868f11fe175efaf8f", + "tv_trades_rows": 384 +} diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/metrics.json b/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/metrics.json new file mode 100644 index 0000000..b4ab42b --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "hm-g236-es1-60-thanksgiving", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-11-23", + "to": "2025-12-05", + "deepBacktesting": true, + "trades": 192, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tvTradesCsvHash": "52512b7df99b764b8f13f8101b7e37481bdad5dfbf86620868f11fe175efaf8f", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74408", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "requestedRange": { + "from": 1763856000000, + "to": 1764892800000 + }, + "returnedRange": { + "from": 1763938800000, + "to": 1764892800000 + }, + "rangeProof": "covered", + "rawFrameSha256": "77632bdb23ad173909228b126aad2cf528d2b5fe17a0fe9a0e98f9ecb51daec6", + "decodedReportSha256": "b6a530f0c09cc07420fd224fe4942a0d05a680e51b2efe4cc069dd789b8b5a97", + "closedTrades": 192, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T19:01:26.475Z" +} diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/strategy.pine b/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/strategy.pine new file mode 100644 index 0000000..182c911 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/strategy.pine @@ -0,0 +1,17 @@ +// H-MEASURE (R5 wave H) row G2-36: which chart bars does TradingView flag +// session.ismarket on? process_orders_on_close=true: every bar reverses the +// position at its own close, so every trade's ENTRY is one chart bar (TradingView +// dates a process_orders_on_close fill at the bar's open) and the entry's Signal +// (its comment) is the flag TradingView evaluated on that bar: "M1" when +// session.ismarket is true, "M0" when it is false. +//@version=6 +strategy("HM G2-36 session.ismarket", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +flag = session.ismarket ? "M1" : "M0" +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/tv_trades.csv b/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/tv_trades.csv new file mode 100644 index 0000000..d4ed74d --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-es1-60-thanksgiving/tv_trades.csv @@ -0,0 +1,385 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-11-24 08:00,M1,6647.5,1,332662.5,-287.5,-0.09,0,0,0.00,-812.5,-0.24,-287.5,0.00,1 +1,Entry long,2025-11-24 07:00,M1,6653.25,1,332662.5,-287.5,-0.09,0,0,0.00,-812.5,-0.24,-287.5,0.00,1 +2,Exit short,2025-11-24 09:00,M1,6647,1,332375,25,0.01,0,275,0.08,-312.5,-0.09,-262.5,0.00,1 +2,Entry short,2025-11-24 08:00,M1,6647.5,1,332375,25,0.01,0,275,0.08,-312.5,-0.09,-262.5,0.00,1 +3,Exit long,2025-11-24 10:00,M1,6661,1,332350,700,0.21,0,712.5,0.21,-162.5,-0.05,437.5,0.00,1 +3,Entry long,2025-11-24 09:00,M1,6647,1,332350,700,0.21,0,712.5,0.21,-162.5,-0.05,437.5,0.00,1 +4,Exit short,2025-11-24 11:00,M1,6655.5,1,333050,275,0.08,0,350,0.11,-75,-0.02,712.5,0.00,1 +4,Entry short,2025-11-24 10:00,M1,6661,1,333050,275,0.08,0,350,0.11,-75,-0.02,712.5,0.00,1 +5,Exit long,2025-11-24 12:00,M1,6648.75,1,332775,-337.5,-0.10,0,62.5,0.02,-487.5,-0.15,375,0.00,1 +5,Entry long,2025-11-24 11:00,M1,6655.5,1,332775,-337.5,-0.10,0,62.5,0.02,-487.5,-0.15,375,0.00,1 +6,Exit short,2025-11-24 13:00,M1,6656.75,1,332437.5,-400,-0.12,0,62.5,0.02,-525,-0.16,-25,0.00,1 +6,Entry short,2025-11-24 12:00,M1,6648.75,1,332437.5,-400,-0.12,0,62.5,0.02,-525,-0.16,-25,0.00,1 +7,Exit long,2025-11-24 14:00,M1,6652.5,1,332837.5,-212.5,-0.06,0,12.5,0.00,-387.5,-0.12,-237.5,0.00,1 +7,Entry long,2025-11-24 13:00,M1,6656.75,1,332837.5,-212.5,-0.06,0,12.5,0.00,-387.5,-0.12,-237.5,0.00,1 +8,Exit short,2025-11-24 15:00,M1,6660.25,1,332625,-387.5,-0.12,0,275,0.08,-512.5,-0.15,-625,0.00,1 +8,Entry short,2025-11-24 14:00,M1,6652.5,1,332625,-387.5,-0.12,0,275,0.08,-512.5,-0.15,-625,0.00,1 +9,Exit long,2025-11-24 16:00,M1,6668,1,333012.5,387.5,0.12,0,462.5,0.14,-637.5,-0.19,-237.5,0.00,1 +9,Entry long,2025-11-24 15:00,M1,6660.25,1,333012.5,387.5,0.12,0,462.5,0.14,-637.5,-0.19,-237.5,0.00,1 +10,Exit short,2025-11-24 17:00,M1,6638,1,333400,1500,0.45,0,2150,0.64,-75,-0.02,1262.5,0.00,1 +10,Entry short,2025-11-24 16:00,M1,6668,1,333400,1500,0.45,0,2150,0.64,-75,-0.02,1262.5,0.00,1 +11,Exit long,2025-11-24 18:00,M1,6632.75,1,331900,-262.5,-0.08,0,200,0.06,-625,-0.19,1000,0.00,1 +11,Entry long,2025-11-24 17:00,M1,6638,1,331900,-262.5,-0.08,0,200,0.06,-625,-0.19,1000,0.00,1 +12,Exit short,2025-11-24 19:00,M1,6645.75,1,331637.5,-650,-0.20,0,325,0.10,-675,-0.20,350,0.00,1 +12,Entry short,2025-11-24 18:00,M1,6632.75,1,331637.5,-650,-0.20,0,325,0.10,-675,-0.20,350,0.00,1 +13,Exit long,2025-11-24 20:00,M1,6657.25,1,332287.5,575,0.17,0,650,0.20,-325,-0.10,925,0.00,1 +13,Entry long,2025-11-24 19:00,M1,6645.75,1,332287.5,575,0.17,0,650,0.20,-325,-0.10,925,0.00,1 +14,Exit short,2025-11-24 21:00,M1,6653,1,332862.5,212.5,0.06,0,275,0.08,-500,-0.15,1137.5,0.00,1 +14,Entry short,2025-11-24 20:00,M1,6657.25,1,332862.5,212.5,0.06,0,275,0.08,-500,-0.15,1137.5,0.00,1 +15,Exit long,2025-11-24 22:00,M1,6671.25,1,332650,912.5,0.27,0,1687.5,0.51,-312.5,-0.09,2050,0.00,1 +15,Entry long,2025-11-24 21:00,M1,6653,1,332650,912.5,0.27,0,1687.5,0.51,-312.5,-0.09,2050,0.00,1 +16,Exit short,2025-11-24 23:00,M1,6696.75,1,333562.5,-1275,-0.38,0,50,0.01,-1625,-0.49,775,0.00,1 +16,Entry short,2025-11-24 22:00,M1,6671.25,1,333562.5,-1275,-0.38,0,50,0.01,-1625,-0.49,775,0.00,1 +17,Exit long,2025-11-25 00:00,M1,6706.25,1,334837.5,475,0.14,0,975,0.29,0,0.00,1250,0.00,1 +17,Entry long,2025-11-24 23:00,M1,6696.75,1,334837.5,475,0.14,0,975,0.29,0,0.00,1250,0.00,1 +18,Exit short,2025-11-25 01:00,M1,6722,1,335312.5,-787.5,-0.23,0,300,0.09,-950,-0.28,462.5,0.00,1 +18,Entry short,2025-11-25 00:00,M1,6706.25,1,335312.5,-787.5,-0.23,0,300,0.09,-950,-0.28,462.5,0.00,1 +19,Exit long,2025-11-25 02:00,M1,6723.75,1,336100,87.5,0.03,0,350,0.10,-150,-0.04,550,0.00,1 +19,Entry long,2025-11-25 01:00,M1,6722,1,336100,87.5,0.03,0,350,0.10,-150,-0.04,550,0.00,1 +20,Exit short,2025-11-25 03:00,M1,6714.5,1,336187.5,462.5,0.14,0,687.5,0.20,-287.5,-0.09,1012.5,0.00,1 +20,Entry short,2025-11-25 02:00,M1,6723.75,1,336187.5,462.5,0.14,0,687.5,0.20,-287.5,-0.09,1012.5,0.00,1 +21,Exit long,2025-11-25 04:00,M1,6718.75,1,335725,212.5,0.06,0,862.5,0.26,0,0.00,1225,0.00,1 +21,Entry long,2025-11-25 03:00,M1,6714.5,1,335725,212.5,0.06,0,862.5,0.26,0,0.00,1225,0.00,1 +22,Exit short,2025-11-25 05:00,M1,6725,1,335937.5,-312.5,-0.09,0,150,0.04,-437.5,-0.13,912.5,0.00,1 +22,Entry short,2025-11-25 04:00,M1,6718.75,1,335937.5,-312.5,-0.09,0,150,0.04,-437.5,-0.13,912.5,0.00,1 +23,Exit long,2025-11-25 07:00,M1,6722.25,1,336250,-137.5,-0.04,0,162.5,0.05,-150,-0.04,775,0.00,1 +23,Entry long,2025-11-25 05:00,M1,6725,1,336250,-137.5,-0.04,0,162.5,0.05,-150,-0.04,775,0.00,1 +24,Exit short,2025-11-25 08:00,M1,6723.25,1,336112.5,-50,-0.01,0,325,0.10,-87.5,-0.03,725,0.00,1 +24,Entry short,2025-11-25 07:00,M1,6722.25,1,336112.5,-50,-0.01,0,325,0.10,-87.5,-0.03,725,0.00,1 +25,Exit long,2025-11-25 09:00,M1,6715.25,1,336162.5,-400,-0.12,0,37.5,0.01,-437.5,-0.13,325,0.00,1 +25,Entry long,2025-11-25 08:00,M1,6723.25,1,336162.5,-400,-0.12,0,37.5,0.01,-437.5,-0.13,325,0.00,1 +26,Exit short,2025-11-25 10:00,M1,6720.5,1,335762.5,-262.5,-0.08,0,12.5,0.00,-325,-0.10,62.5,0.00,1 +26,Entry short,2025-11-25 09:00,M1,6715.25,1,335762.5,-262.5,-0.08,0,12.5,0.00,-325,-0.10,62.5,0.00,1 +27,Exit long,2025-11-25 11:00,M1,6715,1,336025,-275,-0.08,0,75,0.02,-350,-0.10,-212.5,0.00,1 +27,Entry long,2025-11-25 10:00,M1,6720.5,1,336025,-275,-0.08,0,75,0.02,-350,-0.10,-212.5,0.00,1 +28,Exit short,2025-11-25 12:00,M1,6719.75,1,335750,-237.5,-0.07,0,12.5,0.00,-387.5,-0.12,-450,0.00,1 +28,Entry short,2025-11-25 11:00,M1,6715,1,335750,-237.5,-0.07,0,12.5,0.00,-387.5,-0.12,-450,0.00,1 +29,Exit long,2025-11-25 13:00,M1,6717,1,335987.5,-137.5,-0.04,0,200,0.06,-250,-0.07,-587.5,0.00,1 +29,Entry long,2025-11-25 12:00,M1,6719.75,1,335987.5,-137.5,-0.04,0,200,0.06,-250,-0.07,-587.5,0.00,1 +30,Exit short,2025-11-25 14:00,M1,6713.75,1,335850,162.5,0.05,0,237.5,0.07,-162.5,-0.05,-425,0.00,1 +30,Entry short,2025-11-25 13:00,M1,6717,1,335850,162.5,0.05,0,237.5,0.07,-162.5,-0.05,-425,0.00,1 +31,Exit long,2025-11-25 15:00,M1,6718,1,335687.5,212.5,0.06,0,387.5,0.12,-150,-0.04,-212.5,0.00,1 +31,Entry long,2025-11-25 14:00,M1,6713.75,1,335687.5,212.5,0.06,0,387.5,0.12,-150,-0.04,-212.5,0.00,1 +32,Exit short,2025-11-25 16:00,M1,6709.25,1,335900,437.5,0.13,0,562.5,0.17,-125,-0.04,225,0.00,1 +32,Entry short,2025-11-25 15:00,M1,6718,1,335900,437.5,0.13,0,562.5,0.17,-125,-0.04,225,0.00,1 +33,Exit long,2025-11-25 17:00,M1,6708,1,335462.5,-62.5,-0.02,0,325,0.10,-375,-0.11,162.5,0.00,1 +33,Entry long,2025-11-25 16:00,M1,6709.25,1,335462.5,-62.5,-0.02,0,325,0.10,-375,-0.11,162.5,0.00,1 +34,Exit short,2025-11-25 18:00,M1,6713,1,335400,-250,-0.07,0,250,0.07,-362.5,-0.11,-87.5,0.00,1 +34,Entry short,2025-11-25 17:00,M1,6708,1,335400,-250,-0.07,0,250,0.07,-362.5,-0.11,-87.5,0.00,1 +35,Exit long,2025-11-25 19:00,M1,6712,1,335650,-50,-0.01,0,87.5,0.03,-325,-0.10,-137.5,0.00,1 +35,Entry long,2025-11-25 18:00,M1,6713,1,335650,-50,-0.01,0,87.5,0.03,-325,-0.10,-137.5,0.00,1 +36,Exit short,2025-11-25 20:00,M1,6717.5,1,335600,-275,-0.08,0,50,0.01,-1025,-0.31,-412.5,0.00,1 +36,Entry short,2025-11-25 19:00,M1,6712,1,335600,-275,-0.08,0,50,0.01,-1025,-0.31,-412.5,0.00,1 +37,Exit long,2025-11-25 21:00,M1,6718,1,335875,25,0.01,0,650,0.19,-137.5,-0.04,-387.5,0.00,1 +37,Entry long,2025-11-25 20:00,M1,6717.5,1,335875,25,0.01,0,650,0.19,-137.5,-0.04,-387.5,0.00,1 +38,Exit short,2025-11-25 22:00,M1,6718.25,1,335900,-12.5,0.00,0,2175,0.65,-600,-0.18,-400,0.00,1 +38,Entry short,2025-11-25 21:00,M1,6718,1,335900,-12.5,0.00,0,2175,0.65,-600,-0.18,-400,0.00,1 +39,Exit long,2025-11-25 23:00,M1,6728.5,1,335912.5,512.5,0.15,0,1125,0.33,-1462.5,-0.44,112.5,0.00,1 +39,Entry long,2025-11-25 22:00,M1,6718.25,1,335912.5,512.5,0.15,0,1125,0.33,-1462.5,-0.44,112.5,0.00,1 +40,Exit short,2025-11-26 00:00,M1,6747.5,1,336425,-950,-0.28,0,500,0.15,-1062.5,-0.32,-837.5,0.00,1 +40,Entry short,2025-11-25 23:00,M1,6728.5,1,336425,-950,-0.28,0,500,0.15,-1062.5,-0.32,-837.5,0.00,1 +41,Exit long,2025-11-26 01:00,M1,6763.75,1,337375,812.5,0.24,0,1337.5,0.40,-12.5,0.00,-25,0.00,1 +41,Entry long,2025-11-26 00:00,M1,6747.5,1,337375,812.5,0.24,0,1337.5,0.40,-12.5,0.00,-25,0.00,1 +42,Exit short,2025-11-26 02:00,M1,6769,1,338187.5,-262.5,-0.08,0,50,0.01,-537.5,-0.16,-287.5,0.00,1 +42,Entry short,2025-11-26 01:00,M1,6763.75,1,338187.5,-262.5,-0.08,0,50,0.01,-537.5,-0.16,-287.5,0.00,1 +43,Exit long,2025-11-26 03:00,M1,6769.75,1,338450,37.5,0.01,0,125,0.04,-700,-0.21,-250,0.00,1 +43,Entry long,2025-11-26 02:00,M1,6769,1,338450,37.5,0.01,0,125,0.04,-700,-0.21,-250,0.00,1 +44,Exit short,2025-11-26 04:00,M1,6780.25,1,338487.5,-525,-0.16,0,12.5,0.00,-1137.5,-0.34,-775,0.00,1 +44,Entry short,2025-11-26 03:00,M1,6769.75,1,338487.5,-525,-0.16,0,12.5,0.00,-1137.5,-0.34,-775,0.00,1 +45,Exit long,2025-11-26 05:00,M1,6780.75,1,339012.5,25,0.01,0,200,0.06,-87.5,-0.03,-750,0.00,1 +45,Entry long,2025-11-26 04:00,M1,6780.25,1,339012.5,25,0.01,0,200,0.06,-87.5,-0.03,-750,0.00,1 +46,Exit short,2025-11-26 07:00,M1,6783.25,1,339037.5,-125,-0.04,0,125,0.04,-237.5,-0.07,-875,0.00,1 +46,Entry short,2025-11-26 05:00,M1,6780.75,1,339037.5,-125,-0.04,0,125,0.04,-237.5,-0.07,-875,0.00,1 +47,Exit long,2025-11-26 08:00,M1,6789.75,1,339162.5,325,0.10,0,375,0.11,-150,-0.04,-550,0.00,1 +47,Entry long,2025-11-26 07:00,M1,6783.25,1,339162.5,325,0.10,0,375,0.11,-150,-0.04,-550,0.00,1 +48,Exit short,2025-11-26 09:00,M1,6797.5,1,339487.5,-387.5,-0.11,0,100,0.03,-412.5,-0.12,-937.5,0.00,1 +48,Entry short,2025-11-26 08:00,M1,6789.75,1,339487.5,-387.5,-0.11,0,100,0.03,-412.5,-0.12,-937.5,0.00,1 +49,Exit long,2025-11-26 10:00,M1,6799,1,339875,75,0.02,0,100,0.03,-87.5,-0.03,-862.5,0.00,1 +49,Entry long,2025-11-26 09:00,M1,6797.5,1,339875,75,0.02,0,100,0.03,-87.5,-0.03,-862.5,0.00,1 +50,Exit short,2025-11-26 11:00,M1,6800,1,339950,-50,-0.01,0,75,0.02,-137.5,-0.04,-912.5,0.00,1 +50,Entry short,2025-11-26 10:00,M1,6799,1,339950,-50,-0.01,0,75,0.02,-137.5,-0.04,-912.5,0.00,1 +51,Exit long,2025-11-26 12:00,M1,6797.5,1,340000,-125,-0.04,0,50,0.01,-200,-0.06,-1037.5,0.00,1 +51,Entry long,2025-11-26 11:00,M1,6800,1,340000,-125,-0.04,0,50,0.01,-200,-0.06,-1037.5,0.00,1 +52,Exit short,2025-11-26 13:00,M1,6803,1,339875,-275,-0.08,0,12.5,0.00,-337.5,-0.10,-1312.5,0.00,1 +52,Entry short,2025-11-26 12:00,M1,6797.5,1,339875,-275,-0.08,0,12.5,0.00,-337.5,-0.10,-1312.5,0.00,1 +53,Exit long,2025-11-26 14:00,M1,6805,1,340150,100,0.03,0,212.5,0.06,-112.5,-0.03,-1212.5,0.00,1 +53,Entry long,2025-11-26 13:00,M1,6803,1,340150,100,0.03,0,212.5,0.06,-112.5,-0.03,-1212.5,0.00,1 +54,Exit short,2025-11-26 15:00,M1,6807.25,1,340250,-112.5,-0.03,0,12.5,0.00,-287.5,-0.08,-1325,0.00,1 +54,Entry short,2025-11-26 14:00,M1,6805,1,340250,-112.5,-0.03,0,12.5,0.00,-287.5,-0.08,-1325,0.00,1 +55,Exit long,2025-11-26 16:00,M1,6800.5,1,340362.5,-337.5,-0.10,0,87.5,0.03,-350,-0.10,-1662.5,0.00,1 +55,Entry long,2025-11-26 15:00,M1,6807.25,1,340362.5,-337.5,-0.10,0,87.5,0.03,-350,-0.10,-1662.5,0.00,1 +56,Exit short,2025-11-26 17:00,M1,6795.25,1,340025,262.5,0.08,0,362.5,0.11,-25,-0.01,-1400,0.00,1 +56,Entry short,2025-11-26 16:00,M1,6800.5,1,340025,262.5,0.08,0,362.5,0.11,-25,-0.01,-1400,0.00,1 +57,Exit long,2025-11-26 18:00,M1,6803.25,1,339762.5,400,0.12,0,450,0.13,0,0.00,-1000,0.00,1 +57,Entry long,2025-11-26 17:00,M1,6795.25,1,339762.5,400,0.12,0,450,0.13,0,0.00,-1000,0.00,1 +58,Exit short,2025-11-26 19:00,M1,6798,1,340162.5,262.5,0.08,0,325,0.10,-87.5,-0.03,-737.5,0.00,1 +58,Entry short,2025-11-26 18:00,M1,6803.25,1,340162.5,262.5,0.08,0,325,0.10,-87.5,-0.03,-737.5,0.00,1 +59,Exit long,2025-11-26 20:00,M1,6796.5,1,339900,-75,-0.02,0,62.5,0.02,-550,-0.16,-812.5,0.00,1 +59,Entry long,2025-11-26 19:00,M1,6798,1,339900,-75,-0.02,0,62.5,0.02,-550,-0.16,-812.5,0.00,1 +60,Exit short,2025-11-26 21:00,M1,6803.75,1,339825,-362.5,-0.11,0,87.5,0.03,-400,-0.12,-1175,0.00,1 +60,Entry short,2025-11-26 20:00,M1,6796.5,1,339825,-362.5,-0.11,0,87.5,0.03,-400,-0.12,-1175,0.00,1 +61,Exit long,2025-11-26 22:00,M1,6802,1,340187.5,-87.5,-0.03,0,1012.5,0.30,-312.5,-0.09,-1262.5,0.00,1 +61,Entry long,2025-11-26 21:00,M1,6803.75,1,340187.5,-87.5,-0.03,0,1012.5,0.30,-312.5,-0.09,-1262.5,0.00,1 +62,Exit short,2025-11-26 23:00,M1,6824.5,1,340100,-1125,-0.33,0,312.5,0.09,-1150,-0.34,-2387.5,0.00,1 +62,Entry short,2025-11-26 22:00,M1,6802,1,340100,-1125,-0.33,0,312.5,0.09,-1150,-0.34,-2387.5,0.00,1 +63,Exit long,2025-11-27 00:00,M1,6843,1,341225,925,0.27,0,1100,0.32,-37.5,-0.01,-1462.5,0.00,1 +63,Entry long,2025-11-26 23:00,M1,6824.5,1,341225,925,0.27,0,1100,0.32,-37.5,-0.01,-1462.5,0.00,1 +64,Exit short,2025-11-27 01:00,M1,6840.5,1,342150,125,0.04,0,475,0.14,-187.5,-0.05,-1337.5,0.00,1 +64,Entry short,2025-11-27 00:00,M1,6843,1,342150,125,0.04,0,475,0.14,-187.5,-0.05,-1337.5,0.00,1 +65,Exit long,2025-11-27 02:00,M1,6833,1,342025,-375,-0.11,0,225,0.07,-775,-0.23,-1712.5,0.00,1 +65,Entry long,2025-11-27 01:00,M1,6840.5,1,342025,-375,-0.11,0,225,0.07,-775,-0.23,-1712.5,0.00,1 +66,Exit short,2025-11-27 03:00,M1,6838,1,341650,-250,-0.07,0,125,0.04,-512.5,-0.15,-1962.5,0.00,1 +66,Entry short,2025-11-27 02:00,M1,6833,1,341650,-250,-0.07,0,125,0.04,-512.5,-0.15,-1962.5,0.00,1 +67,Exit long,2025-11-27 04:00,M1,6825.25,1,341900,-637.5,-0.19,0,362.5,0.11,-637.5,-0.19,-2600,0.00,1 +67,Entry long,2025-11-27 03:00,M1,6838,1,341900,-637.5,-0.19,0,362.5,0.11,-637.5,-0.19,-2600,0.00,1 +68,Exit short,2025-11-27 05:00,M1,6830.25,1,341262.5,-250,-0.07,0,12.5,0.00,-400,-0.12,-2850,0.00,1 +68,Entry short,2025-11-27 04:00,M1,6825.25,1,341262.5,-250,-0.07,0,12.5,0.00,-400,-0.12,-2850,0.00,1 +69,Exit long,2025-11-27 07:00,M1,6829.25,1,341512.5,-50,-0.01,0,162.5,0.05,-137.5,-0.04,-2900,0.00,1 +69,Entry long,2025-11-27 05:00,M1,6830.25,1,341512.5,-50,-0.01,0,162.5,0.05,-137.5,-0.04,-2900,0.00,1 +70,Exit short,2025-11-27 08:00,M1,6832.25,1,341462.5,-150,-0.04,0,50,0.01,-162.5,-0.05,-3050,0.00,1 +70,Entry short,2025-11-27 07:00,M1,6829.25,1,341462.5,-150,-0.04,0,50,0.01,-162.5,-0.05,-3050,0.00,1 +71,Exit long,2025-11-27 09:00,M1,6832.75,1,341612.5,25,0.01,0,75,0.02,-225,-0.07,-3025,0.00,1 +71,Entry long,2025-11-27 08:00,M1,6832.25,1,341612.5,25,0.01,0,75,0.02,-225,-0.07,-3025,0.00,1 +72,Exit short,2025-11-27 10:00,M1,6829,1,341637.5,187.5,0.05,0,212.5,0.06,-50,-0.01,-2837.5,0.00,1 +72,Entry short,2025-11-27 09:00,M1,6832.75,1,341637.5,187.5,0.05,0,212.5,0.06,-50,-0.01,-2837.5,0.00,1 +73,Exit long,2025-11-27 11:00,M1,6828.25,1,341450,-37.5,-0.01,0,37.5,0.01,-125,-0.04,-2875,0.00,1 +73,Entry long,2025-11-27 10:00,M1,6829,1,341450,-37.5,-0.01,0,37.5,0.01,-125,-0.04,-2875,0.00,1 +74,Exit short,2025-11-27 12:00,M1,6830,1,341412.5,-87.5,-0.03,0,50,0.01,-125,-0.04,-2962.5,0.00,1 +74,Entry short,2025-11-27 11:00,M1,6828.25,1,341412.5,-87.5,-0.03,0,50,0.01,-125,-0.04,-2962.5,0.00,1 +75,Exit long,2025-11-27 13:00,M1,6830.75,1,341500,37.5,0.01,0,162.5,0.05,0,0.00,-2925,0.00,1 +75,Entry long,2025-11-27 12:00,M1,6830,1,341500,37.5,0.01,0,162.5,0.05,0,0.00,-2925,0.00,1 +76,Exit short,2025-11-27 14:00,M1,6825.5,1,341537.5,262.5,0.08,0,287.5,0.08,-25,-0.01,-2662.5,0.00,1 +76,Entry short,2025-11-27 13:00,M1,6830.75,1,341537.5,262.5,0.08,0,287.5,0.08,-25,-0.01,-2662.5,0.00,1 +77,Exit long,2025-11-27 15:00,M1,6829.75,1,341275,212.5,0.06,0,237.5,0.07,-25,-0.01,-2450,0.00,1 +77,Entry long,2025-11-27 14:00,M1,6825.5,1,341275,212.5,0.06,0,237.5,0.07,-25,-0.01,-2450,0.00,1 +78,Exit short,2025-11-27 16:00,M1,6826.75,1,341487.5,150,0.04,0,275,0.08,-150,-0.04,-2300,0.00,1 +78,Entry short,2025-11-27 15:00,M1,6829.75,1,341487.5,150,0.04,0,275,0.08,-150,-0.04,-2300,0.00,1 +79,Exit long,2025-11-27 17:00,M1,6825.25,1,341337.5,-75,-0.02,0,237.5,0.07,-87.5,-0.03,-2375,0.00,1 +79,Entry long,2025-11-27 16:00,M1,6826.75,1,341337.5,-75,-0.02,0,237.5,0.07,-87.5,-0.03,-2375,0.00,1 +80,Exit short,2025-11-27 18:00,M1,6828.5,1,341262.5,-162.5,-0.05,0,50,0.01,-175,-0.05,-2537.5,0.00,1 +80,Entry short,2025-11-27 17:00,M1,6825.25,1,341262.5,-162.5,-0.05,0,50,0.01,-175,-0.05,-2537.5,0.00,1 +81,Exit long,2025-11-27 19:00,M1,6827.5,1,341425,-50,-0.01,0,50,0.01,-162.5,-0.05,-2587.5,0.00,1 +81,Entry long,2025-11-27 18:00,M1,6828.5,1,341425,-50,-0.01,0,50,0.01,-162.5,-0.05,-2587.5,0.00,1 +82,Exit short,2025-11-27 20:00,M1,6827,1,341375,25,0.01,0,50,0.01,-137.5,-0.04,-2562.5,0.00,1 +82,Entry short,2025-11-27 19:00,M1,6827.5,1,341375,25,0.01,0,50,0.01,-137.5,-0.04,-2562.5,0.00,1 +83,Exit long,2025-11-27 21:00,M1,6828,1,341350,50,0.01,0,150,0.04,-112.5,-0.03,-2512.5,0.00,1 +83,Entry long,2025-11-27 20:00,M1,6827,1,341350,50,0.01,0,150,0.04,-112.5,-0.03,-2512.5,0.00,1 +84,Exit short,2025-11-27 22:00,M1,6827.5,1,341400,25,0.01,0,112.5,0.03,-187.5,-0.05,-2487.5,0.00,1 +84,Entry short,2025-11-27 21:00,M1,6828,1,341400,25,0.01,0,112.5,0.03,-187.5,-0.05,-2487.5,0.00,1 +85,Exit long,2025-11-27 23:00,M1,6827,1,341375,-25,-0.01,0,75,0.02,-125,-0.04,-2512.5,0.00,1 +85,Entry long,2025-11-27 22:00,M1,6827.5,1,341375,-25,-0.01,0,75,0.02,-125,-0.04,-2512.5,0.00,1 +86,Exit short,2025-11-28 00:00,M1,6827,1,341350,0,0.00,0,100,0.03,-87.5,-0.03,-2512.5,0.00,1 +86,Entry short,2025-11-27 23:00,M1,6827,1,341350,0,0.00,0,100,0.03,-87.5,-0.03,-2512.5,0.00,1 +87,Exit long,2025-11-28 01:00,M1,6828,1,341350,50,0.01,0,75,0.02,-75,-0.02,-2462.5,0.00,1 +87,Entry long,2025-11-28 00:00,M1,6827,1,341350,50,0.01,0,75,0.02,-75,-0.02,-2462.5,0.00,1 +88,Exit short,2025-11-28 07:00,M1,6836.5,1,341400,-425,-0.12,0,0,0.00,-437.5,-0.13,-2887.5,0.00,1 +88,Entry short,2025-11-28 01:00,M1,6828,1,341400,-425,-0.12,0,0,0.00,-437.5,-0.13,-2887.5,0.00,1 +89,Exit long,2025-11-28 08:00,M1,6836.25,1,341825,-12.5,0.00,0,137.5,0.04,-75,-0.02,-2900,0.00,1 +89,Entry long,2025-11-28 07:00,M1,6836.5,1,341825,-12.5,0.00,0,137.5,0.04,-75,-0.02,-2900,0.00,1 +90,Exit short,2025-11-28 09:00,M1,6835.25,1,341812.5,50,0.01,0,87.5,0.03,-250,-0.07,-2850,0.00,1 +90,Entry short,2025-11-28 08:00,M1,6836.25,1,341812.5,50,0.01,0,87.5,0.03,-250,-0.07,-2850,0.00,1 +91,Exit long,2025-11-28 10:00,M1,6835,1,341762.5,-12.5,0.00,0,100,0.03,-150,-0.04,-2862.5,0.00,1 +91,Entry long,2025-11-28 09:00,M1,6835.25,1,341762.5,-12.5,0.00,0,100,0.03,-150,-0.04,-2862.5,0.00,1 +92,Exit short,2025-11-28 21:00,M1,6837.25,1,341750,-112.5,-0.03,0,0,0.00,-475,-0.14,-2975,0.00,1 +92,Entry short,2025-11-28 10:00,M1,6835,1,341750,-112.5,-0.03,0,0,0.00,-475,-0.14,-2975,0.00,1 +93,Exit long,2025-11-28 22:00,M1,6838.5,1,341862.5,62.5,0.02,0,350,0.10,-300,-0.09,-2912.5,0.00,1 +93,Entry long,2025-11-28 21:00,M1,6837.25,1,341862.5,62.5,0.02,0,350,0.10,-300,-0.09,-2912.5,0.00,1 +94,Exit short,2025-11-28 23:00,M1,6851,1,341925,-625,-0.18,0,100,0.03,-700,-0.20,-3537.5,0.00,1 +94,Entry short,2025-11-28 22:00,M1,6838.5,1,341925,-625,-0.18,0,100,0.03,-700,-0.20,-3537.5,0.00,1 +95,Exit long,2025-11-29 00:00,M1,6854.25,1,342550,162.5,0.05,0,250,0.07,-425,-0.12,-3375,0.00,1 +95,Entry long,2025-11-28 23:00,M1,6851,1,342550,162.5,0.05,0,250,0.07,-425,-0.12,-3375,0.00,1 +96,Exit short,2025-11-29 01:00,M1,6860.5,1,342712.5,-312.5,-0.09,0,450,0.13,-475,-0.14,-3687.5,0.00,1 +96,Entry short,2025-11-29 00:00,M1,6854.25,1,342712.5,-312.5,-0.09,0,450,0.13,-475,-0.14,-3687.5,0.00,1 +97,Exit long,2025-11-29 02:00,M1,6857.25,1,343025,-162.5,-0.05,0,150,0.04,-262.5,-0.08,-3850,0.00,1 +97,Entry long,2025-11-29 01:00,M1,6860.5,1,343025,-162.5,-0.05,0,150,0.04,-262.5,-0.08,-3850,0.00,1 +98,Exit short,2025-12-01 07:00,M1,6853,1,342862.5,212.5,0.06,0,437.5,0.13,-362.5,-0.11,-3637.5,0.00,1 +98,Entry short,2025-11-29 02:00,M1,6857.25,1,342862.5,212.5,0.06,0,437.5,0.13,-362.5,-0.11,-3637.5,0.00,1 +99,Exit long,2025-12-01 08:00,M1,6828.75,1,342650,-1212.5,-0.35,0,75,0.02,-1337.5,-0.39,-4850,0.00,1 +99,Entry long,2025-12-01 07:00,M1,6853,1,342650,-1212.5,-0.35,0,75,0.02,-1337.5,-0.39,-4850,0.00,1 +100,Exit short,2025-12-01 09:00,M1,6825.25,1,341437.5,175,0.05,0,575,0.17,-112.5,-0.03,-4675,0.00,1 +100,Entry short,2025-12-01 08:00,M1,6828.75,1,341437.5,175,0.05,0,575,0.17,-112.5,-0.03,-4675,0.00,1 +101,Exit long,2025-12-01 10:00,M1,6819.75,1,341262.5,-275,-0.08,0,87.5,0.03,-400,-0.12,-4950,0.00,1 +101,Entry long,2025-12-01 09:00,M1,6825.25,1,341262.5,-275,-0.08,0,87.5,0.03,-400,-0.12,-4950,0.00,1 +102,Exit short,2025-12-01 11:00,M1,6814.75,1,340987.5,250,0.07,0,412.5,0.12,0,0.00,-4700,0.00,1 +102,Entry short,2025-12-01 10:00,M1,6819.75,1,340987.5,250,0.07,0,412.5,0.12,0,0.00,-4700,0.00,1 +103,Exit long,2025-12-01 12:00,M1,6807.75,1,340737.5,-350,-0.10,0,50,0.01,-350,-0.10,-5050,0.00,1 +103,Entry long,2025-12-01 11:00,M1,6814.75,1,340737.5,-350,-0.10,0,50,0.01,-350,-0.10,-5050,0.00,1 +104,Exit short,2025-12-01 13:00,M1,6811.75,1,340387.5,-200,-0.06,0,287.5,0.08,-237.5,-0.07,-5250,0.00,1 +104,Entry short,2025-12-01 12:00,M1,6807.75,1,340387.5,-200,-0.06,0,287.5,0.08,-237.5,-0.07,-5250,0.00,1 +105,Exit long,2025-12-01 14:00,M1,6815.25,1,340587.5,175,0.05,0,187.5,0.06,-175,-0.05,-5075,0.00,1 +105,Entry long,2025-12-01 13:00,M1,6811.75,1,340587.5,175,0.05,0,187.5,0.06,-175,-0.05,-5075,0.00,1 +106,Exit short,2025-12-01 15:00,M1,6816,1,340762.5,-37.5,-0.01,0,325,0.10,-112.5,-0.03,-5112.5,0.00,1 +106,Entry short,2025-12-01 14:00,M1,6815.25,1,340762.5,-37.5,-0.01,0,325,0.10,-112.5,-0.03,-5112.5,0.00,1 +107,Exit long,2025-12-01 16:00,M1,6823,1,340800,350,0.10,0,575,0.17,-187.5,-0.06,-4762.5,0.00,1 +107,Entry long,2025-12-01 15:00,M1,6816,1,340800,350,0.10,0,575,0.17,-187.5,-0.06,-4762.5,0.00,1 +108,Exit short,2025-12-01 17:00,M1,6816.25,1,341150,337.5,0.10,0,400,0.12,-337.5,-0.10,-4425,0.00,1 +108,Entry short,2025-12-01 16:00,M1,6823,1,341150,337.5,0.10,0,400,0.12,-337.5,-0.10,-4425,0.00,1 +109,Exit long,2025-12-01 18:00,M1,6820.5,1,340812.5,212.5,0.06,0,475,0.14,0,0.00,-4212.5,0.00,1 +109,Entry long,2025-12-01 17:00,M1,6816.25,1,340812.5,212.5,0.06,0,475,0.14,0,0.00,-4212.5,0.00,1 +110,Exit short,2025-12-01 19:00,M1,6819.5,1,341025,50,0.01,0,237.5,0.07,-62.5,-0.02,-4162.5,0.00,1 +110,Entry short,2025-12-01 18:00,M1,6820.5,1,341025,50,0.01,0,237.5,0.07,-62.5,-0.02,-4162.5,0.00,1 +111,Exit long,2025-12-01 20:00,M1,6808.75,1,340975,-537.5,-0.16,0,87.5,0.03,-725,-0.21,-4700,0.00,1 +111,Entry long,2025-12-01 19:00,M1,6819.5,1,340975,-537.5,-0.16,0,87.5,0.03,-725,-0.21,-4700,0.00,1 +112,Exit short,2025-12-01 21:00,M1,6817.25,1,340437.5,-425,-0.12,0,87.5,0.03,-475,-0.14,-5125,0.00,1 +112,Entry short,2025-12-01 20:00,M1,6808.75,1,340437.5,-425,-0.12,0,87.5,0.03,-475,-0.14,-5125,0.00,1 +113,Exit long,2025-12-01 22:00,M1,6839.75,1,340862.5,1125,0.33,0,1350,0.40,-275,-0.08,-4000,0.00,1 +113,Entry long,2025-12-01 21:00,M1,6817.25,1,340862.5,1125,0.33,0,1350,0.40,-275,-0.08,-4000,0.00,1 +114,Exit short,2025-12-01 23:00,M1,6842.25,1,341987.5,-125,-0.04,0,1300,0.38,-212.5,-0.06,-4125,0.00,1 +114,Entry short,2025-12-01 22:00,M1,6839.75,1,341987.5,-125,-0.04,0,1300,0.38,-212.5,-0.06,-4125,0.00,1 +115,Exit long,2025-12-02 00:00,M1,6845,1,342112.5,137.5,0.04,0,387.5,0.11,-775,-0.23,-3987.5,0.00,1 +115,Entry long,2025-12-01 23:00,M1,6842.25,1,342112.5,137.5,0.04,0,387.5,0.11,-775,-0.23,-3987.5,0.00,1 +116,Exit short,2025-12-02 01:00,M1,6846,1,342250,-50,-0.01,0,325,0.09,-425,-0.12,-4037.5,0.00,1 +116,Entry short,2025-12-02 00:00,M1,6845,1,342250,-50,-0.01,0,325,0.09,-425,-0.12,-4037.5,0.00,1 +117,Exit long,2025-12-02 02:00,M1,6853.75,1,342300,387.5,0.11,0,487.5,0.14,-37.5,-0.01,-3650,0.00,1 +117,Entry long,2025-12-02 01:00,M1,6846,1,342300,387.5,0.11,0,487.5,0.14,-37.5,-0.01,-3650,0.00,1 +118,Exit short,2025-12-02 03:00,M1,6827.75,1,342687.5,1300,0.38,0,1500,0.44,-25,-0.01,-2350,0.00,1 +118,Entry short,2025-12-02 02:00,M1,6853.75,1,342687.5,1300,0.38,0,1500,0.44,-25,-0.01,-2350,0.00,1 +119,Exit long,2025-12-02 04:00,M1,6829,1,341387.5,62.5,0.02,0,425,0.12,-425,-0.12,-2287.5,0.00,1 +119,Entry long,2025-12-02 03:00,M1,6827.75,1,341387.5,62.5,0.02,0,425,0.12,-425,-0.12,-2287.5,0.00,1 +120,Exit short,2025-12-02 05:00,M1,6826.75,1,341450,112.5,0.03,0,212.5,0.06,-50,-0.01,-2175,0.00,1 +120,Entry short,2025-12-02 04:00,M1,6829,1,341450,112.5,0.03,0,212.5,0.06,-50,-0.01,-2175,0.00,1 +121,Exit long,2025-12-02 07:00,M1,6825,1,341337.5,-87.5,-0.03,0,225,0.07,-237.5,-0.07,-2262.5,0.00,1 +121,Entry long,2025-12-02 05:00,M1,6826.75,1,341337.5,-87.5,-0.03,0,225,0.07,-237.5,-0.07,-2262.5,0.00,1 +122,Exit short,2025-12-02 08:00,M1,6826.5,1,341250,-75,-0.02,0,150,0.04,-200,-0.06,-2337.5,0.00,1 +122,Entry short,2025-12-02 07:00,M1,6825,1,341250,-75,-0.02,0,150,0.04,-200,-0.06,-2337.5,0.00,1 +123,Exit long,2025-12-02 09:00,M1,6827.25,1,341325,37.5,0.01,0,337.5,0.10,-75,-0.02,-2300,0.00,1 +123,Entry long,2025-12-02 08:00,M1,6826.5,1,341325,37.5,0.01,0,337.5,0.10,-75,-0.02,-2300,0.00,1 +124,Exit short,2025-12-02 10:00,M1,6829.25,1,341362.5,-100,-0.03,0,212.5,0.06,-187.5,-0.05,-2400,0.00,1 +124,Entry short,2025-12-02 09:00,M1,6827.25,1,341362.5,-100,-0.03,0,212.5,0.06,-187.5,-0.05,-2400,0.00,1 +125,Exit long,2025-12-02 11:00,M1,6824.25,1,341462.5,-250,-0.07,0,12.5,0.00,-700,-0.21,-2650,0.00,1 +125,Entry long,2025-12-02 10:00,M1,6829.25,1,341462.5,-250,-0.07,0,12.5,0.00,-700,-0.21,-2650,0.00,1 +126,Exit short,2025-12-02 12:00,M1,6820.75,1,341212.5,175,0.05,0,225,0.07,-75,-0.02,-2475,0.00,1 +126,Entry short,2025-12-02 11:00,M1,6824.25,1,341212.5,175,0.05,0,225,0.07,-75,-0.02,-2475,0.00,1 +127,Exit long,2025-12-02 13:00,M1,6820.75,1,341037.5,0,0.00,0,112.5,0.03,-100,-0.03,-2475,0.00,1 +127,Entry long,2025-12-02 12:00,M1,6820.75,1,341037.5,0,0.00,0,112.5,0.03,-100,-0.03,-2475,0.00,1 +128,Exit short,2025-12-02 14:00,M1,6821,1,341037.5,-12.5,0.00,0,325,0.10,-162.5,-0.05,-2487.5,0.00,1 +128,Entry short,2025-12-02 13:00,M1,6820.75,1,341037.5,-12.5,0.00,0,325,0.10,-162.5,-0.05,-2487.5,0.00,1 +129,Exit long,2025-12-02 15:00,M1,6819.25,1,341050,-87.5,-0.03,0,200,0.06,-175,-0.05,-2575,0.00,1 +129,Entry long,2025-12-02 14:00,M1,6821,1,341050,-87.5,-0.03,0,200,0.06,-175,-0.05,-2575,0.00,1 +130,Exit short,2025-12-02 16:00,M1,6829.5,1,340962.5,-512.5,-0.15,0,350,0.10,-575,-0.17,-3087.5,0.00,1 +130,Entry short,2025-12-02 15:00,M1,6819.25,1,340962.5,-512.5,-0.15,0,350,0.10,-575,-0.17,-3087.5,0.00,1 +131,Exit long,2025-12-02 17:00,M1,6834.5,1,341475,250,0.07,0,375,0.11,-12.5,0.00,-2837.5,0.00,1 +131,Entry long,2025-12-02 16:00,M1,6829.5,1,341475,250,0.07,0,375,0.11,-12.5,0.00,-2837.5,0.00,1 +132,Exit short,2025-12-02 18:00,M1,6845,1,341725,-525,-0.15,0,62.5,0.02,-612.5,-0.18,-3362.5,0.00,1 +132,Entry short,2025-12-02 17:00,M1,6834.5,1,341725,-525,-0.15,0,62.5,0.02,-612.5,-0.18,-3362.5,0.00,1 +133,Exit long,2025-12-02 19:00,M1,6843.5,1,342250,-75,-0.02,0,200,0.06,-125,-0.04,-3437.5,0.00,1 +133,Entry long,2025-12-02 18:00,M1,6845,1,342250,-75,-0.02,0,200,0.06,-125,-0.04,-3437.5,0.00,1 +134,Exit short,2025-12-02 20:00,M1,6845.5,1,342175,-100,-0.03,0,325,0.09,-112.5,-0.03,-3537.5,0.00,1 +134,Entry short,2025-12-02 19:00,M1,6843.5,1,342175,-100,-0.03,0,325,0.09,-112.5,-0.03,-3537.5,0.00,1 +135,Exit long,2025-12-02 21:00,M1,6848.5,1,342275,150,0.04,0,150,0.04,-162.5,-0.05,-3387.5,0.00,1 +135,Entry long,2025-12-02 20:00,M1,6845.5,1,342275,150,0.04,0,150,0.04,-162.5,-0.05,-3387.5,0.00,1 +136,Exit short,2025-12-02 22:00,M1,6848.25,1,342425,12.5,0.00,0,437.5,0.13,-312.5,-0.09,-3375,0.00,1 +136,Entry short,2025-12-02 21:00,M1,6848.5,1,342425,12.5,0.00,0,437.5,0.13,-312.5,-0.09,-3375,0.00,1 +137,Exit long,2025-12-02 23:00,M1,6860.25,1,342412.5,600,0.18,0,687.5,0.20,-750,-0.22,-2775,0.00,1 +137,Entry long,2025-12-02 22:00,M1,6848.25,1,342412.5,600,0.18,0,687.5,0.20,-750,-0.22,-2775,0.00,1 +138,Exit short,2025-12-03 00:00,M1,6830.5,1,343012.5,1487.5,0.43,0,2112.5,0.62,-162.5,-0.05,-1287.5,0.00,1 +138,Entry short,2025-12-02 23:00,M1,6860.25,1,343012.5,1487.5,0.43,0,2112.5,0.62,-162.5,-0.05,-1287.5,0.00,1 +139,Exit long,2025-12-03 01:00,M1,6826.25,1,341525,-212.5,-0.06,0,1137.5,0.33,-225,-0.07,-1500,0.00,1 +139,Entry long,2025-12-03 00:00,M1,6830.5,1,341525,-212.5,-0.06,0,1137.5,0.33,-225,-0.07,-1500,0.00,1 +140,Exit short,2025-12-03 02:00,M1,6835.75,1,341312.5,-475,-0.14,0,100,0.03,-725,-0.21,-1975,0.00,1 +140,Entry short,2025-12-03 01:00,M1,6826.25,1,341312.5,-475,-0.14,0,100,0.03,-725,-0.21,-1975,0.00,1 +141,Exit long,2025-12-03 03:00,M1,6848,1,341787.5,612.5,0.18,0,750,0.22,-175,-0.05,-1362.5,0.00,1 +141,Entry long,2025-12-03 02:00,M1,6835.75,1,341787.5,612.5,0.18,0,750,0.22,-175,-0.05,-1362.5,0.00,1 +142,Exit short,2025-12-03 04:00,M1,6839.25,1,342400,437.5,0.13,0,500,0.15,-275,-0.08,-925,0.00,1 +142,Entry short,2025-12-03 03:00,M1,6848,1,342400,437.5,0.13,0,500,0.15,-275,-0.08,-925,0.00,1 +143,Exit long,2025-12-03 05:00,M1,6842.75,1,341962.5,175,0.05,0,187.5,0.05,-62.5,-0.02,-750,0.00,1 +143,Entry long,2025-12-03 04:00,M1,6839.25,1,341962.5,175,0.05,0,187.5,0.05,-62.5,-0.02,-750,0.00,1 +144,Exit short,2025-12-03 07:00,M1,6845.75,1,342137.5,-150,-0.04,0,62.5,0.02,-250,-0.07,-900,0.00,1 +144,Entry short,2025-12-03 05:00,M1,6842.75,1,342137.5,-150,-0.04,0,62.5,0.02,-250,-0.07,-900,0.00,1 +145,Exit long,2025-12-03 08:00,M1,6848.5,1,342287.5,137.5,0.04,0,250,0.07,-425,-0.12,-762.5,0.00,1 +145,Entry long,2025-12-03 07:00,M1,6845.75,1,342287.5,137.5,0.04,0,250,0.07,-425,-0.12,-762.5,0.00,1 +146,Exit short,2025-12-03 09:00,M1,6849.75,1,342425,-62.5,-0.02,0,50,0.01,-162.5,-0.05,-825,0.00,1 +146,Entry short,2025-12-03 08:00,M1,6848.5,1,342425,-62.5,-0.02,0,50,0.01,-162.5,-0.05,-825,0.00,1 +147,Exit long,2025-12-03 10:00,M1,6852,1,342487.5,112.5,0.03,0,300,0.09,-50,-0.01,-712.5,0.00,1 +147,Entry long,2025-12-03 09:00,M1,6849.75,1,342487.5,112.5,0.03,0,300,0.09,-50,-0.01,-712.5,0.00,1 +148,Exit short,2025-12-03 11:00,M1,6855.75,1,342600,-187.5,-0.05,0,112.5,0.03,-250,-0.07,-900,0.00,1 +148,Entry short,2025-12-03 10:00,M1,6852,1,342600,-187.5,-0.05,0,112.5,0.03,-250,-0.07,-900,0.00,1 +149,Exit long,2025-12-03 12:00,M1,6854.5,1,342787.5,-62.5,-0.02,0,50,0.01,-87.5,-0.03,-962.5,0.00,1 +149,Entry long,2025-12-03 11:00,M1,6855.75,1,342787.5,-62.5,-0.02,0,50,0.01,-87.5,-0.03,-962.5,0.00,1 +150,Exit short,2025-12-03 13:00,M1,6853.5,1,342725,50,0.01,0,87.5,0.03,-162.5,-0.05,-912.5,0.00,1 +150,Entry short,2025-12-03 12:00,M1,6854.5,1,342725,50,0.01,0,87.5,0.03,-162.5,-0.05,-912.5,0.00,1 +151,Exit long,2025-12-03 14:00,M1,6853.25,1,342675,-12.5,0.00,0,137.5,0.04,-212.5,-0.06,-925,0.00,1 +151,Entry long,2025-12-03 13:00,M1,6853.5,1,342675,-12.5,0.00,0,137.5,0.04,-212.5,-0.06,-925,0.00,1 +152,Exit short,2025-12-03 15:00,M1,6852.5,1,342662.5,37.5,0.01,0,150,0.04,-187.5,-0.05,-887.5,0.00,1 +152,Entry short,2025-12-03 14:00,M1,6853.25,1,342662.5,37.5,0.01,0,150,0.04,-187.5,-0.05,-887.5,0.00,1 +153,Exit long,2025-12-03 16:00,M1,6855.25,1,342625,137.5,0.04,0,175,0.05,-337.5,-0.10,-750,0.00,1 +153,Entry long,2025-12-03 15:00,M1,6852.5,1,342625,137.5,0.04,0,175,0.05,-337.5,-0.10,-750,0.00,1 +154,Exit short,2025-12-03 17:00,M1,6852,1,342762.5,162.5,0.05,0,412.5,0.12,-12.5,0.00,-587.5,0.00,1 +154,Entry short,2025-12-03 16:00,M1,6855.25,1,342762.5,162.5,0.05,0,412.5,0.12,-12.5,0.00,-587.5,0.00,1 +155,Exit long,2025-12-03 18:00,M1,6849.75,1,342600,-112.5,-0.03,0,125,0.04,-275,-0.08,-700,0.00,1 +155,Entry long,2025-12-03 17:00,M1,6852,1,342600,-112.5,-0.03,0,125,0.04,-275,-0.08,-700,0.00,1 +156,Exit short,2025-12-03 19:00,M1,6850.5,1,342487.5,-37.5,-0.01,0,137.5,0.04,-200,-0.06,-737.5,0.00,1 +156,Entry short,2025-12-03 18:00,M1,6849.75,1,342487.5,-37.5,-0.01,0,137.5,0.04,-200,-0.06,-737.5,0.00,1 +157,Exit long,2025-12-03 20:00,M1,6858,1,342525,375,0.11,0,500,0.15,-200,-0.06,-362.5,0.00,1 +157,Entry long,2025-12-03 19:00,M1,6850.5,1,342525,375,0.11,0,500,0.15,-200,-0.06,-362.5,0.00,1 +158,Exit short,2025-12-03 21:00,M1,6855.5,1,342900,125,0.04,0,200,0.06,-212.5,-0.06,-237.5,0.00,1 +158,Entry short,2025-12-03 20:00,M1,6858,1,342900,125,0.04,0,200,0.06,-212.5,-0.06,-237.5,0.00,1 +159,Exit long,2025-12-03 22:00,M1,6832.75,1,342775,-1137.5,-0.33,0,50,0.01,-1900,-0.55,-1375,0.00,1 +159,Entry long,2025-12-03 21:00,M1,6855.5,1,342775,-1137.5,-0.33,0,50,0.01,-1900,-0.55,-1375,0.00,1 +160,Exit short,2025-12-03 23:00,M1,6847,1,341637.5,-712.5,-0.21,0,87.5,0.03,-1037.5,-0.30,-2087.5,0.00,1 +160,Entry short,2025-12-03 22:00,M1,6832.75,1,341637.5,-712.5,-0.21,0,87.5,0.03,-1037.5,-0.30,-2087.5,0.00,1 +161,Exit long,2025-12-04 00:00,M1,6845.75,1,342350,-62.5,-0.02,0,625,0.18,-350,-0.10,-2150,0.00,1 +161,Entry long,2025-12-03 23:00,M1,6847,1,342350,-62.5,-0.02,0,625,0.18,-350,-0.10,-2150,0.00,1 +162,Exit short,2025-12-04 01:00,M1,6863,1,342287.5,-862.5,-0.25,0,50,0.01,-962.5,-0.28,-3012.5,0.00,1 +162,Entry short,2025-12-04 00:00,M1,6845.75,1,342287.5,-862.5,-0.25,0,50,0.01,-962.5,-0.28,-3012.5,0.00,1 +163,Exit long,2025-12-04 02:00,M1,6863,1,343150,0,0.00,0,312.5,0.09,-212.5,-0.06,-3012.5,0.00,1 +163,Entry long,2025-12-04 01:00,M1,6863,1,343150,0,0.00,0,312.5,0.09,-212.5,-0.06,-3012.5,0.00,1 +164,Exit short,2025-12-04 03:00,M1,6870.25,1,343150,-362.5,-0.11,0,37.5,0.01,-437.5,-0.13,-3375,0.00,1 +164,Entry short,2025-12-04 02:00,M1,6863,1,343150,-362.5,-0.11,0,37.5,0.01,-437.5,-0.13,-3375,0.00,1 +165,Exit long,2025-12-04 04:00,M1,6862.5,1,343512.5,-387.5,-0.11,0,150,0.04,-550,-0.16,-3762.5,0.00,1 +165,Entry long,2025-12-04 03:00,M1,6870.25,1,343512.5,-387.5,-0.11,0,150,0.04,-550,-0.16,-3762.5,0.00,1 +166,Exit short,2025-12-04 05:00,M1,6864.75,1,343125,-112.5,-0.03,0,50,0.01,-137.5,-0.04,-3875,0.00,1 +166,Entry short,2025-12-04 04:00,M1,6862.5,1,343125,-112.5,-0.03,0,50,0.01,-137.5,-0.04,-3875,0.00,1 +167,Exit long,2025-12-04 07:00,M1,6863.5,1,343237.5,-62.5,-0.02,0,62.5,0.02,-187.5,-0.05,-3937.5,0.00,1 +167,Entry long,2025-12-04 05:00,M1,6864.75,1,343237.5,-62.5,-0.02,0,62.5,0.02,-187.5,-0.05,-3937.5,0.00,1 +168,Exit short,2025-12-04 08:00,M1,6859.5,1,343175,200,0.06,0,287.5,0.08,-162.5,-0.05,-3737.5,0.00,1 +168,Entry short,2025-12-04 07:00,M1,6863.5,1,343175,200,0.06,0,287.5,0.08,-162.5,-0.05,-3737.5,0.00,1 +169,Exit long,2025-12-04 09:00,M1,6861.25,1,342975,87.5,0.03,0,275,0.08,-37.5,-0.01,-3650,0.00,1 +169,Entry long,2025-12-04 08:00,M1,6859.5,1,342975,87.5,0.03,0,275,0.08,-37.5,-0.01,-3650,0.00,1 +170,Exit short,2025-12-04 10:00,M1,6863.25,1,343062.5,-100,-0.03,0,187.5,0.05,-162.5,-0.05,-3750,0.00,1 +170,Entry short,2025-12-04 09:00,M1,6861.25,1,343062.5,-100,-0.03,0,187.5,0.05,-162.5,-0.05,-3750,0.00,1 +171,Exit long,2025-12-04 11:00,M1,6860.5,1,343162.5,-137.5,-0.04,0,0,0.00,-312.5,-0.09,-3887.5,0.00,1 +171,Entry long,2025-12-04 10:00,M1,6863.25,1,343162.5,-137.5,-0.04,0,0,0.00,-312.5,-0.09,-3887.5,0.00,1 +172,Exit short,2025-12-04 12:00,M1,6862.75,1,343025,-112.5,-0.03,0,100,0.03,-150,-0.04,-4000,0.00,1 +172,Entry short,2025-12-04 11:00,M1,6860.5,1,343025,-112.5,-0.03,0,100,0.03,-150,-0.04,-4000,0.00,1 +173,Exit long,2025-12-04 13:00,M1,6862.75,1,343137.5,0,0.00,0,87.5,0.03,-100,-0.03,-4000,0.00,1 +173,Entry long,2025-12-04 12:00,M1,6862.75,1,343137.5,0,0.00,0,87.5,0.03,-100,-0.03,-4000,0.00,1 +174,Exit short,2025-12-04 14:00,M1,6865.25,1,343137.5,-125,-0.04,0,50,0.01,-175,-0.05,-4125,0.00,1 +174,Entry short,2025-12-04 13:00,M1,6862.75,1,343137.5,-125,-0.04,0,50,0.01,-175,-0.05,-4125,0.00,1 +175,Exit long,2025-12-04 15:00,M1,6865.5,1,343262.5,12.5,0.00,0,162.5,0.05,-37.5,-0.01,-4112.5,0.00,1 +175,Entry long,2025-12-04 14:00,M1,6865.25,1,343262.5,12.5,0.00,0,162.5,0.05,-37.5,-0.01,-4112.5,0.00,1 +176,Exit short,2025-12-04 16:00,M1,6858.75,1,343275,337.5,0.10,0,562.5,0.16,0,0.00,-3775,0.00,1 +176,Entry short,2025-12-04 15:00,M1,6865.5,1,343275,337.5,0.10,0,562.5,0.16,0,0.00,-3775,0.00,1 +177,Exit long,2025-12-04 17:00,M1,6868.25,1,342937.5,475,0.14,0,562.5,0.16,-150,-0.04,-3300,0.00,1 +177,Entry long,2025-12-04 16:00,M1,6858.75,1,342937.5,475,0.14,0,562.5,0.16,-150,-0.04,-3300,0.00,1 +178,Exit short,2025-12-04 18:00,M1,6862.5,1,343412.5,287.5,0.08,0,337.5,0.10,-50,-0.01,-3012.5,0.00,1 +178,Entry short,2025-12-04 17:00,M1,6868.25,1,343412.5,287.5,0.08,0,337.5,0.10,-50,-0.01,-3012.5,0.00,1 +179,Exit long,2025-12-04 19:00,M1,6865.25,1,343125,137.5,0.04,0,162.5,0.05,-125,-0.04,-2875,0.00,1 +179,Entry long,2025-12-04 18:00,M1,6862.5,1,343125,137.5,0.04,0,162.5,0.05,-125,-0.04,-2875,0.00,1 +180,Exit short,2025-12-04 20:00,M1,6868.25,1,343262.5,-150,-0.04,0,37.5,0.01,-300,-0.09,-3025,0.00,1 +180,Entry short,2025-12-04 19:00,M1,6865.25,1,343262.5,-150,-0.04,0,37.5,0.01,-300,-0.09,-3025,0.00,1 +181,Exit long,2025-12-04 21:00,M1,6864.25,1,343412.5,-200,-0.06,0,137.5,0.04,-312.5,-0.09,-3225,0.00,1 +181,Entry long,2025-12-04 20:00,M1,6868.25,1,343412.5,-200,-0.06,0,137.5,0.04,-312.5,-0.09,-3225,0.00,1 +182,Exit short,2025-12-04 22:00,M1,6853.5,1,343212.5,537.5,0.16,0,700,0.20,-825,-0.24,-2687.5,0.00,1 +182,Entry short,2025-12-04 21:00,M1,6864.25,1,343212.5,537.5,0.16,0,700,0.20,-825,-0.24,-2687.5,0.00,1 +183,Exit long,2025-12-04 23:00,M1,6855.75,1,342675,112.5,0.03,0,762.5,0.22,-450,-0.13,-2575,0.00,1 +183,Entry long,2025-12-04 22:00,M1,6853.5,1,342675,112.5,0.03,0,762.5,0.22,-450,-0.13,-2575,0.00,1 +184,Exit short,2025-12-05 00:00,M1,6867.25,1,342787.5,-575,-0.17,0,537.5,0.16,-650,-0.19,-3150,0.00,1 +184,Entry short,2025-12-04 23:00,M1,6855.75,1,342787.5,-575,-0.17,0,537.5,0.16,-650,-0.19,-3150,0.00,1 +185,Exit long,2025-12-05 01:00,M1,6866,1,343362.5,-62.5,-0.02,0,75,0.02,-537.5,-0.16,-3212.5,0.00,1 +185,Entry long,2025-12-05 00:00,M1,6867.25,1,343362.5,-62.5,-0.02,0,75,0.02,-537.5,-0.16,-3212.5,0.00,1 +186,Exit short,2025-12-05 02:00,M1,6864.25,1,343300,87.5,0.03,0,412.5,0.12,-250,-0.07,-3125,0.00,1 +186,Entry short,2025-12-05 01:00,M1,6866,1,343300,87.5,0.03,0,412.5,0.12,-250,-0.07,-3125,0.00,1 +187,Exit long,2025-12-05 03:00,M1,6855.5,1,343212.5,-437.5,-0.13,0,62.5,0.02,-1400,-0.41,-3562.5,0.00,1 +187,Entry long,2025-12-05 02:00,M1,6864.25,1,343212.5,-437.5,-0.13,0,62.5,0.02,-1400,-0.41,-3562.5,0.00,1 +188,Exit short,2025-12-05 04:00,M1,6867.5,1,342775,-600,-0.18,0,475,0.14,-675,-0.20,-4162.5,0.00,1 +188,Entry short,2025-12-05 03:00,M1,6855.5,1,342775,-600,-0.18,0,475,0.14,-675,-0.20,-4162.5,0.00,1 +189,Exit long,2025-12-05 05:00,M1,6865.75,1,343375,-87.5,-0.03,0,50,0.01,-175,-0.05,-4250,0.00,1 +189,Entry long,2025-12-05 04:00,M1,6867.5,1,343375,-87.5,-0.03,0,50,0.01,-175,-0.05,-4250,0.00,1 +190,Exit short,2025-12-05 07:00,M1,6863.75,1,343287.5,100,0.03,0,225,0.07,-187.5,-0.05,-4150,0.00,1 +190,Entry short,2025-12-05 05:00,M1,6865.75,1,343287.5,100,0.03,0,225,0.07,-187.5,-0.05,-4150,0.00,1 +191,Exit long,2025-12-05 08:00,M1,6870.75,1,343187.5,350,0.10,0,387.5,0.11,-87.5,-0.03,-3800,0.00,1 +191,Entry long,2025-12-05 07:00,M1,6863.75,1,343187.5,350,0.10,0,387.5,0.11,-87.5,-0.03,-3800,0.00,1 +192,Exit short,2025-12-05 08:00,,6870.75,1,343537.5,0,0.00,0,0,0.00,0,0.00,-3800,0.00,0 +192,Entry short,2025-12-05 08:00,M1,6870.75,1,343537.5,0,0.00,0,0,0.00,0,0.00,-3800,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/meta.json b/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/meta.json new file mode 100644 index 0000000..63ce42a --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/meta.json @@ -0,0 +1,16 @@ +{ + "title": "HM G2-36 session.ismarket", + "slug": "hm-g236-eth-60-24x7", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T19:01:29.897Z", + "chart": { + "symbol": "BINANCE:ETHUSDT.P", + "interval": "60", + "from": "2025-03-07", + "to": "2025-03-11" + }, + "pine_sha256": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tv_trades_sha256": "96b7e8890b41a9e8aa60698a43cdffd5f42c55bb8d2d0223f7985c13b5040b74", + "tv_trades_rows": 194 +} diff --git a/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/metrics.json b/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/metrics.json new file mode 100644 index 0000000..4a29fa2 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "hm-g236-eth-60-24x7", + "symbol": "BINANCE:ETHUSDT.P", + "interval": "60", + "from": "2025-03-07", + "to": "2025-03-11", + "deepBacktesting": true, + "trades": 97, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tvTradesCsvHash": "96b7e8890b41a9e8aa60698a43cdffd5f42c55bb8d2d0223f7985c13b5040b74", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74408", + "symbol": "BINANCE:ETHUSDT.P", + "interval": "60", + "requestedRange": { + "from": 1741305600000, + "to": 1741651200000 + }, + "returnedRange": { + "from": 1741305600000, + "to": 1741651200000 + }, + "rangeProof": "covered", + "rawFrameSha256": "be345b3b0f658b1ef1221394f5acdc606234f41da5b1c382bb79c05388e23504", + "decodedReportSha256": "634ba2e1cd78dd4cb8e9f655d8736d62b6af4ff7b6d0e461b9941844d84edd29", + "closedTrades": 97, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T19:01:29.896Z" +} diff --git a/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/strategy.pine b/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/strategy.pine new file mode 100644 index 0000000..182c911 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/strategy.pine @@ -0,0 +1,17 @@ +// H-MEASURE (R5 wave H) row G2-36: which chart bars does TradingView flag +// session.ismarket on? process_orders_on_close=true: every bar reverses the +// position at its own close, so every trade's ENTRY is one chart bar (TradingView +// dates a process_orders_on_close fill at the bar's open) and the entry's Signal +// (its comment) is the flag TradingView evaluated on that bar: "M1" when +// session.ismarket is true, "M0" when it is false. +//@version=6 +strategy("HM G2-36 session.ismarket", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +flag = session.ismarket ? "M1" : "M0" +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/tv_trades.csv b/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/tv_trades.csv new file mode 100644 index 0000000..0c0b702 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-eth-60-24x7/tv_trades.csv @@ -0,0 +1,195 @@ +Trade number,Type,Date and time,Signal,Price USDT,Size (qty),Size (value),Net PnL USDT,Return %,Commission USDT,Favorable excursion USDT,Favorable excursion %,Adverse excursion USDT,Adverse excursion %,Cumulative PnL USDT,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-07 09:00,M1,2174.07,1,2116.38,57.69,2.73,0,76.64,3.62,-9.12,-0.43,57.69,0.00,1 +1,Entry long,2025-03-07 08:00,M1,2116.38,1,2116.38,57.69,2.73,0,76.64,3.62,-9.12,-0.43,57.69,0.00,1 +2,Exit short,2025-03-07 10:00,M1,2154.5,1,2174.07,19.57,0.90,0,20.27,0.93,-11.2,-0.52,77.26,0.00,1 +2,Entry short,2025-03-07 09:00,M1,2174.07,1,2174.07,19.57,0.90,0,20.27,0.93,-11.2,-0.52,77.26,0.00,1 +3,Exit long,2025-03-07 11:00,M1,2147.21,1,2154.5,-7.29,-0.34,0,7.84,0.36,-9.15,-0.42,69.97,0.00,1 +3,Entry long,2025-03-07 10:00,M1,2154.5,1,2154.5,-7.29,-0.34,0,7.84,0.36,-9.15,-0.42,69.97,0.00,1 +4,Exit short,2025-03-07 12:00,M1,2154.32,1,2147.21,-7.11,-0.33,0,3.8,0.18,-16.79,-0.78,62.86,0.00,1 +4,Entry short,2025-03-07 11:00,M1,2147.21,1,2147.21,-7.11,-0.33,0,3.8,0.18,-16.79,-0.78,62.86,0.00,1 +5,Exit long,2025-03-07 13:00,M1,2173.73,1,2154.32,19.41,0.90,0,28.86,1.34,-1,-0.05,82.27,0.00,1 +5,Entry long,2025-03-07 12:00,M1,2154.32,1,2154.32,19.41,0.90,0,28.86,1.34,-1,-0.05,82.27,0.00,1 +6,Exit short,2025-03-07 14:00,M1,2181.32,1,2173.73,-7.59,-0.35,0,9.42,0.43,-12.53,-0.58,74.68,0.00,1 +6,Entry short,2025-03-07 13:00,M1,2173.73,1,2173.73,-7.59,-0.35,0,9.42,0.43,-12.53,-0.58,74.68,0.00,1 +7,Exit long,2025-03-07 15:00,M1,2191.52,1,2181.32,10.2,0.47,0,11.52,0.53,-4.5,-0.21,84.88,0.00,1 +7,Entry long,2025-03-07 14:00,M1,2181.32,1,2181.32,10.2,0.47,0,11.52,0.53,-4.5,-0.21,84.88,0.00,1 +8,Exit short,2025-03-07 16:00,M1,2184.4,1,2191.52,7.12,0.32,0,15.47,0.71,-4.36,-0.20,92,0.00,1 +8,Entry short,2025-03-07 15:00,M1,2191.52,1,2191.52,7.12,0.32,0,15.47,0.71,-4.36,-0.20,92,0.00,1 +9,Exit long,2025-03-07 17:00,M1,2192.7,1,2184.4,8.3,0.38,0,25.54,1.17,-0.42,-0.02,100.3,0.00,1 +9,Entry long,2025-03-07 16:00,M1,2184.4,1,2184.4,8.3,0.38,0,25.54,1.17,-0.42,-0.02,100.3,0.00,1 +10,Exit short,2025-03-07 18:00,M1,2195.72,1,2192.7,-3.02,-0.14,0,8.21,0.37,-4.57,-0.21,97.28,0.00,1 +10,Entry short,2025-03-07 17:00,M1,2192.7,1,2192.7,-3.02,-0.14,0,8.21,0.37,-4.57,-0.21,97.28,0.00,1 +11,Exit long,2025-03-07 19:00,M1,2196.69,1,2195.72,0.97,0.04,0,11.28,0.51,-6.44,-0.29,98.25,0.00,1 +11,Entry long,2025-03-07 18:00,M1,2195.72,1,2195.72,0.97,0.04,0,11.28,0.51,-6.44,-0.29,98.25,0.00,1 +12,Exit short,2025-03-07 20:00,M1,2177.26,1,2196.69,19.43,0.88,0,32.32,1.47,-1.64,-0.07,117.68,0.00,1 +12,Entry short,2025-03-07 19:00,M1,2196.69,1,2196.69,19.43,0.88,0,32.32,1.47,-1.64,-0.07,117.68,0.00,1 +13,Exit long,2025-03-07 21:00,M1,2187.56,1,2177.26,10.3,0.47,0,51.74,2.38,-0.74,-0.03,127.98,0.00,1 +13,Entry long,2025-03-07 20:00,M1,2177.26,1,2177.26,10.3,0.47,0,51.74,2.38,-0.74,-0.03,127.98,0.00,1 +14,Exit short,2025-03-07 22:00,M1,2220.8,1,2187.56,-33.24,-1.52,0,11.92,0.54,-71.78,-3.28,94.74,0.00,1 +14,Entry short,2025-03-07 21:00,M1,2187.56,1,2187.56,-33.24,-1.52,0,11.92,0.54,-71.78,-3.28,94.74,0.00,1 +15,Exit long,2025-03-07 23:00,M1,2208.94,1,2220.8,-11.86,-0.53,0,17.86,0.80,-41.12,-1.85,82.88,0.00,1 +15,Entry long,2025-03-07 22:00,M1,2220.8,1,2220.8,-11.86,-0.53,0,17.86,0.80,-41.12,-1.85,82.88,0.00,1 +16,Exit short,2025-03-08 00:00,M1,2157.53,1,2208.94,51.41,2.33,0,66.57,3.01,-5.91,-0.27,134.29,0.00,1 +16,Entry short,2025-03-07 23:00,M1,2208.94,1,2208.94,51.41,2.33,0,66.57,3.01,-5.91,-0.27,134.29,0.00,1 +17,Exit long,2025-03-08 01:00,M1,2161.23,1,2157.53,3.7,0.17,0,26.33,1.22,-17.7,-0.82,137.99,0.00,1 +17,Entry long,2025-03-08 00:00,M1,2157.53,1,2157.53,3.7,0.17,0,26.33,1.22,-17.7,-0.82,137.99,0.00,1 +18,Exit short,2025-03-08 02:00,M1,2193.99,1,2161.23,-32.76,-1.52,0,5.02,0.23,-38.76,-1.79,105.23,0.00,1 +18,Entry short,2025-03-08 01:00,M1,2161.23,1,2161.23,-32.76,-1.52,0,5.02,0.23,-38.76,-1.79,105.23,0.00,1 +19,Exit long,2025-03-08 03:00,M1,2177.47,1,2193.99,-16.52,-0.75,0,7.86,0.36,-33.69,-1.54,88.71,0.00,1 +19,Entry long,2025-03-08 02:00,M1,2193.99,1,2193.99,-16.52,-0.75,0,7.86,0.36,-33.69,-1.54,88.71,0.00,1 +20,Exit short,2025-03-08 04:00,M1,2156.37,1,2177.47,21.1,0.97,0,32.77,1.50,-8.74,-0.40,109.81,0.00,1 +20,Entry short,2025-03-08 03:00,M1,2177.47,1,2177.47,21.1,0.97,0,32.77,1.50,-8.74,-0.40,109.81,0.00,1 +21,Exit long,2025-03-08 05:00,M1,2138.36,1,2156.37,-18.01,-0.84,0,7.1,0.33,-43.27,-2.01,91.8,0.00,1 +21,Entry long,2025-03-08 04:00,M1,2156.37,1,2156.37,-18.01,-0.84,0,7.1,0.33,-43.27,-2.01,91.8,0.00,1 +22,Exit short,2025-03-08 06:00,M1,2143.46,1,2138.36,-5.1,-0.24,0,23.2,1.08,-12.46,-0.58,86.7,0.00,1 +22,Entry short,2025-03-08 05:00,M1,2138.36,1,2138.36,-5.1,-0.24,0,23.2,1.08,-12.46,-0.58,86.7,0.00,1 +23,Exit long,2025-03-08 07:00,M1,2140.72,1,2143.46,-2.74,-0.13,0,0.32,0.01,-29.53,-1.38,83.96,0.00,1 +23,Entry long,2025-03-08 06:00,M1,2143.46,1,2143.46,-2.74,-0.13,0,0.32,0.01,-29.53,-1.38,83.96,0.00,1 +24,Exit short,2025-03-08 08:00,M1,2151.25,1,2140.72,-10.53,-0.49,0,11.41,0.53,-11.5,-0.54,73.43,0.00,1 +24,Entry short,2025-03-08 07:00,M1,2140.72,1,2140.72,-10.53,-0.49,0,11.41,0.53,-11.5,-0.54,73.43,0.00,1 +25,Exit long,2025-03-08 09:00,M1,2131.96,1,2151.25,-19.29,-0.90,0,4.12,0.19,-48.18,-2.24,54.14,0.00,1 +25,Entry long,2025-03-08 08:00,M1,2151.25,1,2151.25,-19.29,-0.90,0,4.12,0.19,-48.18,-2.24,54.14,0.00,1 +26,Exit short,2025-03-08 10:00,M1,2142.97,1,2131.96,-11.01,-0.52,0,1.88,0.09,-12.99,-0.61,43.13,0.00,1 +26,Entry short,2025-03-08 09:00,M1,2131.96,1,2131.96,-11.01,-0.52,0,1.88,0.09,-12.99,-0.61,43.13,0.00,1 +27,Exit long,2025-03-08 11:00,M1,2137.07,1,2142.97,-5.9,-0.28,0,0.01,0.00,-19.45,-0.91,37.23,0.00,1 +27,Entry long,2025-03-08 10:00,M1,2142.97,1,2142.97,-5.9,-0.28,0,0.01,0.00,-19.45,-0.91,37.23,0.00,1 +28,Exit short,2025-03-08 12:00,M1,2149.12,1,2137.07,-12.05,-0.56,0,6.65,0.31,-14.96,-0.70,25.18,0.00,1 +28,Entry short,2025-03-08 11:00,M1,2137.07,1,2137.07,-12.05,-0.56,0,6.65,0.31,-14.96,-0.70,25.18,0.00,1 +29,Exit long,2025-03-08 13:00,M1,2139.46,1,2149.12,-9.66,-0.45,0,0.54,0.03,-16.77,-0.78,15.52,0.00,1 +29,Entry long,2025-03-08 12:00,M1,2149.12,1,2149.12,-9.66,-0.45,0,0.54,0.03,-16.77,-0.78,15.52,0.00,1 +30,Exit short,2025-03-08 14:00,M1,2138.26,1,2139.46,1.2,0.06,0,7.46,0.35,-5.13,-0.24,16.72,0.00,1 +30,Entry short,2025-03-08 13:00,M1,2139.46,1,2139.46,1.2,0.06,0,7.46,0.35,-5.13,-0.24,16.72,0.00,1 +31,Exit long,2025-03-08 15:00,M1,2136.65,1,2138.26,-1.61,-0.08,0,8.74,0.41,-5.11,-0.24,15.11,0.00,1 +31,Entry long,2025-03-08 14:00,M1,2138.26,1,2138.26,-1.61,-0.08,0,8.74,0.41,-5.11,-0.24,15.11,0.00,1 +32,Exit short,2025-03-08 16:00,M1,2127.2,1,2136.65,9.45,0.44,0,11.1,0.52,-3.47,-0.16,24.56,0.00,1 +32,Entry short,2025-03-08 15:00,M1,2136.65,1,2136.65,9.45,0.44,0,11.1,0.52,-3.47,-0.16,24.56,0.00,1 +33,Exit long,2025-03-08 17:00,M1,2128.64,1,2127.2,1.44,0.07,0,15.3,0.72,-1.8,-0.08,26,0.00,1 +33,Entry long,2025-03-08 16:00,M1,2127.2,1,2127.2,1.44,0.07,0,15.3,0.72,-1.8,-0.08,26,0.00,1 +34,Exit short,2025-03-08 18:00,M1,2138.77,1,2128.64,-10.13,-0.48,0,1.98,0.09,-11.52,-0.54,15.87,0.00,1 +34,Entry short,2025-03-08 17:00,M1,2128.64,1,2128.64,-10.13,-0.48,0,1.98,0.09,-11.52,-0.54,15.87,0.00,1 +35,Exit long,2025-03-08 19:00,M1,2140.89,1,2138.77,2.12,0.10,0,2.73,0.13,-12.6,-0.59,17.99,0.00,1 +35,Entry long,2025-03-08 18:00,M1,2138.77,1,2138.77,2.12,0.10,0,2.73,0.13,-12.6,-0.59,17.99,0.00,1 +36,Exit short,2025-03-08 20:00,M1,2167.48,1,2140.89,-26.59,-1.24,0,4.05,0.19,-31.96,-1.49,-8.6,0.00,1 +36,Entry short,2025-03-08 19:00,M1,2140.89,1,2140.89,-26.59,-1.24,0,4.05,0.19,-31.96,-1.49,-8.6,0.00,1 +37,Exit long,2025-03-08 21:00,M1,2189.25,1,2167.48,21.77,1.00,0,30.52,1.41,-2.34,-0.11,13.17,0.00,1 +37,Entry long,2025-03-08 20:00,M1,2167.48,1,2167.48,21.77,1.00,0,30.52,1.41,-2.34,-0.11,13.17,0.00,1 +38,Exit short,2025-03-08 22:00,M1,2178,1,2189.25,11.25,0.51,0,15.76,0.72,-5.57,-0.25,24.42,0.00,1 +38,Entry short,2025-03-08 21:00,M1,2189.25,1,2189.25,11.25,0.51,0,15.76,0.72,-5.57,-0.25,24.42,0.00,1 +39,Exit long,2025-03-08 23:00,M1,2180.41,1,2178,2.41,0.11,0,13.36,0.61,-11,-0.51,26.83,0.00,1 +39,Entry long,2025-03-08 22:00,M1,2178,1,2178,2.41,0.11,0,13.36,0.61,-11,-0.51,26.83,0.00,1 +40,Exit short,2025-03-09 00:00,M1,2189.17,1,2180.41,-8.76,-0.40,0,20.21,0.93,-17.28,-0.79,18.07,0.00,1 +40,Entry short,2025-03-08 23:00,M1,2180.41,1,2180.41,-8.76,-0.40,0,20.21,0.93,-17.28,-0.79,18.07,0.00,1 +41,Exit long,2025-03-09 01:00,M1,2198.1,1,2189.17,8.93,0.41,0,31.27,1.43,-10.17,-0.46,27,0.00,1 +41,Entry long,2025-03-09 00:00,M1,2189.17,1,2189.17,8.93,0.41,0,31.27,1.43,-10.17,-0.46,27,0.00,1 +42,Exit short,2025-03-09 02:00,M1,2207.76,1,2198.1,-9.66,-0.44,0,4.86,0.22,-15.5,-0.71,17.34,0.00,1 +42,Entry short,2025-03-09 01:00,M1,2198.1,1,2198.1,-9.66,-0.44,0,4.86,0.22,-15.5,-0.71,17.34,0.00,1 +43,Exit long,2025-03-09 03:00,M1,2223.73,1,2207.76,15.97,0.72,0,26.64,1.21,-8.12,-0.37,33.31,0.00,1 +43,Entry long,2025-03-09 02:00,M1,2207.76,1,2207.76,15.97,0.72,0,26.64,1.21,-8.12,-0.37,33.31,0.00,1 +44,Exit short,2025-03-09 04:00,M1,2212.01,1,2223.73,11.72,0.53,0,13.23,0.59,-1.42,-0.06,45.03,0.00,1 +44,Entry short,2025-03-09 03:00,M1,2223.73,1,2223.73,11.72,0.53,0,13.23,0.59,-1.42,-0.06,45.03,0.00,1 +45,Exit long,2025-03-09 05:00,M1,2215.28,1,2212.01,3.27,0.15,0,12.01,0.54,-0.28,-0.01,48.3,0.00,1 +45,Entry long,2025-03-09 04:00,M1,2212.01,1,2212.01,3.27,0.15,0,12.01,0.54,-0.28,-0.01,48.3,0.00,1 +46,Exit short,2025-03-09 06:00,M1,2206.66,1,2215.28,8.62,0.39,0,18.41,0.83,-1.71,-0.08,56.92,0.00,1 +46,Entry short,2025-03-09 05:00,M1,2215.28,1,2215.28,8.62,0.39,0,18.41,0.83,-1.71,-0.08,56.92,0.00,1 +47,Exit long,2025-03-09 07:00,M1,2202.84,1,2206.66,-3.82,-0.17,0,3.14,0.14,-14.25,-0.65,53.1,0.00,1 +47,Entry long,2025-03-09 06:00,M1,2206.66,1,2206.66,-3.82,-0.17,0,3.14,0.14,-14.25,-0.65,53.1,0.00,1 +48,Exit short,2025-03-09 08:00,M1,2205.34,1,2202.84,-2.5,-0.11,0,4.04,0.18,-5.96,-0.27,50.6,0.00,1 +48,Entry short,2025-03-09 07:00,M1,2202.84,1,2202.84,-2.5,-0.11,0,4.04,0.18,-5.96,-0.27,50.6,0.00,1 +49,Exit long,2025-03-09 09:00,M1,2190.11,1,2205.34,-15.23,-0.69,0,5.93,0.27,-19.1,-0.87,35.37,0.00,1 +49,Entry long,2025-03-09 08:00,M1,2205.34,1,2205.34,-15.23,-0.69,0,5.93,0.27,-19.1,-0.87,35.37,0.00,1 +50,Exit short,2025-03-09 10:00,M1,2180.89,1,2190.11,9.22,0.42,0,11.03,0.50,-3.58,-0.16,44.59,0.00,1 +50,Entry short,2025-03-09 09:00,M1,2190.11,1,2190.11,9.22,0.42,0,11.03,0.50,-3.58,-0.16,44.59,0.00,1 +51,Exit long,2025-03-09 11:00,M1,2184.82,1,2180.89,3.93,0.18,0,8.11,0.37,-5.88,-0.27,48.52,0.00,1 +51,Entry long,2025-03-09 10:00,M1,2180.89,1,2180.89,3.93,0.18,0,8.11,0.37,-5.88,-0.27,48.52,0.00,1 +52,Exit short,2025-03-09 12:00,M1,2188.6,1,2184.82,-3.78,-0.17,0,2.27,0.10,-5.9,-0.27,44.74,0.00,1 +52,Entry short,2025-03-09 11:00,M1,2184.82,1,2184.82,-3.78,-0.17,0,2.27,0.10,-5.9,-0.27,44.74,0.00,1 +53,Exit long,2025-03-09 13:00,M1,2182.09,1,2188.6,-6.51,-0.30,0,7.68,0.35,-9.2,-0.42,38.23,0.00,1 +53,Entry long,2025-03-09 12:00,M1,2188.6,1,2188.6,-6.51,-0.30,0,7.68,0.35,-9.2,-0.42,38.23,0.00,1 +54,Exit short,2025-03-09 14:00,M1,2178.79,1,2182.09,3.3,0.15,0,11.26,0.52,-1.89,-0.09,41.53,0.00,1 +54,Entry short,2025-03-09 13:00,M1,2182.09,1,2182.09,3.3,0.15,0,11.26,0.52,-1.89,-0.09,41.53,0.00,1 +55,Exit long,2025-03-09 15:00,M1,2184.07,1,2178.79,5.28,0.24,0,9.78,0.45,-1.69,-0.08,46.81,0.00,1 +55,Entry long,2025-03-09 14:00,M1,2178.79,1,2178.79,5.28,0.24,0,9.78,0.45,-1.69,-0.08,46.81,0.00,1 +56,Exit short,2025-03-09 16:00,M1,2175.29,1,2184.07,8.78,0.40,0,9.66,0.44,-2.93,-0.13,55.59,0.00,1 +56,Entry short,2025-03-09 15:00,M1,2184.07,1,2184.07,8.78,0.40,0,9.66,0.44,-2.93,-0.13,55.59,0.00,1 +57,Exit long,2025-03-09 17:00,M1,2164.81,1,2175.29,-10.48,-0.48,0,4.45,0.20,-15.49,-0.71,45.11,0.00,1 +57,Entry long,2025-03-09 16:00,M1,2175.29,1,2175.29,-10.48,-0.48,0,4.45,0.20,-15.49,-0.71,45.11,0.00,1 +58,Exit short,2025-03-09 18:00,M1,2132.84,1,2164.81,31.97,1.48,0,37.79,1.75,-4.57,-0.21,77.08,0.00,1 +58,Entry short,2025-03-09 17:00,M1,2164.81,1,2164.81,31.97,1.48,0,37.79,1.75,-4.57,-0.21,77.08,0.00,1 +59,Exit long,2025-03-09 19:00,M1,2145.63,1,2132.84,12.79,0.60,0,14.8,0.69,-1.55,-0.07,89.87,0.00,1 +59,Entry long,2025-03-09 18:00,M1,2132.84,1,2132.84,12.79,0.60,0,14.8,0.69,-1.55,-0.07,89.87,0.00,1 +60,Exit short,2025-03-09 20:00,M1,2140.9,1,2145.63,4.73,0.22,0,15.22,0.71,-0.43,-0.02,94.6,0.00,1 +60,Entry short,2025-03-09 19:00,M1,2145.63,1,2145.63,4.73,0.22,0,15.22,0.71,-0.43,-0.02,94.6,0.00,1 +61,Exit long,2025-03-09 21:00,M1,2103.2,1,2140.9,-37.7,-1.76,0,2.1,0.10,-40.74,-1.90,56.9,0.00,1 +61,Entry long,2025-03-09 20:00,M1,2140.9,1,2140.9,-37.7,-1.76,0,2.1,0.10,-40.74,-1.90,56.9,0.00,1 +62,Exit short,2025-03-09 22:00,M1,2116.32,1,2103.2,-13.12,-0.62,0,8.51,0.40,-20.5,-0.97,43.78,0.00,1 +62,Entry short,2025-03-09 21:00,M1,2103.2,1,2103.2,-13.12,-0.62,0,8.51,0.40,-20.5,-0.97,43.78,0.00,1 +63,Exit long,2025-03-09 23:00,M1,2095.86,1,2116.32,-20.46,-0.97,0,5.27,0.25,-34.32,-1.62,23.32,0.00,1 +63,Entry long,2025-03-09 22:00,M1,2116.32,1,2116.32,-20.46,-0.97,0,5.27,0.25,-34.32,-1.62,23.32,0.00,1 +64,Exit short,2025-03-10 00:00,M1,2048,1,2095.86,47.86,2.28,0,55.86,2.67,-12.44,-0.59,71.18,0.00,1 +64,Entry short,2025-03-09 23:00,M1,2095.86,1,2095.86,47.86,2.28,0,55.86,2.67,-12.44,-0.59,71.18,0.00,1 +65,Exit long,2025-03-10 01:00,M1,2022.82,1,2048,-25.18,-1.23,0,8.19,0.40,-35.5,-1.73,46,0.00,1 +65,Entry long,2025-03-10 00:00,M1,2048,1,2048,-25.18,-1.23,0,8.19,0.40,-35.5,-1.73,46,0.00,1 +66,Exit short,2025-03-10 02:00,M1,2019.99,1,2022.82,2.83,0.14,0,26.99,1.33,-15.41,-0.76,48.83,0.00,1 +66,Entry short,2025-03-10 01:00,M1,2022.82,1,2022.82,2.83,0.14,0,26.99,1.33,-15.41,-0.76,48.83,0.00,1 +67,Exit long,2025-03-10 03:00,M1,2039.34,1,2019.99,19.35,0.96,0,28.11,1.39,-4.59,-0.23,68.18,0.00,1 +67,Entry long,2025-03-10 02:00,M1,2019.99,1,2019.99,19.35,0.96,0,28.11,1.39,-4.59,-0.23,68.18,0.00,1 +68,Exit short,2025-03-10 04:00,M1,2046,1,2039.34,-6.66,-0.33,0,3.95,0.19,-16.3,-0.80,61.52,0.00,1 +68,Entry short,2025-03-10 03:00,M1,2039.34,1,2039.34,-6.66,-0.33,0,3.95,0.19,-16.3,-0.80,61.52,0.00,1 +69,Exit long,2025-03-10 05:00,M1,2023.51,1,2046,-22.49,-1.10,0,3.63,0.18,-33.95,-1.66,39.03,0.00,1 +69,Entry long,2025-03-10 04:00,M1,2046,1,2046,-22.49,-1.10,0,3.63,0.18,-33.95,-1.66,39.03,0.00,1 +70,Exit short,2025-03-10 06:00,M1,2009.28,1,2023.51,14.23,0.70,0,18.74,0.93,-5.81,-0.29,53.26,0.00,1 +70,Entry short,2025-03-10 05:00,M1,2023.51,1,2023.51,14.23,0.70,0,18.74,0.93,-5.81,-0.29,53.26,0.00,1 +71,Exit long,2025-03-10 07:00,M1,2019.2,1,2009.28,9.92,0.49,0,22.38,1.11,-22.48,-1.12,63.18,0.00,1 +71,Entry long,2025-03-10 06:00,M1,2009.28,1,2009.28,9.92,0.49,0,22.38,1.11,-22.48,-1.12,63.18,0.00,1 +72,Exit short,2025-03-10 08:00,M1,2035.1,1,2019.2,-15.9,-0.79,0,25.66,1.27,-23.5,-1.16,47.28,0.00,1 +72,Entry short,2025-03-10 07:00,M1,2019.2,1,2019.2,-15.9,-0.79,0,25.66,1.27,-23.5,-1.16,47.28,0.00,1 +73,Exit long,2025-03-10 09:00,M1,2042.16,1,2035.1,7.06,0.35,0,17.9,0.88,-9.08,-0.45,54.34,0.00,1 +73,Entry long,2025-03-10 08:00,M1,2035.1,1,2035.1,7.06,0.35,0,17.9,0.88,-9.08,-0.45,54.34,0.00,1 +74,Exit short,2025-03-10 10:00,M1,2056.75,1,2042.16,-14.59,-0.71,0,6.55,0.32,-27.65,-1.35,39.75,0.00,1 +74,Entry short,2025-03-10 09:00,M1,2042.16,1,2042.16,-14.59,-0.71,0,6.55,0.32,-27.65,-1.35,39.75,0.00,1 +75,Exit long,2025-03-10 11:00,M1,2056.82,1,2056.75,0.07,0.00,0,7.72,0.38,-13.68,-0.67,39.82,0.00,1 +75,Entry long,2025-03-10 10:00,M1,2056.75,1,2056.75,0.07,0.00,0,7.72,0.38,-13.68,-0.67,39.82,0.00,1 +76,Exit short,2025-03-10 12:00,M1,2071.75,1,2056.82,-14.93,-0.73,0,1.96,0.10,-19.36,-0.94,24.89,0.00,1 +76,Entry short,2025-03-10 11:00,M1,2056.82,1,2056.82,-14.93,-0.73,0,1.96,0.10,-19.36,-0.94,24.89,0.00,1 +77,Exit long,2025-03-10 13:00,M1,2063.12,1,2071.75,-8.63,-0.42,0,3.25,0.16,-13.75,-0.66,16.26,0.00,1 +77,Entry long,2025-03-10 12:00,M1,2071.75,1,2071.75,-8.63,-0.42,0,3.25,0.16,-13.75,-0.66,16.26,0.00,1 +78,Exit short,2025-03-10 14:00,M1,2066,1,2063.12,-2.88,-0.14,0,9.94,0.48,-3.84,-0.19,13.38,0.00,1 +78,Entry short,2025-03-10 13:00,M1,2063.12,1,2063.12,-2.88,-0.14,0,9.94,0.48,-3.84,-0.19,13.38,0.00,1 +79,Exit long,2025-03-10 15:00,M1,2074.2,1,2066,8.2,0.40,0,12.55,0.61,-4,-0.19,21.58,0.00,1 +79,Entry long,2025-03-10 14:00,M1,2066,1,2066,8.2,0.40,0,12.55,0.61,-4,-0.19,21.58,0.00,1 +80,Exit short,2025-03-10 16:00,M1,2061.1,1,2074.2,13.1,0.63,0,27.45,1.32,-2.14,-0.10,34.68,0.00,1 +80,Entry short,2025-03-10 15:00,M1,2074.2,1,2074.2,13.1,0.63,0,27.45,1.32,-2.14,-0.10,34.68,0.00,1 +81,Exit long,2025-03-10 17:00,M1,2100.98,1,2061.1,39.88,1.93,0,91.89,4.46,-0.21,-0.01,74.56,0.00,1 +81,Entry long,2025-03-10 16:00,M1,2061.1,1,2061.1,39.88,1.93,0,91.89,4.46,-0.21,-0.01,74.56,0.00,1 +82,Exit short,2025-03-10 18:00,M1,2098.92,1,2100.98,2.06,0.10,0,25.64,1.22,-4.7,-0.22,76.62,0.00,1 +82,Entry short,2025-03-10 17:00,M1,2100.98,1,2100.98,2.06,0.10,0,25.64,1.22,-4.7,-0.22,76.62,0.00,1 +83,Exit long,2025-03-10 19:00,M1,2127.13,1,2098.92,28.21,1.34,0,39.44,1.88,-1.44,-0.07,104.83,0.00,1 +83,Entry long,2025-03-10 18:00,M1,2098.92,1,2098.92,28.21,1.34,0,39.44,1.88,-1.44,-0.07,104.83,0.00,1 +84,Exit short,2025-03-10 20:00,M1,2124.79,1,2127.13,2.34,0.11,0,23.1,1.09,-7.8,-0.37,107.17,0.00,1 +84,Entry short,2025-03-10 19:00,M1,2127.13,1,2127.13,2.34,0.11,0,23.1,1.09,-7.8,-0.37,107.17,0.00,1 +85,Exit long,2025-03-10 21:00,M1,2082.79,1,2124.79,-42,-1.98,0,4.46,0.21,-47.67,-2.24,65.17,0.00,1 +85,Entry long,2025-03-10 20:00,M1,2124.79,1,2124.79,-42,-1.98,0,4.46,0.21,-47.67,-2.24,65.17,0.00,1 +86,Exit short,2025-03-10 22:00,M1,2018.12,1,2082.79,64.67,3.10,0,87.32,4.19,-0.49,-0.02,129.84,0.00,1 +86,Entry short,2025-03-10 21:00,M1,2082.79,1,2082.79,64.67,3.10,0,87.32,4.19,-0.49,-0.02,129.84,0.00,1 +87,Exit long,2025-03-10 23:00,M1,2016.99,1,2018.12,-1.13,-0.06,0,24.73,1.23,-8.55,-0.42,128.71,0.00,1 +87,Entry long,2025-03-10 22:00,M1,2018.12,1,2018.12,-1.13,-0.06,0,24.73,1.23,-8.55,-0.42,128.71,0.00,1 +88,Exit short,2025-03-11 00:00,M1,2004.6,1,2016.99,12.39,0.61,0,18.52,0.92,-7.3,-0.36,141.1,0.00,1 +88,Entry short,2025-03-10 23:00,M1,2016.99,1,2016.99,12.39,0.61,0,18.52,0.92,-7.3,-0.36,141.1,0.00,1 +89,Exit long,2025-03-11 01:00,M1,1916.65,1,2004.6,-87.95,-4.39,0,3.86,0.19,-99.2,-4.95,53.15,0.00,1 +89,Entry long,2025-03-11 00:00,M1,2004.6,1,2004.6,-87.95,-4.39,0,3.86,0.19,-99.2,-4.95,53.15,0.00,1 +90,Exit short,2025-03-11 02:00,M1,1823.99,1,1916.65,92.66,4.83,0,105.6,5.51,-21.73,-1.13,145.81,0.00,1 +90,Entry short,2025-03-11 01:00,M1,1916.65,1,1916.65,92.66,4.83,0,105.6,5.51,-21.73,-1.13,145.81,0.00,1 +91,Exit long,2025-03-11 03:00,M1,1868.66,1,1823.99,44.67,2.45,0,59.01,3.24,-16.24,-0.89,190.48,0.00,1 +91,Entry long,2025-03-11 02:00,M1,1823.99,1,1823.99,44.67,2.45,0,59.01,3.24,-16.24,-0.89,190.48,0.00,1 +92,Exit short,2025-03-11 04:00,M1,1868.1,1,1868.66,0.56,0.03,0,26.45,1.42,-12.81,-0.69,191.04,0.00,1 +92,Entry short,2025-03-11 03:00,M1,1868.66,1,1868.66,0.56,0.03,0,26.45,1.42,-12.81,-0.69,191.04,0.00,1 +93,Exit long,2025-03-11 05:00,M1,1886.38,1,1868.1,18.28,0.98,0,34.9,1.87,-7.84,-0.42,209.32,0.00,1 +93,Entry long,2025-03-11 04:00,M1,1868.1,1,1868.1,18.28,0.98,0,34.9,1.87,-7.84,-0.42,209.32,0.00,1 +94,Exit short,2025-03-11 06:00,M1,1878.91,1,1886.38,7.47,0.40,0,21.58,1.14,-3.03,-0.16,216.79,0.00,1 +94,Entry short,2025-03-11 05:00,M1,1886.38,1,1886.38,7.47,0.40,0,21.58,1.14,-3.03,-0.16,216.79,0.00,1 +95,Exit long,2025-03-11 07:00,M1,1864.51,1,1878.91,-14.4,-0.77,0,15.66,0.83,-22.42,-1.19,202.39,0.00,1 +95,Entry long,2025-03-11 06:00,M1,1878.91,1,1878.91,-14.4,-0.77,0,15.66,0.83,-22.42,-1.19,202.39,0.00,1 +96,Exit short,2025-03-11 08:00,M1,1813.08,1,1864.51,51.43,2.76,0,112.01,6.01,-24.98,-1.34,253.82,0.00,1 +96,Entry short,2025-03-11 07:00,M1,1864.51,1,1864.51,51.43,2.76,0,112.01,6.01,-24.98,-1.34,253.82,0.00,1 +97,Exit long,2025-03-11 08:00,,1813.08,1,1813.08,0,0.00,0,0,0.00,0,0.00,253.82,0.00,0 +97,Entry long,2025-03-11 08:00,M1,1813.08,1,1813.08,0,0.00,0,0,0.00,0,0.00,253.82,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/meta.json b/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/meta.json new file mode 100644 index 0000000..afe043f --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/meta.json @@ -0,0 +1,16 @@ +{ + "title": "HM G2-36 session.ismarket", + "slug": "hm-g236-eurusd-60-dst-mar", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T19:01:34.199Z", + "chart": { + "symbol": "OANDA:EURUSD", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14" + }, + "pine_sha256": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tv_trades_sha256": "60713d2c22442ffe14070fddb1c5cd7fbf6fc6054c0b532b4c4275de305decf1", + "tv_trades_rows": 440 +} diff --git a/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/metrics.json b/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/metrics.json new file mode 100644 index 0000000..70704a5 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "hm-g236-eurusd-60-dst-mar", + "symbol": "OANDA:EURUSD", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14", + "deepBacktesting": true, + "trades": 220, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tvTradesCsvHash": "60713d2c22442ffe14070fddb1c5cd7fbf6fc6054c0b532b4c4275de305decf1", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74408", + "symbol": "OANDA:EURUSD", + "interval": "60", + "requestedRange": { + "from": 1740873600000, + "to": 1741910400000 + }, + "returnedRange": { + "from": 1740952800000, + "to": 1741910400000 + }, + "rangeProof": "covered", + "rawFrameSha256": "052d53c7ab003e6cf49edb3813ebfcb6513d113a3e8ec5b6ddb0ea22e774094e", + "decodedReportSha256": "762d7e2720ea4ac0f4973bf2a760feedef762c31661c61c04f6e5ad549ce113f", + "closedTrades": 220, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T19:01:34.198Z" +} diff --git a/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/strategy.pine b/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/strategy.pine new file mode 100644 index 0000000..182c911 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/strategy.pine @@ -0,0 +1,17 @@ +// H-MEASURE (R5 wave H) row G2-36: which chart bars does TradingView flag +// session.ismarket on? process_orders_on_close=true: every bar reverses the +// position at its own close, so every trade's ENTRY is one chart bar (TradingView +// dates a process_orders_on_close fill at the bar's open) and the entry's Signal +// (its comment) is the flag TradingView evaluated on that bar: "M1" when +// session.ismarket is true, "M0" when it is false. +//@version=6 +strategy("HM G2-36 session.ismarket", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +flag = session.ismarket ? "M1" : "M0" +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/tv_trades.csv b/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/tv_trades.csv new file mode 100644 index 0000000..20a2101 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-eurusd-60-dst-mar/tv_trades.csv @@ -0,0 +1,441 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-03 07:00,M1,1.04122,1,1.04038,0.00084,0.08,0,0.00174,0.17,-0.00038,-0.04,0.00084,0.00,1 +1,Entry long,2025-03-03 06:00,M1,1.04038,1,1.04038,0.00084,0.08,0,0.00174,0.17,-0.00038,-0.04,0.00084,0.00,1 +2,Exit short,2025-03-03 08:00,M1,1.04095,1,1.04122,0.00027,0.03,0,0.00098,0.09,-0.00078,-0.07,0.00111,0.00,1 +2,Entry short,2025-03-03 07:00,M1,1.04122,1,1.04122,0.00027,0.03,0,0.00098,0.09,-0.00078,-0.07,0.00111,0.00,1 +3,Exit long,2025-03-03 09:00,M1,1.04199,1,1.04095,0.00104,0.10,0,0.00138,0.13,-0.00019,-0.02,0.00215,0.00,1 +3,Entry long,2025-03-03 08:00,M1,1.04095,1,1.04095,0.00104,0.10,0,0.00138,0.13,-0.00019,-0.02,0.00215,0.00,1 +4,Exit short,2025-03-03 10:00,M1,1.042,1,1.04199,-0.00001,0.00,0,0.00049,0.05,-0.00037,-0.04,0.00214,0.00,1 +4,Entry short,2025-03-03 09:00,M1,1.04199,1,1.04199,-0.00001,0.00,0,0.00049,0.05,-0.00037,-0.04,0.00214,0.00,1 +5,Exit long,2025-03-03 11:00,M1,1.0417,1,1.042,-0.0003,-0.03,0,0.00002,0.00,-0.00099,-0.10,0.00184,0.00,1 +5,Entry long,2025-03-03 10:00,M1,1.042,1,1.042,-0.0003,-0.03,0,0.00002,0.00,-0.00099,-0.10,0.00184,0.00,1 +6,Exit short,2025-03-03 12:00,M1,1.0418,1,1.0417,-0.0001,-0.01,0,0.00003,0.00,-0.00035,-0.03,0.00174,0.00,1 +6,Entry short,2025-03-03 11:00,M1,1.0417,1,1.0417,-0.0001,-0.01,0,0.00003,0.00,-0.00035,-0.03,0.00174,0.00,1 +7,Exit long,2025-03-03 13:00,M1,1.04144,1,1.0418,-0.00036,-0.03,0,0.00016,0.02,-0.00054,-0.05,0.00138,0.00,1 +7,Entry long,2025-03-03 12:00,M1,1.0418,1,1.0418,-0.00036,-0.03,0,0.00016,0.02,-0.00054,-0.05,0.00138,0.00,1 +8,Exit short,2025-03-03 14:00,M1,1.04084,1,1.04144,0.0006,0.06,0,0.00076,0.07,-0.00021,-0.02,0.00198,0.00,1 +8,Entry short,2025-03-03 13:00,M1,1.04144,1,1.04144,0.0006,0.06,0,0.00076,0.07,-0.00021,-0.02,0.00198,0.00,1 +9,Exit long,2025-03-03 15:00,M1,1.04057,1,1.04084,-0.00027,-0.03,0,0.00019,0.02,-0.00065,-0.06,0.00171,0.00,1 +9,Entry long,2025-03-03 14:00,M1,1.04084,1,1.04084,-0.00027,-0.03,0,0.00019,0.02,-0.00065,-0.06,0.00171,0.00,1 +10,Exit short,2025-03-03 16:00,M1,1.04012,1,1.04057,0.00045,0.04,0,0.00171,0.16,-0.00011,-0.01,0.00216,0.00,1 +10,Entry short,2025-03-03 15:00,M1,1.04057,1,1.04057,0.00045,0.04,0,0.00171,0.16,-0.00011,-0.01,0.00216,0.00,1 +11,Exit long,2025-03-03 17:00,M1,1.04272,1,1.04012,0.0026,0.25,0,0.00278,0.27,0,0.00,0.00476,0.00,1 +11,Entry long,2025-03-03 16:00,M1,1.04012,1,1.04012,0.0026,0.25,0,0.00278,0.27,0,0.00,0.00476,0.00,1 +12,Exit short,2025-03-03 18:00,M1,1.04422,1,1.04272,-0.0015,-0.14,0,0,0.00,-0.00176,-0.17,0.00326,0.00,1 +12,Entry short,2025-03-03 17:00,M1,1.04272,1,1.04272,-0.0015,-0.14,0,0,0.00,-0.00176,-0.17,0.00326,0.00,1 +13,Exit long,2025-03-03 19:00,M1,1.04526,1,1.04422,0.00104,0.10,0,0.00158,0.15,-0.00016,-0.02,0.0043,0.00,1 +13,Entry long,2025-03-03 18:00,M1,1.04422,1,1.04422,0.00104,0.10,0,0.00158,0.15,-0.00016,-0.02,0.0043,0.00,1 +14,Exit short,2025-03-03 20:00,M1,1.04705,1,1.04526,-0.00179,-0.17,0,0,0.00,-0.00237,-0.23,0.00251,0.00,1 +14,Entry short,2025-03-03 19:00,M1,1.04526,1,1.04526,-0.00179,-0.17,0,0,0.00,-0.00237,-0.23,0.00251,0.00,1 +15,Exit long,2025-03-03 21:00,M1,1.04719,1,1.04705,0.00014,0.01,0,0.00059,0.06,-0.0011,-0.11,0.00265,0.00,1 +15,Entry long,2025-03-03 20:00,M1,1.04705,1,1.04705,0.00014,0.01,0,0.00059,0.06,-0.0011,-0.11,0.00265,0.00,1 +16,Exit short,2025-03-03 22:00,M1,1.04824,1,1.04719,-0.00105,-0.10,0,0.00031,0.03,-0.00191,-0.18,0.0016,0.00,1 +16,Entry short,2025-03-03 21:00,M1,1.04719,1,1.04719,-0.00105,-0.10,0,0.00031,0.03,-0.00191,-0.18,0.0016,0.00,1 +17,Exit long,2025-03-03 23:00,M1,1.04846,1,1.04824,0.00022,0.02,0,0.00214,0.20,-0.00051,-0.05,0.00182,0.00,1 +17,Entry long,2025-03-03 22:00,M1,1.04824,1,1.04824,0.00022,0.02,0,0.00214,0.20,-0.00051,-0.05,0.00182,0.00,1 +18,Exit short,2025-03-04 00:00,M1,1.04962,1,1.04846,-0.00116,-0.11,0,0.00006,0.01,-0.00169,-0.16,0.00066,0.00,1 +18,Entry short,2025-03-03 23:00,M1,1.04846,1,1.04846,-0.00116,-0.11,0,0.00006,0.01,-0.00169,-0.16,0.00066,0.00,1 +19,Exit long,2025-03-04 01:00,M1,1.04904,1,1.04962,-0.00058,-0.06,0,0.00007,0.01,-0.00096,-0.09,0.00008,0.00,1 +19,Entry long,2025-03-04 00:00,M1,1.04962,1,1.04962,-0.00058,-0.06,0,0.00007,0.01,-0.00096,-0.09,0.00008,0.00,1 +20,Exit short,2025-03-04 02:00,M1,1.04872,1,1.04904,0.00032,0.03,0,0.00084,0.08,-0.00136,-0.13,0.0004,0.00,1 +20,Entry short,2025-03-04 01:00,M1,1.04904,1,1.04904,0.00032,0.03,0,0.00084,0.08,-0.00136,-0.13,0.0004,0.00,1 +21,Exit long,2025-03-04 03:00,M1,1.0473,1,1.04872,-0.00142,-0.14,0,0.00066,0.06,-0.00148,-0.14,-0.00102,0.00,1 +21,Entry long,2025-03-04 02:00,M1,1.04872,1,1.04872,-0.00142,-0.14,0,0.00066,0.06,-0.00148,-0.14,-0.00102,0.00,1 +22,Exit short,2025-03-04 04:00,M1,1.04823,1,1.0473,-0.00093,-0.09,0,0.00066,0.06,-0.00123,-0.12,-0.00195,0.00,1 +22,Entry short,2025-03-04 03:00,M1,1.0473,1,1.0473,-0.00093,-0.09,0,0.00066,0.06,-0.00123,-0.12,-0.00195,0.00,1 +23,Exit long,2025-03-04 05:00,M1,1.04882,1,1.04823,0.00059,0.06,0,0.00105,0.10,-0.00019,-0.02,-0.00136,0.00,1 +23,Entry long,2025-03-04 04:00,M1,1.04823,1,1.04823,0.00059,0.06,0,0.00105,0.10,-0.00019,-0.02,-0.00136,0.00,1 +24,Exit short,2025-03-04 06:00,M1,1.0488,1,1.04882,0.00002,0.00,0,0.00037,0.04,-0.00006,-0.01,-0.00134,0.00,1 +24,Entry short,2025-03-04 05:00,M1,1.04882,1,1.04882,0.00002,0.00,0,0.00037,0.04,-0.00006,-0.01,-0.00134,0.00,1 +25,Exit long,2025-03-04 07:00,M1,1.04856,1,1.0488,-0.00024,-0.02,0,0.00045,0.04,-0.00114,-0.11,-0.00158,0.00,1 +25,Entry long,2025-03-04 06:00,M1,1.0488,1,1.0488,-0.00024,-0.02,0,0.00045,0.04,-0.00114,-0.11,-0.00158,0.00,1 +26,Exit short,2025-03-04 08:00,M1,1.04882,1,1.04856,-0.00026,-0.02,0,0.00089,0.08,-0.00032,-0.03,-0.00184,0.00,1 +26,Entry short,2025-03-04 07:00,M1,1.04856,1,1.04856,-0.00026,-0.02,0,0.00089,0.08,-0.00032,-0.03,-0.00184,0.00,1 +27,Exit long,2025-03-04 09:00,M1,1.04884,1,1.04882,0.00002,0.00,0,0.0008,0.08,-0.00058,-0.06,-0.00182,0.00,1 +27,Entry long,2025-03-04 08:00,M1,1.04882,1,1.04882,0.00002,0.00,0,0.0008,0.08,-0.00058,-0.06,-0.00182,0.00,1 +28,Exit short,2025-03-04 10:00,M1,1.04808,1,1.04884,0.00076,0.07,0,0.0008,0.08,-0.00016,-0.02,-0.00106,0.00,1 +28,Entry short,2025-03-04 09:00,M1,1.04884,1,1.04884,0.00076,0.07,0,0.0008,0.08,-0.00016,-0.02,-0.00106,0.00,1 +29,Exit long,2025-03-04 11:00,M1,1.04772,1,1.04808,-0.00036,-0.03,0,0.0003,0.03,-0.00059,-0.06,-0.00142,0.00,1 +29,Entry long,2025-03-04 10:00,M1,1.04808,1,1.04808,-0.00036,-0.03,0,0.0003,0.03,-0.00059,-0.06,-0.00142,0.00,1 +30,Exit short,2025-03-04 12:00,M1,1.04782,1,1.04772,-0.0001,-0.01,0,0.00059,0.06,-0.00034,-0.03,-0.00152,0.00,1 +30,Entry short,2025-03-04 11:00,M1,1.04772,1,1.04772,-0.0001,-0.01,0,0.00059,0.06,-0.00034,-0.03,-0.00152,0.00,1 +31,Exit long,2025-03-04 13:00,M1,1.04837,1,1.04782,0.00055,0.05,0,0.00083,0.08,-0.00072,-0.07,-0.00097,0.00,1 +31,Entry long,2025-03-04 12:00,M1,1.04782,1,1.04782,0.00055,0.05,0,0.00083,0.08,-0.00072,-0.07,-0.00097,0.00,1 +32,Exit short,2025-03-04 14:00,M1,1.04861,1,1.04837,-0.00024,-0.02,0,0.00046,0.04,-0.00061,-0.06,-0.00121,0.00,1 +32,Entry short,2025-03-04 13:00,M1,1.04837,1,1.04837,-0.00024,-0.02,0,0.00046,0.04,-0.00061,-0.06,-0.00121,0.00,1 +33,Exit long,2025-03-04 15:00,M1,1.0493,1,1.04861,0.00069,0.07,0,0.00147,0.14,-0.00051,-0.05,-0.00052,0.00,1 +33,Entry long,2025-03-04 14:00,M1,1.04861,1,1.04861,0.00069,0.07,0,0.00147,0.14,-0.00051,-0.05,-0.00052,0.00,1 +34,Exit short,2025-03-04 16:00,M1,1.05188,1,1.0493,-0.00258,-0.25,0,0.00067,0.06,-0.0031,-0.30,-0.0031,0.00,1 +34,Entry short,2025-03-04 15:00,M1,1.0493,1,1.0493,-0.00258,-0.25,0,0.00067,0.06,-0.0031,-0.30,-0.0031,0.00,1 +35,Exit long,2025-03-04 17:00,M1,1.05122,1,1.05188,-0.00066,-0.06,0,0.00087,0.08,-0.00094,-0.09,-0.00376,0.00,1 +35,Entry long,2025-03-04 16:00,M1,1.05188,1,1.05188,-0.00066,-0.06,0,0.00087,0.08,-0.00094,-0.09,-0.00376,0.00,1 +36,Exit short,2025-03-04 18:00,M1,1.05114,1,1.05122,0.00008,0.01,0,0.00096,0.09,-0.00074,-0.07,-0.00368,0.00,1 +36,Entry short,2025-03-04 17:00,M1,1.05122,1,1.05122,0.00008,0.01,0,0.00096,0.09,-0.00074,-0.07,-0.00368,0.00,1 +37,Exit long,2025-03-04 19:00,M1,1.05442,1,1.05114,0.00328,0.31,0,0.00333,0.32,-0.00018,-0.02,-0.0004,0.00,1 +37,Entry long,2025-03-04 18:00,M1,1.05114,1,1.05114,0.00328,0.31,0,0.00333,0.32,-0.00018,-0.02,-0.0004,0.00,1 +38,Exit short,2025-03-04 20:00,M1,1.05532,1,1.05442,-0.0009,-0.09,0,0.00081,0.08,-0.00129,-0.12,-0.0013,0.00,1 +38,Entry short,2025-03-04 19:00,M1,1.05442,1,1.05442,-0.0009,-0.09,0,0.00081,0.08,-0.00129,-0.12,-0.0013,0.00,1 +39,Exit long,2025-03-04 21:00,M1,1.05391,1,1.05532,-0.00141,-0.13,0,0.00063,0.06,-0.00224,-0.21,-0.00271,0.00,1 +39,Entry long,2025-03-04 20:00,M1,1.05532,1,1.05532,-0.00141,-0.13,0,0.00063,0.06,-0.00224,-0.21,-0.00271,0.00,1 +40,Exit short,2025-03-04 22:00,M1,1.05214,1,1.05391,0.00177,0.17,0,0.00185,0.18,-0.00095,-0.09,-0.00094,0.00,1 +40,Entry short,2025-03-04 21:00,M1,1.05391,1,1.05391,0.00177,0.17,0,0.00185,0.18,-0.00095,-0.09,-0.00094,0.00,1 +41,Exit long,2025-03-04 23:00,M1,1.05266,1,1.05214,0.00052,0.05,0,0.00067,0.06,-0.0025,-0.24,-0.00042,0.00,1 +41,Entry long,2025-03-04 22:00,M1,1.05214,1,1.05214,0.00052,0.05,0,0.00067,0.06,-0.0025,-0.24,-0.00042,0.00,1 +42,Exit short,2025-03-05 00:00,M1,1.05338,1,1.05266,-0.00072,-0.07,0,0.00112,0.11,-0.00132,-0.13,-0.00114,0.00,1 +42,Entry short,2025-03-04 23:00,M1,1.05266,1,1.05266,-0.00072,-0.07,0,0.00112,0.11,-0.00132,-0.13,-0.00114,0.00,1 +43,Exit long,2025-03-05 01:00,M1,1.05418,1,1.05338,0.0008,0.08,0,0.00102,0.10,-0.00032,-0.03,-0.00034,0.00,1 +43,Entry long,2025-03-05 00:00,M1,1.05338,1,1.05338,0.0008,0.08,0,0.00102,0.10,-0.00032,-0.03,-0.00034,0.00,1 +44,Exit short,2025-03-05 02:00,M1,1.05907,1,1.05418,-0.00489,-0.46,0,0.0004,0.04,-0.00494,-0.47,-0.00523,0.00,1 +44,Entry short,2025-03-05 01:00,M1,1.05418,1,1.05418,-0.00489,-0.46,0,0.0004,0.04,-0.00494,-0.47,-0.00523,0.00,1 +45,Exit long,2025-03-05 03:00,M1,1.06008,1,1.05907,0.00101,0.10,0,0.00114,0.11,-0.00042,-0.04,-0.00422,0.00,1 +45,Entry long,2025-03-05 02:00,M1,1.05907,1,1.05907,0.00101,0.10,0,0.00114,0.11,-0.00042,-0.04,-0.00422,0.00,1 +46,Exit short,2025-03-05 04:00,M1,1.06085,1,1.06008,-0.00077,-0.07,0,0.00001,0.00,-0.00233,-0.22,-0.00499,0.00,1 +46,Entry short,2025-03-05 03:00,M1,1.06008,1,1.06008,-0.00077,-0.07,0,0.00001,0.00,-0.00233,-0.22,-0.00499,0.00,1 +47,Exit long,2025-03-05 05:00,M1,1.06258,1,1.06085,0.00173,0.16,0,0.00193,0.18,-0.00003,0.00,-0.00326,0.00,1 +47,Entry long,2025-03-05 04:00,M1,1.06085,1,1.06085,0.00173,0.16,0,0.00193,0.18,-0.00003,0.00,-0.00326,0.00,1 +48,Exit short,2025-03-05 06:00,M1,1.06202,1,1.06258,0.00056,0.05,0,0.00079,0.07,-0.00004,0.00,-0.0027,0.00,1 +48,Entry short,2025-03-05 05:00,M1,1.06258,1,1.06258,0.00056,0.05,0,0.00079,0.07,-0.00004,0.00,-0.0027,0.00,1 +49,Exit long,2025-03-05 07:00,M1,1.06232,1,1.06202,0.0003,0.03,0,0.0017,0.16,-0.00006,-0.01,-0.0024,0.00,1 +49,Entry long,2025-03-05 06:00,M1,1.06202,1,1.06202,0.0003,0.03,0,0.0017,0.16,-0.00006,-0.01,-0.0024,0.00,1 +50,Exit short,2025-03-05 08:00,M1,1.0621,1,1.06232,0.00022,0.02,0,0.00124,0.12,-0.00043,-0.04,-0.00218,0.00,1 +50,Entry short,2025-03-05 07:00,M1,1.06232,1,1.06232,0.00022,0.02,0,0.00124,0.12,-0.00043,-0.04,-0.00218,0.00,1 +51,Exit long,2025-03-05 09:00,M1,1.06127,1,1.0621,-0.00083,-0.08,0,0.00067,0.06,-0.00125,-0.12,-0.00301,0.00,1 +51,Entry long,2025-03-05 08:00,M1,1.0621,1,1.0621,-0.00083,-0.08,0,0.00067,0.06,-0.00125,-0.12,-0.00301,0.00,1 +52,Exit short,2025-03-05 10:00,M1,1.0604,1,1.06127,0.00087,0.08,0,0.00087,0.08,-0.00031,-0.03,-0.00214,0.00,1 +52,Entry short,2025-03-05 09:00,M1,1.06127,1,1.06127,0.00087,0.08,0,0.00087,0.08,-0.00031,-0.03,-0.00214,0.00,1 +53,Exit long,2025-03-05 11:00,M1,1.06182,1,1.0604,0.00142,0.13,0,0.00168,0.16,-0.0002,-0.02,-0.00072,0.00,1 +53,Entry long,2025-03-05 10:00,M1,1.0604,1,1.0604,0.00142,0.13,0,0.00168,0.16,-0.0002,-0.02,-0.00072,0.00,1 +54,Exit short,2025-03-05 12:00,M1,1.0619,1,1.06182,-0.00008,-0.01,0,0.00028,0.03,-0.0008,-0.08,-0.0008,0.00,1 +54,Entry short,2025-03-05 11:00,M1,1.06182,1,1.06182,-0.00008,-0.01,0,0.00028,0.03,-0.0008,-0.08,-0.0008,0.00,1 +55,Exit long,2025-03-05 13:00,M1,1.06316,1,1.0619,0.00126,0.12,0,0.00136,0.13,-0.00001,0.00,0.00046,0.00,1 +55,Entry long,2025-03-05 12:00,M1,1.0619,1,1.0619,0.00126,0.12,0,0.00136,0.13,-0.00001,0.00,0.00046,0.00,1 +56,Exit short,2025-03-05 14:00,M1,1.06324,1,1.06316,-0.00008,-0.01,0,0.00073,0.07,-0.00076,-0.07,0.00038,0.00,1 +56,Entry short,2025-03-05 13:00,M1,1.06316,1,1.06316,-0.00008,-0.01,0,0.00073,0.07,-0.00076,-0.07,0.00038,0.00,1 +57,Exit long,2025-03-05 15:00,M1,1.06744,1,1.06324,0.0042,0.40,0,0.00442,0.42,-0.00026,-0.02,0.00458,0.00,1 +57,Entry long,2025-03-05 14:00,M1,1.06324,1,1.06324,0.0042,0.40,0,0.00442,0.42,-0.00026,-0.02,0.00458,0.00,1 +58,Exit short,2025-03-05 16:00,M1,1.06981,1,1.06744,-0.00237,-0.22,0,0.00158,0.15,-0.00254,-0.24,0.00221,0.00,1 +58,Entry short,2025-03-05 15:00,M1,1.06744,1,1.06744,-0.00237,-0.22,0,0.00158,0.15,-0.00254,-0.24,0.00221,0.00,1 +59,Exit long,2025-03-05 17:00,M1,1.0712,1,1.06981,0.00139,0.13,0,0.00242,0.23,-0.00025,-0.02,0.0036,0.00,1 +59,Entry long,2025-03-05 16:00,M1,1.06981,1,1.06981,0.00139,0.13,0,0.00242,0.23,-0.00025,-0.02,0.0036,0.00,1 +60,Exit short,2025-03-05 18:00,M1,1.06972,1,1.0712,0.00148,0.14,0,0.00284,0.27,-0.00032,-0.03,0.00508,0.00,1 +60,Entry short,2025-03-05 17:00,M1,1.0712,1,1.0712,0.00148,0.14,0,0.00284,0.27,-0.00032,-0.03,0.00508,0.00,1 +61,Exit long,2025-03-05 19:00,M1,1.06789,1,1.06972,-0.00183,-0.17,0,0.00016,0.01,-0.00208,-0.19,0.00325,0.00,1 +61,Entry long,2025-03-05 18:00,M1,1.06972,1,1.06972,-0.00183,-0.17,0,0.00016,0.01,-0.00208,-0.19,0.00325,0.00,1 +62,Exit short,2025-03-05 20:00,M1,1.06958,1,1.06789,-0.00169,-0.16,0,0.00001,0.00,-0.00351,-0.33,0.00156,0.00,1 +62,Entry short,2025-03-05 19:00,M1,1.06789,1,1.06789,-0.00169,-0.16,0,0.00001,0.00,-0.00351,-0.33,0.00156,0.00,1 +63,Exit long,2025-03-05 21:00,M1,1.07158,1,1.06958,0.002,0.19,0,0.00272,0.25,-0.00089,-0.08,0.00356,0.00,1 +63,Entry long,2025-03-05 20:00,M1,1.06958,1,1.06958,0.002,0.19,0,0.00272,0.25,-0.00089,-0.08,0.00356,0.00,1 +64,Exit short,2025-03-05 22:00,M1,1.077,1,1.07158,-0.00542,-0.51,0,0.0002,0.02,-0.00612,-0.57,-0.00186,0.00,1 +64,Entry short,2025-03-05 21:00,M1,1.07158,1,1.07158,-0.00542,-0.51,0,0.0002,0.02,-0.00612,-0.57,-0.00186,0.00,1 +65,Exit long,2025-03-05 23:00,M1,1.07652,1,1.077,-0.00048,-0.04,0,0.00012,0.01,-0.00289,-0.27,-0.00234,0.00,1 +65,Entry long,2025-03-05 22:00,M1,1.077,1,1.077,-0.00048,-0.04,0,0.00012,0.01,-0.00289,-0.27,-0.00234,0.00,1 +66,Exit short,2025-03-06 00:00,M1,1.07671,1,1.07652,-0.00019,-0.02,0,0.0004,0.04,-0.00218,-0.20,-0.00253,0.00,1 +66,Entry short,2025-03-05 23:00,M1,1.07652,1,1.07652,-0.00019,-0.02,0,0.0004,0.04,-0.00218,-0.20,-0.00253,0.00,1 +67,Exit long,2025-03-06 01:00,M1,1.07851,1,1.07671,0.0018,0.17,0,0.00209,0.19,-0.00047,-0.04,-0.00073,0.00,1 +67,Entry long,2025-03-06 00:00,M1,1.07671,1,1.07671,0.0018,0.17,0,0.00209,0.19,-0.00047,-0.04,-0.00073,0.00,1 +68,Exit short,2025-03-06 02:00,M1,1.07737,1,1.07851,0.00114,0.11,0,0.00213,0.20,-0.00039,-0.04,0.00041,0.00,1 +68,Entry short,2025-03-06 01:00,M1,1.07851,1,1.07851,0.00114,0.11,0,0.00213,0.20,-0.00039,-0.04,0.00041,0.00,1 +69,Exit long,2025-03-06 03:00,M1,1.07902,1,1.07737,0.00165,0.15,0,0.00173,0.16,-0.00037,-0.03,0.00206,0.00,1 +69,Entry long,2025-03-06 02:00,M1,1.07737,1,1.07737,0.00165,0.15,0,0.00173,0.16,-0.00037,-0.03,0.00206,0.00,1 +70,Exit short,2025-03-06 04:00,M1,1.07922,1,1.07902,-0.0002,-0.02,0,0.00025,0.02,-0.00066,-0.06,0.00186,0.00,1 +70,Entry short,2025-03-06 03:00,M1,1.07902,1,1.07902,-0.0002,-0.02,0,0.00025,0.02,-0.00066,-0.06,0.00186,0.00,1 +71,Exit long,2025-03-06 05:00,M1,1.07896,1,1.07922,-0.00026,-0.02,0,0.00006,0.01,-0.00067,-0.06,0.0016,0.00,1 +71,Entry long,2025-03-06 04:00,M1,1.07922,1,1.07922,-0.00026,-0.02,0,0.00006,0.01,-0.00067,-0.06,0.0016,0.00,1 +72,Exit short,2025-03-06 06:00,M1,1.07908,1,1.07896,-0.00012,-0.01,0,0,0.00,-0.00036,-0.03,0.00148,0.00,1 +72,Entry short,2025-03-06 05:00,M1,1.07896,1,1.07896,-0.00012,-0.01,0,0,0.00,-0.00036,-0.03,0.00148,0.00,1 +73,Exit long,2025-03-06 07:00,M1,1.07942,1,1.07908,0.00034,0.03,0,0.00044,0.04,-0.00035,-0.03,0.00182,0.00,1 +73,Entry long,2025-03-06 06:00,M1,1.07908,1,1.07908,0.00034,0.03,0,0.00044,0.04,-0.00035,-0.03,0.00182,0.00,1 +74,Exit short,2025-03-06 08:00,M1,1.07944,1,1.07942,-0.00002,0.00,0,0.00068,0.06,-0.00088,-0.08,0.0018,0.00,1 +74,Entry short,2025-03-06 07:00,M1,1.07942,1,1.07942,-0.00002,0.00,0,0.00068,0.06,-0.00088,-0.08,0.0018,0.00,1 +75,Exit long,2025-03-06 09:00,M1,1.08152,1,1.07944,0.00208,0.19,0,0.0026,0.24,-0.00048,-0.04,0.00388,0.00,1 +75,Entry long,2025-03-06 08:00,M1,1.07944,1,1.07944,0.00208,0.19,0,0.0026,0.24,-0.00048,-0.04,0.00388,0.00,1 +76,Exit short,2025-03-06 10:00,M1,1.08052,1,1.08152,0.001,0.09,0,0.00173,0.16,-0.00042,-0.04,0.00488,0.00,1 +76,Entry short,2025-03-06 09:00,M1,1.08152,1,1.08152,0.001,0.09,0,0.00173,0.16,-0.00042,-0.04,0.00488,0.00,1 +77,Exit long,2025-03-06 11:00,M1,1.07896,1,1.08052,-0.00156,-0.14,0,0.00002,0.00,-0.0017,-0.16,0.00332,0.00,1 +77,Entry long,2025-03-06 10:00,M1,1.08052,1,1.08052,-0.00156,-0.14,0,0.00002,0.00,-0.0017,-0.16,0.00332,0.00,1 +78,Exit short,2025-03-06 12:00,M1,1.08036,1,1.07896,-0.0014,-0.13,0,0.00054,0.05,-0.00148,-0.14,0.00192,0.00,1 +78,Entry short,2025-03-06 11:00,M1,1.07896,1,1.07896,-0.0014,-0.13,0,0.00054,0.05,-0.00148,-0.14,0.00192,0.00,1 +79,Exit long,2025-03-06 13:00,M1,1.08104,1,1.08036,0.00068,0.06,0,0.00082,0.08,-0.00034,-0.03,0.0026,0.00,1 +79,Entry long,2025-03-06 12:00,M1,1.08036,1,1.08036,0.00068,0.06,0,0.00082,0.08,-0.00034,-0.03,0.0026,0.00,1 +80,Exit short,2025-03-06 14:00,M1,1.08028,1,1.08104,0.00076,0.07,0,0.00112,0.10,-0.00097,-0.09,0.00336,0.00,1 +80,Entry short,2025-03-06 13:00,M1,1.08104,1,1.08104,0.00076,0.07,0,0.00112,0.10,-0.00097,-0.09,0.00336,0.00,1 +81,Exit long,2025-03-06 15:00,M1,1.07992,1,1.08028,-0.00036,-0.03,0,0.00194,0.18,-0.00108,-0.10,0.003,0.00,1 +81,Entry long,2025-03-06 14:00,M1,1.08028,1,1.08028,-0.00036,-0.03,0,0.00194,0.18,-0.00108,-0.10,0.003,0.00,1 +82,Exit short,2025-03-06 16:00,M1,1.08012,1,1.07992,-0.0002,-0.02,0,0.00062,0.06,-0.00178,-0.16,0.0028,0.00,1 +82,Entry short,2025-03-06 15:00,M1,1.07992,1,1.07992,-0.0002,-0.02,0,0.00062,0.06,-0.00178,-0.16,0.0028,0.00,1 +83,Exit long,2025-03-06 17:00,M1,1.07999,1,1.08012,-0.00013,-0.01,0,0.00056,0.05,-0.00208,-0.19,0.00267,0.00,1 +83,Entry long,2025-03-06 16:00,M1,1.08012,1,1.08012,-0.00013,-0.01,0,0.00056,0.05,-0.00208,-0.19,0.00267,0.00,1 +84,Exit short,2025-03-06 18:00,M1,1.07919,1,1.07999,0.0008,0.07,0,0.00171,0.16,-0.00039,-0.04,0.00347,0.00,1 +84,Entry short,2025-03-06 17:00,M1,1.07999,1,1.07999,0.0008,0.07,0,0.00171,0.16,-0.00039,-0.04,0.00347,0.00,1 +85,Exit long,2025-03-06 19:00,M1,1.07993,1,1.07919,0.00074,0.07,0,0.00093,0.09,-0.00087,-0.08,0.00421,0.00,1 +85,Entry long,2025-03-06 18:00,M1,1.07919,1,1.07919,0.00074,0.07,0,0.00093,0.09,-0.00087,-0.08,0.00421,0.00,1 +86,Exit short,2025-03-06 20:00,M1,1.08002,1,1.07993,-0.00009,-0.01,0,0.00111,0.10,-0.0008,-0.07,0.00412,0.00,1 +86,Entry short,2025-03-06 19:00,M1,1.07993,1,1.07993,-0.00009,-0.01,0,0.00111,0.10,-0.0008,-0.07,0.00412,0.00,1 +87,Exit long,2025-03-06 21:00,M1,1.08262,1,1.08002,0.0026,0.24,0,0.00451,0.42,-0.0009,-0.08,0.00672,0.00,1 +87,Entry long,2025-03-06 20:00,M1,1.08002,1,1.08002,0.0026,0.24,0,0.00451,0.42,-0.0009,-0.08,0.00672,0.00,1 +88,Exit short,2025-03-06 22:00,M1,1.08372,1,1.08262,-0.0011,-0.10,0,0.0015,0.14,-0.00152,-0.14,0.00562,0.00,1 +88,Entry short,2025-03-06 21:00,M1,1.08262,1,1.08262,-0.0011,-0.10,0,0.0015,0.14,-0.00152,-0.14,0.00562,0.00,1 +89,Exit long,2025-03-06 23:00,M1,1.08172,1,1.08372,-0.002,-0.18,0,0.00164,0.15,-0.00258,-0.24,0.00362,0.00,1 +89,Entry long,2025-03-06 22:00,M1,1.08372,1,1.08372,-0.002,-0.18,0,0.00164,0.15,-0.00258,-0.24,0.00362,0.00,1 +90,Exit short,2025-03-07 00:00,M1,1.08175,1,1.08172,-0.00003,0.00,0,0.00018,0.02,-0.00203,-0.19,0.00359,0.00,1 +90,Entry short,2025-03-06 23:00,M1,1.08172,1,1.08172,-0.00003,0.00,0,0.00018,0.02,-0.00203,-0.19,0.00359,0.00,1 +91,Exit long,2025-03-07 01:00,M1,1.07971,1,1.08175,-0.00204,-0.19,0,0.00049,0.05,-0.00261,-0.24,0.00155,0.00,1 +91,Entry long,2025-03-07 00:00,M1,1.08175,1,1.08175,-0.00204,-0.19,0,0.00049,0.05,-0.00261,-0.24,0.00155,0.00,1 +92,Exit short,2025-03-07 02:00,M1,1.07838,1,1.07971,0.00133,0.12,0,0.00313,0.29,-0.00048,-0.04,0.00288,0.00,1 +92,Entry short,2025-03-07 01:00,M1,1.07971,1,1.07971,0.00133,0.12,0,0.00313,0.29,-0.00048,-0.04,0.00288,0.00,1 +93,Exit long,2025-03-07 03:00,M1,1.08018,1,1.07838,0.0018,0.17,0,0.00278,0.26,-0.0001,-0.01,0.00468,0.00,1 +93,Entry long,2025-03-07 02:00,M1,1.07838,1,1.07838,0.0018,0.17,0,0.00278,0.26,-0.0001,-0.01,0.00468,0.00,1 +94,Exit short,2025-03-07 04:00,M1,1.07868,1,1.08018,0.0015,0.14,0,0.00163,0.15,-0.00016,-0.01,0.00618,0.00,1 +94,Entry short,2025-03-07 03:00,M1,1.08018,1,1.08018,0.0015,0.14,0,0.00163,0.15,-0.00016,-0.01,0.00618,0.00,1 +95,Exit long,2025-03-07 05:00,M1,1.07854,1,1.07868,-0.00014,-0.01,0,0.00038,0.04,-0.00117,-0.11,0.00604,0.00,1 +95,Entry long,2025-03-07 04:00,M1,1.07868,1,1.07868,-0.00014,-0.01,0,0.00038,0.04,-0.00117,-0.11,0.00604,0.00,1 +96,Exit short,2025-03-07 06:00,M1,1.07917,1,1.07854,-0.00063,-0.06,0,0.00026,0.02,-0.00079,-0.07,0.00541,0.00,1 +96,Entry short,2025-03-07 05:00,M1,1.07854,1,1.07854,-0.00063,-0.06,0,0.00026,0.02,-0.00079,-0.07,0.00541,0.00,1 +97,Exit long,2025-03-07 07:00,M1,1.07875,1,1.07917,-0.00042,-0.04,0,0.00047,0.04,-0.00071,-0.07,0.00499,0.00,1 +97,Entry long,2025-03-07 06:00,M1,1.07917,1,1.07917,-0.00042,-0.04,0,0.00047,0.04,-0.00071,-0.07,0.00499,0.00,1 +98,Exit short,2025-03-07 08:00,M1,1.07876,1,1.07875,-0.00001,0.00,0,0.00006,0.01,-0.00081,-0.08,0.00498,0.00,1 +98,Entry short,2025-03-07 07:00,M1,1.07875,1,1.07875,-0.00001,0.00,0,0.00006,0.01,-0.00081,-0.08,0.00498,0.00,1 +99,Exit long,2025-03-07 09:00,M1,1.079,1,1.07876,0.00024,0.02,0,0.00053,0.05,-0.00062,-0.06,0.00522,0.00,1 +99,Entry long,2025-03-07 08:00,M1,1.07876,1,1.07876,0.00024,0.02,0,0.00053,0.05,-0.00062,-0.06,0.00522,0.00,1 +100,Exit short,2025-03-07 10:00,M1,1.07994,1,1.079,-0.00094,-0.09,0,0.00053,0.05,-0.00095,-0.09,0.00428,0.00,1 +100,Entry short,2025-03-07 09:00,M1,1.079,1,1.079,-0.00094,-0.09,0,0.00053,0.05,-0.00095,-0.09,0.00428,0.00,1 +101,Exit long,2025-03-07 11:00,M1,1.08058,1,1.07994,0.00064,0.06,0,0.00154,0.14,-0.00031,-0.03,0.00492,0.00,1 +101,Entry long,2025-03-07 10:00,M1,1.07994,1,1.07994,0.00064,0.06,0,0.00154,0.14,-0.00031,-0.03,0.00492,0.00,1 +102,Exit short,2025-03-07 12:00,M1,1.0813,1,1.08058,-0.00072,-0.07,0,0.00028,0.03,-0.00075,-0.07,0.0042,0.00,1 +102,Entry short,2025-03-07 11:00,M1,1.08058,1,1.08058,-0.00072,-0.07,0,0.00028,0.03,-0.00075,-0.07,0.0042,0.00,1 +103,Exit long,2025-03-07 13:00,M1,1.08134,1,1.0813,0.00004,0.00,0,0.00048,0.04,-0.00053,-0.05,0.00424,0.00,1 +103,Entry long,2025-03-07 12:00,M1,1.0813,1,1.0813,0.00004,0.00,0,0.00048,0.04,-0.00053,-0.05,0.00424,0.00,1 +104,Exit short,2025-03-07 14:00,M1,1.08237,1,1.08134,-0.00103,-0.10,0,0.00053,0.05,-0.00118,-0.11,0.00321,0.00,1 +104,Entry short,2025-03-07 13:00,M1,1.08134,1,1.08134,-0.00103,-0.10,0,0.00053,0.05,-0.00118,-0.11,0.00321,0.00,1 +105,Exit long,2025-03-07 15:00,M1,1.08299,1,1.08237,0.00062,0.06,0,0.00171,0.16,-0.00036,-0.03,0.00383,0.00,1 +105,Entry long,2025-03-07 14:00,M1,1.08237,1,1.08237,0.00062,0.06,0,0.00171,0.16,-0.00036,-0.03,0.00383,0.00,1 +106,Exit short,2025-03-07 16:00,M1,1.08508,1,1.08299,-0.00209,-0.19,0,0.00037,0.03,-0.00254,-0.23,0.00174,0.00,1 +106,Entry short,2025-03-07 15:00,M1,1.08299,1,1.08299,-0.00209,-0.19,0,0.00037,0.03,-0.00254,-0.23,0.00174,0.00,1 +107,Exit long,2025-03-07 17:00,M1,1.08614,1,1.08508,0.00106,0.10,0,0.00206,0.19,-0.00062,-0.06,0.0028,0.00,1 +107,Entry long,2025-03-07 16:00,M1,1.08508,1,1.08508,0.00106,0.10,0,0.00206,0.19,-0.00062,-0.06,0.0028,0.00,1 +108,Exit short,2025-03-07 18:00,M1,1.08607,1,1.08614,0.00007,0.01,0,0.00039,0.04,-0.00057,-0.05,0.00287,0.00,1 +108,Entry short,2025-03-07 17:00,M1,1.08614,1,1.08614,0.00007,0.01,0,0.00039,0.04,-0.00057,-0.05,0.00287,0.00,1 +109,Exit long,2025-03-07 19:00,M1,1.08495,1,1.08607,-0.00112,-0.10,0,0.00001,0.00,-0.00162,-0.15,0.00175,0.00,1 +109,Entry long,2025-03-07 18:00,M1,1.08607,1,1.08607,-0.00112,-0.10,0,0.00001,0.00,-0.00162,-0.15,0.00175,0.00,1 +110,Exit short,2025-03-07 20:00,M1,1.08546,1,1.08495,-0.00051,-0.05,0,0.00083,0.08,-0.00077,-0.07,0.00124,0.00,1 +110,Entry short,2025-03-07 19:00,M1,1.08495,1,1.08495,-0.00051,-0.05,0,0.00083,0.08,-0.00077,-0.07,0.00124,0.00,1 +111,Exit long,2025-03-07 21:00,M1,1.08445,1,1.08546,-0.00101,-0.09,0,0.00344,0.32,-0.00116,-0.11,0.00023,0.00,1 +111,Entry long,2025-03-07 20:00,M1,1.08546,1,1.08546,-0.00101,-0.09,0,0.00344,0.32,-0.00116,-0.11,0.00023,0.00,1 +112,Exit short,2025-03-07 22:00,M1,1.08537,1,1.08445,-0.00092,-0.08,0,0.00003,0.00,-0.00376,-0.35,-0.00069,0.00,1 +112,Entry short,2025-03-07 21:00,M1,1.08445,1,1.08445,-0.00092,-0.08,0,0.00003,0.00,-0.00376,-0.35,-0.00069,0.00,1 +113,Exit long,2025-03-07 23:00,M1,1.087,1,1.08537,0.00163,0.15,0,0.00335,0.31,-0.00181,-0.17,0.00094,0.00,1 +113,Entry long,2025-03-07 22:00,M1,1.08537,1,1.08537,0.00163,0.15,0,0.00335,0.31,-0.00181,-0.17,0.00094,0.00,1 +114,Exit short,2025-03-08 00:00,M1,1.08588,1,1.087,0.00112,0.10,0,0.00326,0.30,-0.00028,-0.03,0.00206,0.00,1 +114,Entry short,2025-03-07 23:00,M1,1.087,1,1.087,0.00112,0.10,0,0.00326,0.30,-0.00028,-0.03,0.00206,0.00,1 +115,Exit long,2025-03-08 01:00,M1,1.08434,1,1.08588,-0.00154,-0.14,0,0.00055,0.05,-0.00268,-0.25,0.00052,0.00,1 +115,Entry long,2025-03-08 00:00,M1,1.08588,1,1.08588,-0.00154,-0.14,0,0.00055,0.05,-0.00268,-0.25,0.00052,0.00,1 +116,Exit short,2025-03-08 02:00,M1,1.084,1,1.08434,0.00034,0.03,0,0.00177,0.16,-0.00012,-0.01,0.00086,0.00,1 +116,Entry short,2025-03-08 01:00,M1,1.08434,1,1.08434,0.00034,0.03,0,0.00177,0.16,-0.00012,-0.01,0.00086,0.00,1 +117,Exit long,2025-03-08 03:00,M1,1.08426,1,1.084,0.00026,0.02,0,0.00043,0.04,-0.00066,-0.06,0.00112,0.00,1 +117,Entry long,2025-03-08 02:00,M1,1.084,1,1.084,0.00026,0.02,0,0.00043,0.04,-0.00066,-0.06,0.00112,0.00,1 +118,Exit short,2025-03-08 04:00,M1,1.08474,1,1.08426,-0.00048,-0.04,0,0.00026,0.02,-0.00066,-0.06,0.00064,0.00,1 +118,Entry short,2025-03-08 03:00,M1,1.08426,1,1.08426,-0.00048,-0.04,0,0.00026,0.02,-0.00066,-0.06,0.00064,0.00,1 +119,Exit long,2025-03-08 05:00,M1,1.08345,1,1.08474,-0.00129,-0.12,0,0.0004,0.04,-0.00154,-0.14,-0.00065,0.00,1 +119,Entry long,2025-03-08 04:00,M1,1.08474,1,1.08474,-0.00129,-0.12,0,0.0004,0.04,-0.00154,-0.14,-0.00065,0.00,1 +120,Exit short,2025-03-10 05:00,M1,1.08404,1,1.08345,-0.00059,-0.05,0,0.00043,0.04,-0.00059,-0.05,-0.00124,0.00,1 +120,Entry short,2025-03-08 05:00,M1,1.08345,1,1.08345,-0.00059,-0.05,0,0.00043,0.04,-0.00059,-0.05,-0.00124,0.00,1 +121,Exit long,2025-03-10 06:00,M1,1.08496,1,1.08404,0.00092,0.08,0,0.00194,0.18,-0.00004,0.00,-0.00032,0.00,1 +121,Entry long,2025-03-10 05:00,M1,1.08404,1,1.08404,0.00092,0.08,0,0.00194,0.18,-0.00004,0.00,-0.00032,0.00,1 +122,Exit short,2025-03-10 07:00,M1,1.08602,1,1.08496,-0.00106,-0.10,0,0.00012,0.01,-0.00159,-0.15,-0.00138,0.00,1 +122,Entry short,2025-03-10 06:00,M1,1.08496,1,1.08496,-0.00106,-0.10,0,0.00012,0.01,-0.00159,-0.15,-0.00138,0.00,1 +123,Exit long,2025-03-10 08:00,M1,1.08642,1,1.08602,0.0004,0.04,0,0.00072,0.07,-0.00074,-0.07,-0.00098,0.00,1 +123,Entry long,2025-03-10 07:00,M1,1.08602,1,1.08602,0.0004,0.04,0,0.00072,0.07,-0.00074,-0.07,-0.00098,0.00,1 +124,Exit short,2025-03-10 09:00,M1,1.0853,1,1.08642,0.00112,0.10,0,0.00115,0.11,-0.00072,-0.07,0.00014,0.00,1 +124,Entry short,2025-03-10 08:00,M1,1.08642,1,1.08642,0.00112,0.10,0,0.00115,0.11,-0.00072,-0.07,0.00014,0.00,1 +125,Exit long,2025-03-10 10:00,M1,1.0837,1,1.0853,-0.0016,-0.15,0,0.00029,0.03,-0.00171,-0.16,-0.00146,0.00,1 +125,Entry long,2025-03-10 09:00,M1,1.0853,1,1.0853,-0.0016,-0.15,0,0.00029,0.03,-0.00171,-0.16,-0.00146,0.00,1 +126,Exit short,2025-03-10 11:00,M1,1.08317,1,1.0837,0.00053,0.05,0,0.00068,0.06,-0.00016,-0.01,-0.00093,0.00,1 +126,Entry short,2025-03-10 10:00,M1,1.0837,1,1.0837,0.00053,0.05,0,0.00068,0.06,-0.00016,-0.01,-0.00093,0.00,1 +127,Exit long,2025-03-10 12:00,M1,1.08306,1,1.08317,-0.00011,-0.01,0,0.00061,0.06,-0.00013,-0.01,-0.00104,0.00,1 +127,Entry long,2025-03-10 11:00,M1,1.08317,1,1.08317,-0.00011,-0.01,0,0.00061,0.06,-0.00013,-0.01,-0.00104,0.00,1 +128,Exit short,2025-03-10 13:00,M1,1.08351,1,1.08306,-0.00045,-0.04,0,0.00026,0.02,-0.00052,-0.05,-0.00149,0.00,1 +128,Entry short,2025-03-10 12:00,M1,1.08306,1,1.08306,-0.00045,-0.04,0,0.00026,0.02,-0.00052,-0.05,-0.00149,0.00,1 +129,Exit long,2025-03-10 14:00,M1,1.08374,1,1.08351,0.00023,0.02,0,0.00098,0.09,-0.00005,0.00,-0.00126,0.00,1 +129,Entry long,2025-03-10 13:00,M1,1.08351,1,1.08351,0.00023,0.02,0,0.00098,0.09,-0.00005,0.00,-0.00126,0.00,1 +130,Exit short,2025-03-10 15:00,M1,1.08228,1,1.08374,0.00146,0.13,0,0.00264,0.24,-0.00069,-0.06,0.0002,0.00,1 +130,Entry short,2025-03-10 14:00,M1,1.08374,1,1.08374,0.00146,0.13,0,0.00264,0.24,-0.00069,-0.06,0.0002,0.00,1 +131,Exit long,2025-03-10 16:00,M1,1.081,1,1.08228,-0.00128,-0.12,0,0.00018,0.02,-0.00178,-0.16,-0.00108,0.00,1 +131,Entry long,2025-03-10 15:00,M1,1.08228,1,1.08228,-0.00128,-0.12,0,0.00018,0.02,-0.00178,-0.16,-0.00108,0.00,1 +132,Exit short,2025-03-10 17:00,M1,1.08512,1,1.081,-0.00412,-0.38,0,0.00012,0.01,-0.00468,-0.43,-0.0052,0.00,1 +132,Entry short,2025-03-10 16:00,M1,1.081,1,1.081,-0.00412,-0.38,0,0.00012,0.01,-0.00468,-0.43,-0.0052,0.00,1 +133,Exit long,2025-03-10 18:00,M1,1.08611,1,1.08512,0.00099,0.09,0,0.00235,0.22,-0.00006,-0.01,-0.00421,0.00,1 +133,Entry long,2025-03-10 17:00,M1,1.08512,1,1.08512,0.00099,0.09,0,0.00235,0.22,-0.00006,-0.01,-0.00421,0.00,1 +134,Exit short,2025-03-10 19:00,M1,1.08507,1,1.08611,0.00104,0.10,0,0.00486,0.45,-0.00035,-0.03,-0.00317,0.00,1 +134,Entry short,2025-03-10 18:00,M1,1.08611,1,1.08611,0.00104,0.10,0,0.00486,0.45,-0.00035,-0.03,-0.00317,0.00,1 +135,Exit long,2025-03-10 20:00,M1,1.08439,1,1.08507,-0.00068,-0.06,0,0.00095,0.09,-0.00086,-0.08,-0.00385,0.00,1 +135,Entry long,2025-03-10 19:00,M1,1.08507,1,1.08507,-0.00068,-0.06,0,0.00095,0.09,-0.00086,-0.08,-0.00385,0.00,1 +136,Exit short,2025-03-10 21:00,M1,1.08352,1,1.08439,0.00087,0.08,0,0.00107,0.10,-0.00069,-0.06,-0.00298,0.00,1 +136,Entry short,2025-03-10 20:00,M1,1.08439,1,1.08439,0.00087,0.08,0,0.00107,0.10,-0.00069,-0.06,-0.00298,0.00,1 +137,Exit long,2025-03-10 22:00,M1,1.08452,1,1.08352,0.001,0.09,0,0.00116,0.11,-0.00036,-0.03,-0.00198,0.00,1 +137,Entry long,2025-03-10 21:00,M1,1.08352,1,1.08352,0.001,0.09,0,0.00116,0.11,-0.00036,-0.03,-0.00198,0.00,1 +138,Exit short,2025-03-10 23:00,M1,1.0837,1,1.08452,0.00082,0.08,0,0.00244,0.22,-0.00029,-0.03,-0.00116,0.00,1 +138,Entry short,2025-03-10 22:00,M1,1.08452,1,1.08452,0.00082,0.08,0,0.00244,0.22,-0.00029,-0.03,-0.00116,0.00,1 +139,Exit long,2025-03-11 00:00,M1,1.08304,1,1.0837,-0.00066,-0.06,0,0.0005,0.05,-0.00091,-0.08,-0.00182,0.00,1 +139,Entry long,2025-03-10 23:00,M1,1.0837,1,1.0837,-0.00066,-0.06,0,0.0005,0.05,-0.00091,-0.08,-0.00182,0.00,1 +140,Exit short,2025-03-11 01:00,M1,1.08298,1,1.08304,0.00006,0.01,0,0.00047,0.04,-0.00154,-0.14,-0.00176,0.00,1 +140,Entry short,2025-03-11 00:00,M1,1.08304,1,1.08304,0.00006,0.01,0,0.00047,0.04,-0.00154,-0.14,-0.00176,0.00,1 +141,Exit long,2025-03-11 02:00,M1,1.08297,1,1.08298,-0.00001,0.00,0,0.00056,0.05,-0.0012,-0.11,-0.00177,0.00,1 +141,Entry long,2025-03-11 01:00,M1,1.08298,1,1.08298,-0.00001,0.00,0,0.00056,0.05,-0.0012,-0.11,-0.00177,0.00,1 +142,Exit short,2025-03-11 03:00,M1,1.08318,1,1.08297,-0.00021,-0.02,0,0.00121,0.11,-0.00031,-0.03,-0.00198,0.00,1 +142,Entry short,2025-03-11 02:00,M1,1.08297,1,1.08297,-0.00021,-0.02,0,0.00121,0.11,-0.00031,-0.03,-0.00198,0.00,1 +143,Exit long,2025-03-11 04:00,M1,1.08362,1,1.08318,0.00044,0.04,0,0.00048,0.04,-0.0006,-0.06,-0.00154,0.00,1 +143,Entry long,2025-03-11 03:00,M1,1.08318,1,1.08318,0.00044,0.04,0,0.00048,0.04,-0.0006,-0.06,-0.00154,0.00,1 +144,Exit short,2025-03-11 05:00,M1,1.08353,1,1.08362,0.00009,0.01,0,0.00038,0.04,-0.00002,0.00,-0.00145,0.00,1 +144,Entry short,2025-03-11 04:00,M1,1.08362,1,1.08362,0.00009,0.01,0,0.00038,0.04,-0.00002,0.00,-0.00145,0.00,1 +145,Exit long,2025-03-11 06:00,M1,1.08348,1,1.08353,-0.00005,0.00,0,0.00064,0.06,-0.00021,-0.02,-0.0015,0.00,1 +145,Entry long,2025-03-11 05:00,M1,1.08353,1,1.08353,-0.00005,0.00,0,0.00064,0.06,-0.00021,-0.02,-0.0015,0.00,1 +146,Exit short,2025-03-11 07:00,M1,1.08394,1,1.08348,-0.00046,-0.04,0,0,0.00,-0.00088,-0.08,-0.00196,0.00,1 +146,Entry short,2025-03-11 06:00,M1,1.08348,1,1.08348,-0.00046,-0.04,0,0,0.00,-0.00088,-0.08,-0.00196,0.00,1 +147,Exit long,2025-03-11 08:00,M1,1.08515,1,1.08394,0.00121,0.11,0,0.00143,0.13,-0.00002,0.00,-0.00075,0.00,1 +147,Entry long,2025-03-11 07:00,M1,1.08394,1,1.08394,0.00121,0.11,0,0.00143,0.13,-0.00002,0.00,-0.00075,0.00,1 +148,Exit short,2025-03-11 09:00,M1,1.08582,1,1.08515,-0.00067,-0.06,0,0.00079,0.07,-0.00073,-0.07,-0.00142,0.00,1 +148,Entry short,2025-03-11 08:00,M1,1.08515,1,1.08515,-0.00067,-0.06,0,0.00079,0.07,-0.00073,-0.07,-0.00142,0.00,1 +149,Exit long,2025-03-11 10:00,M1,1.08559,1,1.08582,-0.00023,-0.02,0,0.00024,0.02,-0.00081,-0.07,-0.00165,0.00,1 +149,Entry long,2025-03-11 09:00,M1,1.08582,1,1.08582,-0.00023,-0.02,0,0.00024,0.02,-0.00081,-0.07,-0.00165,0.00,1 +150,Exit short,2025-03-11 11:00,M1,1.08544,1,1.08559,0.00015,0.01,0,0.00069,0.06,-0.0004,-0.04,-0.0015,0.00,1 +150,Entry short,2025-03-11 10:00,M1,1.08559,1,1.08559,0.00015,0.01,0,0.00069,0.06,-0.0004,-0.04,-0.0015,0.00,1 +151,Exit long,2025-03-11 12:00,M1,1.08545,1,1.08544,0.00001,0.00,0,0.00073,0.07,-0.00038,-0.04,-0.00149,0.00,1 +151,Entry long,2025-03-11 11:00,M1,1.08544,1,1.08544,0.00001,0.00,0,0.00073,0.07,-0.00038,-0.04,-0.00149,0.00,1 +152,Exit short,2025-03-11 13:00,M1,1.08384,1,1.08545,0.00161,0.15,0,0.00189,0.17,-0.00013,-0.01,0.00012,0.00,1 +152,Entry short,2025-03-11 12:00,M1,1.08545,1,1.08545,0.00161,0.15,0,0.00189,0.17,-0.00013,-0.01,0.00012,0.00,1 +153,Exit long,2025-03-11 14:00,M1,1.08566,1,1.08384,0.00182,0.17,0,0.00376,0.35,-0.00018,-0.02,0.00194,0.00,1 +153,Entry long,2025-03-11 13:00,M1,1.08384,1,1.08384,0.00182,0.17,0,0.00376,0.35,-0.00018,-0.02,0.00194,0.00,1 +154,Exit short,2025-03-11 15:00,M1,1.08907,1,1.08566,-0.00341,-0.31,0,0.00012,0.01,-0.00448,-0.41,-0.00147,0.00,1 +154,Entry short,2025-03-11 14:00,M1,1.08566,1,1.08566,-0.00341,-0.31,0,0.00012,0.01,-0.00448,-0.41,-0.00147,0.00,1 +155,Exit long,2025-03-11 16:00,M1,1.09172,1,1.08907,0.00265,0.24,0,0.00285,0.26,-0.00059,-0.05,0.00118,0.00,1 +155,Entry long,2025-03-11 15:00,M1,1.08907,1,1.08907,0.00265,0.24,0,0.00285,0.26,-0.00059,-0.05,0.00118,0.00,1 +156,Exit short,2025-03-11 17:00,M1,1.09085,1,1.09172,0.00087,0.08,0,0.00211,0.19,-0.00038,-0.03,0.00205,0.00,1 +156,Entry short,2025-03-11 16:00,M1,1.09172,1,1.09172,0.00087,0.08,0,0.00211,0.19,-0.00038,-0.03,0.00205,0.00,1 +157,Exit long,2025-03-11 18:00,M1,1.08906,1,1.09085,-0.00179,-0.16,0,0,0.00,-0.00261,-0.24,0.00026,0.00,1 +157,Entry long,2025-03-11 17:00,M1,1.09085,1,1.09085,-0.00179,-0.16,0,0,0.00,-0.00261,-0.24,0.00026,0.00,1 +158,Exit short,2025-03-11 19:00,M1,1.09046,1,1.08906,-0.0014,-0.13,0,0.00094,0.09,-0.00142,-0.13,-0.00114,0.00,1 +158,Entry short,2025-03-11 18:00,M1,1.08906,1,1.08906,-0.0014,-0.13,0,0.00094,0.09,-0.00142,-0.13,-0.00114,0.00,1 +159,Exit long,2025-03-11 20:00,M1,1.0918,1,1.09046,0.00134,0.12,0,0.0016,0.15,-0.00024,-0.02,0.0002,0.00,1 +159,Entry long,2025-03-11 19:00,M1,1.09046,1,1.09046,0.00134,0.12,0,0.0016,0.15,-0.00024,-0.02,0.0002,0.00,1 +160,Exit short,2025-03-11 21:00,M1,1.09201,1,1.0918,-0.00021,-0.02,0,0.00064,0.06,-0.00128,-0.12,-0.00001,0.00,1 +160,Entry short,2025-03-11 20:00,M1,1.0918,1,1.0918,-0.00021,-0.02,0,0.00064,0.06,-0.00128,-0.12,-0.00001,0.00,1 +161,Exit long,2025-03-11 22:00,M1,1.09194,1,1.09201,-0.00007,-0.01,0,0.00003,0.00,-0.00251,-0.23,-0.00008,0.00,1 +161,Entry long,2025-03-11 21:00,M1,1.09201,1,1.09201,-0.00007,-0.01,0,0.00003,0.00,-0.00251,-0.23,-0.00008,0.00,1 +162,Exit short,2025-03-11 23:00,M1,1.09272,1,1.09194,-0.00078,-0.07,0,0.00071,0.07,-0.00094,-0.09,-0.00086,0.00,1 +162,Entry short,2025-03-11 22:00,M1,1.09194,1,1.09194,-0.00078,-0.07,0,0.00071,0.07,-0.00094,-0.09,-0.00086,0.00,1 +163,Exit long,2025-03-12 00:00,M1,1.09252,1,1.09272,-0.0002,-0.02,0,0.00025,0.02,-0.00092,-0.08,-0.00106,0.00,1 +163,Entry long,2025-03-11 23:00,M1,1.09272,1,1.09272,-0.0002,-0.02,0,0.00025,0.02,-0.00092,-0.08,-0.00106,0.00,1 +164,Exit short,2025-03-12 01:00,M1,1.09342,1,1.09252,-0.0009,-0.08,0,0.00012,0.01,-0.00098,-0.09,-0.00196,0.00,1 +164,Entry short,2025-03-12 00:00,M1,1.09252,1,1.09252,-0.0009,-0.08,0,0.00012,0.01,-0.00098,-0.09,-0.00196,0.00,1 +165,Exit long,2025-03-12 02:00,M1,1.0931,1,1.09342,-0.00032,-0.03,0,0.0013,0.12,-0.0009,-0.08,-0.00228,0.00,1 +165,Entry long,2025-03-12 01:00,M1,1.09342,1,1.09342,-0.00032,-0.03,0,0.0013,0.12,-0.0009,-0.08,-0.00228,0.00,1 +166,Exit short,2025-03-12 03:00,M1,1.092,1,1.0931,0.0011,0.10,0,0.00114,0.10,-0.00031,-0.03,-0.00118,0.00,1 +166,Entry short,2025-03-12 02:00,M1,1.0931,1,1.0931,0.0011,0.10,0,0.00114,0.10,-0.00031,-0.03,-0.00118,0.00,1 +167,Exit long,2025-03-12 04:00,M1,1.09194,1,1.092,-0.00006,-0.01,0,0.0001,0.01,-0.00098,-0.09,-0.00124,0.00,1 +167,Entry long,2025-03-12 03:00,M1,1.092,1,1.092,-0.00006,-0.01,0,0.0001,0.01,-0.00098,-0.09,-0.00124,0.00,1 +168,Exit short,2025-03-12 05:00,M1,1.09116,1,1.09194,0.00078,0.07,0,0.00088,0.08,-0.00014,-0.01,-0.00046,0.00,1 +168,Entry short,2025-03-12 04:00,M1,1.09194,1,1.09194,0.00078,0.07,0,0.00088,0.08,-0.00014,-0.01,-0.00046,0.00,1 +169,Exit long,2025-03-12 06:00,M1,1.09158,1,1.09116,0.00042,0.04,0,0.00074,0.07,-0.00006,-0.01,-0.00004,0.00,1 +169,Entry long,2025-03-12 05:00,M1,1.09116,1,1.09116,0.00042,0.04,0,0.00074,0.07,-0.00006,-0.01,-0.00004,0.00,1 +170,Exit short,2025-03-12 07:00,M1,1.09142,1,1.09158,0.00016,0.01,0,0.00026,0.02,-0.0002,-0.02,0.00012,0.00,1 +170,Entry short,2025-03-12 06:00,M1,1.09158,1,1.09158,0.00016,0.01,0,0.00026,0.02,-0.0002,-0.02,0.00012,0.00,1 +171,Exit long,2025-03-12 08:00,M1,1.09088,1,1.09142,-0.00054,-0.05,0,0.00016,0.01,-0.00085,-0.08,-0.00042,0.00,1 +171,Entry long,2025-03-12 07:00,M1,1.09142,1,1.09142,-0.00054,-0.05,0,0.00016,0.01,-0.00085,-0.08,-0.00042,0.00,1 +172,Exit short,2025-03-12 09:00,M1,1.09066,1,1.09088,0.00022,0.02,0,0.00027,0.02,-0.00066,-0.06,-0.0002,0.00,1 +172,Entry short,2025-03-12 08:00,M1,1.09088,1,1.09088,0.00022,0.02,0,0.00027,0.02,-0.00066,-0.06,-0.0002,0.00,1 +173,Exit long,2025-03-12 10:00,M1,1.09038,1,1.09066,-0.00028,-0.03,0,0.0005,0.05,-0.00034,-0.03,-0.00048,0.00,1 +173,Entry long,2025-03-12 09:00,M1,1.09066,1,1.09066,-0.00028,-0.03,0,0.0005,0.05,-0.00034,-0.03,-0.00048,0.00,1 +174,Exit short,2025-03-12 11:00,M1,1.08974,1,1.09038,0.00064,0.06,0,0.00076,0.07,-0.00011,-0.01,0.00016,0.00,1 +174,Entry short,2025-03-12 10:00,M1,1.09038,1,1.09038,0.00064,0.06,0,0.00076,0.07,-0.00011,-0.01,0.00016,0.00,1 +175,Exit long,2025-03-12 12:00,M1,1.08988,1,1.08974,0.00014,0.01,0,0.00053,0.05,-0.00016,-0.01,0.0003,0.00,1 +175,Entry long,2025-03-12 11:00,M1,1.08974,1,1.08974,0.00014,0.01,0,0.00053,0.05,-0.00016,-0.01,0.0003,0.00,1 +176,Exit short,2025-03-12 13:00,M1,1.09036,1,1.08988,-0.00048,-0.04,0,0.00036,0.03,-0.00056,-0.05,-0.00018,0.00,1 +176,Entry short,2025-03-12 12:00,M1,1.08988,1,1.08988,-0.00048,-0.04,0,0.00036,0.03,-0.00056,-0.05,-0.00018,0.00,1 +177,Exit long,2025-03-12 14:00,M1,1.08922,1,1.09036,-0.00114,-0.10,0,0.00054,0.05,-0.00116,-0.11,-0.00132,0.00,1 +177,Entry long,2025-03-12 13:00,M1,1.09036,1,1.09036,-0.00114,-0.10,0,0.00054,0.05,-0.00116,-0.11,-0.00132,0.00,1 +178,Exit short,2025-03-12 15:00,M1,1.09017,1,1.08922,-0.00095,-0.09,0,0.00048,0.04,-0.0011,-0.10,-0.00227,0.00,1 +178,Entry short,2025-03-12 14:00,M1,1.08922,1,1.08922,-0.00095,-0.09,0,0.00048,0.04,-0.0011,-0.10,-0.00227,0.00,1 +179,Exit long,2025-03-12 16:00,M1,1.09216,1,1.09017,0.00199,0.18,0,0.00201,0.18,-0.00039,-0.04,-0.00028,0.00,1 +179,Entry long,2025-03-12 15:00,M1,1.09017,1,1.09017,0.00199,0.18,0,0.00201,0.18,-0.00039,-0.04,-0.00028,0.00,1 +180,Exit short,2025-03-12 17:00,M1,1.09145,1,1.09216,0.00071,0.07,0,0.00082,0.08,-0.0005,-0.05,0.00043,0.00,1 +180,Entry short,2025-03-12 16:00,M1,1.09216,1,1.09216,0.00071,0.07,0,0.00082,0.08,-0.0005,-0.05,0.00043,0.00,1 +181,Exit long,2025-03-12 18:00,M1,1.09064,1,1.09145,-0.00081,-0.07,0,0.00065,0.06,-0.00099,-0.09,-0.00038,0.00,1 +181,Entry long,2025-03-12 17:00,M1,1.09145,1,1.09145,-0.00081,-0.07,0,0.00065,0.06,-0.00099,-0.09,-0.00038,0.00,1 +182,Exit short,2025-03-12 19:00,M1,1.0901,1,1.09064,0.00054,0.05,0,0.0007,0.06,-0.00065,-0.06,0.00016,0.00,1 +182,Entry short,2025-03-12 18:00,M1,1.09064,1,1.09064,0.00054,0.05,0,0.0007,0.06,-0.00065,-0.06,0.00016,0.00,1 +183,Exit long,2025-03-12 20:00,M1,1.0878,1,1.0901,-0.0023,-0.21,0,0.00312,0.29,-0.00248,-0.23,-0.00214,0.00,1 +183,Entry long,2025-03-12 19:00,M1,1.0901,1,1.0901,-0.0023,-0.21,0,0.00312,0.29,-0.00248,-0.23,-0.00214,0.00,1 +184,Exit short,2025-03-12 21:00,M1,1.08824,1,1.0878,-0.00044,-0.04,0,0.00023,0.02,-0.00184,-0.17,-0.00258,0.00,1 +184,Entry short,2025-03-12 20:00,M1,1.0878,1,1.0878,-0.00044,-0.04,0,0.00023,0.02,-0.00184,-0.17,-0.00258,0.00,1 +185,Exit long,2025-03-12 22:00,M1,1.0913,1,1.08824,0.00306,0.28,0,0.00313,0.29,-0.00012,-0.01,0.00048,0.00,1 +185,Entry long,2025-03-12 21:00,M1,1.08824,1,1.08824,0.00306,0.28,0,0.00313,0.29,-0.00012,-0.01,0.00048,0.00,1 +186,Exit short,2025-03-12 23:00,M1,1.09244,1,1.0913,-0.00114,-0.10,0,0.0003,0.03,-0.00114,-0.10,-0.00066,0.00,1 +186,Entry short,2025-03-12 22:00,M1,1.0913,1,1.0913,-0.00114,-0.10,0,0.0003,0.03,-0.00114,-0.10,-0.00066,0.00,1 +187,Exit long,2025-03-13 00:00,M1,1.09058,1,1.09244,-0.00186,-0.17,0,0.00036,0.03,-0.00187,-0.17,-0.00252,0.00,1 +187,Entry long,2025-03-12 23:00,M1,1.09244,1,1.09244,-0.00186,-0.17,0,0.00036,0.03,-0.00187,-0.17,-0.00252,0.00,1 +188,Exit short,2025-03-13 01:00,M1,1.0907,1,1.09058,-0.00012,-0.01,0,0.00024,0.02,-0.00085,-0.08,-0.00264,0.00,1 +188,Entry short,2025-03-13 00:00,M1,1.09058,1,1.09058,-0.00012,-0.01,0,0.00024,0.02,-0.00085,-0.08,-0.00264,0.00,1 +189,Exit long,2025-03-13 02:00,M1,1.08846,1,1.0907,-0.00224,-0.21,0,0.00026,0.02,-0.00272,-0.25,-0.00488,0.00,1 +189,Entry long,2025-03-13 01:00,M1,1.0907,1,1.0907,-0.00224,-0.21,0,0.00026,0.02,-0.00272,-0.25,-0.00488,0.00,1 +190,Exit short,2025-03-13 03:00,M1,1.08902,1,1.08846,-0.00056,-0.05,0,0.00014,0.01,-0.00133,-0.12,-0.00544,0.00,1 +190,Entry short,2025-03-13 02:00,M1,1.08846,1,1.08846,-0.00056,-0.05,0,0.00014,0.01,-0.00133,-0.12,-0.00544,0.00,1 +191,Exit long,2025-03-13 04:00,M1,1.08875,1,1.08902,-0.00027,-0.02,0,0.00034,0.03,-0.00036,-0.03,-0.00571,0.00,1 +191,Entry long,2025-03-13 03:00,M1,1.08902,1,1.08902,-0.00027,-0.02,0,0.00034,0.03,-0.00036,-0.03,-0.00571,0.00,1 +192,Exit short,2025-03-13 05:00,M1,1.0887,1,1.08875,0.00005,0.00,0,0.00007,0.01,-0.00031,-0.03,-0.00566,0.00,1 +192,Entry short,2025-03-13 04:00,M1,1.08875,1,1.08875,0.00005,0.00,0,0.00007,0.01,-0.00031,-0.03,-0.00566,0.00,1 +193,Exit long,2025-03-13 06:00,M1,1.08892,1,1.0887,0.00022,0.02,0,0.0003,0.03,0,0.00,-0.00544,0.00,1 +193,Entry long,2025-03-13 05:00,M1,1.0887,1,1.0887,0.00022,0.02,0,0.0003,0.03,0,0.00,-0.00544,0.00,1 +194,Exit short,2025-03-13 07:00,M1,1.08854,1,1.08892,0.00038,0.03,0,0.00058,0.05,-0.00008,-0.01,-0.00506,0.00,1 +194,Entry short,2025-03-13 06:00,M1,1.08892,1,1.08892,0.00038,0.03,0,0.00058,0.05,-0.00008,-0.01,-0.00506,0.00,1 +195,Exit long,2025-03-13 08:00,M1,1.08916,1,1.08854,0.00062,0.06,0,0.00065,0.06,-0.00028,-0.03,-0.00444,0.00,1 +195,Entry long,2025-03-13 07:00,M1,1.08854,1,1.08854,0.00062,0.06,0,0.00065,0.06,-0.00028,-0.03,-0.00444,0.00,1 +196,Exit short,2025-03-13 09:00,M1,1.08892,1,1.08916,0.00024,0.02,0,0.00052,0.05,-0.00018,-0.02,-0.0042,0.00,1 +196,Entry short,2025-03-13 08:00,M1,1.08916,1,1.08916,0.00024,0.02,0,0.00052,0.05,-0.00018,-0.02,-0.0042,0.00,1 +197,Exit long,2025-03-13 10:00,M1,1.08956,1,1.08892,0.00064,0.06,0,0.00081,0.07,-0.00002,0.00,-0.00356,0.00,1 +197,Entry long,2025-03-13 09:00,M1,1.08892,1,1.08892,0.00064,0.06,0,0.00081,0.07,-0.00002,0.00,-0.00356,0.00,1 +198,Exit short,2025-03-13 11:00,M1,1.08851,1,1.08956,0.00105,0.10,0,0.00105,0.10,-0.00001,0.00,-0.00251,0.00,1 +198,Entry short,2025-03-13 10:00,M1,1.08956,1,1.08956,0.00105,0.10,0,0.00105,0.10,-0.00001,0.00,-0.00251,0.00,1 +199,Exit long,2025-03-13 12:00,M1,1.08935,1,1.08851,0.00084,0.08,0,0.00085,0.08,-0.00033,-0.03,-0.00167,0.00,1 +199,Entry long,2025-03-13 11:00,M1,1.08851,1,1.08851,0.00084,0.08,0,0.00085,0.08,-0.00033,-0.03,-0.00167,0.00,1 +200,Exit short,2025-03-13 13:00,M1,1.08852,1,1.08935,0.00083,0.08,0,0.00141,0.13,-0.00001,0.00,-0.00084,0.00,1 +200,Entry short,2025-03-13 12:00,M1,1.08935,1,1.08935,0.00083,0.08,0,0.00141,0.13,-0.00001,0.00,-0.00084,0.00,1 +201,Exit long,2025-03-13 14:00,M1,1.08746,1,1.08852,-0.00106,-0.10,0,0.00004,0.00,-0.0016,-0.15,-0.0019,0.00,1 +201,Entry long,2025-03-13 13:00,M1,1.08852,1,1.08852,-0.00106,-0.10,0,0.00004,0.00,-0.0016,-0.15,-0.0019,0.00,1 +202,Exit short,2025-03-13 15:00,M1,1.08654,1,1.08746,0.00092,0.08,0,0.00148,0.14,-0.00106,-0.10,-0.00098,0.00,1 +202,Entry short,2025-03-13 14:00,M1,1.08746,1,1.08746,0.00092,0.08,0,0.00148,0.14,-0.00106,-0.10,-0.00098,0.00,1 +203,Exit long,2025-03-13 16:00,M1,1.08732,1,1.08654,0.00078,0.07,0,0.00188,0.17,-0.00062,-0.06,-0.0002,0.00,1 +203,Entry long,2025-03-13 15:00,M1,1.08654,1,1.08654,0.00078,0.07,0,0.00188,0.17,-0.00062,-0.06,-0.0002,0.00,1 +204,Exit short,2025-03-13 17:00,M1,1.08794,1,1.08732,-0.00062,-0.06,0,0.00044,0.04,-0.00122,-0.11,-0.00082,0.00,1 +204,Entry short,2025-03-13 16:00,M1,1.08732,1,1.08732,-0.00062,-0.06,0,0.00044,0.04,-0.00122,-0.11,-0.00082,0.00,1 +205,Exit long,2025-03-13 18:00,M1,1.08702,1,1.08794,-0.00092,-0.08,0,0.00036,0.03,-0.00169,-0.16,-0.00174,0.00,1 +205,Entry long,2025-03-13 17:00,M1,1.08794,1,1.08794,-0.00092,-0.08,0,0.00036,0.03,-0.00169,-0.16,-0.00174,0.00,1 +206,Exit short,2025-03-13 19:00,M1,1.08564,1,1.08702,0.00138,0.13,0,0.00258,0.24,-0.00048,-0.04,-0.00036,0.00,1 +206,Entry short,2025-03-13 18:00,M1,1.08702,1,1.08702,0.00138,0.13,0,0.00258,0.24,-0.00048,-0.04,-0.00036,0.00,1 +207,Exit long,2025-03-13 20:00,M1,1.08349,1,1.08564,-0.00215,-0.20,0,0.00222,0.20,-0.00302,-0.28,-0.00251,0.00,1 +207,Entry long,2025-03-13 19:00,M1,1.08564,1,1.08564,-0.00215,-0.20,0,0.00222,0.20,-0.00302,-0.28,-0.00251,0.00,1 +208,Exit short,2025-03-13 21:00,M1,1.08474,1,1.08349,-0.00125,-0.12,0,0.00123,0.11,-0.00183,-0.17,-0.00376,0.00,1 +208,Entry short,2025-03-13 20:00,M1,1.08349,1,1.08349,-0.00125,-0.12,0,0.00123,0.11,-0.00183,-0.17,-0.00376,0.00,1 +209,Exit long,2025-03-13 22:00,M1,1.08652,1,1.08474,0.00178,0.16,0,0.00224,0.21,-0.00012,-0.01,-0.00198,0.00,1 +209,Entry long,2025-03-13 21:00,M1,1.08474,1,1.08474,0.00178,0.16,0,0.00224,0.21,-0.00012,-0.01,-0.00198,0.00,1 +210,Exit short,2025-03-13 23:00,M1,1.08585,1,1.08652,0.00067,0.06,0,0.00112,0.10,-0.00068,-0.06,-0.00131,0.00,1 +210,Entry short,2025-03-13 22:00,M1,1.08652,1,1.08652,0.00067,0.06,0,0.00112,0.10,-0.00068,-0.06,-0.00131,0.00,1 +211,Exit long,2025-03-14 00:00,M1,1.08726,1,1.08585,0.00141,0.13,0,0.00197,0.18,-0.00033,-0.03,0.0001,0.00,1 +211,Entry long,2025-03-13 23:00,M1,1.08585,1,1.08585,0.00141,0.13,0,0.00197,0.18,-0.00033,-0.03,0.0001,0.00,1 +212,Exit short,2025-03-14 01:00,M1,1.08546,1,1.08726,0.0018,0.17,0,0.00182,0.17,-0.00009,-0.01,0.0019,0.00,1 +212,Entry short,2025-03-14 00:00,M1,1.08726,1,1.08726,0.0018,0.17,0,0.00182,0.17,-0.00009,-0.01,0.0019,0.00,1 +213,Exit long,2025-03-14 02:00,M1,1.08536,1,1.08546,-0.0001,-0.01,0,0.00035,0.03,-0.00025,-0.02,0.0018,0.00,1 +213,Entry long,2025-03-14 01:00,M1,1.08546,1,1.08546,-0.0001,-0.01,0,0.00035,0.03,-0.00025,-0.02,0.0018,0.00,1 +214,Exit short,2025-03-14 03:00,M1,1.08484,1,1.08536,0.00052,0.05,0,0.00058,0.05,-0.00034,-0.03,0.00232,0.00,1 +214,Entry short,2025-03-14 02:00,M1,1.08536,1,1.08536,0.00052,0.05,0,0.00058,0.05,-0.00034,-0.03,0.00232,0.00,1 +215,Exit long,2025-03-14 04:00,M1,1.08524,1,1.08484,0.0004,0.04,0,0.00076,0.07,-0.0002,-0.02,0.00272,0.00,1 +215,Entry long,2025-03-14 03:00,M1,1.08484,1,1.08484,0.0004,0.04,0,0.00076,0.07,-0.0002,-0.02,0.00272,0.00,1 +216,Exit short,2025-03-14 05:00,M1,1.08528,1,1.08524,-0.00004,0.00,0,0.00035,0.03,-0.00006,-0.01,0.00268,0.00,1 +216,Entry short,2025-03-14 04:00,M1,1.08524,1,1.08524,-0.00004,0.00,0,0.00035,0.03,-0.00006,-0.01,0.00268,0.00,1 +217,Exit long,2025-03-14 06:00,M1,1.08526,1,1.08528,-0.00002,0.00,0,0.0003,0.03,-0.00015,-0.01,0.00266,0.00,1 +217,Entry long,2025-03-14 05:00,M1,1.08528,1,1.08528,-0.00002,0.00,0,0.0003,0.03,-0.00015,-0.01,0.00266,0.00,1 +218,Exit short,2025-03-14 07:00,M1,1.0855,1,1.08526,-0.00024,-0.02,0,0.00024,0.02,-0.00025,-0.02,0.00242,0.00,1 +218,Entry short,2025-03-14 06:00,M1,1.08526,1,1.08526,-0.00024,-0.02,0,0.00024,0.02,-0.00025,-0.02,0.00242,0.00,1 +219,Exit long,2025-03-14 08:00,M1,1.08492,1,1.0855,-0.00058,-0.05,0,0.00036,0.03,-0.00066,-0.06,0.00184,0.00,1 +219,Entry long,2025-03-14 07:00,M1,1.0855,1,1.0855,-0.00058,-0.05,0,0.00036,0.03,-0.00066,-0.06,0.00184,0.00,1 +220,Exit short,2025-03-14 08:00,,1.08492,1,1.08492,0,0.00,0,0,0.00,0,0.00,0.00184,0.00,0 +220,Entry short,2025-03-14 08:00,M1,1.08492,1,1.08492,0,0.00,0,0,0.00,0,0.00,0.00184,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/meta.json b/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/meta.json new file mode 100644 index 0000000..975d8d4 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/meta.json @@ -0,0 +1,16 @@ +{ + "title": "HM G2-36 session.ismarket", + "slug": "hm-g236-xauusd-60-dst-mar", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T19:01:37.880Z", + "chart": { + "symbol": "OANDA:XAUUSD", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14" + }, + "pine_sha256": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tv_trades_sha256": "ebc226aea010125fb66b7cda3a86563846a243463723816ee529f8f044c54cf6", + "tv_trades_rows": 420 +} diff --git a/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/metrics.json b/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/metrics.json new file mode 100644 index 0000000..b090016 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "hm-g236-xauusd-60-dst-mar", + "symbol": "OANDA:XAUUSD", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14", + "deepBacktesting": true, + "trades": 210, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "7c5b7e36130c230e6ad26f5525ab527486a008e2d6eaa1a5e41da41cfa256a1d", + "tvTradesCsvHash": "ebc226aea010125fb66b7cda3a86563846a243463723816ee529f8f044c54cf6", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74408", + "symbol": "OANDA:XAUUSD", + "interval": "60", + "requestedRange": { + "from": 1740873600000, + "to": 1741910400000 + }, + "returnedRange": { + "from": 1740956400000, + "to": 1741910400000 + }, + "rangeProof": "covered", + "rawFrameSha256": "4bfa1862871ea73feba76e6cd040ee46bf04ae44f59bc0c98471da3d0e74b360", + "decodedReportSha256": "74c6c1b3fff68fef5fb443924afb03fdca0a3216cafdbcab7b4b7df469df2913", + "closedTrades": 210, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T19:01:37.879Z" +} diff --git a/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/strategy.pine b/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/strategy.pine new file mode 100644 index 0000000..182c911 --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/strategy.pine @@ -0,0 +1,17 @@ +// H-MEASURE (R5 wave H) row G2-36: which chart bars does TradingView flag +// session.ismarket on? process_orders_on_close=true: every bar reverses the +// position at its own close, so every trade's ENTRY is one chart bar (TradingView +// dates a process_orders_on_close fill at the bar's open) and the entry's Signal +// (its comment) is the flag TradingView evaluated on that bar: "M1" when +// session.ismarket is true, "M0" when it is false. +//@version=6 +strategy("HM G2-36 session.ismarket", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +flag = session.ismarket ? "M1" : "M0" +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/tv_trades.csv b/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/tv_trades.csv new file mode 100644 index 0000000..cdf98ca --- /dev/null +++ b/tests/fixtures/session_ismarket/hm-g236-xauusd-60-dst-mar/tv_trades.csv @@ -0,0 +1,421 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-03 08:00,M1,2865.95,1,2871.125,-5.175,-0.18,0,0.4,0.01,-5.79,-0.20,-5.175,0.00,1 +1,Entry long,2025-03-03 07:00,M1,2871.125,1,2871.125,-5.175,-0.18,0,0.4,0.01,-5.79,-0.20,-5.175,0.00,1 +2,Exit short,2025-03-03 09:00,M1,2870.97,1,2865.95,-5.02,-0.18,0,1.69,0.06,-6.2,-0.22,-10.195,0.00,1 +2,Entry short,2025-03-03 08:00,M1,2865.95,1,2865.95,-5.02,-0.18,0,1.69,0.06,-6.2,-0.22,-10.195,0.00,1 +3,Exit long,2025-03-03 10:00,M1,2868.15,1,2870.97,-2.82,-0.10,0,1.025,0.04,-3.22,-0.11,-13.015,0.00,1 +3,Entry long,2025-03-03 09:00,M1,2870.97,1,2870.97,-2.82,-0.10,0,1.025,0.04,-3.22,-0.11,-13.015,0.00,1 +4,Exit short,2025-03-03 11:00,M1,2864.87,1,2868.15,3.28,0.11,0,8.68,0.30,-0.02,0.00,-9.735,0.00,1 +4,Entry short,2025-03-03 10:00,M1,2868.15,1,2868.15,3.28,0.11,0,8.68,0.30,-0.02,0.00,-9.735,0.00,1 +5,Exit long,2025-03-03 12:00,M1,2867.42,1,2864.87,2.55,0.09,0,3.645,0.13,-1.675,-0.06,-7.185,0.00,1 +5,Entry long,2025-03-03 11:00,M1,2864.87,1,2864.87,2.55,0.09,0,3.645,0.13,-1.675,-0.06,-7.185,0.00,1 +6,Exit short,2025-03-03 13:00,M1,2863.995,1,2867.42,3.425,0.12,0,6.09,0.21,-0.03,0.00,-3.76,0.00,1 +6,Entry short,2025-03-03 12:00,M1,2867.42,1,2867.42,3.425,0.12,0,6.09,0.21,-0.03,0.00,-3.76,0.00,1 +7,Exit long,2025-03-03 14:00,M1,2865.595,1,2863.995,1.6,0.06,0,2.105,0.07,-2.18,-0.08,-2.16,0.00,1 +7,Entry long,2025-03-03 13:00,M1,2863.995,1,2863.995,1.6,0.06,0,2.105,0.07,-2.18,-0.08,-2.16,0.00,1 +8,Exit short,2025-03-03 15:00,M1,2863.325,1,2865.595,2.27,0.08,0,5.31,0.19,-0.815,-0.03,0.11,0.00,1 +8,Entry short,2025-03-03 14:00,M1,2865.595,1,2865.595,2.27,0.08,0,5.31,0.19,-0.815,-0.03,0.11,0.00,1 +9,Exit long,2025-03-03 16:00,M1,2868.69,1,2863.325,5.365,0.19,0,5.605,0.20,-4.325,-0.15,5.475,0.00,1 +9,Entry long,2025-03-03 15:00,M1,2863.325,1,2863.325,5.365,0.19,0,5.605,0.20,-4.325,-0.15,5.475,0.00,1 +10,Exit short,2025-03-03 17:00,M1,2867.495,1,2868.69,1.195,0.04,0,4.315,0.15,-2.875,-0.10,6.67,0.00,1 +10,Entry short,2025-03-03 16:00,M1,2868.69,1,2868.69,1.195,0.04,0,4.315,0.15,-2.875,-0.10,6.67,0.00,1 +11,Exit long,2025-03-03 18:00,M1,2871.935,1,2867.495,4.44,0.15,0,6.21,0.22,-0.22,-0.01,11.11,0.00,1 +11,Entry long,2025-03-03 17:00,M1,2867.495,1,2867.495,4.44,0.15,0,6.21,0.22,-0.22,-0.01,11.11,0.00,1 +12,Exit short,2025-03-03 19:00,M1,2874.49,1,2871.935,-2.555,-0.09,0,0.545,0.02,-3.64,-0.13,8.555,0.00,1 +12,Entry short,2025-03-03 18:00,M1,2871.935,1,2871.935,-2.555,-0.09,0,0.545,0.02,-3.64,-0.13,8.555,0.00,1 +13,Exit long,2025-03-03 20:00,M1,2875.685,1,2874.49,1.195,0.04,0,3.285,0.11,-0.39,-0.01,9.75,0.00,1 +13,Entry long,2025-03-03 19:00,M1,2874.49,1,2874.49,1.195,0.04,0,3.285,0.11,-0.39,-0.01,9.75,0.00,1 +14,Exit short,2025-03-03 21:00,M1,2872.72,1,2875.685,2.965,0.10,0,6.735,0.23,-0.64,-0.02,12.715,0.00,1 +14,Entry short,2025-03-03 20:00,M1,2875.685,1,2875.685,2.965,0.10,0,6.735,0.23,-0.64,-0.02,12.715,0.00,1 +15,Exit long,2025-03-03 22:00,M1,2877.725,1,2872.72,5.005,0.17,0,10.33,0.36,-1.355,-0.05,17.72,0.00,1 +15,Entry long,2025-03-03 21:00,M1,2872.72,1,2872.72,5.005,0.17,0,10.33,0.36,-1.355,-0.05,17.72,0.00,1 +16,Exit short,2025-03-03 23:00,M1,2887.925,1,2877.725,-10.2,-0.35,0,3.725,0.13,-12.805,-0.44,7.52,0.00,1 +16,Entry short,2025-03-03 22:00,M1,2877.725,1,2877.725,-10.2,-0.35,0,3.725,0.13,-12.805,-0.44,7.52,0.00,1 +17,Exit long,2025-03-04 00:00,M1,2891.64,1,2887.925,3.715,0.13,0,5.275,0.18,-1.81,-0.06,11.235,0.00,1 +17,Entry long,2025-03-03 23:00,M1,2887.925,1,2887.925,3.715,0.13,0,5.275,0.18,-1.81,-0.06,11.235,0.00,1 +18,Exit short,2025-03-04 01:00,M1,2890.91,1,2891.64,0.73,0.03,0,4.25,0.15,-1.375,-0.05,11.965,0.00,1 +18,Entry short,2025-03-04 00:00,M1,2891.64,1,2891.64,0.73,0.03,0,4.25,0.15,-1.375,-0.05,11.965,0.00,1 +19,Exit long,2025-03-04 02:00,M1,2890,1,2890.91,-0.91,-0.03,0,1.54,0.05,-4.25,-0.15,11.055,0.00,1 +19,Entry long,2025-03-04 01:00,M1,2890.91,1,2890.91,-0.91,-0.03,0,1.54,0.05,-4.25,-0.15,11.055,0.00,1 +20,Exit short,2025-03-04 03:00,M1,2881.67,1,2890,8.33,0.29,0,10.17,0.35,-1.28,-0.04,19.385,0.00,1 +20,Entry short,2025-03-04 02:00,M1,2890,1,2890,8.33,0.29,0,10.17,0.35,-1.28,-0.04,19.385,0.00,1 +21,Exit long,2025-03-04 04:00,M1,2890.675,1,2881.67,9.005,0.31,0,9.91,0.34,-3.235,-0.11,28.39,0.00,1 +21,Entry long,2025-03-04 03:00,M1,2881.67,1,2881.67,9.005,0.31,0,9.91,0.34,-3.235,-0.11,28.39,0.00,1 +22,Exit short,2025-03-04 05:00,M1,2892.985,1,2890.675,-2.31,-0.08,0,0.465,0.02,-4.535,-0.16,26.08,0.00,1 +22,Entry short,2025-03-04 04:00,M1,2890.675,1,2890.675,-2.31,-0.08,0,0.465,0.02,-4.535,-0.16,26.08,0.00,1 +23,Exit long,2025-03-04 07:00,M1,2890.895,1,2892.985,-2.09,-0.07,0,0.32,0.01,-2.35,-0.08,23.99,0.00,1 +23,Entry long,2025-03-04 05:00,M1,2892.985,1,2892.985,-2.09,-0.07,0,0.32,0.01,-2.35,-0.08,23.99,0.00,1 +24,Exit short,2025-03-04 08:00,M1,2891.945,1,2890.895,-1.05,-0.04,0,0.76,0.03,-2.955,-0.10,22.94,0.00,1 +24,Entry short,2025-03-04 07:00,M1,2890.895,1,2890.895,-1.05,-0.04,0,0.76,0.03,-2.955,-0.10,22.94,0.00,1 +25,Exit long,2025-03-04 09:00,M1,2888.41,1,2891.945,-3.535,-0.12,0,1.125,0.04,-9.965,-0.34,19.405,0.00,1 +25,Entry long,2025-03-04 08:00,M1,2891.945,1,2891.945,-3.535,-0.12,0,1.125,0.04,-9.965,-0.34,19.405,0.00,1 +26,Exit short,2025-03-04 10:00,M1,2885.535,1,2888.41,2.875,0.10,0,3.535,0.12,-0.96,-0.03,22.28,0.00,1 +26,Entry short,2025-03-04 09:00,M1,2888.41,1,2888.41,2.875,0.10,0,3.535,0.12,-0.96,-0.03,22.28,0.00,1 +27,Exit long,2025-03-04 11:00,M1,2888.655,1,2885.535,3.12,0.11,0,7.615,0.26,-0.475,-0.02,25.4,0.00,1 +27,Entry long,2025-03-04 10:00,M1,2885.535,1,2885.535,3.12,0.11,0,7.615,0.26,-0.475,-0.02,25.4,0.00,1 +28,Exit short,2025-03-04 12:00,M1,2891.37,1,2888.655,-2.715,-0.09,0,1.92,0.07,-4.045,-0.14,22.685,0.00,1 +28,Entry short,2025-03-04 11:00,M1,2888.655,1,2888.655,-2.715,-0.09,0,1.92,0.07,-4.045,-0.14,22.685,0.00,1 +29,Exit long,2025-03-04 13:00,M1,2889.76,1,2891.37,-1.61,-0.06,0,3.045,0.11,-2.855,-0.10,21.075,0.00,1 +29,Entry long,2025-03-04 12:00,M1,2891.37,1,2891.37,-1.61,-0.06,0,3.045,0.11,-2.855,-0.10,21.075,0.00,1 +30,Exit short,2025-03-04 14:00,M1,2887.445,1,2889.76,2.315,0.08,0,5.235,0.18,-0.11,0.00,23.39,0.00,1 +30,Entry short,2025-03-04 13:00,M1,2889.76,1,2889.76,2.315,0.08,0,5.235,0.18,-0.11,0.00,23.39,0.00,1 +31,Exit long,2025-03-04 15:00,M1,2900.03,1,2887.445,12.585,0.44,0,14.205,0.49,-0.33,-0.01,35.975,0.00,1 +31,Entry long,2025-03-04 14:00,M1,2887.445,1,2887.445,12.585,0.44,0,14.205,0.49,-0.33,-0.01,35.975,0.00,1 +32,Exit short,2025-03-04 16:00,M1,2914.22,1,2900.03,-14.19,-0.49,0,3.245,0.11,-18.705,-0.64,21.785,0.00,1 +32,Entry short,2025-03-04 15:00,M1,2900.03,1,2900.03,-14.19,-0.49,0,3.245,0.11,-18.705,-0.64,21.785,0.00,1 +33,Exit long,2025-03-04 17:00,M1,2918.105,1,2914.22,3.885,0.13,0,7.005,0.24,-1.59,-0.05,25.67,0.00,1 +33,Entry long,2025-03-04 16:00,M1,2914.22,1,2914.22,3.885,0.13,0,7.005,0.24,-1.59,-0.05,25.67,0.00,1 +34,Exit short,2025-03-04 18:00,M1,2914.725,1,2918.105,3.38,0.12,0,6.025,0.21,-0.07,0.00,29.05,0.00,1 +34,Entry short,2025-03-04 17:00,M1,2918.105,1,2918.105,3.38,0.12,0,6.025,0.21,-0.07,0.00,29.05,0.00,1 +35,Exit long,2025-03-04 19:00,M1,2920.08,1,2914.725,5.355,0.18,0,7.085,0.24,-1.705,-0.06,34.405,0.00,1 +35,Entry long,2025-03-04 18:00,M1,2914.725,1,2914.725,5.355,0.18,0,7.085,0.24,-1.705,-0.06,34.405,0.00,1 +36,Exit short,2025-03-04 20:00,M1,2924.935,1,2920.08,-4.855,-0.17,0,1.37,0.05,-5.545,-0.19,29.55,0.00,1 +36,Entry short,2025-03-04 19:00,M1,2920.08,1,2920.08,-4.855,-0.17,0,1.37,0.05,-5.545,-0.19,29.55,0.00,1 +37,Exit long,2025-03-04 21:00,M1,2922.615,1,2924.935,-2.32,-0.08,0,2.975,0.10,-5.125,-0.18,27.23,0.00,1 +37,Entry long,2025-03-04 20:00,M1,2924.935,1,2924.935,-2.32,-0.08,0,2.975,0.10,-5.125,-0.18,27.23,0.00,1 +38,Exit short,2025-03-04 22:00,M1,2903.365,1,2922.615,19.25,0.66,0,19.27,0.66,-0.465,-0.02,46.48,0.00,1 +38,Entry short,2025-03-04 21:00,M1,2922.615,1,2922.615,19.25,0.66,0,19.27,0.66,-0.465,-0.02,46.48,0.00,1 +39,Exit long,2025-03-04 23:00,M1,2906.145,1,2903.365,2.78,0.10,0,9.04,0.31,-2.975,-0.10,49.26,0.00,1 +39,Entry long,2025-03-04 22:00,M1,2903.365,1,2903.365,2.78,0.10,0,9.04,0.31,-2.975,-0.10,49.26,0.00,1 +40,Exit short,2025-03-05 00:00,M1,2915.18,1,2906.145,-9.035,-0.31,0,2.38,0.08,-9.965,-0.34,40.225,0.00,1 +40,Entry short,2025-03-04 23:00,M1,2906.145,1,2906.145,-9.035,-0.31,0,2.38,0.08,-9.965,-0.34,40.225,0.00,1 +41,Exit long,2025-03-05 01:00,M1,2911.67,1,2915.18,-3.51,-0.12,0,1.28,0.04,-4.075,-0.14,36.715,0.00,1 +41,Entry long,2025-03-05 00:00,M1,2915.18,1,2915.18,-3.51,-0.12,0,1.28,0.04,-4.075,-0.14,36.715,0.00,1 +42,Exit short,2025-03-05 02:00,M1,2911.375,1,2911.67,0.295,0.01,0,3.365,0.12,-3.605,-0.12,37.01,0.00,1 +42,Entry short,2025-03-05 01:00,M1,2911.67,1,2911.67,0.295,0.01,0,3.365,0.12,-3.605,-0.12,37.01,0.00,1 +43,Exit long,2025-03-05 03:00,M1,2916.25,1,2911.375,4.875,0.17,0,5.15,0.18,-0.115,0.00,41.885,0.00,1 +43,Entry long,2025-03-05 02:00,M1,2911.375,1,2911.375,4.875,0.17,0,5.15,0.18,-0.115,0.00,41.885,0.00,1 +44,Exit short,2025-03-05 04:00,M1,2917.285,1,2916.25,-1.035,-0.04,0,1.8,0.06,-4.36,-0.15,40.85,0.00,1 +44,Entry short,2025-03-05 03:00,M1,2916.25,1,2916.25,-1.035,-0.04,0,1.8,0.06,-4.36,-0.15,40.85,0.00,1 +45,Exit long,2025-03-05 05:00,M1,2917.85,1,2917.285,0.565,0.02,0,1.195,0.04,-3.85,-0.13,41.415,0.00,1 +45,Entry long,2025-03-05 04:00,M1,2917.285,1,2917.285,0.565,0.02,0,1.195,0.04,-3.85,-0.13,41.415,0.00,1 +46,Exit short,2025-03-05 07:00,M1,2914.39,1,2917.85,3.46,0.12,0,3.555,0.12,-0.035,0.00,44.875,0.00,1 +46,Entry short,2025-03-05 05:00,M1,2917.85,1,2917.85,3.46,0.12,0,3.555,0.12,-0.035,0.00,44.875,0.00,1 +47,Exit long,2025-03-05 08:00,M1,2914.08,1,2914.39,-0.31,-0.01,0,3.02,0.10,-2.12,-0.07,44.565,0.00,1 +47,Entry long,2025-03-05 07:00,M1,2914.39,1,2914.39,-0.31,-0.01,0,3.02,0.10,-2.12,-0.07,44.565,0.00,1 +48,Exit short,2025-03-05 09:00,M1,2907.24,1,2914.08,6.84,0.23,0,10.555,0.36,-1.15,-0.04,51.405,0.00,1 +48,Entry short,2025-03-05 08:00,M1,2914.08,1,2914.08,6.84,0.23,0,10.555,0.36,-1.15,-0.04,51.405,0.00,1 +49,Exit long,2025-03-05 10:00,M1,2904.51,1,2907.24,-2.73,-0.09,0,7.365,0.25,-5.2,-0.18,48.675,0.00,1 +49,Entry long,2025-03-05 09:00,M1,2907.24,1,2907.24,-2.73,-0.09,0,7.365,0.25,-5.2,-0.18,48.675,0.00,1 +50,Exit short,2025-03-05 11:00,M1,2908.76,1,2904.51,-4.25,-0.15,0,1.04,0.04,-9.09,-0.31,44.425,0.00,1 +50,Entry short,2025-03-05 10:00,M1,2904.51,1,2904.51,-4.25,-0.15,0,1.04,0.04,-9.09,-0.31,44.425,0.00,1 +51,Exit long,2025-03-05 12:00,M1,2910.605,1,2908.76,1.845,0.06,0,3.935,0.14,-0.14,0.00,46.27,0.00,1 +51,Entry long,2025-03-05 11:00,M1,2908.76,1,2908.76,1.845,0.06,0,3.935,0.14,-0.14,0.00,46.27,0.00,1 +52,Exit short,2025-03-05 13:00,M1,2918.905,1,2910.605,-8.3,-0.29,0,0.455,0.02,-8.37,-0.29,37.97,0.00,1 +52,Entry short,2025-03-05 12:00,M1,2910.605,1,2910.605,-8.3,-0.29,0,0.455,0.02,-8.37,-0.29,37.97,0.00,1 +53,Exit long,2025-03-05 14:00,M1,2917.2,1,2918.905,-1.705,-0.06,0,2.95,0.10,-5.31,-0.18,36.265,0.00,1 +53,Entry long,2025-03-05 13:00,M1,2918.905,1,2918.905,-1.705,-0.06,0,2.95,0.10,-5.31,-0.18,36.265,0.00,1 +54,Exit short,2025-03-05 15:00,M1,2918.15,1,2917.2,-0.95,-0.03,0,4.15,0.14,-2.625,-0.09,35.315,0.00,1 +54,Entry short,2025-03-05 14:00,M1,2917.2,1,2917.2,-0.95,-0.03,0,4.15,0.14,-2.625,-0.09,35.315,0.00,1 +55,Exit long,2025-03-05 16:00,M1,2920.085,1,2918.15,1.935,0.07,0,3.85,0.13,-1.285,-0.04,37.25,0.00,1 +55,Entry long,2025-03-05 15:00,M1,2918.15,1,2918.15,1.935,0.07,0,3.85,0.13,-1.285,-0.04,37.25,0.00,1 +56,Exit short,2025-03-05 17:00,M1,2919.02,1,2920.085,1.065,0.04,0,6.645,0.23,-2.59,-0.09,38.315,0.00,1 +56,Entry short,2025-03-05 16:00,M1,2920.085,1,2920.085,1.065,0.04,0,6.645,0.23,-2.59,-0.09,38.315,0.00,1 +57,Exit long,2025-03-05 18:00,M1,2913.29,1,2919.02,-5.73,-0.20,0,0.31,0.01,-9.92,-0.34,32.585,0.00,1 +57,Entry long,2025-03-05 17:00,M1,2919.02,1,2919.02,-5.73,-0.20,0,0.31,0.01,-9.92,-0.34,32.585,0.00,1 +58,Exit short,2025-03-05 19:00,M1,2913.265,1,2913.29,0.025,0.00,0,1.235,0.04,-4.06,-0.14,32.61,0.00,1 +58,Entry short,2025-03-05 18:00,M1,2913.29,1,2913.29,0.025,0.00,0,1.235,0.04,-4.06,-0.14,32.61,0.00,1 +59,Exit long,2025-03-05 20:00,M1,2916.29,1,2913.265,3.025,0.10,0,6.125,0.21,-0.875,-0.03,35.635,0.00,1 +59,Entry long,2025-03-05 19:00,M1,2913.265,1,2913.265,3.025,0.10,0,6.125,0.21,-0.875,-0.03,35.635,0.00,1 +60,Exit short,2025-03-05 21:00,M1,2900.04,1,2916.29,16.25,0.56,0,21.94,0.75,-0.39,-0.01,51.885,0.00,1 +60,Entry short,2025-03-05 20:00,M1,2916.29,1,2916.29,16.25,0.56,0,21.94,0.75,-0.39,-0.01,51.885,0.00,1 +61,Exit long,2025-03-05 22:00,M1,2912.005,1,2900.04,11.965,0.41,0,17.215,0.59,-2.245,-0.08,63.85,0.00,1 +61,Entry long,2025-03-05 21:00,M1,2900.04,1,2900.04,11.965,0.41,0,17.215,0.59,-2.245,-0.08,63.85,0.00,1 +62,Exit short,2025-03-05 23:00,M1,2917.26,1,2912.005,-5.255,-0.18,0,4.1,0.14,-11.98,-0.41,58.595,0.00,1 +62,Entry short,2025-03-05 22:00,M1,2912.005,1,2912.005,-5.255,-0.18,0,4.1,0.14,-11.98,-0.41,58.595,0.00,1 +63,Exit long,2025-03-06 00:00,M1,2923.87,1,2917.26,6.61,0.23,0,12.72,0.44,-1.965,-0.07,65.205,0.00,1 +63,Entry long,2025-03-05 23:00,M1,2917.26,1,2917.26,6.61,0.23,0,12.72,0.44,-1.965,-0.07,65.205,0.00,1 +64,Exit short,2025-03-06 01:00,M1,2916.055,1,2923.87,7.815,0.27,0,10.385,0.36,-1.48,-0.05,73.02,0.00,1 +64,Entry short,2025-03-06 00:00,M1,2923.87,1,2923.87,7.815,0.27,0,10.385,0.36,-1.48,-0.05,73.02,0.00,1 +65,Exit long,2025-03-06 02:00,M1,2917.505,1,2916.055,1.45,0.05,0,4.73,0.16,-4.175,-0.14,74.47,0.00,1 +65,Entry long,2025-03-06 01:00,M1,2916.055,1,2916.055,1.45,0.05,0,4.73,0.16,-4.175,-0.14,74.47,0.00,1 +66,Exit short,2025-03-06 03:00,M1,2920.545,1,2917.505,-3.04,-0.10,0,1.14,0.04,-3.925,-0.13,71.43,0.00,1 +66,Entry short,2025-03-06 02:00,M1,2917.505,1,2917.505,-3.04,-0.10,0,1.14,0.04,-3.925,-0.13,71.43,0.00,1 +67,Exit long,2025-03-06 04:00,M1,2922.22,1,2920.545,1.675,0.06,0,2.565,0.09,-0.995,-0.03,73.105,0.00,1 +67,Entry long,2025-03-06 03:00,M1,2920.545,1,2920.545,1.675,0.06,0,2.565,0.09,-0.995,-0.03,73.105,0.00,1 +68,Exit short,2025-03-06 05:00,M1,2919.265,1,2922.22,2.955,0.10,0,4.355,0.15,-0.24,-0.01,76.06,0.00,1 +68,Entry short,2025-03-06 04:00,M1,2922.22,1,2922.22,2.955,0.10,0,4.355,0.15,-0.24,-0.01,76.06,0.00,1 +69,Exit long,2025-03-06 07:00,M1,2918.315,1,2919.265,-0.95,-0.03,0,0,0.00,-2.43,-0.08,75.11,0.00,1 +69,Entry long,2025-03-06 05:00,M1,2919.265,1,2919.265,-0.95,-0.03,0,0,0.00,-2.43,-0.08,75.11,0.00,1 +70,Exit short,2025-03-06 08:00,M1,2916.745,1,2918.315,1.57,0.05,0,1.715,0.06,-2.09,-0.07,76.68,0.00,1 +70,Entry short,2025-03-06 07:00,M1,2918.315,1,2918.315,1.57,0.05,0,1.715,0.06,-2.09,-0.07,76.68,0.00,1 +71,Exit long,2025-03-06 09:00,M1,2924.74,1,2916.745,7.995,0.27,0,9.06,0.31,-0.735,-0.03,84.675,0.00,1 +71,Entry long,2025-03-06 08:00,M1,2916.745,1,2916.745,7.995,0.27,0,9.06,0.31,-0.735,-0.03,84.675,0.00,1 +72,Exit short,2025-03-06 10:00,M1,2925.71,1,2924.74,-0.97,-0.03,0,1.63,0.06,-1.98,-0.07,83.705,0.00,1 +72,Entry short,2025-03-06 09:00,M1,2924.74,1,2924.74,-0.97,-0.03,0,1.63,0.06,-1.98,-0.07,83.705,0.00,1 +73,Exit long,2025-03-06 11:00,M1,2921.27,1,2925.71,-4.44,-0.15,0,0.005,0.00,-5.58,-0.19,79.265,0.00,1 +73,Entry long,2025-03-06 10:00,M1,2925.71,1,2925.71,-4.44,-0.15,0,0.005,0.00,-5.58,-0.19,79.265,0.00,1 +74,Exit short,2025-03-06 12:00,M1,2917.54,1,2921.27,3.73,0.13,0,4.785,0.16,-0.315,-0.01,82.995,0.00,1 +74,Entry short,2025-03-06 11:00,M1,2921.27,1,2921.27,3.73,0.13,0,4.785,0.16,-0.315,-0.01,82.995,0.00,1 +75,Exit long,2025-03-06 13:00,M1,2919.975,1,2917.54,2.435,0.08,0,3.2,0.11,-2.91,-0.10,85.43,0.00,1 +75,Entry long,2025-03-06 12:00,M1,2917.54,1,2917.54,2.435,0.08,0,3.2,0.11,-2.91,-0.10,85.43,0.00,1 +76,Exit short,2025-03-06 14:00,M1,2920.705,1,2919.975,-0.73,-0.03,0,0.06,0.00,-3.135,-0.11,84.7,0.00,1 +76,Entry short,2025-03-06 13:00,M1,2919.975,1,2919.975,-0.73,-0.03,0,0.06,0.00,-3.135,-0.11,84.7,0.00,1 +77,Exit long,2025-03-06 15:00,M1,2910.135,1,2920.705,-10.57,-0.36,0,1.83,0.06,-10.895,-0.37,74.13,0.00,1 +77,Entry long,2025-03-06 14:00,M1,2920.705,1,2920.705,-10.57,-0.36,0,1.83,0.06,-10.895,-0.37,74.13,0.00,1 +78,Exit short,2025-03-06 16:00,M1,2904.845,1,2910.135,5.29,0.18,0,9.035,0.31,-1.46,-0.05,79.42,0.00,1 +78,Entry short,2025-03-06 15:00,M1,2910.135,1,2910.135,5.29,0.18,0,9.035,0.31,-1.46,-0.05,79.42,0.00,1 +79,Exit long,2025-03-06 17:00,M1,2894.225,1,2904.845,-10.62,-0.37,0,0.57,0.02,-13.695,-0.47,68.8,0.00,1 +79,Entry long,2025-03-06 16:00,M1,2904.845,1,2904.845,-10.62,-0.37,0,0.57,0.02,-13.695,-0.47,68.8,0.00,1 +80,Exit short,2025-03-06 18:00,M1,2899.39,1,2894.225,-5.165,-0.18,0,2.195,0.08,-11.115,-0.38,63.635,0.00,1 +80,Entry short,2025-03-06 17:00,M1,2894.225,1,2894.225,-5.165,-0.18,0,2.195,0.08,-11.115,-0.38,63.635,0.00,1 +81,Exit long,2025-03-06 19:00,M1,2905.89,1,2899.39,6.5,0.22,0,8.3,0.29,-0.705,-0.02,70.135,0.00,1 +81,Entry long,2025-03-06 18:00,M1,2899.39,1,2899.39,6.5,0.22,0,8.3,0.29,-0.705,-0.02,70.135,0.00,1 +82,Exit short,2025-03-06 20:00,M1,2903.345,1,2905.89,2.545,0.09,0,6.525,0.22,-1.27,-0.04,72.68,0.00,1 +82,Entry short,2025-03-06 19:00,M1,2905.89,1,2905.89,2.545,0.09,0,6.525,0.22,-1.27,-0.04,72.68,0.00,1 +83,Exit long,2025-03-06 21:00,M1,2904.595,1,2903.345,1.25,0.04,0,6.09,0.21,-2.48,-0.09,73.93,0.00,1 +83,Entry long,2025-03-06 20:00,M1,2903.345,1,2903.345,1.25,0.04,0,6.09,0.21,-2.48,-0.09,73.93,0.00,1 +84,Exit short,2025-03-06 22:00,M1,2915.215,1,2904.595,-10.62,-0.37,0,1.15,0.04,-12.075,-0.42,63.31,0.00,1 +84,Entry short,2025-03-06 21:00,M1,2904.595,1,2904.595,-10.62,-0.37,0,1.15,0.04,-12.075,-0.42,63.31,0.00,1 +85,Exit long,2025-03-06 23:00,M1,2914.55,1,2915.215,-0.665,-0.02,0,7.635,0.26,-6.005,-0.21,62.645,0.00,1 +85,Entry long,2025-03-06 22:00,M1,2915.215,1,2915.215,-0.665,-0.02,0,7.635,0.26,-6.005,-0.21,62.645,0.00,1 +86,Exit short,2025-03-07 00:00,M1,2917.235,1,2914.55,-2.685,-0.09,0,1.905,0.07,-3.965,-0.14,59.96,0.00,1 +86,Entry short,2025-03-06 23:00,M1,2914.55,1,2914.55,-2.685,-0.09,0,1.905,0.07,-3.965,-0.14,59.96,0.00,1 +87,Exit long,2025-03-07 01:00,M1,2915.57,1,2917.235,-1.665,-0.06,0,4.29,0.15,-2.775,-0.10,58.295,0.00,1 +87,Entry long,2025-03-07 00:00,M1,2917.235,1,2917.235,-1.665,-0.06,0,4.29,0.15,-2.775,-0.10,58.295,0.00,1 +88,Exit short,2025-03-07 02:00,M1,2916.235,1,2915.57,-0.665,-0.02,0,1.655,0.06,-5.2,-0.18,57.63,0.00,1 +88,Entry short,2025-03-07 01:00,M1,2915.57,1,2915.57,-0.665,-0.02,0,1.655,0.06,-5.2,-0.18,57.63,0.00,1 +89,Exit long,2025-03-07 03:00,M1,2914.03,1,2916.235,-2.205,-0.08,0,1.53,0.05,-3.88,-0.13,55.425,0.00,1 +89,Entry long,2025-03-07 02:00,M1,2916.235,1,2916.235,-2.205,-0.08,0,1.53,0.05,-3.88,-0.13,55.425,0.00,1 +90,Exit short,2025-03-07 04:00,M1,2908.895,1,2914.03,5.135,0.18,0,5.505,0.19,-2.57,-0.09,60.56,0.00,1 +90,Entry short,2025-03-07 03:00,M1,2914.03,1,2914.03,5.135,0.18,0,5.505,0.19,-2.57,-0.09,60.56,0.00,1 +91,Exit long,2025-03-07 05:00,M1,2911.1,1,2908.895,2.205,0.08,0,3.075,0.11,-0.445,-0.02,62.765,0.00,1 +91,Entry long,2025-03-07 04:00,M1,2908.895,1,2908.895,2.205,0.08,0,3.075,0.11,-0.445,-0.02,62.765,0.00,1 +92,Exit short,2025-03-07 07:00,M1,2910.395,1,2911.1,0.705,0.02,0,1.055,0.04,-2.38,-0.08,63.47,0.00,1 +92,Entry short,2025-03-07 05:00,M1,2911.1,1,2911.1,0.705,0.02,0,1.055,0.04,-2.38,-0.08,63.47,0.00,1 +93,Exit long,2025-03-07 08:00,M1,2904.78,1,2910.395,-5.615,-0.19,0,0.015,0.00,-13.485,-0.46,57.855,0.00,1 +93,Entry long,2025-03-07 07:00,M1,2910.395,1,2910.395,-5.615,-0.19,0,0.015,0.00,-13.485,-0.46,57.855,0.00,1 +94,Exit short,2025-03-07 09:00,M1,2906.965,1,2904.78,-2.185,-0.08,0,3.21,0.11,-5.59,-0.19,55.67,0.00,1 +94,Entry short,2025-03-07 08:00,M1,2904.78,1,2904.78,-2.185,-0.08,0,3.21,0.11,-5.59,-0.19,55.67,0.00,1 +95,Exit long,2025-03-07 10:00,M1,2908.2,1,2906.965,1.235,0.04,0,2.295,0.08,-5.62,-0.19,56.905,0.00,1 +95,Entry long,2025-03-07 09:00,M1,2906.965,1,2906.965,1.235,0.04,0,2.295,0.08,-5.62,-0.19,56.905,0.00,1 +96,Exit short,2025-03-07 11:00,M1,2905.465,1,2908.2,2.735,0.09,0,4.18,0.14,-0.935,-0.03,59.64,0.00,1 +96,Entry short,2025-03-07 10:00,M1,2908.2,1,2908.2,2.735,0.09,0,4.18,0.14,-0.935,-0.03,59.64,0.00,1 +97,Exit long,2025-03-07 12:00,M1,2906.645,1,2905.465,1.18,0.04,0,2.945,0.10,-0.64,-0.02,60.82,0.00,1 +97,Entry long,2025-03-07 11:00,M1,2905.465,1,2905.465,1.18,0.04,0,2.945,0.10,-0.64,-0.02,60.82,0.00,1 +98,Exit short,2025-03-07 13:00,M1,2909.66,1,2906.645,-3.015,-0.10,0,0.2,0.01,-5.895,-0.20,57.805,0.00,1 +98,Entry short,2025-03-07 12:00,M1,2906.645,1,2906.645,-3.015,-0.10,0,0.2,0.01,-5.895,-0.20,57.805,0.00,1 +99,Exit long,2025-03-07 14:00,M1,2913.57,1,2909.66,3.91,0.13,0,5.16,0.18,-1.84,-0.06,61.715,0.00,1 +99,Entry long,2025-03-07 13:00,M1,2909.66,1,2909.66,3.91,0.13,0,5.16,0.18,-1.84,-0.06,61.715,0.00,1 +100,Exit short,2025-03-07 15:00,M1,2917.2,1,2913.57,-3.63,-0.12,0,1.85,0.06,-3.84,-0.13,58.085,0.00,1 +100,Entry short,2025-03-07 14:00,M1,2913.57,1,2913.57,-3.63,-0.12,0,1.85,0.06,-3.84,-0.13,58.085,0.00,1 +101,Exit long,2025-03-07 16:00,M1,2922.48,1,2917.2,5.28,0.18,0,5.88,0.20,-1.89,-0.06,63.365,0.00,1 +101,Entry long,2025-03-07 15:00,M1,2917.2,1,2917.2,5.28,0.18,0,5.88,0.20,-1.89,-0.06,63.365,0.00,1 +102,Exit short,2025-03-07 17:00,M1,2921.62,1,2922.48,0.86,0.03,0,2.235,0.08,-0.7,-0.02,64.225,0.00,1 +102,Entry short,2025-03-07 16:00,M1,2922.48,1,2922.48,0.86,0.03,0,2.235,0.08,-0.7,-0.02,64.225,0.00,1 +103,Exit long,2025-03-07 18:00,M1,2917.935,1,2921.62,-3.685,-0.13,0,0.51,0.02,-4.465,-0.15,60.54,0.00,1 +103,Entry long,2025-03-07 17:00,M1,2921.62,1,2921.62,-3.685,-0.13,0,0.51,0.02,-4.465,-0.15,60.54,0.00,1 +104,Exit short,2025-03-07 19:00,M1,2918.85,1,2917.935,-0.915,-0.03,0,1.2,0.04,-4.17,-0.14,59.625,0.00,1 +104,Entry short,2025-03-07 18:00,M1,2917.935,1,2917.935,-0.915,-0.03,0,1.2,0.04,-4.17,-0.14,59.625,0.00,1 +105,Exit long,2025-03-07 20:00,M1,2918.77,1,2918.85,-0.08,0.00,0,3.985,0.14,-0.77,-0.03,59.545,0.00,1 +105,Entry long,2025-03-07 19:00,M1,2918.85,1,2918.85,-0.08,0.00,0,3.985,0.14,-0.77,-0.03,59.545,0.00,1 +106,Exit short,2025-03-07 21:00,M1,2913.835,1,2918.77,4.935,0.17,0,8.595,0.29,-7.655,-0.26,64.48,0.00,1 +106,Entry short,2025-03-07 20:00,M1,2918.77,1,2918.77,4.935,0.17,0,8.595,0.29,-7.655,-0.26,64.48,0.00,1 +107,Exit long,2025-03-07 22:00,M1,2926.815,1,2913.835,12.98,0.45,0,14.975,0.51,-10.005,-0.34,77.46,0.00,1 +107,Entry long,2025-03-07 21:00,M1,2913.835,1,2913.835,12.98,0.45,0,14.975,0.51,-10.005,-0.34,77.46,0.00,1 +108,Exit short,2025-03-07 23:00,M1,2915.875,1,2926.815,10.94,0.37,0,18.155,0.62,-3.725,-0.13,88.4,0.00,1 +108,Entry short,2025-03-07 22:00,M1,2926.815,1,2926.815,10.94,0.37,0,18.155,0.62,-3.725,-0.13,88.4,0.00,1 +109,Exit long,2025-03-08 00:00,M1,2914.17,1,2915.875,-1.705,-0.06,0,3.595,0.12,-4.19,-0.14,86.695,0.00,1 +109,Entry long,2025-03-07 23:00,M1,2915.875,1,2915.875,-1.705,-0.06,0,3.595,0.12,-4.19,-0.14,86.695,0.00,1 +110,Exit short,2025-03-08 01:00,M1,2908.325,1,2914.17,5.845,0.20,0,9.095,0.31,-2.18,-0.07,92.54,0.00,1 +110,Entry short,2025-03-08 00:00,M1,2914.17,1,2914.17,5.845,0.20,0,9.095,0.31,-2.18,-0.07,92.54,0.00,1 +111,Exit long,2025-03-08 02:00,M1,2906.625,1,2908.325,-1.7,-0.06,0,0.425,0.01,-6.26,-0.22,90.84,0.00,1 +111,Entry long,2025-03-08 01:00,M1,2908.325,1,2908.325,-1.7,-0.06,0,0.425,0.01,-6.26,-0.22,90.84,0.00,1 +112,Exit short,2025-03-08 03:00,M1,2905.305,1,2906.625,1.32,0.05,0,1.945,0.07,-2.955,-0.10,92.16,0.00,1 +112,Entry short,2025-03-08 02:00,M1,2906.625,1,2906.625,1.32,0.05,0,1.945,0.07,-2.955,-0.10,92.16,0.00,1 +113,Exit long,2025-03-08 04:00,M1,2909.765,1,2905.305,4.46,0.15,0,5.955,0.20,-0.44,-0.02,96.62,0.00,1 +113,Entry long,2025-03-08 03:00,M1,2905.305,1,2905.305,4.46,0.15,0,5.955,0.20,-0.44,-0.02,96.62,0.00,1 +114,Exit short,2025-03-08 05:00,M1,2909.55,1,2909.765,0.215,0.01,0,1.245,0.04,-2.93,-0.10,96.835,0.00,1 +114,Entry short,2025-03-08 04:00,M1,2909.765,1,2909.765,0.215,0.01,0,1.245,0.04,-2.93,-0.10,96.835,0.00,1 +115,Exit long,2025-03-10 06:00,M1,2911.98,1,2909.55,2.43,0.08,0,5.77,0.20,0,0.00,99.265,0.00,1 +115,Entry long,2025-03-08 05:00,M1,2909.55,1,2909.55,2.43,0.08,0,5.77,0.20,0,0.00,99.265,0.00,1 +116,Exit short,2025-03-10 07:00,M1,2916.34,1,2911.98,-4.36,-0.15,0,0.385,0.01,-5.1,-0.18,94.905,0.00,1 +116,Entry short,2025-03-10 06:00,M1,2911.98,1,2911.98,-4.36,-0.15,0,0.385,0.01,-5.1,-0.18,94.905,0.00,1 +117,Exit long,2025-03-10 08:00,M1,2913.865,1,2916.34,-2.475,-0.08,0,1.73,0.06,-3.305,-0.11,92.43,0.00,1 +117,Entry long,2025-03-10 07:00,M1,2916.34,1,2916.34,-2.475,-0.08,0,1.73,0.06,-3.305,-0.11,92.43,0.00,1 +118,Exit short,2025-03-10 09:00,M1,2912.155,1,2913.865,1.71,0.06,0,2.49,0.09,-4.52,-0.16,94.14,0.00,1 +118,Entry short,2025-03-10 08:00,M1,2913.865,1,2913.865,1.71,0.06,0,2.49,0.09,-4.52,-0.16,94.14,0.00,1 +119,Exit long,2025-03-10 10:00,M1,2911.535,1,2912.155,-0.62,-0.02,0,2.45,0.08,-2.625,-0.09,93.52,0.00,1 +119,Entry long,2025-03-10 09:00,M1,2912.155,1,2912.155,-0.62,-0.02,0,2.45,0.08,-2.625,-0.09,93.52,0.00,1 +120,Exit short,2025-03-10 11:00,M1,2911.045,1,2911.535,0.49,0.02,0,3.2,0.11,-2.05,-0.07,94.01,0.00,1 +120,Entry short,2025-03-10 10:00,M1,2911.535,1,2911.535,0.49,0.02,0,3.2,0.11,-2.05,-0.07,94.01,0.00,1 +121,Exit long,2025-03-10 12:00,M1,2910.98,1,2911.045,-0.065,0.00,0,1.63,0.06,-0.665,-0.02,93.945,0.00,1 +121,Entry long,2025-03-10 11:00,M1,2911.045,1,2911.045,-0.065,0.00,0,1.63,0.06,-0.665,-0.02,93.945,0.00,1 +122,Exit short,2025-03-10 13:00,M1,2909.985,1,2910.98,0.995,0.03,0,3.945,0.14,-0.995,-0.03,94.94,0.00,1 +122,Entry short,2025-03-10 12:00,M1,2910.98,1,2910.98,0.995,0.03,0,3.945,0.14,-0.995,-0.03,94.94,0.00,1 +123,Exit long,2025-03-10 14:00,M1,2914.44,1,2909.985,4.455,0.15,0,4.715,0.16,-0.575,-0.02,99.395,0.00,1 +123,Entry long,2025-03-10 13:00,M1,2909.985,1,2909.985,4.455,0.15,0,4.715,0.16,-0.575,-0.02,99.395,0.00,1 +124,Exit short,2025-03-10 15:00,M1,2908.52,1,2914.44,5.92,0.20,0,10.075,0.35,-1.15,-0.04,105.315,0.00,1 +124,Entry short,2025-03-10 14:00,M1,2914.44,1,2914.44,5.92,0.20,0,10.075,0.35,-1.15,-0.04,105.315,0.00,1 +125,Exit long,2025-03-10 16:00,M1,2897.935,1,2908.52,-10.585,-0.36,0,2.15,0.07,-10.895,-0.37,94.73,0.00,1 +125,Entry long,2025-03-10 15:00,M1,2908.52,1,2908.52,-10.585,-0.36,0,2.15,0.07,-10.895,-0.37,94.73,0.00,1 +126,Exit short,2025-03-10 17:00,M1,2911.215,1,2897.935,-13.28,-0.46,0,1.225,0.04,-17.66,-0.61,81.45,0.00,1 +126,Entry short,2025-03-10 16:00,M1,2897.935,1,2897.935,-13.28,-0.46,0,1.225,0.04,-17.66,-0.61,81.45,0.00,1 +127,Exit long,2025-03-10 18:00,M1,2903.055,1,2911.215,-8.16,-0.28,0,0.08,0.00,-12.79,-0.44,73.29,0.00,1 +127,Entry long,2025-03-10 17:00,M1,2911.215,1,2911.215,-8.16,-0.28,0,0.08,0.00,-12.79,-0.44,73.29,0.00,1 +128,Exit short,2025-03-10 19:00,M1,2904.22,1,2903.055,-1.165,-0.04,0,7.355,0.25,-1.75,-0.06,72.125,0.00,1 +128,Entry short,2025-03-10 18:00,M1,2903.055,1,2903.055,-1.165,-0.04,0,7.355,0.25,-1.75,-0.06,72.125,0.00,1 +129,Exit long,2025-03-10 20:00,M1,2906.8,1,2904.22,2.58,0.09,0,3.495,0.12,-3.815,-0.13,74.705,0.00,1 +129,Entry long,2025-03-10 19:00,M1,2904.22,1,2904.22,2.58,0.09,0,3.495,0.12,-3.815,-0.13,74.705,0.00,1 +130,Exit short,2025-03-10 21:00,M1,2903.79,1,2906.8,3.01,0.10,0,9.095,0.31,-1.875,-0.06,77.715,0.00,1 +130,Entry short,2025-03-10 20:00,M1,2906.8,1,2906.8,3.01,0.10,0,9.095,0.31,-1.875,-0.06,77.715,0.00,1 +131,Exit long,2025-03-10 22:00,M1,2908.115,1,2903.79,4.325,0.15,0,5.425,0.19,-2.795,-0.10,82.04,0.00,1 +131,Entry long,2025-03-10 21:00,M1,2903.79,1,2903.79,4.325,0.15,0,5.425,0.19,-2.795,-0.10,82.04,0.00,1 +132,Exit short,2025-03-10 23:00,M1,2904.57,1,2908.115,3.545,0.12,0,7.475,0.26,-2.52,-0.09,85.585,0.00,1 +132,Entry short,2025-03-10 22:00,M1,2908.115,1,2908.115,3.545,0.12,0,7.475,0.26,-2.52,-0.09,85.585,0.00,1 +133,Exit long,2025-03-11 00:00,M1,2895.975,1,2904.57,-8.595,-0.30,0,2.325,0.08,-8.67,-0.30,76.99,0.00,1 +133,Entry long,2025-03-10 23:00,M1,2904.57,1,2904.57,-8.595,-0.30,0,2.325,0.08,-8.67,-0.30,76.99,0.00,1 +134,Exit short,2025-03-11 01:00,M1,2886.135,1,2895.975,9.84,0.34,0,13.155,0.45,-0.2,-0.01,86.83,0.00,1 +134,Entry short,2025-03-11 00:00,M1,2895.975,1,2895.975,9.84,0.34,0,13.155,0.45,-0.2,-0.01,86.83,0.00,1 +135,Exit long,2025-03-11 02:00,M1,2885.665,1,2886.135,-0.47,-0.02,0,3.6,0.12,-5.825,-0.20,86.36,0.00,1 +135,Entry long,2025-03-11 01:00,M1,2886.135,1,2886.135,-0.47,-0.02,0,3.6,0.12,-5.825,-0.20,86.36,0.00,1 +136,Exit short,2025-03-11 03:00,M1,2885.59,1,2885.665,0.075,0.00,0,5.31,0.18,-5.4,-0.19,86.435,0.00,1 +136,Entry short,2025-03-11 02:00,M1,2885.665,1,2885.665,0.075,0.00,0,5.31,0.18,-5.4,-0.19,86.435,0.00,1 +137,Exit long,2025-03-11 04:00,M1,2889.5,1,2885.59,3.91,0.14,0,4.015,0.14,-1.14,-0.04,90.345,0.00,1 +137,Entry long,2025-03-11 03:00,M1,2885.59,1,2885.59,3.91,0.14,0,4.015,0.14,-1.14,-0.04,90.345,0.00,1 +138,Exit short,2025-03-11 06:00,M1,2884.655,1,2889.5,4.845,0.17,0,5.385,0.19,-0.46,-0.02,95.19,0.00,1 +138,Entry short,2025-03-11 04:00,M1,2889.5,1,2889.5,4.845,0.17,0,5.385,0.19,-0.46,-0.02,95.19,0.00,1 +139,Exit long,2025-03-11 07:00,M1,2884.79,1,2884.655,0.135,0.00,0,1.22,0.04,-2.225,-0.08,95.325,0.00,1 +139,Entry long,2025-03-11 06:00,M1,2884.655,1,2884.655,0.135,0.00,0,1.22,0.04,-2.225,-0.08,95.325,0.00,1 +140,Exit short,2025-03-11 08:00,M1,2887.415,1,2884.79,-2.625,-0.09,0,0.46,0.02,-3.99,-0.14,92.7,0.00,1 +140,Entry short,2025-03-11 07:00,M1,2884.79,1,2884.79,-2.625,-0.09,0,0.46,0.02,-3.99,-0.14,92.7,0.00,1 +141,Exit long,2025-03-11 09:00,M1,2890.65,1,2887.415,3.235,0.11,0,3.66,0.13,-7.165,-0.25,95.935,0.00,1 +141,Entry long,2025-03-11 08:00,M1,2887.415,1,2887.415,3.235,0.11,0,3.66,0.13,-7.165,-0.25,95.935,0.00,1 +142,Exit short,2025-03-11 10:00,M1,2899.175,1,2890.65,-8.525,-0.29,0,0.635,0.02,-9.865,-0.34,87.41,0.00,1 +142,Entry short,2025-03-11 09:00,M1,2890.65,1,2890.65,-8.525,-0.29,0,0.635,0.02,-9.865,-0.34,87.41,0.00,1 +143,Exit long,2025-03-11 11:00,M1,2896.915,1,2899.175,-2.26,-0.08,0,0.295,0.01,-3.965,-0.14,85.15,0.00,1 +143,Entry long,2025-03-11 10:00,M1,2899.175,1,2899.175,-2.26,-0.08,0,0.295,0.01,-3.965,-0.14,85.15,0.00,1 +144,Exit short,2025-03-11 12:00,M1,2897.77,1,2896.915,-0.855,-0.03,0,1.4,0.05,-1.77,-0.06,84.295,0.00,1 +144,Entry short,2025-03-11 11:00,M1,2896.915,1,2896.915,-0.855,-0.03,0,1.4,0.05,-1.77,-0.06,84.295,0.00,1 +145,Exit long,2025-03-11 13:00,M1,2895.93,1,2897.77,-1.84,-0.06,0,1.415,0.05,-4.955,-0.17,82.455,0.00,1 +145,Entry long,2025-03-11 12:00,M1,2897.77,1,2897.77,-1.84,-0.06,0,1.415,0.05,-4.955,-0.17,82.455,0.00,1 +146,Exit short,2025-03-11 14:00,M1,2902.35,1,2895.93,-6.42,-0.22,0,2.31,0.08,-6.96,-0.24,76.035,0.00,1 +146,Entry short,2025-03-11 13:00,M1,2895.93,1,2895.93,-6.42,-0.22,0,2.31,0.08,-6.96,-0.24,76.035,0.00,1 +147,Exit long,2025-03-11 15:00,M1,2901.11,1,2902.35,-1.24,-0.04,0,1.35,0.05,-4.765,-0.16,74.795,0.00,1 +147,Entry long,2025-03-11 14:00,M1,2902.35,1,2902.35,-1.24,-0.04,0,1.35,0.05,-4.765,-0.16,74.795,0.00,1 +148,Exit short,2025-03-11 16:00,M1,2910.01,1,2901.11,-8.9,-0.31,0,0.555,0.02,-9.565,-0.33,65.895,0.00,1 +148,Entry short,2025-03-11 15:00,M1,2901.11,1,2901.11,-8.9,-0.31,0,0.555,0.02,-9.565,-0.33,65.895,0.00,1 +149,Exit long,2025-03-11 17:00,M1,2911.825,1,2910.01,1.815,0.06,0,2.53,0.09,-1.075,-0.04,67.71,0.00,1 +149,Entry long,2025-03-11 16:00,M1,2910.01,1,2910.01,1.815,0.06,0,2.53,0.09,-1.075,-0.04,67.71,0.00,1 +150,Exit short,2025-03-11 18:00,M1,2912.105,1,2911.825,-0.28,-0.01,0,0.88,0.03,-2.77,-0.10,67.43,0.00,1 +150,Entry short,2025-03-11 17:00,M1,2911.825,1,2911.825,-0.28,-0.01,0,0.88,0.03,-2.77,-0.10,67.43,0.00,1 +151,Exit long,2025-03-11 19:00,M1,2913.615,1,2912.105,1.51,0.05,0,3.375,0.12,-1.295,-0.04,68.94,0.00,1 +151,Entry long,2025-03-11 18:00,M1,2912.105,1,2912.105,1.51,0.05,0,3.375,0.12,-1.295,-0.04,68.94,0.00,1 +152,Exit short,2025-03-11 20:00,M1,2913.11,1,2913.615,0.505,0.02,0,2.955,0.10,-2.495,-0.09,69.445,0.00,1 +152,Entry short,2025-03-11 19:00,M1,2913.615,1,2913.615,0.505,0.02,0,2.955,0.10,-2.495,-0.09,69.445,0.00,1 +153,Exit long,2025-03-11 21:00,M1,2918.2,1,2913.11,5.09,0.17,0,9.115,0.31,-6.22,-0.21,74.535,0.00,1 +153,Entry long,2025-03-11 20:00,M1,2913.11,1,2913.11,5.09,0.17,0,9.115,0.31,-6.22,-0.21,74.535,0.00,1 +154,Exit short,2025-03-11 22:00,M1,2914.195,1,2918.2,4.005,0.14,0,6.43,0.22,-2.705,-0.09,78.54,0.00,1 +154,Entry short,2025-03-11 21:00,M1,2918.2,1,2918.2,4.005,0.14,0,6.43,0.22,-2.705,-0.09,78.54,0.00,1 +155,Exit long,2025-03-11 23:00,M1,2916.85,1,2914.195,2.655,0.09,0,5.775,0.20,-0.095,0.00,81.195,0.00,1 +155,Entry long,2025-03-11 22:00,M1,2914.195,1,2914.195,2.655,0.09,0,5.775,0.20,-0.095,0.00,81.195,0.00,1 +156,Exit short,2025-03-12 00:00,M1,2917.2,1,2916.85,-0.35,-0.01,0,1.63,0.06,-1.295,-0.04,80.845,0.00,1 +156,Entry short,2025-03-11 23:00,M1,2916.85,1,2916.85,-0.35,-0.01,0,1.63,0.06,-1.295,-0.04,80.845,0.00,1 +157,Exit long,2025-03-12 01:00,M1,2917.83,1,2917.2,0.63,0.02,0,3.555,0.12,-2.99,-0.10,81.475,0.00,1 +157,Entry long,2025-03-12 00:00,M1,2917.2,1,2917.2,0.63,0.02,0,3.555,0.12,-2.99,-0.10,81.475,0.00,1 +158,Exit short,2025-03-12 02:00,M1,2918.355,1,2917.83,-0.525,-0.02,0,2.545,0.09,-1.76,-0.06,80.95,0.00,1 +158,Entry short,2025-03-12 01:00,M1,2917.83,1,2917.83,-0.525,-0.02,0,2.545,0.09,-1.76,-0.06,80.95,0.00,1 +159,Exit long,2025-03-12 03:00,M1,2918.395,1,2918.355,0.04,0.00,0,3.045,0.10,-0.845,-0.03,80.99,0.00,1 +159,Entry long,2025-03-12 02:00,M1,2918.355,1,2918.355,0.04,0.00,0,3.045,0.10,-0.845,-0.03,80.99,0.00,1 +160,Exit short,2025-03-12 04:00,M1,2915.695,1,2918.395,2.7,0.09,0,3.26,0.11,-0.7,-0.02,83.69,0.00,1 +160,Entry short,2025-03-12 03:00,M1,2918.395,1,2918.395,2.7,0.09,0,3.26,0.11,-0.7,-0.02,83.69,0.00,1 +161,Exit long,2025-03-12 06:00,M1,2917.72,1,2915.695,2.025,0.07,0,2.57,0.09,-1.26,-0.04,85.715,0.00,1 +161,Entry long,2025-03-12 04:00,M1,2915.695,1,2915.695,2.025,0.07,0,2.57,0.09,-1.26,-0.04,85.715,0.00,1 +162,Exit short,2025-03-12 07:00,M1,2915.555,1,2917.72,2.165,0.07,0,2.245,0.08,-2.035,-0.07,87.88,0.00,1 +162,Entry short,2025-03-12 06:00,M1,2917.72,1,2917.72,2.165,0.07,0,2.245,0.08,-2.035,-0.07,87.88,0.00,1 +163,Exit long,2025-03-12 08:00,M1,2914.25,1,2915.555,-1.305,-0.04,0,0.03,0.00,-3.325,-0.11,86.575,0.00,1 +163,Entry long,2025-03-12 07:00,M1,2915.555,1,2915.555,-1.305,-0.04,0,0.03,0.00,-3.325,-0.11,86.575,0.00,1 +164,Exit short,2025-03-12 09:00,M1,2915,1,2914.25,-0.75,-0.03,0,3.35,0.11,-3.23,-0.11,85.825,0.00,1 +164,Entry short,2025-03-12 08:00,M1,2914.25,1,2914.25,-0.75,-0.03,0,3.35,0.11,-3.23,-0.11,85.825,0.00,1 +165,Exit long,2025-03-12 10:00,M1,2916.36,1,2915,1.36,0.05,0,3.39,0.12,-0.945,-0.03,87.185,0.00,1 +165,Entry long,2025-03-12 09:00,M1,2915,1,2915,1.36,0.05,0,3.39,0.12,-0.945,-0.03,87.185,0.00,1 +166,Exit short,2025-03-12 11:00,M1,2915.035,1,2916.36,1.325,0.05,0,1.41,0.05,-3.75,-0.13,88.51,0.00,1 +166,Entry short,2025-03-12 10:00,M1,2916.36,1,2916.36,1.325,0.05,0,1.41,0.05,-3.75,-0.13,88.51,0.00,1 +167,Exit long,2025-03-12 12:00,M1,2914.985,1,2915.035,-0.05,0.00,0,1.055,0.04,-2.405,-0.08,88.46,0.00,1 +167,Entry long,2025-03-12 11:00,M1,2915.035,1,2915.035,-0.05,0.00,0,1.055,0.04,-2.405,-0.08,88.46,0.00,1 +168,Exit short,2025-03-12 13:00,M1,2916.035,1,2914.985,-1.05,-0.04,0,2.82,0.10,-1.585,-0.05,87.41,0.00,1 +168,Entry short,2025-03-12 12:00,M1,2914.985,1,2914.985,-1.05,-0.04,0,2.82,0.10,-1.585,-0.05,87.41,0.00,1 +169,Exit long,2025-03-12 14:00,M1,2911.95,1,2916.035,-4.085,-0.14,0,5.15,0.18,-4.6,-0.16,83.325,0.00,1 +169,Entry long,2025-03-12 13:00,M1,2916.035,1,2916.035,-4.085,-0.14,0,5.15,0.18,-4.6,-0.16,83.325,0.00,1 +170,Exit short,2025-03-12 15:00,M1,2914.655,1,2911.95,-2.705,-0.09,0,2.855,0.10,-3.805,-0.13,80.62,0.00,1 +170,Entry short,2025-03-12 14:00,M1,2911.95,1,2911.95,-2.705,-0.09,0,2.855,0.10,-3.805,-0.13,80.62,0.00,1 +171,Exit long,2025-03-12 16:00,M1,2922.27,1,2914.655,7.615,0.26,0,7.625,0.26,-0.48,-0.02,88.235,0.00,1 +171,Entry long,2025-03-12 15:00,M1,2914.655,1,2914.655,7.615,0.26,0,7.625,0.26,-0.48,-0.02,88.235,0.00,1 +172,Exit short,2025-03-12 17:00,M1,2914.73,1,2922.27,7.54,0.26,0,8.53,0.29,-3.12,-0.11,95.775,0.00,1 +172,Entry short,2025-03-12 16:00,M1,2922.27,1,2922.27,7.54,0.26,0,8.53,0.29,-3.12,-0.11,95.775,0.00,1 +173,Exit long,2025-03-12 18:00,M1,2914.41,1,2914.73,-0.32,-0.01,0,2.335,0.08,-1.87,-0.06,95.455,0.00,1 +173,Entry long,2025-03-12 17:00,M1,2914.73,1,2914.73,-0.32,-0.01,0,2.335,0.08,-1.87,-0.06,95.455,0.00,1 +174,Exit short,2025-03-12 19:00,M1,2915.39,1,2914.41,-0.98,-0.03,0,1.615,0.06,-2.445,-0.08,94.475,0.00,1 +174,Entry short,2025-03-12 18:00,M1,2914.41,1,2914.41,-0.98,-0.03,0,1.615,0.06,-2.445,-0.08,94.475,0.00,1 +175,Exit long,2025-03-12 20:00,M1,2917.56,1,2915.39,2.17,0.07,0,7.905,0.27,-3.24,-0.11,96.645,0.00,1 +175,Entry long,2025-03-12 19:00,M1,2915.39,1,2915.39,2.17,0.07,0,7.905,0.27,-3.24,-0.11,96.645,0.00,1 +176,Exit short,2025-03-12 21:00,M1,2915.595,1,2917.56,1.965,0.07,0,11.45,0.39,-1.295,-0.04,98.61,0.00,1 +176,Entry short,2025-03-12 20:00,M1,2917.56,1,2917.56,1.965,0.07,0,11.45,0.39,-1.295,-0.04,98.61,0.00,1 +177,Exit long,2025-03-12 22:00,M1,2921.985,1,2915.595,6.39,0.22,0,6.975,0.24,-1.235,-0.04,105,0.00,1 +177,Entry long,2025-03-12 21:00,M1,2915.595,1,2915.595,6.39,0.22,0,6.975,0.24,-1.235,-0.04,105,0.00,1 +178,Exit short,2025-03-12 23:00,M1,2928.46,1,2921.985,-6.475,-0.22,0,0.5,0.02,-7.505,-0.26,98.525,0.00,1 +178,Entry short,2025-03-12 22:00,M1,2921.985,1,2921.985,-6.475,-0.22,0,0.5,0.02,-7.505,-0.26,98.525,0.00,1 +179,Exit long,2025-03-13 00:00,M1,2936.235,1,2928.46,7.775,0.27,0,10.735,0.37,-0.46,-0.02,106.3,0.00,1 +179,Entry long,2025-03-12 23:00,M1,2928.46,1,2928.46,7.775,0.27,0,10.735,0.37,-0.46,-0.02,106.3,0.00,1 +180,Exit short,2025-03-13 01:00,M1,2936.21,1,2936.235,0.025,0.00,0,0.29,0.01,-4.455,-0.15,106.325,0.00,1 +180,Entry short,2025-03-13 00:00,M1,2936.235,1,2936.235,0.025,0.00,0,0.29,0.01,-4.455,-0.15,106.325,0.00,1 +181,Exit long,2025-03-13 02:00,M1,2935.21,1,2936.21,-1,-0.03,0,1.245,0.04,-2.33,-0.08,105.325,0.00,1 +181,Entry long,2025-03-13 01:00,M1,2936.21,1,2936.21,-1,-0.03,0,1.245,0.04,-2.33,-0.08,105.325,0.00,1 +182,Exit short,2025-03-13 03:00,M1,2931.405,1,2935.21,3.805,0.13,0,4.21,0.14,-0.485,-0.02,109.13,0.00,1 +182,Entry short,2025-03-13 02:00,M1,2935.21,1,2935.21,3.805,0.13,0,4.21,0.14,-0.485,-0.02,109.13,0.00,1 +183,Exit long,2025-03-13 04:00,M1,2933.61,1,2931.405,2.205,0.08,0,2.905,0.10,-0.44,-0.02,111.335,0.00,1 +183,Entry long,2025-03-13 03:00,M1,2931.405,1,2931.405,2.205,0.08,0,2.905,0.10,-0.44,-0.02,111.335,0.00,1 +184,Exit short,2025-03-13 06:00,M1,2938.205,1,2933.61,-4.595,-0.16,0,0,0.00,-5.465,-0.19,106.74,0.00,1 +184,Entry short,2025-03-13 04:00,M1,2933.61,1,2933.61,-4.595,-0.16,0,0,0.00,-5.465,-0.19,106.74,0.00,1 +185,Exit long,2025-03-13 07:00,M1,2938.195,1,2938.205,-0.01,0.00,0,1.29,0.04,-3.41,-0.12,106.73,0.00,1 +185,Entry long,2025-03-13 06:00,M1,2938.205,1,2938.205,-0.01,0.00,0,1.29,0.04,-3.41,-0.12,106.73,0.00,1 +186,Exit short,2025-03-13 08:00,M1,2938.71,1,2938.195,-0.515,-0.02,0,0.55,0.02,-1.295,-0.04,106.215,0.00,1 +186,Entry short,2025-03-13 07:00,M1,2938.195,1,2938.195,-0.515,-0.02,0,0.55,0.02,-1.295,-0.04,106.215,0.00,1 +187,Exit long,2025-03-13 09:00,M1,2937.92,1,2938.71,-0.79,-0.03,0,2.85,0.10,-2.07,-0.07,105.425,0.00,1 +187,Entry long,2025-03-13 08:00,M1,2938.71,1,2938.71,-0.79,-0.03,0,2.85,0.10,-2.07,-0.07,105.425,0.00,1 +188,Exit short,2025-03-13 10:00,M1,2944.38,1,2937.92,-6.46,-0.22,0,0.37,0.01,-8.225,-0.28,98.965,0.00,1 +188,Entry short,2025-03-13 09:00,M1,2937.92,1,2937.92,-6.46,-0.22,0,0.37,0.01,-8.225,-0.28,98.965,0.00,1 +189,Exit long,2025-03-13 11:00,M1,2945.755,1,2944.38,1.375,0.05,0,2.815,0.10,-1.25,-0.04,100.34,0.00,1 +189,Entry long,2025-03-13 10:00,M1,2944.38,1,2944.38,1.375,0.05,0,2.815,0.10,-1.25,-0.04,100.34,0.00,1 +190,Exit short,2025-03-13 12:00,M1,2944.76,1,2945.755,0.995,0.03,0,2.24,0.08,-0.555,-0.02,101.335,0.00,1 +190,Entry short,2025-03-13 11:00,M1,2945.755,1,2945.755,0.995,0.03,0,2.24,0.08,-0.555,-0.02,101.335,0.00,1 +191,Exit long,2025-03-13 13:00,M1,2940.14,1,2944.76,-4.62,-0.16,0,0.34,0.01,-6.45,-0.22,96.715,0.00,1 +191,Entry long,2025-03-13 12:00,M1,2944.76,1,2944.76,-4.62,-0.16,0,0.34,0.01,-6.45,-0.22,96.715,0.00,1 +192,Exit short,2025-03-13 14:00,M1,2936.955,1,2940.14,3.185,0.11,0,4.625,0.16,-0.215,-0.01,99.9,0.00,1 +192,Entry short,2025-03-13 13:00,M1,2940.14,1,2940.14,3.185,0.11,0,4.625,0.16,-0.215,-0.01,99.9,0.00,1 +193,Exit long,2025-03-13 15:00,M1,2935.32,1,2936.955,-1.635,-0.06,0,1.235,0.04,-3.975,-0.14,98.265,0.00,1 +193,Entry long,2025-03-13 14:00,M1,2936.955,1,2936.955,-1.635,-0.06,0,1.235,0.04,-3.975,-0.14,98.265,0.00,1 +194,Exit short,2025-03-13 16:00,M1,2941.54,1,2935.32,-6.22,-0.21,0,0.435,0.01,-9.69,-0.33,92.045,0.00,1 +194,Entry short,2025-03-13 15:00,M1,2935.32,1,2935.32,-6.22,-0.21,0,0.435,0.01,-9.69,-0.33,92.045,0.00,1 +195,Exit long,2025-03-13 17:00,M1,2947.835,1,2941.54,6.295,0.21,0,7.39,0.25,-0.42,-0.01,98.34,0.00,1 +195,Entry long,2025-03-13 16:00,M1,2941.54,1,2941.54,6.295,0.21,0,7.39,0.25,-0.42,-0.01,98.34,0.00,1 +196,Exit short,2025-03-13 18:00,M1,2944.15,1,2947.835,3.685,0.13,0,5.705,0.19,-0.86,-0.03,102.025,0.00,1 +196,Entry short,2025-03-13 17:00,M1,2947.835,1,2947.835,3.685,0.13,0,5.705,0.19,-0.86,-0.03,102.025,0.00,1 +197,Exit long,2025-03-13 19:00,M1,2946.395,1,2944.15,2.245,0.08,0,4.5,0.15,0,0.00,104.27,0.00,1 +197,Entry long,2025-03-13 18:00,M1,2944.15,1,2944.15,2.245,0.08,0,4.5,0.15,0,0.00,104.27,0.00,1 +198,Exit short,2025-03-13 20:00,M1,2942.575,1,2946.395,3.82,0.13,0,5.175,0.18,-2.905,-0.10,108.09,0.00,1 +198,Entry short,2025-03-13 19:00,M1,2946.395,1,2946.395,3.82,0.13,0,5.175,0.18,-2.905,-0.10,108.09,0.00,1 +199,Exit long,2025-03-13 21:00,M1,2950.49,1,2942.575,7.915,0.27,0,9.967,0.34,-3.485,-0.12,116.005,0.00,1 +199,Entry long,2025-03-13 20:00,M1,2942.575,1,2942.575,7.915,0.27,0,9.967,0.34,-3.485,-0.12,116.005,0.00,1 +200,Exit short,2025-03-13 22:00,M1,2970.05,1,2950.49,-19.56,-0.66,0,0.535,0.02,-20.77,-0.70,96.445,0.00,1 +200,Entry short,2025-03-13 21:00,M1,2950.49,1,2950.49,-19.56,-0.66,0,0.535,0.02,-20.77,-0.70,96.445,0.00,1 +201,Exit long,2025-03-13 23:00,M1,2977.9,1,2970.05,7.85,0.26,0,8.4,0.28,-3.505,-0.12,104.295,0.00,1 +201,Entry long,2025-03-13 22:00,M1,2970.05,1,2970.05,7.85,0.26,0,8.4,0.28,-3.505,-0.12,104.295,0.00,1 +202,Exit short,2025-03-14 00:00,M1,2980.16,1,2977.9,-2.26,-0.08,0,1.205,0.04,-7.39,-0.25,102.035,0.00,1 +202,Entry short,2025-03-13 23:00,M1,2977.9,1,2977.9,-2.26,-0.08,0,1.205,0.04,-7.39,-0.25,102.035,0.00,1 +203,Exit long,2025-03-14 01:00,M1,2979.555,1,2980.16,-0.605,-0.02,0,2.11,0.07,-3.635,-0.12,101.43,0.00,1 +203,Entry long,2025-03-14 00:00,M1,2980.16,1,2980.16,-0.605,-0.02,0,2.11,0.07,-3.635,-0.12,101.43,0.00,1 +204,Exit short,2025-03-14 02:00,M1,2983.325,1,2979.555,-3.77,-0.13,0,0.36,0.01,-4.87,-0.16,97.66,0.00,1 +204,Entry short,2025-03-14 01:00,M1,2979.555,1,2979.555,-3.77,-0.13,0,0.36,0.01,-4.87,-0.16,97.66,0.00,1 +205,Exit long,2025-03-14 03:00,M1,2982.94,1,2983.325,-0.385,-0.01,0,2.245,0.08,-2.72,-0.09,97.275,0.00,1 +205,Entry long,2025-03-14 02:00,M1,2983.325,1,2983.325,-0.385,-0.01,0,2.245,0.08,-2.72,-0.09,97.275,0.00,1 +206,Exit short,2025-03-14 04:00,M1,2988.695,1,2982.94,-5.755,-0.19,0,1.595,0.05,-6.36,-0.21,91.52,0.00,1 +206,Entry short,2025-03-14 03:00,M1,2982.94,1,2982.94,-5.755,-0.19,0,1.595,0.05,-6.36,-0.21,91.52,0.00,1 +207,Exit long,2025-03-14 06:00,M1,2987.31,1,2988.695,-1.385,-0.05,0,1.36,0.05,-5.35,-0.18,90.135,0.00,1 +207,Entry long,2025-03-14 04:00,M1,2988.695,1,2988.695,-1.385,-0.05,0,1.36,0.05,-5.35,-0.18,90.135,0.00,1 +208,Exit short,2025-03-14 07:00,M1,2986.465,1,2987.31,0.845,0.03,0,1.865,0.06,-2.055,-0.07,90.98,0.00,1 +208,Entry short,2025-03-14 06:00,M1,2987.31,1,2987.31,0.845,0.03,0,1.865,0.06,-2.055,-0.07,90.98,0.00,1 +209,Exit long,2025-03-14 08:00,M1,2986.76,1,2986.465,0.295,0.01,0,2.365,0.08,-1.755,-0.06,91.275,0.00,1 +209,Entry long,2025-03-14 07:00,M1,2986.465,1,2986.465,0.295,0.01,0,2.365,0.08,-1.755,-0.06,91.275,0.00,1 +210,Exit short,2025-03-14 08:00,,2986.76,1,2986.76,0,0.00,0,0,0.00,0,0.00,91.275,0.00,0 +210,Entry short,2025-03-14 08:00,M1,2986.76,1,2986.76,0,0.00,0,0,0.00,0,0.00,91.275,0.00,0 \ No newline at end of file From e14f596d7f47a470d887626fccfbc6ce63f7a1e3 Mon Sep 17 00:00:00 2001 From: luisleo526 Date: Sat, 26 Sep 2026 06:16:27 +0800 Subject: [PATCH 2/8] Read session.ismarket from the kernel's in-session fact Generated session.ismarket called the time-of-day predicate pine_session_ismarket(syminfo_.session, syminfo_.timezone, time), which tests each instant's own weekday against a session's day mask and does not parse "2400". On H-MEASURE's six TradingView tapes (all 1,138 bars in market) it missed every Sunday-evening open under a ":23456" mask (14/14/14/14/12 bars on ES1! x3, EURUSD, XAUUSD) and every "0000-2400" bar (97/97 on ETH). The engine's source host stores the kernel's in-session fact of the script bar (NativeDecisionContext::in_session) as session_ismarket_ before every source callback; codegen now reads it. A request.security payload runs on its own bars, which carry no host fact, so it keeps the predicate at the security bar's time (a depth flag set around the payload visitor). A batch of fewer than two bars given no timeframe gets no session facts from the engine (script_tf_ stays empty) and keeps the predicate too. session_ismarket_ and script_tf_ join the reserved emitter names, so a script variable of either name no longer shadows the host member. tests/test_e2e_session_ismarket.py replays every tape end to end under the lane sessions, the ":23456" masks and "0000-2400" / "0000-0000": every bar is now TradingView's flag, and the pre-lane build (b0ed496) misses exactly the pinned bars. Co-Authored-By: Claude Opus 5.5 (1M context) --- AGENTS.md | 1 + CLAUDE.md | 1 + pineforge_codegen/codegen/base.py | 4 + pineforge_codegen/codegen/helpers.py | 3 +- pineforge_codegen/codegen/security.py | 6 +- pineforge_codegen/codegen/visit_expr.py | 19 +- tests/test_e2e_session_ismarket.py | 365 ++++++++++++++++++++++++ 7 files changed, 396 insertions(+), 3 deletions(-) create mode 100644 tests/test_e2e_session_ismarket.py diff --git a/AGENTS.md b/AGENTS.md index c573e3f..aab90aa 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -264,6 +264,7 @@ taxonomy: | Color na conversions | Packed colors use `int64_t` storage, including typed scalar, array and matrix paths, so their `na()` sentinel survives. `color.new` preserves an `na` base; `na` transparency becomes 100; an `na` `color.rgb` channel becomes zero. The covered TradingView color probes are pinned by `tests/test_na_truthiness.py`. | | Collection history warning | `array`/`map` `id[k]` still lowers to current collection element access because the engine has no per-bar collection ID history. Codegen warns on every such read and keeps the existing lowering; a missing index is not represented faithfully. | | syminfo na-gap warning | `SUPPORTED_SYMINFO` = every `SYMINFO_MEMBER_MAP` key, but members whose emission is `na()` or a `get_syminfo_metadata(...)` lookup (root/pricescale/minmove/mincontract/current_contract/expiration_date/isin/sector/industry + fundamentals/recommendations/target_price_*) form `_SYMINFO_SILENT_GAP_FIELDS` (derived from the emission table, so new na-accept fields can't drift out): every read WARNS that the value is na until a data feed injects it. | +| Session flags | `session.ismarket` reads the kernel's in-session fact of the script bar (`NativeDecisionContext::in_session`, read off the session day the bar belongs to), which the host stores as `session_ismarket_` before every source callback; `session.isfirstbar` / `islastbar` (and `_regular`) read its session-day facts. The time-of-day predicate missed every Sunday-evening open under a `:23456` day mask and every `0000-2400` bar, where TradingView's tapes (`tests/fixtures/session_ismarket`) flag all 1,138 bars of six 60-minute charts in market. A `request.security` payload, whose bars carry no host fact, and a batch of fewer than two bars given no timeframe (the engine presents no facts) keep the predicate. `tests/test_e2e_session_ismarket.py` replays every tape. | When extending codegen with a new Pine builtin: add to the corresponding diff --git a/CLAUDE.md b/CLAUDE.md index e18f0d3..fadc89b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -264,6 +264,7 @@ taxonomy: | Color na conversions | Packed colors use `int64_t` storage, including typed scalar, array and matrix paths, so their `na()` sentinel survives. `color.new` preserves an `na` base; `na` transparency becomes 100; an `na` `color.rgb` channel becomes zero. The covered TradingView color probes are pinned by `tests/test_na_truthiness.py`. | | Collection history warning | `array`/`map` `id[k]` still lowers to current collection element access because the engine has no per-bar collection ID history. Codegen warns on every such read and keeps the existing lowering; a missing index is not represented faithfully. | | syminfo na-gap warning | `SUPPORTED_SYMINFO` = every `SYMINFO_MEMBER_MAP` key, but members whose emission is `na()` or a `get_syminfo_metadata(...)` lookup (root/pricescale/minmove/mincontract/current_contract/expiration_date/isin/sector/industry + fundamentals/recommendations/target_price_*) form `_SYMINFO_SILENT_GAP_FIELDS` (derived from the emission table, so new na-accept fields can't drift out): every read WARNS that the value is na until a data feed injects it. | +| Session flags | `session.ismarket` reads the kernel's in-session fact of the script bar (`NativeDecisionContext::in_session`, read off the session day the bar belongs to), which the host stores as `session_ismarket_` before every source callback; `session.isfirstbar` / `islastbar` (and `_regular`) read its session-day facts. The time-of-day predicate missed every Sunday-evening open under a `:23456` day mask and every `0000-2400` bar, where TradingView's tapes (`tests/fixtures/session_ismarket`) flag all 1,138 bars of six 60-minute charts in market. A `request.security` payload, whose bars carry no host fact, and a batch of fewer than two bars given no timeframe (the engine presents no facts) keep the predicate. `tests/test_e2e_session_ismarket.py` replays every tape. | When extending codegen with a new Pine builtin: add to the corresponding diff --git a/pineforge_codegen/codegen/base.py b/pineforge_codegen/codegen/base.py index d920b75..51ddca8 100644 --- a/pineforge_codegen/codegen/base.py +++ b/pineforge_codegen/codegen/base.py @@ -319,6 +319,10 @@ def func_var_storage(owner: str, raw_name: str) -> str: # Set of var/series member names that belong to user functions (need cloning) self._func_var_members_set: set[str] = set() self._precalc_loop_active: bool = False + # Nonzero while the expression visitor lowers a request.security + # payload (``_build_security_expr``): a chart-bar-only host fact such + # as ``session_ismarket_`` does not describe the security bar. + self._security_payload_depth: int = 0 # Top-level lazy-edge TA sites hoisted to every-bar evaluation for the # statement currently being lowered: FuncCall id -> local name, and # Subscript id -> ``_hist_call_*`` member (see ``ta.py``). diff --git a/pineforge_codegen/codegen/helpers.py b/pineforge_codegen/codegen/helpers.py index 71c2040..8bd4ae4 100644 --- a/pineforge_codegen/codegen/helpers.py +++ b/pineforge_codegen/codegen/helpers.py @@ -195,7 +195,8 @@ def color_alpha_cast(value_cpp: str) -> str: live_position_size pending_order_count market_admission_journal pine_time pine_time_close pine_time_tradingday pine_random pine_runtime_error pine_enum_str_at pine_session_ismarket - pine_session_ispostmarket pine_session_ispremarket + pine_session_ispostmarket pine_session_ispremarket session_ismarket_ + script_tf_ tf_change tf_is_daily tf_is_intraday tf_is_monthly tf_is_seconds tf_is_weekly tf_multiplier tf_to_seconds time_close timestamp main_period round_to_mintick calc_qty diff --git a/pineforge_codegen/codegen/security.py b/pineforge_codegen/codegen/security.py index 727526c..b18e7c5 100644 --- a/pineforge_codegen/codegen/security.py +++ b/pineforge_codegen/codegen/security.py @@ -3828,5 +3828,9 @@ def _build_security_expr( ) return f"(security_series_slot_is_new({sec_id}) ? {sec_name}.compute({compute_args}) : {sec_name}.recompute({compute_args}))" - result = self._visit_expr(expr_node) + self._security_payload_depth += 1 + try: + result = self._visit_expr(expr_node) + finally: + self._security_payload_depth -= 1 return self._rewrite_security_cpp(result, sec_id, security_mutable_names, helper_binding_stack) diff --git a/pineforge_codegen/codegen/visit_expr.py b/pineforge_codegen/codegen/visit_expr.py index 408eb77..7c71de5 100644 --- a/pineforge_codegen/codegen/visit_expr.py +++ b/pineforge_codegen/codegen/visit_expr.py @@ -856,7 +856,24 @@ def _visit_member_access(self, node: MemberAccess) -> str: # their non-_regular counterparts (engine has one session string; # see session_time.hpp limitation comment). if node.member == "ismarket": - return "pine_session_ismarket(syminfo_.session, syminfo_.timezone, current_bar_.timestamp)" + # The kernel's in-session fact of the script bar + # (NativeDecisionContext::in_session, read off the session + # day the bar belongs to), which the host stores as + # session_ismarket_ before every source callback. The + # time-of-day predicate tests each instant's own weekday: + # it missed the Sunday-evening open of a ":23456" session + # and every "0000-2400" bar, where TradingView's tapes flag + # every bar in market (tests/test_e2e_session_ismarket.py). + # A request.security payload runs on its own bars, which + # carry no such fact, so it keeps the predicate at the + # security bar's time. So does a batch of fewer than two + # bars given no timeframe: the engine detects none + # (script_tf_ stays empty) and presents no session facts. + predicate = ("pine_session_ismarket(syminfo_.session, " + "syminfo_.timezone, current_bar_.timestamp)") + if self._security_payload_depth: + return predicate + return f"(script_tf_.empty() ? {predicate} : session_ismarket_)" if node.member == "ispremarket": return "pine_session_ispremarket(syminfo_.session, syminfo_.timezone, current_bar_.timestamp)" if node.member == "ispostmarket": diff --git a/tests/test_e2e_session_ismarket.py b/tests/test_e2e_session_ismarket.py new file mode 100644 index 0000000..7b77c7d --- /dev/null +++ b/tests/test_e2e_session_ismarket.py @@ -0,0 +1,365 @@ +"""session.ismarket is TradingView's flag, as its tapes prove. + +TradingView flags every one of the 1,138 bars of six 60-minute charts in market +(``fixtures/session_ismarket``: the engine lane H-MEASURE's tapes +``hm-g236-*`` of CME_MINI:ES1! across both 2025 US DST switches and the +Thanksgiving week, OANDA:EURUSD, OANDA:XAUUSD and BINANCE:ETHUSDT.P). Each +probe reverses its position at the close of every bar +(``process_orders_on_close``), so each Entry row is one chart bar, dated at its +open, and its Signal is the flag TradingView evaluated there: ``M1`` in +market, ``M0`` not (see the README). + +The engine's source host stores the kernel's in-session fact of the script bar +(``NativeDecisionContext::in_session``, read off the session day the bar +belongs to) as ``session_ismarket_`` before every source callback, and codegen +reads it. The pre-lane lowering, the time-of-day predicate +``pine_session_ismarket(syminfo_.session, syminfo_.timezone, time)``, tests +each instant's own weekday: it read every Sunday-evening open of a ``:23456`` +session (the session day it opens is Monday's) and every bar of ``0000-2400`` +as out of market. + +Each tape is replayed end to end -- ``transpile_json``, the built runtime, +``run_strategy.py`` with the session and timezone as runtime overrides -- on +flat bars stamped at the tape's entry times, plus one bar an hour after the +last: the flag is a function of a bar's time and the symbol's session and +timezone only, and every tape's session day goes on past its window. The +tape's own probe runs with a ``@pf-trace`` of every session flag, under each +session spelling H-MEASURE measured: the campaign's lane facts, the same +sessions with TradingView's weekday mask, and a 24-hour day spelled +``0000-2400`` and ``0000-0000``. The pre-lane build (``LEGACY``) is replayed +beside it and misses exactly the pinned bars. + +A ``request.security`` payload is evaluated on its own bars, for which the +host holds no session fact: it keeps the time-of-day predicate at the +security bar's time, so its values are the pre-lane build's. So does a batch +of one bar given no timeframe, where the engine detects none and presents no +facts. +""" + +from __future__ import annotations + +import concurrent.futures +import csv +import datetime as dt +import hashlib +import json +import os +from dataclasses import dataclass, field +from pathlib import Path +from zoneinfo import ZoneInfo + +import pytest + +from tests._compile import compile_cpp +from tests._e2e import ( + REPO_ROOT, build_strategy_library, reference_codegen, run_strategy, + skip_unless_e2e_env, transpile_json, +) + + +FIXTURES = Path(__file__).parent / "fixtures" / "session_ismarket" +# codegen main before this lane: session.ismarket was the time-of-day predicate. +LEGACY = "b0ed4967b3b5ab7aea80fea3edc783b16b04b16e" +CHARTS = ("es1-60-dst-mar", "es1-60-dst-nov", "es1-60-thanksgiving", + "eurusd-60-dst-mar", "xauusd-60-dst-mar", "eth-60-24x7") +TAPES = tuple(f"hm-g236-{chart}" for chart in CHARTS) +FLAGS = {"M": "ismarket", "P": "ispremarket", "Q": "ispostmarket", + "F": "isfirstbar", "L": "islastbar", + "f": "isfirstbar_regular", "l": "islastbar_regular"} +TRACE = "".join(f"\n// @pf-trace {name}=session.{name}" for name in FLAGS.values()) + "\n" +HOUR = 3_600_000 + + +@dataclass(frozen=True) +class Case: + slug: str + session: str + timezone: str + # flag letter -> bars where the pre-lane build was not TradingView's flag + legacy: dict[str, int] = field(hash=False) + legacy_sunday: int = 0 # of its session.ismarket misses, those on a local Sunday + + @property + def key(self) -> str: + return f"{self.slug}@{self.session}" + + +def _cases(chart: str, session: str, timezone: str, hm: dict[str, int], + sunday: int = 0) -> list[Case]: + return [Case(f"hm-g236-{chart}", session, timezone, hm, sunday)] + + +CASES = tuple(case for cases in ( + # The campaign's lane facts (pineforge-lab config/symbol-lanes-v1.json). + _cases("es1-60-dst-mar", "1700-1600", "America/Chicago", {}), + _cases("es1-60-dst-nov", "1700-1600", "America/Chicago", {}), + _cases("es1-60-thanksgiving", "1700-1600", "America/Chicago", {}), + _cases("eurusd-60-dst-mar", "1700-1700", "America/New_York", {}), + _cases("xauusd-60-dst-mar", "1800-1700", "America/New_York", {}), + _cases("eth-60-24x7", "24x7", "UTC", {}), + # The same sessions with TradingView's weekday mask: the time-of-day + # predicate missed every Sunday-evening open. + _cases("es1-60-dst-mar", "1700-1600:23456", "America/Chicago", {"M": 14}, 14), + _cases("es1-60-dst-nov", "1700-1600:23456", "America/Chicago", {"M": 14}, 14), + _cases("es1-60-thanksgiving", "1700-1600:23456", "America/Chicago", {"M": 14}, 14), + _cases("eurusd-60-dst-mar", "1700-1700:23456", "America/New_York", {"M": 14}, 14), + _cases("xauusd-60-dst-mar", "1800-1700:23456", "America/New_York", {"M": 12}, 12), + # A 24-hour day: "0000-2400" (the predicate: never in market) and + # TradingView's spelling "0000-0000" (both: always). + _cases("eth-60-24x7", "0000-2400", "UTC", {"M": 97}, 24), + _cases("eth-60-24x7", "0000-0000", "UTC", {}), +) for case in cases) +SECURITY_CASE = next(case for case in CASES if case.key == "hm-g236-es1-60-dst-mar@1700-1600:23456") +SECURITY_TRACE = "".join( + f'\nsecurity_{name} = request.security(syminfo.tickerid, "60", session.{name})' + f"\n// @pf-trace security_{name}=security_{name}" + for name in ("ismarket",)) + "\n" + + +def _utc_ms(stamp: str, offset_hours: int) -> int: + local = dt.datetime.strptime(stamp, "%Y-%m-%d %H:%M") + return int((local - dt.timedelta(hours=offset_hours)) + .replace(tzinfo=dt.timezone.utc).timestamp() * 1000) + + +def read_tape(slug: str) -> list[tuple[int, dict[str, bool]]]: + """(the chart bar's open in UTC ms, TradingView's flags by letter) per + Entry row, in time order. ``lab tv`` renders times at UTC+8; a Signal is a + letter and a digit per flag (``M1``).""" + with (FIXTURES / slug / "tv_trades.csv").open(encoding="utf-8-sig") as fh: + rows = [row for row in csv.DictReader(fh) if row["Type"].startswith("Entry")] + tape = [] + for row in rows: + signal = row["Signal"] + flags = {signal[i]: signal[i + 1] == "1" for i in range(0, len(signal), 2)} + assert set(flags) <= set(FLAGS) and len(signal) == 2 * len(flags), (slug, signal) + assert all(signal[i + 1] in "01" for i in range(0, len(signal), 2)), (slug, signal) + tape.append((_utc_ms(row["Date and time"], 8), flags)) + return sorted(tape, key=lambda bar: bar[0]) + + +def engine_entry_times(trades_csv: bytes) -> list[int]: + rows = csv.DictReader(trades_csv.decode().splitlines()) + return sorted(_utc_ms(row["Date and time"], 0) for row in rows + if row["Type"].startswith("Entry")) + + +def traced(records: list[dict], name: str) -> list[tuple[int, bool]]: + return [(rec["timestamp"], rec["value"] == 1.0) for rec in records if rec["name"] == name] + + +def _write_feed(stamps: list[int], path: Path) -> Path: + path.write_text("timestamp,open,high,low,close,volume\n" + + "".join(f"{ts},100,101,99,100.5,1\n" for ts in stamps)) + return path + + +def _replay_stamps(slug: str) -> list[int]: + stamps = [ts for ts, _ in read_tape(slug)] + return stamps + [stamps[-1] + HOUR] + + +def _overrides(case: Case) -> dict: + return {"input_tf": "60", "script_tf": "60", + "runtime_overrides": {"session": case.session, "timezone": case.timezone}} + + +@dataclass +class Replay: + cpp: str + trades: dict[str, bytes] + traces: dict[str, list[dict]] + + +def _replay(engine: Path, work: Path, source: str, codegen: Path, + cases: list[Case]) -> Replay: + work.mkdir(parents=True, exist_ok=True) + feed = _write_feed(_replay_stamps(cases[0].slug), work / "chart.csv") + pine = work / "strategy.pine" + pine.write_text(source, encoding="utf-8") + transpiled = transpile_json(pine, codegen) + if not transpiled.get("ok"): + raise RuntimeError("transpile_json refused it:\n" + + json.dumps(transpiled.get("diagnostics"), indent=1)) + build_strategy_library(transpiled["cpp"], work) + replay = Replay(cpp=transpiled["cpp"], trades={}, traces={}) + for i, case in enumerate(cases): + trades, records, _ = run_strategy(engine, work, feed, _overrides(case), + f"case{i}", trace=True) + replay.trades[case.key] = trades + replay.traces[case.key] = records or [] + return replay + + +@pytest.fixture(scope="session") +def replays(tmp_path_factory) -> dict[tuple[str, str], Replay]: + """``(build, slug)`` -> the tape's probe replayed under every session + spelling of its chart; build is ``current``, ``legacy`` (when LEGACY is in + this checkout's history), or ``security-current`` / ``security-legacy``.""" + engine = skip_unless_e2e_env() + base = tmp_path_factory.mktemp("session_ismarket") + legacy = reference_codegen(LEGACY) + builds = {"current": REPO_ROOT} | ({"legacy": legacy} if legacy is not None else {}) + jobs: dict[tuple[str, str], tuple[str, Path, list[Case]]] = {} + for slug in TAPES: + probe = (FIXTURES / slug / "strategy.pine").read_text(encoding="utf-8") + TRACE + cases = [case for case in CASES if case.slug == slug] + for label, codegen in builds.items(): + jobs[(label, slug)] = (probe, codegen, cases) + probe = (FIXTURES / SECURITY_CASE.slug / "strategy.pine").read_text(encoding="utf-8") + for label, codegen in builds.items(): + jobs[(f"security-{label}", SECURITY_CASE.slug)] = ( + probe + SECURITY_TRACE + TRACE, codegen, [SECURITY_CASE]) + workers = max(2, min(8, (os.cpu_count() or 4) // 2)) + with concurrent.futures.ThreadPoolExecutor(max_workers=workers) as pool: + futures = {key: pool.submit(_replay, engine, base / key[0] / key[1], *job) + for key, job in jobs.items()} + return {key: future.result() for key, future in futures.items()} + + +def _misses(case: Case, replay: Replay, prefix: str = "") -> dict[str, list[int]]: + """The tape's bars where the replay's flag is not TradingView's, per flag + the tape carries.""" + tape = read_tape(case.slug) + records = replay.traces[case.key] + misses = {} + for letter in tape[0][1]: + flags = traced(records, prefix + FLAGS[letter]) + assert [ts for ts, _ in flags] == _replay_stamps(case.slug), ( + f"[{case.key}] {FLAGS[letter]} traced {len(flags)} bars, " + f"the replay holds {len(tape) + 1}") + misses[letter] = [ts for (ts, tv), (_, got) in zip(tape, flags) if got != tv[letter]] + return misses + + +def _on_sunday(stamps: list[int], timezone: str) -> int: + zone = ZoneInfo(timezone) + return sum(dt.datetime.fromtimestamp(ts / 1000, zone).isoweekday() == 7 for ts in stamps) + + +def test_tapes_are_the_recorded_exports() -> None: + """Every fixture is its export byte for byte, and TradingView flagged every + one of the tapes' 1,138 bars in market.""" + bars = {"hm-g236": 0} + for slug in TAPES: + metrics = json.loads((FIXTURES / slug / "metrics.json").read_text()) + meta = json.loads((FIXTURES / slug / "meta.json").read_text()) + tape_bytes = (FIXTURES / slug / "tv_trades.csv").read_bytes() + pine_bytes = (FIXTURES / slug / "strategy.pine").read_bytes() + assert hashlib.sha256(tape_bytes).hexdigest() == metrics["tvTradesCsvHash"], slug + assert hashlib.sha256(pine_bytes).hexdigest() == meta["pine_sha256"], slug + assert metrics["wsProvenance"]["rangeProof"] == "covered", slug + tape = read_tape(slug) + assert len(tape) == metrics["trades"], slug + assert all(flags["M"] and not flags.get("P") and not flags.get("Q") + for _, flags in tape), slug + bars["hm-g236"] += len(tape) + assert bars == {"hm-g236": 1138} + + +@pytest.mark.parametrize("case", CASES, ids=lambda c: c.key) +def test_session_flags_are_tradingviews(case: Case, replays) -> None: + replay = replays[("current", case.slug)] + misses = _misses(case, replay) + wrong = {FLAGS[letter]: len(bars) for letter, bars in misses.items() if bars} + assert not wrong, f"[{case.key}] bars where a flag is not TradingView's: {wrong}" + # The probe entered on every bar TradingView held, at the same time. + assert engine_entry_times(replay.trades[case.key]) == _replay_stamps(case.slug), case.key + assert "session_ismarket_" in replay.cpp + print(f"session flags {case.key}: {''.join(misses)} == TradingView on " + f"{len(read_tape(case.slug))} bars") + + +@pytest.mark.parametrize("case", CASES, ids=lambda c: c.key) +def test_legacy_predicates_missed_the_pinned_bars(case: Case, replays) -> None: + if ("legacy", case.slug) not in replays: + pytest.skip(f"the pre-lane codegen ({LEGACY[:12]}) is not in this checkout's history") + replay = replays[("legacy", case.slug)] + assert "session_ismarket_" not in replay.cpp + misses = _misses(case, replay) + assert {letter: len(bars) for letter, bars in misses.items() if bars} == case.legacy, case.key + assert _on_sunday(misses["M"], case.timezone) == case.legacy_sunday, case.key + print(f"session flags {case.key}: pre-lane build missed " + f"{ {FLAGS[k]: v for k, v in case.legacy.items()} } of " + f"{len(read_tape(case.slug))} bars ({case.legacy_sunday} ismarket on a local Sunday)") + + +def test_security_payload_keeps_its_own_bars_predicates(replays) -> None: + """A request.security payload reads the flag at the security bar's time, + exactly as the pre-lane build did; the chart read beside it is + TradingView's flag.""" + case = SECURITY_CASE + current = replays[("security-current", case.slug)] + for name in ("ismarket",): + assert (f"pine_session_{name}(syminfo_.session, syminfo_.timezone, bar.timestamp)" + in current.cpp), name + assert not any(_misses(case, current).values()) + if ("security-legacy", case.slug) not in replays: + pytest.skip(f"the pre-lane codegen ({LEGACY[:12]}) is not in this checkout's history") + legacy = replays[("security-legacy", case.slug)] + for name in ("ismarket",): + payload = traced(current.traces[case.key], f"security_{name}") + assert payload and payload == traced(legacy.traces[case.key], f"security_{name}"), name + print(f"request.security session flags {case.key}: " + f"{len(read_tape(case.slug)) + 1} bars == pre-lane build") + + +ONE_BAR_PROBE = ('//@version=6\nstrategy("session.ismarket one bar", overlay=true, ' + "process_orders_on_close=true)\n" + 'if session.ismarket\n strategy.entry("L", strategy.long)\n' + TRACE) +MONDAY_OPEN = 1741017600000 # 2025-03-03 10:00 America/Chicago, inside 1700-1600 + + +@pytest.fixture(scope="session") +def one_bar(tmp_path_factory) -> dict[str, tuple[bytes, list[dict]]]: + """The probe on a single bar with no timeframe given, per build.""" + engine = skip_unless_e2e_env() + base = tmp_path_factory.mktemp("session_ismarket_one_bar") + builds = {"current": REPO_ROOT} + legacy = reference_codegen(LEGACY) + if legacy is not None: + builds["legacy"] = legacy + runs = {} + for label, codegen in builds.items(): + work = base / label + work.mkdir() + feed = _write_feed([MONDAY_OPEN], work / "chart.csv") + pine = work / "strategy.pine" + pine.write_text(ONE_BAR_PROBE, encoding="utf-8") + transpiled = transpile_json(pine, codegen) + assert transpiled.get("ok"), transpiled.get("diagnostics") + build_strategy_library(transpiled["cpp"], work) + overrides = {"runtime_overrides": {"session": "1700-1600", "timezone": "America/Chicago"}} + trades, records, _ = run_strategy(engine, work, feed, overrides, "one", trace=True) + runs[label] = (trades, records or []) + return runs + + +def test_one_bar_without_timeframe_keeps_the_predicates(one_bar) -> None: + trades, records = one_bar["current"] + assert traced(records, "ismarket") == [(MONDAY_OPEN, True)] + assert engine_entry_times(trades) == [MONDAY_OPEN] + if "legacy" not in one_bar: + pytest.skip(f"the pre-lane codegen ({LEGACY[:12]}) is not in this checkout's history") + legacy_trades, legacy_records = one_bar["legacy"] + assert trades == legacy_trades + assert traced(records, "ismarket") == traced(legacy_records, "ismarket") + print("session.ismarket on one bar without a timeframe: in market, == pre-lane build") + + +def test_pine_names_of_the_host_members_read_stay_distinct(tmp_path: Path) -> None: + """A script may name its own variables after the host members the lowering + reads: they are renamed, so the TU still compiles, session.ismarket reads + the host's fact rather than the script's variable, and the input keeps its + Pine name as its key.""" + pine = tmp_path / "strategy.pine" + pine.write_text('//@version=6\nstrategy("host member names", overlay=true)\n' + "session_ismarket_ = close > open\n" + "script_tf_ = input.int(2)\n" + "if session.ismarket and session_ismarket_ and script_tf_ > 0\n" + ' strategy.entry("L", strategy.long)\n', encoding="utf-8") + result = transpile_json(pine) + assert result["ok"], result["diagnostics"] + assert [entry["title"] for entry in result["inputs"]] == ["script_tf_"] + assert "bool session_ismarket_" not in result["cpp"] + compile_cpp(result["cpp"], label="host member names") From 39e22dc88f62950cd1c8f332d4a12556b1e916e9 Mon Sep 17 00:00:00 2001 From: luisleo526 Date: Sat, 26 Sep 2026 06:16:33 +0800 Subject: [PATCH 3/8] Record TradingView tapes of every session flag on the same six charts A public probe carries every session flag in each entry's Signal (session.ismarket, ispremarket, ispostmarket, isfirstbar, islastbar and the _regular twins). Exported with `lab tv` (ws-report-v1, rangeProof covered, --no-note) on H-MEASURE's six charts and windows: CME_MINI:ES1! 60 across both 2025 US DST switches and the Thanksgiving week, OANDA:EURUSD 60, OANDA:XAUUSD 60 and BINANCE:ETHUSDT.P 60. TradingView flags all 1,138 bars in market and none pre- or post-market; every session day opens on an F1 bar and closes on an L1 bar, the _regular flags equal to the plain ones. The README records each tape's sha256 and export time. Co-Authored-By: Claude Opus 5.5 (1M context) --- tests/fixtures/session_ismarket/README.md | 29 ++ .../cgim-flags-es1-60-dst-mar/meta.json | 16 + .../cgim-flags-es1-60-dst-mar/metrics.json | 40 ++ .../cgim-flags-es1-60-dst-mar/strategy.pine | 22 + .../cgim-flags-es1-60-dst-mar/tv_trades.csv | 421 +++++++++++++++++ .../cgim-flags-es1-60-dst-nov/meta.json | 16 + .../cgim-flags-es1-60-dst-nov/metrics.json | 40 ++ .../cgim-flags-es1-60-dst-nov/strategy.pine | 22 + .../cgim-flags-es1-60-dst-nov/tv_trades.csv | 419 +++++++++++++++++ .../cgim-flags-es1-60-thanksgiving/meta.json | 16 + .../metrics.json | 40 ++ .../strategy.pine | 22 + .../tv_trades.csv | 385 +++++++++++++++ .../cgim-flags-eth-60-24x7/meta.json | 16 + .../cgim-flags-eth-60-24x7/metrics.json | 40 ++ .../cgim-flags-eth-60-24x7/strategy.pine | 22 + .../cgim-flags-eth-60-24x7/tv_trades.csv | 195 ++++++++ .../cgim-flags-eurusd-60-dst-mar/meta.json | 16 + .../cgim-flags-eurusd-60-dst-mar/metrics.json | 40 ++ .../strategy.pine | 22 + .../tv_trades.csv | 441 ++++++++++++++++++ .../cgim-flags-xauusd-60-dst-mar/meta.json | 16 + .../cgim-flags-xauusd-60-dst-mar/metrics.json | 40 ++ .../strategy.pine | 22 + .../tv_trades.csv | 421 +++++++++++++++++ 25 files changed, 2779 insertions(+) create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/meta.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/metrics.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/strategy.pine create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/meta.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/metrics.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/strategy.pine create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/meta.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/metrics.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/strategy.pine create mode 100644 tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/meta.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/metrics.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/strategy.pine create mode 100644 tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/meta.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/metrics.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/strategy.pine create mode 100644 tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/meta.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/metrics.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/strategy.pine create mode 100644 tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/tv_trades.csv diff --git a/tests/fixtures/session_ismarket/README.md b/tests/fixtures/session_ismarket/README.md index 952ff65..aa9e867 100644 --- a/tests/fixtures/session_ismarket/README.md +++ b/tests/fixtures/session_ismarket/README.md @@ -30,3 +30,32 @@ when `session.ismarket` is true, `M0` when it is false. | `hm-g236-eurusd-60-dst-mar` | OANDA:EURUSD 60 | 2025-03-02 .. 03-14 | 220 | all `M1` | `60713d2c22442ffe14070fddb1c5cd7fbf6fc6054c0b532b4c4275de305decf1` | 2026-09-25 19:01:34 | `tv-tape-hm-g236-eurusd-60-dst-mar-60713d2c` | | `hm-g236-xauusd-60-dst-mar` | OANDA:XAUUSD 60 | 2025-03-02 .. 03-14 | 210 | all `M1` | `ebc226aea010125fb66b7cda3a86563846a243463723816ee529f8f044c54cf6` | 2026-09-25 19:01:37 | `tv-tape-hm-g236-xauusd-60-dst-mar-ebc226ae` | | `hm-g236-eth-60-24x7` | BINANCE:ETHUSDT.P 60 | 2025-03-07 .. 03-11 | 97 | all `M1` | `96b7e8890b41a9e8aa60698a43cdffd5f42c55bb8d2d0223f7985c13b5040b74` | 2026-09-25 19:01:29 | `tv-tape-hm-g236-eth-60-24x7-96b7e889` | + +## `cgim-flags-*`: every session flag (codegen lane CG-ISMARKET) + +The same six charts and windows, exported for this lane on 2026-09-25 (UTC) +with a probe that carries every flag in its Signal, a letter and a digit each: +`M` session.ismarket, `P` session.ispremarket, `Q` session.ispostmarket, `F` +session.isfirstbar, `L` session.islastbar, `f` session.isfirstbar_regular, `l` +session.islastbar_regular. The six `strategy.pine` files are one source. The +command, run once per row (`--no-note`: no campaign note was recorded): + +```sh +source ~/code/pineforge-workflow/campaign/env.sh +lab tv --pine session_flags_probe.pine --slug --symbol \ + --interval 60 --from --to --out / --no-note --json +``` + +| tape | chart | window | bars | flags (bars) | tv_trades.csv sha256 | exported (UTC) | +|---|---|---|---|---|---|---| +| `cgim-flags-es1-60-dst-mar` | CME_MINI:ES1! 60 | 2025-03-02 .. 03-14 | 210 | `M1P0Q0F1L0f1l0` 10, `M1P0Q0F0L1f0l1` 9, `M1P0Q0F0L0f0l0` 191 | `be5bf635932cf5f460509b2f491ba283e904f4e0317a2f3c3c0d9f1c523f4fa1` | 2026-09-25 21:55:48 | +| `cgim-flags-es1-60-dst-nov` | CME_MINI:ES1! 60 | 2025-10-26 .. 11-07 | 209 | `M1P0Q0F1L0f1l0` 10, `M1P0Q0F0L1f0l1` 9, `M1P0Q0F0L0f0l0` 190 | `b477e11c942c31189e03684ec3d700c1f7a45e7f78c2e2e8f932f59c23fd51d8` | 2026-09-25 21:55:52 | +| `cgim-flags-es1-60-thanksgiving` | CME_MINI:ES1! 60 | 2025-11-23 .. 12-05 | 192 | `M1P0Q0F1L0f1l0` 10, `M1P0Q0F0L1f0l1` 9, `M1P0Q0F0L0f0l0` 173 | `54dfac6128b63df3ffe32e898df3ec0829998a700d2f2d78b7d1aebf140397f4` | 2026-09-25 21:55:56 | +| `cgim-flags-eurusd-60-dst-mar` | OANDA:EURUSD 60 | 2025-03-02 .. 03-14 | 220 | `M1P0Q0F1L0f1l0` 10, `M1P0Q0F0L1f0l1` 9, `M1P0Q0F0L0f0l0` 201 | `b40fbc81f290140da74127637c705c1d35872c92d10a7aa95e7228e8a791d25b` | 2026-09-25 21:55:58 | +| `cgim-flags-xauusd-60-dst-mar` | OANDA:XAUUSD 60 | 2025-03-02 .. 03-14 | 210 | `M1P0Q0F1L0f1l0` 10, `M1P0Q0F0L1f0l1` 9, `M1P0Q0F0L0f0l0` 191 | `308b250a01e1c2e77a74019d61f89e822305a9e76974bcd2b2e1b939a4cadb7e` | 2026-09-25 21:56:01 | +| `cgim-flags-eth-60-24x7` | BINANCE:ETHUSDT.P 60 | 2025-03-07 .. 03-11 | 97 | `M1P0Q0F1L0f1l0` 5, `M1P0Q0F0L1f0l1` 4, `M1P0Q0F0L0f0l0` 88 | `0a077e8b7af95d0a9279b0182d7024c140240ecd47d0d648a82e81cbbc61a5fe` | 2026-09-25 21:56:04 | + +Every bar is in market and none is in an extended session (`P0Q0`); each +session day opens with an `F1` bar and closes with an `L1` bar, the +`_regular` flags equal to the plain ones. Every tape's last bar is `L0`: its +session day goes on past the window. diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/meta.json b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/meta.json new file mode 100644 index 0000000..b3b55b6 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/meta.json @@ -0,0 +1,16 @@ +{ + "title": "CG-ISMARKET session flags", + "slug": "cgim-flags-es1-60-dst-mar", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T21:55:48.862Z", + "chart": { + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14" + }, + "pine_sha256": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tv_trades_sha256": "be5bf635932cf5f460509b2f491ba283e904f4e0317a2f3c3c0d9f1c523f4fa1", + "tv_trades_rows": 420 +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/metrics.json b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/metrics.json new file mode 100644 index 0000000..2bb849c --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "cgim-flags-es1-60-dst-mar", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14", + "deepBacktesting": true, + "trades": 210, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tvTradesCsvHash": "be5bf635932cf5f460509b2f491ba283e904f4e0317a2f3c3c0d9f1c523f4fa1", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74598", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "requestedRange": { + "from": 1740873600000, + "to": 1741910400000 + }, + "returnedRange": { + "from": 1740956400000, + "to": 1741910400000 + }, + "rangeProof": "covered", + "rawFrameSha256": "5ecd389cbe4b6c4b6755337a7939eebbfc4237fdeba348acd9b77f256a111afc", + "decodedReportSha256": "bf83ebc1df08ae5c7dc4a45fed9b4b7d95f4f3f1c9a4e1493fd06f3751a57b09", + "closedTrades": 210, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T21:55:48.862Z" +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/strategy.pine b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/strategy.pine new file mode 100644 index 0000000..0740da1 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/strategy.pine @@ -0,0 +1,22 @@ +// CG-ISMARKET: which session.* flags does TradingView set on each chart bar? +// process_orders_on_close=true: every bar reverses the position at its own +// close, so every trade's ENTRY is one chart bar (TradingView dates a +// process_orders_on_close fill at the bar's open) and the entry's Signal (its +// comment) carries the flags TradingView evaluated on that bar, a letter and a +// digit each: M session.ismarket, P session.ispremarket, Q session.ispostmarket, +// F session.isfirstbar, L session.islastbar, f session.isfirstbar_regular, +// l session.islastbar_regular (1 true, 0 false). +//@version=6 +strategy("CG-ISMARKET session flags", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +bit(bool x) => x ? "1" : "0" +flag = "M" + bit(session.ismarket) + "P" + bit(session.ispremarket) + "Q" + bit(session.ispostmarket) + + "F" + bit(session.isfirstbar) + "L" + bit(session.islastbar) + + "f" + bit(session.isfirstbar_regular) + "l" + bit(session.islastbar_regular) +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/tv_trades.csv b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/tv_trades.csv new file mode 100644 index 0000000..7abad6e --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-mar/tv_trades.csv @@ -0,0 +1,421 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-03 08:00,M1P0Q0F0L0f0l0,5955.25,1,298712.5,-950,-0.32,0,75,0.03,-1362.5,-0.46,-950,0.00,1 +1,Entry long,2025-03-03 07:00,M1P0Q0F1L0f1l0,5974.25,1,298712.5,-950,-0.32,0,75,0.03,-1362.5,-0.46,-950,0.00,1 +2,Exit short,2025-03-03 09:00,M1P0Q0F0L0f0l0,5965.25,1,297762.5,-500,-0.17,0,187.5,0.06,-575,-0.19,-1450,0.00,1 +2,Entry short,2025-03-03 08:00,M1P0Q0F0L0f0l0,5955.25,1,297762.5,-500,-0.17,0,187.5,0.06,-575,-0.19,-1450,0.00,1 +3,Exit long,2025-03-03 10:00,M1P0Q0F0L0f0l0,5964.25,1,298262.5,-50,-0.02,0,187.5,0.06,-275,-0.09,-1500,0.00,1 +3,Entry long,2025-03-03 09:00,M1P0Q0F0L0f0l0,5965.25,1,298262.5,-50,-0.02,0,187.5,0.06,-275,-0.09,-1500,0.00,1 +4,Exit short,2025-03-03 11:00,M1P0Q0F0L0f0l0,5965,1,298212.5,-37.5,-0.01,0,337.5,0.11,-62.5,-0.02,-1537.5,0.00,1 +4,Entry short,2025-03-03 10:00,M1P0Q0F0L0f0l0,5964.25,1,298212.5,-37.5,-0.01,0,337.5,0.11,-62.5,-0.02,-1537.5,0.00,1 +5,Exit long,2025-03-03 12:00,M1P0Q0F0L0f0l0,5972,1,298250,350,0.12,0,375,0.13,-37.5,-0.01,-1187.5,0.00,1 +5,Entry long,2025-03-03 11:00,M1P0Q0F0L0f0l0,5965,1,298250,350,0.12,0,375,0.13,-37.5,-0.01,-1187.5,0.00,1 +6,Exit short,2025-03-03 13:00,M1P0Q0F0L0f0l0,5977.25,1,298600,-262.5,-0.09,0,62.5,0.02,-362.5,-0.12,-1450,0.00,1 +6,Entry short,2025-03-03 12:00,M1P0Q0F0L0f0l0,5972,1,298600,-262.5,-0.09,0,62.5,0.02,-362.5,-0.12,-1450,0.00,1 +7,Exit long,2025-03-03 14:00,M1P0Q0F0L0f0l0,5979.5,1,298862.5,112.5,0.04,0,250,0.08,-275,-0.09,-1337.5,0.00,1 +7,Entry long,2025-03-03 13:00,M1P0Q0F0L0f0l0,5977.25,1,298862.5,112.5,0.04,0,250,0.08,-275,-0.09,-1337.5,0.00,1 +8,Exit short,2025-03-03 15:00,M1P0Q0F0L0f0l0,5971.25,1,298975,412.5,0.14,0,737.5,0.25,-62.5,-0.02,-925,0.00,1 +8,Entry short,2025-03-03 14:00,M1P0Q0F0L0f0l0,5979.5,1,298975,412.5,0.14,0,737.5,0.25,-62.5,-0.02,-925,0.00,1 +9,Exit long,2025-03-03 16:00,M1P0Q0F0L0f0l0,5966.75,1,298562.5,-225,-0.08,0,362.5,0.12,-775,-0.26,-1150,0.00,1 +9,Entry long,2025-03-03 15:00,M1P0Q0F0L0f0l0,5971.25,1,298562.5,-225,-0.08,0,362.5,0.12,-775,-0.26,-1150,0.00,1 +10,Exit short,2025-03-03 17:00,M1P0Q0F0L0f0l0,5982,1,298337.5,-762.5,-0.26,0,225,0.08,-787.5,-0.26,-1912.5,0.00,1 +10,Entry short,2025-03-03 16:00,M1P0Q0F0L0f0l0,5966.75,1,298337.5,-762.5,-0.26,0,225,0.08,-787.5,-0.26,-1912.5,0.00,1 +11,Exit long,2025-03-03 18:00,M1P0Q0F0L0f0l0,5982,1,299100,0,0.00,0,75,0.03,-362.5,-0.12,-1912.5,0.00,1 +11,Entry long,2025-03-03 17:00,M1P0Q0F0L0f0l0,5982,1,299100,0,0.00,0,75,0.03,-362.5,-0.12,-1912.5,0.00,1 +12,Exit short,2025-03-03 19:00,M1P0Q0F0L0f0l0,5988.5,1,299100,-325,-0.11,0,62.5,0.02,-362.5,-0.12,-2237.5,0.00,1 +12,Entry short,2025-03-03 18:00,M1P0Q0F0L0f0l0,5982,1,299100,-325,-0.11,0,62.5,0.02,-362.5,-0.12,-2237.5,0.00,1 +13,Exit long,2025-03-03 20:00,M1P0Q0F0L0f0l0,5992,1,299425,175,0.06,0,600,0.20,-112.5,-0.04,-2062.5,0.00,1 +13,Entry long,2025-03-03 19:00,M1P0Q0F0L0f0l0,5988.5,1,299425,175,0.06,0,600,0.20,-112.5,-0.04,-2062.5,0.00,1 +14,Exit short,2025-03-03 21:00,M1P0Q0F0L0f0l0,5985.25,1,299600,337.5,0.11,0,587.5,0.20,-62.5,-0.02,-1725,0.00,1 +14,Entry short,2025-03-03 20:00,M1P0Q0F0L0f0l0,5992,1,299600,337.5,0.11,0,587.5,0.20,-62.5,-0.02,-1725,0.00,1 +15,Exit long,2025-03-03 22:00,M1P0Q0F0L0f0l0,5951.5,1,299262.5,-1687.5,-0.56,0,587.5,0.20,-1875,-0.63,-3412.5,0.00,1 +15,Entry long,2025-03-03 21:00,M1P0Q0F0L0f0l0,5985.25,1,299262.5,-1687.5,-0.56,0,587.5,0.20,-1875,-0.63,-3412.5,0.00,1 +16,Exit short,2025-03-03 23:00,M1P0Q0F0L0f0l0,5947.25,1,297575,212.5,0.07,0,1050,0.35,-1162.5,-0.39,-3200,0.00,1 +16,Entry short,2025-03-03 22:00,M1P0Q0F0L0f0l0,5951.5,1,297575,212.5,0.07,0,1050,0.35,-1162.5,-0.39,-3200,0.00,1 +17,Exit long,2025-03-04 00:00,M1P0Q0F0L0f0l0,5953.5,1,297362.5,312.5,0.11,0,1075,0.36,-637.5,-0.21,-2887.5,0.00,1 +17,Entry long,2025-03-03 23:00,M1P0Q0F0L0f0l0,5947.25,1,297362.5,312.5,0.11,0,1075,0.36,-637.5,-0.21,-2887.5,0.00,1 +18,Exit short,2025-03-04 01:00,M1P0Q0F0L0f0l0,5943.25,1,297675,512.5,0.17,0,812.5,0.27,-600,-0.20,-2375,0.00,1 +18,Entry short,2025-03-04 00:00,M1P0Q0F0L0f0l0,5953.5,1,297675,512.5,0.17,0,812.5,0.27,-600,-0.20,-2375,0.00,1 +19,Exit long,2025-03-04 02:00,M1P0Q0F0L0f0l0,5914.75,1,297162.5,-1425,-0.48,0,75,0.03,-2275,-0.77,-3800,0.00,1 +19,Entry long,2025-03-04 01:00,M1P0Q0F0L0f0l0,5943.25,1,297162.5,-1425,-0.48,0,75,0.03,-2275,-0.77,-3800,0.00,1 +20,Exit short,2025-03-04 03:00,M1P0Q0F0L0f0l0,5883.5,1,295737.5,1562.5,0.53,0,1612.5,0.55,-737.5,-0.25,-2237.5,0.00,1 +20,Entry short,2025-03-04 02:00,M1P0Q0F0L0f0l0,5914.75,1,295737.5,1562.5,0.53,0,1612.5,0.55,-737.5,-0.25,-2237.5,0.00,1 +21,Exit long,2025-03-04 04:00,M1P0Q0F0L0f0l0,5862.75,1,294175,-1037.5,-0.35,0,37.5,0.01,-3087.5,-1.05,-3275,0.00,1 +21,Entry long,2025-03-04 03:00,M1P0Q0F0L0f0l0,5883.5,1,294175,-1037.5,-0.35,0,37.5,0.01,-3087.5,-1.05,-3275,0.00,1 +22,Exit short,2025-03-04 05:00,M1P0Q0F0L1f0l1,5875,1,293137.5,-612.5,-0.21,0,87.5,0.03,-675,-0.23,-3887.5,0.00,1 +22,Entry short,2025-03-04 04:00,M1P0Q0F0L0f0l0,5862.75,1,293137.5,-612.5,-0.21,0,87.5,0.03,-675,-0.23,-3887.5,0.00,1 +23,Exit long,2025-03-04 07:00,M1P0Q0F1L0f1l0,5870.25,1,293750,-237.5,-0.08,0,300,0.10,-375,-0.13,-4125,0.00,1 +23,Entry long,2025-03-04 05:00,M1P0Q0F0L1f0l1,5875,1,293750,-237.5,-0.08,0,300,0.10,-375,-0.13,-4125,0.00,1 +24,Exit short,2025-03-04 08:00,M1P0Q0F0L0f0l0,5877,1,293512.5,-337.5,-0.11,0,437.5,0.15,-462.5,-0.16,-4462.5,0.00,1 +24,Entry short,2025-03-04 07:00,M1P0Q0F1L0f1l0,5870.25,1,293512.5,-337.5,-0.11,0,437.5,0.15,-462.5,-0.16,-4462.5,0.00,1 +25,Exit long,2025-03-04 09:00,M1P0Q0F0L0f0l0,5861.25,1,293850,-787.5,-0.27,0,225,0.08,-875,-0.30,-5250,0.00,1 +25,Entry long,2025-03-04 08:00,M1P0Q0F0L0f0l0,5877,1,293850,-787.5,-0.27,0,225,0.08,-875,-0.30,-5250,0.00,1 +26,Exit short,2025-03-04 10:00,M1P0Q0F0L0f0l0,5871,1,293062.5,-487.5,-0.17,0,75,0.03,-625,-0.21,-5737.5,0.00,1 +26,Entry short,2025-03-04 09:00,M1P0Q0F0L0f0l0,5861.25,1,293062.5,-487.5,-0.17,0,75,0.03,-625,-0.21,-5737.5,0.00,1 +27,Exit long,2025-03-04 11:00,M1P0Q0F0L0f0l0,5874,1,293550,150,0.05,0,337.5,0.11,-200,-0.07,-5587.5,0.00,1 +27,Entry long,2025-03-04 10:00,M1P0Q0F0L0f0l0,5871,1,293550,150,0.05,0,337.5,0.11,-200,-0.07,-5587.5,0.00,1 +28,Exit short,2025-03-04 12:00,M1P0Q0F0L0f0l0,5870,1,293700,200,0.07,0,275,0.09,-200,-0.07,-5387.5,0.00,1 +28,Entry short,2025-03-04 11:00,M1P0Q0F0L0f0l0,5874,1,293700,200,0.07,0,275,0.09,-200,-0.07,-5387.5,0.00,1 +29,Exit long,2025-03-04 13:00,M1P0Q0F0L0f0l0,5877.75,1,293500,387.5,0.13,0,700,0.24,-537.5,-0.18,-5000,0.00,1 +29,Entry long,2025-03-04 12:00,M1P0Q0F0L0f0l0,5870,1,293500,387.5,0.13,0,700,0.24,-537.5,-0.18,-5000,0.00,1 +30,Exit short,2025-03-04 14:00,M1P0Q0F0L0f0l0,5878.25,1,293887.5,-25,-0.01,0,437.5,0.15,-187.5,-0.06,-5025,0.00,1 +30,Entry short,2025-03-04 13:00,M1P0Q0F0L0f0l0,5877.75,1,293887.5,-25,-0.01,0,437.5,0.15,-187.5,-0.06,-5025,0.00,1 +31,Exit long,2025-03-04 15:00,M1P0Q0F0L0f0l0,5863.25,1,293912.5,-750,-0.26,0,50,0.02,-912.5,-0.31,-5775,0.00,1 +31,Entry long,2025-03-04 14:00,M1P0Q0F0L0f0l0,5878.25,1,293912.5,-750,-0.26,0,50,0.02,-912.5,-0.31,-5775,0.00,1 +32,Exit short,2025-03-04 16:00,M1P0Q0F0L0f0l0,5867.75,1,293162.5,-225,-0.08,0,337.5,0.12,-762.5,-0.26,-6000,0.00,1 +32,Entry short,2025-03-04 15:00,M1P0Q0F0L0f0l0,5863.25,1,293162.5,-225,-0.08,0,337.5,0.12,-762.5,-0.26,-6000,0.00,1 +33,Exit long,2025-03-04 17:00,M1P0Q0F0L0f0l0,5863.25,1,293387.5,-225,-0.08,0,462.5,0.16,-412.5,-0.14,-6225,0.00,1 +33,Entry long,2025-03-04 16:00,M1P0Q0F0L0f0l0,5867.75,1,293387.5,-225,-0.08,0,462.5,0.16,-412.5,-0.14,-6225,0.00,1 +34,Exit short,2025-03-04 18:00,M1P0Q0F0L0f0l0,5855.75,1,293162.5,375,0.13,0,725,0.25,-137.5,-0.05,-5850,0.00,1 +34,Entry short,2025-03-04 17:00,M1P0Q0F0L0f0l0,5863.25,1,293162.5,375,0.13,0,725,0.25,-137.5,-0.05,-5850,0.00,1 +35,Exit long,2025-03-04 19:00,M1P0Q0F0L0f0l0,5856,1,292787.5,12.5,0.00,0,262.5,0.09,-337.5,-0.12,-5837.5,0.00,1 +35,Entry long,2025-03-04 18:00,M1P0Q0F0L0f0l0,5855.75,1,292787.5,12.5,0.00,0,262.5,0.09,-337.5,-0.12,-5837.5,0.00,1 +36,Exit short,2025-03-04 20:00,M1P0Q0F0L0f0l0,5823.75,1,292800,1612.5,0.55,0,1750,0.60,0,0.00,-4225,0.00,1 +36,Entry short,2025-03-04 19:00,M1P0Q0F0L0f0l0,5856,1,292800,1612.5,0.55,0,1750,0.60,0,0.00,-4225,0.00,1 +37,Exit long,2025-03-04 21:00,M1P0Q0F0L0f0l0,5820.75,1,291187.5,-150,-0.05,0,237.5,0.08,-587.5,-0.20,-4375,0.00,1 +37,Entry long,2025-03-04 20:00,M1P0Q0F0L0f0l0,5823.75,1,291187.5,-150,-0.05,0,237.5,0.08,-587.5,-0.20,-4375,0.00,1 +38,Exit short,2025-03-04 22:00,M1P0Q0F0L0f0l0,5779,1,291037.5,2087.5,0.72,0,2137.5,0.73,-750,-0.26,-2287.5,0.00,1 +38,Entry short,2025-03-04 21:00,M1P0Q0F0L0f0l0,5820.75,1,291037.5,2087.5,0.72,0,2137.5,0.73,-750,-0.26,-2287.5,0.00,1 +39,Exit long,2025-03-04 23:00,M1P0Q0F0L0f0l0,5762.5,1,288950,-825,-0.29,0,237.5,0.08,-1750,-0.61,-3112.5,0.00,1 +39,Entry long,2025-03-04 22:00,M1P0Q0F0L0f0l0,5779,1,288950,-825,-0.29,0,237.5,0.08,-1750,-0.61,-3112.5,0.00,1 +40,Exit short,2025-03-05 00:00,M1P0Q0F0L0f0l0,5781.5,1,288125,-950,-0.33,0,887.5,0.31,-1250,-0.43,-4062.5,0.00,1 +40,Entry short,2025-03-04 23:00,M1P0Q0F0L0f0l0,5762.5,1,288125,-950,-0.33,0,887.5,0.31,-1250,-0.43,-4062.5,0.00,1 +41,Exit long,2025-03-05 01:00,M1P0Q0F0L0f0l0,5786.75,1,289075,262.5,0.09,0,1287.5,0.45,-337.5,-0.12,-3800,0.00,1 +41,Entry long,2025-03-05 00:00,M1P0Q0F0L0f0l0,5781.5,1,289075,262.5,0.09,0,1287.5,0.45,-337.5,-0.12,-3800,0.00,1 +42,Exit short,2025-03-05 02:00,M1P0Q0F0L0f0l0,5824.5,1,289337.5,-1887.5,-0.65,0,225,0.08,-2175,-0.75,-5687.5,0.00,1 +42,Entry short,2025-03-05 01:00,M1P0Q0F0L0f0l0,5786.75,1,289337.5,-1887.5,-0.65,0,225,0.08,-2175,-0.75,-5687.5,0.00,1 +43,Exit long,2025-03-05 03:00,M1P0Q0F0L0f0l0,5850.5,1,291225,1300,0.45,0,1437.5,0.49,-50,-0.02,-4387.5,0.00,1 +43,Entry long,2025-03-05 02:00,M1P0Q0F0L0f0l0,5824.5,1,291225,1300,0.45,0,1437.5,0.49,-50,-0.02,-4387.5,0.00,1 +44,Exit short,2025-03-05 04:00,M1P0Q0F0L0f0l0,5790.75,1,292525,2987.5,1.02,0,4112.5,1.41,-1262.5,-0.43,-1400,0.00,1 +44,Entry short,2025-03-05 03:00,M1P0Q0F0L0f0l0,5850.5,1,292525,2987.5,1.02,0,4112.5,1.41,-1262.5,-0.43,-1400,0.00,1 +45,Exit long,2025-03-05 05:00,M1P0Q0F0L1f0l1,5825,1,289537.5,1712.5,0.59,0,2462.5,0.85,-12.5,0.00,312.5,0.00,1 +45,Entry long,2025-03-05 04:00,M1P0Q0F0L0f0l0,5790.75,1,289537.5,1712.5,0.59,0,2462.5,0.85,-12.5,0.00,312.5,0.00,1 +46,Exit short,2025-03-05 07:00,M1P0Q0F1L0f1l0,5834,1,291250,-450,-0.15,0,87.5,0.03,-650,-0.22,-137.5,0.00,1 +46,Entry short,2025-03-05 05:00,M1P0Q0F0L1f0l1,5825,1,291250,-450,-0.15,0,87.5,0.03,-650,-0.22,-137.5,0.00,1 +47,Exit long,2025-03-05 08:00,M1P0Q0F0L0f0l0,5826.5,1,291700,-375,-0.13,0,137.5,0.05,-962.5,-0.33,-512.5,0.00,1 +47,Entry long,2025-03-05 07:00,M1P0Q0F1L0f1l0,5834,1,291700,-375,-0.13,0,137.5,0.05,-962.5,-0.33,-512.5,0.00,1 +48,Exit short,2025-03-05 09:00,M1P0Q0F0L0f0l0,5820,1,291325,325,0.11,0,925,0.32,-100,-0.03,-187.5,0.00,1 +48,Entry short,2025-03-05 08:00,M1P0Q0F0L0f0l0,5826.5,1,291325,325,0.11,0,925,0.32,-100,-0.03,-187.5,0.00,1 +49,Exit long,2025-03-05 10:00,M1P0Q0F0L0f0l0,5814,1,291000,-300,-0.10,0,150,0.05,-612.5,-0.21,-487.5,0.00,1 +49,Entry long,2025-03-05 09:00,M1P0Q0F0L0f0l0,5820,1,291000,-300,-0.10,0,150,0.05,-612.5,-0.21,-487.5,0.00,1 +50,Exit short,2025-03-05 11:00,M1P0Q0F0L0f0l0,5828.75,1,290700,-737.5,-0.25,0,250,0.09,-937.5,-0.32,-1225,0.00,1 +50,Entry short,2025-03-05 10:00,M1P0Q0F0L0f0l0,5814,1,290700,-737.5,-0.25,0,250,0.09,-937.5,-0.32,-1225,0.00,1 +51,Exit long,2025-03-05 12:00,M1P0Q0F0L0f0l0,5826.75,1,291437.5,-100,-0.03,0,262.5,0.09,-187.5,-0.06,-1325,0.00,1 +51,Entry long,2025-03-05 11:00,M1P0Q0F0L0f0l0,5828.75,1,291437.5,-100,-0.03,0,262.5,0.09,-187.5,-0.06,-1325,0.00,1 +52,Exit short,2025-03-05 13:00,M1P0Q0F0L0f0l0,5827,1,291337.5,-12.5,0.00,0,462.5,0.16,-112.5,-0.04,-1337.5,0.00,1 +52,Entry short,2025-03-05 12:00,M1P0Q0F0L0f0l0,5826.75,1,291337.5,-12.5,0.00,0,462.5,0.16,-112.5,-0.04,-1337.5,0.00,1 +53,Exit long,2025-03-05 14:00,M1P0Q0F0L0f0l0,5826,1,291350,-50,-0.02,0,137.5,0.05,-437.5,-0.15,-1387.5,0.00,1 +53,Entry long,2025-03-05 13:00,M1P0Q0F0L0f0l0,5827,1,291350,-50,-0.02,0,137.5,0.05,-437.5,-0.15,-1387.5,0.00,1 +54,Exit short,2025-03-05 15:00,M1P0Q0F0L0f0l0,5822,1,291300,200,0.07,0,250,0.09,-325,-0.11,-1187.5,0.00,1 +54,Entry short,2025-03-05 14:00,M1P0Q0F0L0f0l0,5826,1,291300,200,0.07,0,250,0.09,-325,-0.11,-1187.5,0.00,1 +55,Exit long,2025-03-05 16:00,M1P0Q0F0L0f0l0,5824.5,1,291100,125,0.04,0,750,0.26,-237.5,-0.08,-1062.5,0.00,1 +55,Entry long,2025-03-05 15:00,M1P0Q0F0L0f0l0,5822,1,291100,125,0.04,0,750,0.26,-237.5,-0.08,-1062.5,0.00,1 +56,Exit short,2025-03-05 17:00,M1P0Q0F0L0f0l0,5839.5,1,291225,-750,-0.26,0,225,0.08,-987.5,-0.34,-1812.5,0.00,1 +56,Entry short,2025-03-05 16:00,M1P0Q0F0L0f0l0,5824.5,1,291225,-750,-0.26,0,225,0.08,-987.5,-0.34,-1812.5,0.00,1 +57,Exit long,2025-03-05 18:00,M1P0Q0F0L0f0l0,5823.25,1,291975,-812.5,-0.28,0,162.5,0.06,-850,-0.29,-2625,0.00,1 +57,Entry long,2025-03-05 17:00,M1P0Q0F0L0f0l0,5839.5,1,291975,-812.5,-0.28,0,162.5,0.06,-850,-0.29,-2625,0.00,1 +58,Exit short,2025-03-05 19:00,M1P0Q0F0L0f0l0,5809.75,1,291162.5,675,0.23,0,1350,0.46,-112.5,-0.04,-1950,0.00,1 +58,Entry short,2025-03-05 18:00,M1P0Q0F0L0f0l0,5823.25,1,291162.5,675,0.23,0,1350,0.46,-112.5,-0.04,-1950,0.00,1 +59,Exit long,2025-03-05 20:00,M1P0Q0F0L0f0l0,5802.5,1,290487.5,-362.5,-0.12,0,337.5,0.12,-612.5,-0.21,-2312.5,0.00,1 +59,Entry long,2025-03-05 19:00,M1P0Q0F0L0f0l0,5809.75,1,290487.5,-362.5,-0.12,0,337.5,0.12,-612.5,-0.21,-2312.5,0.00,1 +60,Exit short,2025-03-05 21:00,M1P0Q0F0L0f0l0,5788.5,1,290125,700,0.24,0,937.5,0.32,-550,-0.19,-1612.5,0.00,1 +60,Entry short,2025-03-05 20:00,M1P0Q0F0L0f0l0,5802.5,1,290125,700,0.24,0,937.5,0.32,-550,-0.19,-1612.5,0.00,1 +61,Exit long,2025-03-05 22:00,M1P0Q0F0L0f0l0,5778.25,1,289425,-512.5,-0.18,0,1212.5,0.42,-912.5,-0.32,-2125,0.00,1 +61,Entry long,2025-03-05 21:00,M1P0Q0F0L0f0l0,5788.5,1,289425,-512.5,-0.18,0,1212.5,0.42,-912.5,-0.32,-2125,0.00,1 +62,Exit short,2025-03-05 23:00,M1P0Q0F0L0f0l0,5789.5,1,288912.5,-562.5,-0.19,0,187.5,0.06,-1937.5,-0.67,-2687.5,0.00,1 +62,Entry short,2025-03-05 22:00,M1P0Q0F0L0f0l0,5778.25,1,288912.5,-562.5,-0.19,0,187.5,0.06,-1937.5,-0.67,-2687.5,0.00,1 +63,Exit long,2025-03-06 00:00,M1P0Q0F0L0f0l0,5779.5,1,289475,-500,-0.17,0,0,0.00,-1937.5,-0.67,-3187.5,0.00,1 +63,Entry long,2025-03-05 23:00,M1P0Q0F0L0f0l0,5789.5,1,289475,-500,-0.17,0,0,0.00,-1937.5,-0.67,-3187.5,0.00,1 +64,Exit short,2025-03-06 01:00,M1P0Q0F0L0f0l0,5828,1,288975,-2425,-0.84,0,75,0.03,-2500,-0.87,-5612.5,0.00,1 +64,Entry short,2025-03-06 00:00,M1P0Q0F0L0f0l0,5779.5,1,288975,-2425,-0.84,0,75,0.03,-2500,-0.87,-5612.5,0.00,1 +65,Exit long,2025-03-06 02:00,M1P0Q0F0L0f0l0,5835.25,1,291400,362.5,0.12,0,412.5,0.14,-1512.5,-0.52,-5250,0.00,1 +65,Entry long,2025-03-06 01:00,M1P0Q0F0L0f0l0,5828,1,291400,362.5,0.12,0,412.5,0.14,-1512.5,-0.52,-5250,0.00,1 +66,Exit short,2025-03-06 03:00,M1P0Q0F0L0f0l0,5851.25,1,291762.5,-800,-0.27,0,325,0.11,-1450,-0.50,-6050,0.00,1 +66,Entry short,2025-03-06 02:00,M1P0Q0F0L0f0l0,5835.25,1,291762.5,-800,-0.27,0,325,0.11,-1450,-0.50,-6050,0.00,1 +67,Exit long,2025-03-06 04:00,M1P0Q0F0L0f0l0,5850.75,1,292562.5,-25,-0.01,0,912.5,0.31,-862.5,-0.29,-6075,0.00,1 +67,Entry long,2025-03-06 03:00,M1P0Q0F0L0f0l0,5851.25,1,292562.5,-25,-0.01,0,912.5,0.31,-862.5,-0.29,-6075,0.00,1 +68,Exit short,2025-03-06 05:00,M1P0Q0F0L1f0l1,5845.5,1,292537.5,262.5,0.09,0,475,0.16,-62.5,-0.02,-5812.5,0.00,1 +68,Entry short,2025-03-06 04:00,M1P0Q0F0L0f0l0,5850.75,1,292537.5,262.5,0.09,0,475,0.16,-62.5,-0.02,-5812.5,0.00,1 +69,Exit long,2025-03-06 07:00,M1P0Q0F1L0f1l0,5845.25,1,292275,-12.5,0.00,0,400,0.14,-200,-0.07,-5825,0.00,1 +69,Entry long,2025-03-06 05:00,M1P0Q0F0L1f0l1,5845.5,1,292275,-12.5,0.00,0,400,0.14,-200,-0.07,-5825,0.00,1 +70,Exit short,2025-03-06 08:00,M1P0Q0F0L0f0l0,5839.5,1,292262.5,287.5,0.10,0,362.5,0.12,-237.5,-0.08,-5537.5,0.00,1 +70,Entry short,2025-03-06 07:00,M1P0Q0F1L0f1l0,5845.25,1,292262.5,287.5,0.10,0,362.5,0.12,-237.5,-0.08,-5537.5,0.00,1 +71,Exit long,2025-03-06 09:00,M1P0Q0F0L0f0l0,5843.25,1,291975,187.5,0.06,0,275,0.09,-50,-0.02,-5350,0.00,1 +71,Entry long,2025-03-06 08:00,M1P0Q0F0L0f0l0,5839.5,1,291975,187.5,0.06,0,275,0.09,-50,-0.02,-5350,0.00,1 +72,Exit short,2025-03-06 10:00,M1P0Q0F0L0f0l0,5840.75,1,292162.5,125,0.04,0,187.5,0.06,-175,-0.06,-5225,0.00,1 +72,Entry short,2025-03-06 09:00,M1P0Q0F0L0f0l0,5843.25,1,292162.5,125,0.04,0,187.5,0.06,-175,-0.06,-5225,0.00,1 +73,Exit long,2025-03-06 11:00,M1P0Q0F0L0f0l0,5846.5,1,292037.5,287.5,0.10,0,325,0.11,-100,-0.03,-4937.5,0.00,1 +73,Entry long,2025-03-06 10:00,M1P0Q0F0L0f0l0,5840.75,1,292037.5,287.5,0.10,0,325,0.11,-100,-0.03,-4937.5,0.00,1 +74,Exit short,2025-03-06 12:00,M1P0Q0F0L0f0l0,5849.25,1,292325,-137.5,-0.05,0,12.5,0.00,-175,-0.06,-5075,0.00,1 +74,Entry short,2025-03-06 11:00,M1P0Q0F0L0f0l0,5846.5,1,292325,-137.5,-0.05,0,12.5,0.00,-175,-0.06,-5075,0.00,1 +75,Exit long,2025-03-06 13:00,M1P0Q0F0L0f0l0,5842.75,1,292462.5,-325,-0.11,0,37.5,0.01,-325,-0.11,-5400,0.00,1 +75,Entry long,2025-03-06 12:00,M1P0Q0F0L0f0l0,5849.25,1,292462.5,-325,-0.11,0,37.5,0.01,-325,-0.11,-5400,0.00,1 +76,Exit short,2025-03-06 14:00,M1P0Q0F0L0f0l0,5848.25,1,292137.5,-275,-0.09,0,112.5,0.04,-337.5,-0.12,-5675,0.00,1 +76,Entry short,2025-03-06 13:00,M1P0Q0F0L0f0l0,5842.75,1,292137.5,-275,-0.09,0,112.5,0.04,-337.5,-0.12,-5675,0.00,1 +77,Exit long,2025-03-06 15:00,M1P0Q0F0L0f0l0,5824.5,1,292412.5,-1187.5,-0.41,0,87.5,0.03,-1225,-0.42,-6862.5,0.00,1 +77,Entry long,2025-03-06 14:00,M1P0Q0F0L0f0l0,5848.25,1,292412.5,-1187.5,-0.41,0,87.5,0.03,-1225,-0.42,-6862.5,0.00,1 +78,Exit short,2025-03-06 16:00,M1P0Q0F0L0f0l0,5803.75,1,291225,1037.5,0.36,0,1162.5,0.40,-312.5,-0.11,-5825,0.00,1 +78,Entry short,2025-03-06 15:00,M1P0Q0F0L0f0l0,5824.5,1,291225,1037.5,0.36,0,1162.5,0.40,-312.5,-0.11,-5825,0.00,1 +79,Exit long,2025-03-06 17:00,M1P0Q0F0L0f0l0,5792.5,1,290187.5,-562.5,-0.19,0,487.5,0.17,-875,-0.30,-6387.5,0.00,1 +79,Entry long,2025-03-06 16:00,M1P0Q0F0L0f0l0,5803.75,1,290187.5,-562.5,-0.19,0,487.5,0.17,-875,-0.30,-6387.5,0.00,1 +80,Exit short,2025-03-06 18:00,M1P0Q0F0L0f0l0,5781.5,1,289625,550,0.19,0,650,0.22,-262.5,-0.09,-5837.5,0.00,1 +80,Entry short,2025-03-06 17:00,M1P0Q0F0L0f0l0,5792.5,1,289625,550,0.19,0,650,0.22,-262.5,-0.09,-5837.5,0.00,1 +81,Exit long,2025-03-06 19:00,M1P0Q0F0L0f0l0,5796.75,1,289075,762.5,0.26,0,787.5,0.27,-300,-0.10,-5075,0.00,1 +81,Entry long,2025-03-06 18:00,M1P0Q0F0L0f0l0,5781.5,1,289075,762.5,0.26,0,787.5,0.27,-300,-0.10,-5075,0.00,1 +82,Exit short,2025-03-06 20:00,M1P0Q0F0L0f0l0,5784.75,1,289837.5,600,0.21,0,825,0.28,-50,-0.02,-4475,0.00,1 +82,Entry short,2025-03-06 19:00,M1P0Q0F0L0f0l0,5796.75,1,289837.5,600,0.21,0,825,0.28,-50,-0.02,-4475,0.00,1 +83,Exit long,2025-03-06 21:00,M1P0Q0F0L0f0l0,5779.5,1,289237.5,-262.5,-0.09,0,300,0.10,-775,-0.27,-4737.5,0.00,1 +83,Entry long,2025-03-06 20:00,M1P0Q0F0L0f0l0,5784.75,1,289237.5,-262.5,-0.09,0,300,0.10,-775,-0.27,-4737.5,0.00,1 +84,Exit short,2025-03-06 22:00,M1P0Q0F0L0f0l0,5763.25,1,288975,812.5,0.28,0,1312.5,0.45,-462.5,-0.16,-3925,0.00,1 +84,Entry short,2025-03-06 21:00,M1P0Q0F0L0f0l0,5779.5,1,288975,812.5,0.28,0,1312.5,0.45,-462.5,-0.16,-3925,0.00,1 +85,Exit long,2025-03-06 23:00,M1P0Q0F0L0f0l0,5806.5,1,288162.5,2162.5,0.75,0,2837.5,0.98,-175,-0.06,-1762.5,0.00,1 +85,Entry long,2025-03-06 22:00,M1P0Q0F0L0f0l0,5763.25,1,288162.5,2162.5,0.75,0,2837.5,0.98,-175,-0.06,-1762.5,0.00,1 +86,Exit short,2025-03-07 00:00,M1P0Q0F0L0f0l0,5764.25,1,290325,2112.5,0.73,0,2175,0.75,-737.5,-0.25,350,0.00,1 +86,Entry short,2025-03-06 23:00,M1P0Q0F0L0f0l0,5806.5,1,290325,2112.5,0.73,0,2175,0.75,-737.5,-0.25,350,0.00,1 +87,Exit long,2025-03-07 01:00,M1P0Q0F0L0f0l0,5749.5,1,288212.5,-737.5,-0.26,0,225,0.08,-1762.5,-0.61,-387.5,0.00,1 +87,Entry long,2025-03-07 00:00,M1P0Q0F0L0f0l0,5764.25,1,288212.5,-737.5,-0.26,0,225,0.08,-1762.5,-0.61,-387.5,0.00,1 +88,Exit short,2025-03-07 02:00,M1P0Q0F0L0f0l0,5740,1,287475,475,0.17,0,1337.5,0.47,-537.5,-0.19,87.5,0.00,1 +88,Entry short,2025-03-07 01:00,M1P0Q0F0L0f0l0,5749.5,1,287475,475,0.17,0,1337.5,0.47,-537.5,-0.19,87.5,0.00,1 +89,Exit long,2025-03-07 03:00,M1P0Q0F0L0f0l0,5729,1,287000,-550,-0.19,0,1425,0.50,-1000,-0.35,-462.5,0.00,1 +89,Entry long,2025-03-07 02:00,M1P0Q0F0L0f0l0,5740,1,287000,-550,-0.19,0,1425,0.50,-1000,-0.35,-462.5,0.00,1 +90,Exit short,2025-03-07 04:00,M1P0Q0F0L0f0l0,5747.75,1,286450,-937.5,-0.33,0,275,0.10,-1637.5,-0.57,-1400,0.00,1 +90,Entry short,2025-03-07 03:00,M1P0Q0F0L0f0l0,5729,1,286450,-937.5,-0.33,0,275,0.10,-1637.5,-0.57,-1400,0.00,1 +91,Exit long,2025-03-07 05:00,M1P0Q0F0L1f0l1,5761.25,1,287387.5,675,0.23,0,1200,0.42,-175,-0.06,-725,0.00,1 +91,Entry long,2025-03-07 04:00,M1P0Q0F0L0f0l0,5747.75,1,287387.5,675,0.23,0,1200,0.42,-175,-0.06,-725,0.00,1 +92,Exit short,2025-03-07 07:00,M1P0Q0F1L0f1l0,5764.75,1,288062.5,-175,-0.06,0,0,0.00,-425,-0.15,-900,0.00,1 +92,Entry short,2025-03-07 05:00,M1P0Q0F0L1f0l1,5761.25,1,288062.5,-175,-0.06,0,0,0.00,-425,-0.15,-900,0.00,1 +93,Exit long,2025-03-07 08:00,M1P0Q0F0L0f0l0,5763.75,1,288237.5,-50,-0.02,0,250,0.09,-425,-0.15,-950,0.00,1 +93,Entry long,2025-03-07 07:00,M1P0Q0F1L0f1l0,5764.75,1,288237.5,-50,-0.02,0,250,0.09,-425,-0.15,-950,0.00,1 +94,Exit short,2025-03-07 09:00,M1P0Q0F0L0f0l0,5768.75,1,288187.5,-250,-0.09,0,125,0.04,-537.5,-0.19,-1200,0.00,1 +94,Entry short,2025-03-07 08:00,M1P0Q0F0L0f0l0,5763.75,1,288187.5,-250,-0.09,0,125,0.04,-537.5,-0.19,-1200,0.00,1 +95,Exit long,2025-03-07 10:00,M1P0Q0F0L0f0l0,5768.25,1,288437.5,-25,-0.01,0,287.5,0.10,-275,-0.10,-1225,0.00,1 +95,Entry long,2025-03-07 09:00,M1P0Q0F0L0f0l0,5768.75,1,288437.5,-25,-0.01,0,287.5,0.10,-275,-0.10,-1225,0.00,1 +96,Exit short,2025-03-07 11:00,M1P0Q0F0L0f0l0,5761.25,1,288412.5,350,0.12,0,375,0.13,-37.5,-0.01,-875,0.00,1 +96,Entry short,2025-03-07 10:00,M1P0Q0F0L0f0l0,5768.25,1,288412.5,350,0.12,0,375,0.13,-37.5,-0.01,-875,0.00,1 +97,Exit long,2025-03-07 12:00,M1P0Q0F0L0f0l0,5764.25,1,288062.5,150,0.05,0,212.5,0.07,-200,-0.07,-725,0.00,1 +97,Entry long,2025-03-07 11:00,M1P0Q0F0L0f0l0,5761.25,1,288062.5,150,0.05,0,212.5,0.07,-200,-0.07,-725,0.00,1 +98,Exit short,2025-03-07 13:00,M1P0Q0F0L0f0l0,5757,1,288212.5,362.5,0.13,0,487.5,0.17,-25,-0.01,-362.5,0.00,1 +98,Entry short,2025-03-07 12:00,M1P0Q0F0L0f0l0,5764.25,1,288212.5,362.5,0.13,0,487.5,0.17,-25,-0.01,-362.5,0.00,1 +99,Exit long,2025-03-07 14:00,M1P0Q0F0L0f0l0,5752,1,287850,-250,-0.09,0,37.5,0.01,-350,-0.12,-612.5,0.00,1 +99,Entry long,2025-03-07 13:00,M1P0Q0F0L0f0l0,5757,1,287850,-250,-0.09,0,37.5,0.01,-350,-0.12,-612.5,0.00,1 +100,Exit short,2025-03-07 15:00,M1P0Q0F0L0f0l0,5762.25,1,287600,-512.5,-0.18,0,75,0.03,-612.5,-0.21,-1125,0.00,1 +100,Entry short,2025-03-07 14:00,M1P0Q0F0L0f0l0,5752,1,287600,-512.5,-0.18,0,75,0.03,-612.5,-0.21,-1125,0.00,1 +101,Exit long,2025-03-07 16:00,M1P0Q0F0L0f0l0,5760.25,1,288112.5,-100,-0.03,0,212.5,0.07,-425,-0.15,-1225,0.00,1 +101,Entry long,2025-03-07 15:00,M1P0Q0F0L0f0l0,5762.25,1,288112.5,-100,-0.03,0,212.5,0.07,-425,-0.15,-1225,0.00,1 +102,Exit short,2025-03-07 17:00,M1P0Q0F0L0f0l0,5767.75,1,288012.5,-375,-0.13,0,100,0.03,-650,-0.23,-1600,0.00,1 +102,Entry short,2025-03-07 16:00,M1P0Q0F0L0f0l0,5760.25,1,288012.5,-375,-0.13,0,100,0.03,-650,-0.23,-1600,0.00,1 +103,Exit long,2025-03-07 18:00,M1P0Q0F0L0f0l0,5763.5,1,288387.5,-212.5,-0.07,0,37.5,0.01,-562.5,-0.20,-1812.5,0.00,1 +103,Entry long,2025-03-07 17:00,M1P0Q0F0L0f0l0,5767.75,1,288387.5,-212.5,-0.07,0,37.5,0.01,-562.5,-0.20,-1812.5,0.00,1 +104,Exit short,2025-03-07 19:00,M1P0Q0F0L0f0l0,5765.25,1,288175,-87.5,-0.03,0,275,0.10,-275,-0.10,-1900,0.00,1 +104,Entry short,2025-03-07 18:00,M1P0Q0F0L0f0l0,5763.5,1,288175,-87.5,-0.03,0,275,0.10,-275,-0.10,-1900,0.00,1 +105,Exit long,2025-03-07 20:00,M1P0Q0F0L0f0l0,5751.5,1,288262.5,-687.5,-0.24,0,25,0.01,-987.5,-0.34,-2587.5,0.00,1 +105,Entry long,2025-03-07 19:00,M1P0Q0F0L0f0l0,5765.25,1,288262.5,-687.5,-0.24,0,25,0.01,-987.5,-0.34,-2587.5,0.00,1 +106,Exit short,2025-03-07 21:00,M1P0Q0F0L0f0l0,5734.5,1,287575,850,0.30,0,1112.5,0.39,-1750,-0.61,-1737.5,0.00,1 +106,Entry short,2025-03-07 20:00,M1P0Q0F0L0f0l0,5751.5,1,287575,850,0.30,0,1112.5,0.39,-1750,-0.61,-1737.5,0.00,1 +107,Exit long,2025-03-07 22:00,M1P0Q0F0L0f0l0,5756.25,1,286725,1087.5,0.38,0,2175,0.76,-675,-0.24,-650,0.00,1 +107,Entry long,2025-03-07 21:00,M1P0Q0F0L0f0l0,5734.5,1,286725,1087.5,0.38,0,2175,0.76,-675,-0.24,-650,0.00,1 +108,Exit short,2025-03-07 23:00,M1P0Q0F0L0f0l0,5726,1,287812.5,1512.5,0.53,0,2750,0.96,-587.5,-0.20,862.5,0.00,1 +108,Entry short,2025-03-07 22:00,M1P0Q0F0L0f0l0,5756.25,1,287812.5,1512.5,0.53,0,2750,0.96,-587.5,-0.20,862.5,0.00,1 +109,Exit long,2025-03-08 00:00,M1P0Q0F0L0f0l0,5687.75,1,286300,-1912.5,-0.67,0,187.5,0.07,-2650,-0.93,-1050,0.00,1 +109,Entry long,2025-03-07 23:00,M1P0Q0F0L0f0l0,5726,1,286300,-1912.5,-0.67,0,187.5,0.07,-2650,-0.93,-1050,0.00,1 +110,Exit short,2025-03-08 01:00,M1P0Q0F0L0f0l0,5718.5,1,284387.5,-1537.5,-0.54,0,662.5,0.23,-3000,-1.05,-2587.5,0.00,1 +110,Entry short,2025-03-08 00:00,M1P0Q0F0L0f0l0,5687.75,1,284387.5,-1537.5,-0.54,0,662.5,0.23,-3000,-1.05,-2587.5,0.00,1 +111,Exit long,2025-03-08 02:00,M1P0Q0F0L0f0l0,5769.75,1,285925,2562.5,0.90,0,2575,0.90,-25,-0.01,-25,0.00,1 +111,Entry long,2025-03-08 01:00,M1P0Q0F0L0f0l0,5718.5,1,285925,2562.5,0.90,0,2575,0.90,-25,-0.01,-25,0.00,1 +112,Exit short,2025-03-08 03:00,M1P0Q0F0L0f0l0,5769,1,288487.5,37.5,0.01,0,575,0.20,-1025,-0.36,12.5,0.00,1 +112,Entry short,2025-03-08 02:00,M1P0Q0F0L0f0l0,5769.75,1,288487.5,37.5,0.01,0,575,0.20,-1025,-0.36,12.5,0.00,1 +113,Exit long,2025-03-08 04:00,M1P0Q0F0L0f0l0,5775,1,288450,300,0.10,0,1100,0.38,-1187.5,-0.41,312.5,0.00,1 +113,Entry long,2025-03-08 03:00,M1P0Q0F0L0f0l0,5769,1,288450,300,0.10,0,1100,0.38,-1187.5,-0.41,312.5,0.00,1 +114,Exit short,2025-03-08 05:00,M1P0Q0F0L1f0l1,5771.75,1,288750,162.5,0.06,0,737.5,0.26,-112.5,-0.04,475,0.00,1 +114,Entry short,2025-03-08 04:00,M1P0Q0F0L0f0l0,5775,1,288750,162.5,0.06,0,737.5,0.26,-112.5,-0.04,475,0.00,1 +115,Exit long,2025-03-10 06:00,M1P0Q0F1L0f1l0,5728,1,288587.5,-2187.5,-0.76,0,0,0.00,-2450,-0.85,-1712.5,0.00,1 +115,Entry long,2025-03-08 05:00,M1P0Q0F0L1f0l1,5771.75,1,288587.5,-2187.5,-0.76,0,0,0.00,-2450,-0.85,-1712.5,0.00,1 +116,Exit short,2025-03-10 07:00,M1P0Q0F0L0f0l0,5733.25,1,286400,-262.5,-0.09,0,875,0.31,-500,-0.17,-1975,0.00,1 +116,Entry short,2025-03-10 06:00,M1P0Q0F1L0f1l0,5728,1,286400,-262.5,-0.09,0,875,0.31,-500,-0.17,-1975,0.00,1 +117,Exit long,2025-03-10 08:00,M1P0Q0F0L0f0l0,5738.25,1,286662.5,250,0.09,0,325,0.11,-350,-0.12,-1725,0.00,1 +117,Entry long,2025-03-10 07:00,M1P0Q0F0L0f0l0,5733.25,1,286662.5,250,0.09,0,325,0.11,-350,-0.12,-1725,0.00,1 +118,Exit short,2025-03-10 09:00,M1P0Q0F0L0f0l0,5752,1,286912.5,-687.5,-0.24,0,37.5,0.01,-712.5,-0.25,-2412.5,0.00,1 +118,Entry short,2025-03-10 08:00,M1P0Q0F0L0f0l0,5738.25,1,286912.5,-687.5,-0.24,0,37.5,0.01,-712.5,-0.25,-2412.5,0.00,1 +119,Exit long,2025-03-10 10:00,M1P0Q0F0L0f0l0,5752.25,1,287600,12.5,0.00,0,162.5,0.06,-200,-0.07,-2400,0.00,1 +119,Entry long,2025-03-10 09:00,M1P0Q0F0L0f0l0,5752,1,287600,12.5,0.00,0,162.5,0.06,-200,-0.07,-2400,0.00,1 +120,Exit short,2025-03-10 11:00,M1P0Q0F0L0f0l0,5750.5,1,287612.5,87.5,0.03,0,387.5,0.13,-125,-0.04,-2312.5,0.00,1 +120,Entry short,2025-03-10 10:00,M1P0Q0F0L0f0l0,5752.25,1,287612.5,87.5,0.03,0,387.5,0.13,-125,-0.04,-2312.5,0.00,1 +121,Exit long,2025-03-10 12:00,M1P0Q0F0L0f0l0,5745.5,1,287525,-250,-0.09,0,362.5,0.13,-275,-0.10,-2562.5,0.00,1 +121,Entry long,2025-03-10 11:00,M1P0Q0F0L0f0l0,5750.5,1,287525,-250,-0.09,0,362.5,0.13,-275,-0.10,-2562.5,0.00,1 +122,Exit short,2025-03-10 13:00,M1P0Q0F0L0f0l0,5743.5,1,287275,100,0.03,0,212.5,0.07,-362.5,-0.13,-2462.5,0.00,1 +122,Entry short,2025-03-10 12:00,M1P0Q0F0L0f0l0,5745.5,1,287275,100,0.03,0,212.5,0.07,-362.5,-0.13,-2462.5,0.00,1 +123,Exit long,2025-03-10 14:00,M1P0Q0F0L0f0l0,5748.25,1,287175,237.5,0.08,0,425,0.15,0,0.00,-2225,0.00,1 +123,Entry long,2025-03-10 13:00,M1P0Q0F0L0f0l0,5743.5,1,287175,237.5,0.08,0,425,0.15,0,0.00,-2225,0.00,1 +124,Exit short,2025-03-10 15:00,M1P0Q0F0L0f0l0,5743.25,1,287412.5,250,0.09,0,300,0.10,-287.5,-0.10,-1975,0.00,1 +124,Entry short,2025-03-10 14:00,M1P0Q0F0L0f0l0,5748.25,1,287412.5,250,0.09,0,300,0.10,-287.5,-0.10,-1975,0.00,1 +125,Exit long,2025-03-10 16:00,M1P0Q0F0L0f0l0,5705.75,1,287162.5,-1875,-0.65,0,250,0.09,-2012.5,-0.70,-3850,0.00,1 +125,Entry long,2025-03-10 15:00,M1P0Q0F0L0f0l0,5743.25,1,287162.5,-1875,-0.65,0,250,0.09,-2012.5,-0.70,-3850,0.00,1 +126,Exit short,2025-03-10 17:00,M1P0Q0F0L0f0l0,5718.5,1,285287.5,-637.5,-0.22,0,137.5,0.05,-1287.5,-0.45,-4487.5,0.00,1 +126,Entry short,2025-03-10 16:00,M1P0Q0F0L0f0l0,5705.75,1,285287.5,-637.5,-0.22,0,137.5,0.05,-1287.5,-0.45,-4487.5,0.00,1 +127,Exit long,2025-03-10 18:00,M1P0Q0F0L0f0l0,5709,1,285925,-475,-0.17,0,325,0.11,-625,-0.22,-4962.5,0.00,1 +127,Entry long,2025-03-10 17:00,M1P0Q0F0L0f0l0,5718.5,1,285925,-475,-0.17,0,325,0.11,-625,-0.22,-4962.5,0.00,1 +128,Exit short,2025-03-10 19:00,M1P0Q0F0L0f0l0,5706.5,1,285450,125,0.04,0,362.5,0.13,-712.5,-0.25,-4837.5,0.00,1 +128,Entry short,2025-03-10 18:00,M1P0Q0F0L0f0l0,5709,1,285450,125,0.04,0,362.5,0.13,-712.5,-0.25,-4837.5,0.00,1 +129,Exit long,2025-03-10 20:00,M1P0Q0F0L0f0l0,5701,1,285325,-275,-0.10,0,50,0.02,-962.5,-0.34,-5112.5,0.00,1 +129,Entry long,2025-03-10 19:00,M1P0Q0F0L0f0l0,5706.5,1,285325,-275,-0.10,0,50,0.02,-962.5,-0.34,-5112.5,0.00,1 +130,Exit short,2025-03-10 21:00,M1P0Q0F0L0f0l0,5689.25,1,285050,587.5,0.21,0,1087.5,0.38,-512.5,-0.18,-4525,0.00,1 +130,Entry short,2025-03-10 20:00,M1P0Q0F0L0f0l0,5701,1,285050,587.5,0.21,0,1087.5,0.38,-512.5,-0.18,-4525,0.00,1 +131,Exit long,2025-03-10 22:00,M1P0Q0F0L0f0l0,5655,1,284462.5,-1712.5,-0.60,0,12.5,0.00,-2137.5,-0.75,-6237.5,0.00,1 +131,Entry long,2025-03-10 21:00,M1P0Q0F0L0f0l0,5689.25,1,284462.5,-1712.5,-0.60,0,12.5,0.00,-2137.5,-0.75,-6237.5,0.00,1 +132,Exit short,2025-03-10 23:00,M1P0Q0F0L0f0l0,5653.75,1,282750,62.5,0.02,0,162.5,0.06,-1350,-0.48,-6175,0.00,1 +132,Entry short,2025-03-10 22:00,M1P0Q0F0L0f0l0,5655,1,282750,62.5,0.02,0,162.5,0.06,-1350,-0.48,-6175,0.00,1 +133,Exit long,2025-03-11 00:00,M1P0Q0F0L0f0l0,5645.75,1,282687.5,-400,-0.14,0,662.5,0.23,-687.5,-0.24,-6575,0.00,1 +133,Entry long,2025-03-10 23:00,M1P0Q0F0L0f0l0,5653.75,1,282687.5,-400,-0.14,0,662.5,0.23,-687.5,-0.24,-6575,0.00,1 +134,Exit short,2025-03-11 01:00,M1P0Q0F0L0f0l0,5619.75,1,282287.5,1300,0.46,0,1450,0.51,-75,-0.03,-5275,0.00,1 +134,Entry short,2025-03-11 00:00,M1P0Q0F0L0f0l0,5645.75,1,282287.5,1300,0.46,0,1450,0.51,-75,-0.03,-5275,0.00,1 +135,Exit long,2025-03-11 02:00,M1P0Q0F0L0f0l0,5588.75,1,280987.5,-1550,-0.55,0,575,0.20,-1675,-0.60,-6825,0.00,1 +135,Entry long,2025-03-11 01:00,M1P0Q0F0L0f0l0,5619.75,1,280987.5,-1550,-0.55,0,575,0.20,-1675,-0.60,-6825,0.00,1 +136,Exit short,2025-03-11 03:00,M1P0Q0F0L0f0l0,5623.5,1,279437.5,-1737.5,-0.62,0,862.5,0.31,-2612.5,-0.93,-8562.5,0.00,1 +136,Entry short,2025-03-11 02:00,M1P0Q0F0L0f0l0,5588.75,1,279437.5,-1737.5,-0.62,0,862.5,0.31,-2612.5,-0.93,-8562.5,0.00,1 +137,Exit long,2025-03-11 04:00,M1P0Q0F0L1f0l1,5628.75,1,281175,262.5,0.09,0,387.5,0.14,-500,-0.18,-8300,0.00,1 +137,Entry long,2025-03-11 03:00,M1P0Q0F0L0f0l0,5623.5,1,281175,262.5,0.09,0,387.5,0.14,-500,-0.18,-8300,0.00,1 +138,Exit short,2025-03-11 06:00,M1P0Q0F1L0f1l0,5611.25,1,281437.5,875,0.31,0,1162.5,0.41,0,0.00,-7425,0.00,1 +138,Entry short,2025-03-11 04:00,M1P0Q0F0L1f0l1,5628.75,1,281437.5,875,0.31,0,1162.5,0.41,0,0.00,-7425,0.00,1 +139,Exit long,2025-03-11 07:00,M1P0Q0F0L0f0l0,5602,1,280562.5,-462.5,-0.16,0,200,0.07,-1362.5,-0.49,-7887.5,0.00,1 +139,Entry long,2025-03-11 06:00,M1P0Q0F1L0f1l0,5611.25,1,280562.5,-462.5,-0.16,0,200,0.07,-1362.5,-0.49,-7887.5,0.00,1 +140,Exit short,2025-03-11 08:00,M1P0Q0F0L0f0l0,5573.5,1,280100,1425,0.51,0,2162.5,0.77,-262.5,-0.09,-6462.5,0.00,1 +140,Entry short,2025-03-11 07:00,M1P0Q0F0L0f0l0,5602,1,280100,1425,0.51,0,2162.5,0.77,-262.5,-0.09,-6462.5,0.00,1 +141,Exit long,2025-03-11 09:00,M1P0Q0F0L0f0l0,5586.5,1,278675,650,0.23,0,787.5,0.28,-775,-0.28,-5812.5,0.00,1 +141,Entry long,2025-03-11 08:00,M1P0Q0F0L0f0l0,5573.5,1,278675,650,0.23,0,787.5,0.28,-775,-0.28,-5812.5,0.00,1 +142,Exit short,2025-03-11 10:00,M1P0Q0F0L0f0l0,5613.5,1,279325,-1350,-0.48,0,100,0.04,-1712.5,-0.61,-7162.5,0.00,1 +142,Entry short,2025-03-11 09:00,M1P0Q0F0L0f0l0,5586.5,1,279325,-1350,-0.48,0,100,0.04,-1712.5,-0.61,-7162.5,0.00,1 +143,Exit long,2025-03-11 11:00,M1P0Q0F0L0f0l0,5624,1,280675,525,0.19,0,1175,0.42,0,0.00,-6637.5,0.00,1 +143,Entry long,2025-03-11 10:00,M1P0Q0F0L0f0l0,5613.5,1,280675,525,0.19,0,1175,0.42,0,0.00,-6637.5,0.00,1 +144,Exit short,2025-03-11 12:00,M1P0Q0F0L0f0l0,5630.5,1,281200,-325,-0.12,0,200,0.07,-675,-0.24,-6962.5,0.00,1 +144,Entry short,2025-03-11 11:00,M1P0Q0F0L0f0l0,5624,1,281200,-325,-0.12,0,200,0.07,-675,-0.24,-6962.5,0.00,1 +145,Exit long,2025-03-11 13:00,M1P0Q0F0L0f0l0,5633.75,1,281525,162.5,0.06,0,312.5,0.11,-237.5,-0.08,-6800,0.00,1 +145,Entry long,2025-03-11 12:00,M1P0Q0F0L0f0l0,5630.5,1,281525,162.5,0.06,0,312.5,0.11,-237.5,-0.08,-6800,0.00,1 +146,Exit short,2025-03-11 14:00,M1P0Q0F0L0f0l0,5630,1,281687.5,187.5,0.07,0,300,0.11,-262.5,-0.09,-6612.5,0.00,1 +146,Entry short,2025-03-11 13:00,M1P0Q0F0L0f0l0,5633.75,1,281687.5,187.5,0.07,0,300,0.11,-262.5,-0.09,-6612.5,0.00,1 +147,Exit long,2025-03-11 15:00,M1P0Q0F0L0f0l0,5633.5,1,281500,175,0.06,0,325,0.12,-725,-0.26,-6437.5,0.00,1 +147,Entry long,2025-03-11 14:00,M1P0Q0F0L0f0l0,5630,1,281500,175,0.06,0,325,0.12,-725,-0.26,-6437.5,0.00,1 +148,Exit short,2025-03-11 16:00,M1P0Q0F0L0f0l0,5644,1,281675,-525,-0.19,0,212.5,0.08,-525,-0.19,-6962.5,0.00,1 +148,Entry short,2025-03-11 15:00,M1P0Q0F0L0f0l0,5633.5,1,281675,-525,-0.19,0,212.5,0.08,-525,-0.19,-6962.5,0.00,1 +149,Exit long,2025-03-11 17:00,M1P0Q0F0L0f0l0,5640.75,1,282200,-162.5,-0.06,0,150,0.05,-312.5,-0.11,-7125,0.00,1 +149,Entry long,2025-03-11 16:00,M1P0Q0F0L0f0l0,5644,1,282200,-162.5,-0.06,0,150,0.05,-312.5,-0.11,-7125,0.00,1 +150,Exit short,2025-03-11 18:00,M1P0Q0F0L0f0l0,5639.5,1,282037.5,62.5,0.02,0,437.5,0.16,-200,-0.07,-7062.5,0.00,1 +150,Entry short,2025-03-11 17:00,M1P0Q0F0L0f0l0,5640.75,1,282037.5,62.5,0.02,0,437.5,0.16,-200,-0.07,-7062.5,0.00,1 +151,Exit long,2025-03-11 19:00,M1P0Q0F0L0f0l0,5651,1,281975,575,0.20,0,575,0.20,-650,-0.23,-6487.5,0.00,1 +151,Entry long,2025-03-11 18:00,M1P0Q0F0L0f0l0,5639.5,1,281975,575,0.20,0,575,0.20,-650,-0.23,-6487.5,0.00,1 +152,Exit short,2025-03-11 20:00,M1P0Q0F0L0f0l0,5619.25,1,282550,1587.5,0.56,0,1737.5,0.61,-37.5,-0.01,-4900,0.00,1 +152,Entry short,2025-03-11 19:00,M1P0Q0F0L0f0l0,5651,1,282550,1587.5,0.56,0,1737.5,0.61,-37.5,-0.01,-4900,0.00,1 +153,Exit long,2025-03-11 21:00,M1P0Q0F0L0f0l0,5613.25,1,280962.5,-300,-0.11,0,662.5,0.24,-1087.5,-0.39,-5200,0.00,1 +153,Entry long,2025-03-11 20:00,M1P0Q0F0L0f0l0,5619.25,1,280962.5,-300,-0.11,0,662.5,0.24,-1087.5,-0.39,-5200,0.00,1 +154,Exit short,2025-03-11 22:00,M1P0Q0F0L0f0l0,5562.75,1,280662.5,2525,0.90,0,2937.5,1.05,-1125,-0.40,-2675,0.00,1 +154,Entry short,2025-03-11 21:00,M1P0Q0F0L0f0l0,5613.25,1,280662.5,2525,0.90,0,2937.5,1.05,-1125,-0.40,-2675,0.00,1 +155,Exit long,2025-03-11 23:00,M1P0Q0F0L0f0l0,5586.5,1,278137.5,1187.5,0.43,0,2600,0.93,-325,-0.12,-1487.5,0.00,1 +155,Entry long,2025-03-11 22:00,M1P0Q0F0L0f0l0,5562.75,1,278137.5,1187.5,0.43,0,2600,0.93,-325,-0.12,-1487.5,0.00,1 +156,Exit short,2025-03-12 00:00,M1P0Q0F0L0f0l0,5557.25,1,279325,1462.5,0.52,0,1825,0.65,-237.5,-0.09,-25,0.00,1 +156,Entry short,2025-03-11 23:00,M1P0Q0F0L0f0l0,5586.5,1,279325,1462.5,0.52,0,1825,0.65,-237.5,-0.09,-25,0.00,1 +157,Exit long,2025-03-12 01:00,M1P0Q0F0L0f0l0,5557.25,1,277862.5,0,0.00,0,562.5,0.20,-1162.5,-0.42,-25,0.00,1 +157,Entry long,2025-03-12 00:00,M1P0Q0F0L0f0l0,5557.25,1,277862.5,0,0.00,0,562.5,0.20,-1162.5,-0.42,-25,0.00,1 +158,Exit short,2025-03-12 02:00,M1P0Q0F0L0f0l0,5630.25,1,277862.5,-3650,-1.31,0,75,0.03,-4325,-1.56,-3675,0.00,1 +158,Entry short,2025-03-12 01:00,M1P0Q0F0L0f0l0,5557.25,1,277862.5,-3650,-1.31,0,75,0.03,-4325,-1.56,-3675,0.00,1 +159,Exit long,2025-03-12 03:00,M1P0Q0F0L0f0l0,5575.75,1,281512.5,-2725,-0.97,0,537.5,0.19,-2762.5,-0.98,-6400,0.00,1 +159,Entry long,2025-03-12 02:00,M1P0Q0F0L0f0l0,5630.25,1,281512.5,-2725,-0.97,0,537.5,0.19,-2762.5,-0.98,-6400,0.00,1 +160,Exit short,2025-03-12 04:00,M1P0Q0F0L1f0l1,5576.75,1,278787.5,-50,-0.02,0,150,0.05,-687.5,-0.25,-6450,0.00,1 +160,Entry short,2025-03-12 03:00,M1P0Q0F0L0f0l0,5575.75,1,278787.5,-50,-0.02,0,150,0.05,-687.5,-0.25,-6450,0.00,1 +161,Exit long,2025-03-12 06:00,M1P0Q0F1L0f1l0,5591.75,1,278837.5,750,0.27,0,887.5,0.32,-125,-0.04,-5700,0.00,1 +161,Entry long,2025-03-12 04:00,M1P0Q0F0L1f0l1,5576.75,1,278837.5,750,0.27,0,887.5,0.32,-125,-0.04,-5700,0.00,1 +162,Exit short,2025-03-12 07:00,M1P0Q0F0L0f0l0,5593.5,1,279587.5,-87.5,-0.03,0,462.5,0.17,-87.5,-0.03,-5787.5,0.00,1 +162,Entry short,2025-03-12 06:00,M1P0Q0F1L0f1l0,5591.75,1,279587.5,-87.5,-0.03,0,462.5,0.17,-87.5,-0.03,-5787.5,0.00,1 +163,Exit long,2025-03-12 08:00,M1P0Q0F0L0f0l0,5592.25,1,279675,-62.5,-0.02,0,250,0.09,-387.5,-0.14,-5850,0.00,1 +163,Entry long,2025-03-12 07:00,M1P0Q0F0L0f0l0,5593.5,1,279675,-62.5,-0.02,0,250,0.09,-387.5,-0.14,-5850,0.00,1 +164,Exit short,2025-03-12 09:00,M1P0Q0F0L0f0l0,5593.75,1,279612.5,-75,-0.03,0,337.5,0.12,-175,-0.06,-5925,0.00,1 +164,Entry short,2025-03-12 08:00,M1P0Q0F0L0f0l0,5592.25,1,279612.5,-75,-0.03,0,337.5,0.12,-175,-0.06,-5925,0.00,1 +165,Exit long,2025-03-12 10:00,M1P0Q0F0L0f0l0,5590.75,1,279687.5,-150,-0.05,0,250,0.09,-212.5,-0.08,-6075,0.00,1 +165,Entry long,2025-03-12 09:00,M1P0Q0F0L0f0l0,5593.75,1,279687.5,-150,-0.05,0,250,0.09,-212.5,-0.08,-6075,0.00,1 +166,Exit short,2025-03-12 11:00,M1P0Q0F0L0f0l0,5588.75,1,279537.5,100,0.04,0,287.5,0.10,-125,-0.04,-5975,0.00,1 +166,Entry short,2025-03-12 10:00,M1P0Q0F0L0f0l0,5590.75,1,279537.5,100,0.04,0,287.5,0.10,-125,-0.04,-5975,0.00,1 +167,Exit long,2025-03-12 12:00,M1P0Q0F0L0f0l0,5590.75,1,279437.5,100,0.04,0,362.5,0.13,-112.5,-0.04,-5875,0.00,1 +167,Entry long,2025-03-12 11:00,M1P0Q0F0L0f0l0,5588.75,1,279437.5,100,0.04,0,362.5,0.13,-112.5,-0.04,-5875,0.00,1 +168,Exit short,2025-03-12 13:00,M1P0Q0F0L0f0l0,5597,1,279537.5,-312.5,-0.11,0,62.5,0.02,-350,-0.13,-6187.5,0.00,1 +168,Entry short,2025-03-12 12:00,M1P0Q0F0L0f0l0,5590.75,1,279537.5,-312.5,-0.11,0,62.5,0.02,-350,-0.13,-6187.5,0.00,1 +169,Exit long,2025-03-12 14:00,M1P0Q0F0L0f0l0,5582,1,279850,-750,-0.27,0,0,0.00,-900,-0.32,-6937.5,0.00,1 +169,Entry long,2025-03-12 13:00,M1P0Q0F0L0f0l0,5597,1,279850,-750,-0.27,0,0,0.00,-900,-0.32,-6937.5,0.00,1 +170,Exit short,2025-03-12 15:00,M1P0Q0F0L0f0l0,5596.25,1,279100,-712.5,-0.26,0,225,0.08,-775,-0.28,-7650,0.00,1 +170,Entry short,2025-03-12 14:00,M1P0Q0F0L0f0l0,5582,1,279100,-712.5,-0.26,0,225,0.08,-775,-0.28,-7650,0.00,1 +171,Exit long,2025-03-12 16:00,M1P0Q0F0L0f0l0,5611.25,1,279812.5,750,0.27,0,837.5,0.30,-512.5,-0.18,-6900,0.00,1 +171,Entry long,2025-03-12 15:00,M1P0Q0F0L0f0l0,5596.25,1,279812.5,750,0.27,0,837.5,0.30,-512.5,-0.18,-6900,0.00,1 +172,Exit short,2025-03-12 17:00,M1P0Q0F0L0f0l0,5615.5,1,280562.5,-212.5,-0.08,0,212.5,0.08,-250,-0.09,-7112.5,0.00,1 +172,Entry short,2025-03-12 16:00,M1P0Q0F0L0f0l0,5611.25,1,280562.5,-212.5,-0.08,0,212.5,0.08,-250,-0.09,-7112.5,0.00,1 +173,Exit long,2025-03-12 18:00,M1P0Q0F0L0f0l0,5613.75,1,280775,-87.5,-0.03,0,87.5,0.03,-500,-0.18,-7200,0.00,1 +173,Entry long,2025-03-12 17:00,M1P0Q0F0L0f0l0,5615.5,1,280775,-87.5,-0.03,0,87.5,0.03,-500,-0.18,-7200,0.00,1 +174,Exit short,2025-03-12 19:00,M1P0Q0F0L0f0l0,5621.75,1,280687.5,-400,-0.14,0,37.5,0.01,-675,-0.24,-7600,0.00,1 +174,Entry short,2025-03-12 18:00,M1P0Q0F0L0f0l0,5613.75,1,280687.5,-400,-0.14,0,37.5,0.01,-675,-0.24,-7600,0.00,1 +175,Exit long,2025-03-12 20:00,M1P0Q0F0L0f0l0,5643.75,1,281087.5,1100,0.39,0,2662.5,0.95,-262.5,-0.09,-6500,0.00,1 +175,Entry long,2025-03-12 19:00,M1P0Q0F0L0f0l0,5621.75,1,281087.5,1100,0.39,0,2662.5,0.95,-262.5,-0.09,-6500,0.00,1 +176,Exit short,2025-03-12 21:00,M1P0Q0F0L0f0l0,5608.5,1,282187.5,1762.5,0.62,0,2337.5,0.83,-125,-0.04,-4737.5,0.00,1 +176,Entry short,2025-03-12 20:00,M1P0Q0F0L0f0l0,5643.75,1,282187.5,1762.5,0.62,0,2337.5,0.83,-125,-0.04,-4737.5,0.00,1 +177,Exit long,2025-03-12 22:00,M1P0Q0F0L0f0l0,5569.5,1,280425,-1950,-0.70,0,537.5,0.19,-2012.5,-0.72,-6687.5,0.00,1 +177,Entry long,2025-03-12 21:00,M1P0Q0F0L0f0l0,5608.5,1,280425,-1950,-0.70,0,537.5,0.19,-2012.5,-0.72,-6687.5,0.00,1 +178,Exit short,2025-03-12 23:00,M1P0Q0F0L0f0l0,5604.75,1,278475,-1762.5,-0.63,0,962.5,0.35,-1837.5,-0.66,-8450,0.00,1 +178,Entry short,2025-03-12 22:00,M1P0Q0F0L0f0l0,5569.5,1,278475,-1762.5,-0.63,0,962.5,0.35,-1837.5,-0.66,-8450,0.00,1 +179,Exit long,2025-03-13 00:00,M1P0Q0F0L0f0l0,5604.5,1,280237.5,-12.5,0.00,0,1087.5,0.39,-450,-0.16,-8462.5,0.00,1 +179,Entry long,2025-03-12 23:00,M1P0Q0F0L0f0l0,5604.75,1,280237.5,-12.5,0.00,0,1087.5,0.39,-450,-0.16,-8462.5,0.00,1 +180,Exit short,2025-03-13 01:00,M1P0Q0F0L0f0l0,5593.75,1,280225,537.5,0.19,0,587.5,0.21,-1350,-0.48,-7925,0.00,1 +180,Entry short,2025-03-13 00:00,M1P0Q0F0L0f0l0,5604.5,1,280225,537.5,0.19,0,587.5,0.21,-1350,-0.48,-7925,0.00,1 +181,Exit long,2025-03-13 02:00,M1P0Q0F0L0f0l0,5626,1,279687.5,1612.5,0.58,0,1962.5,0.70,-100,-0.04,-6312.5,0.00,1 +181,Entry long,2025-03-13 01:00,M1P0Q0F0L0f0l0,5593.75,1,279687.5,1612.5,0.58,0,1962.5,0.70,-100,-0.04,-6312.5,0.00,1 +182,Exit short,2025-03-13 03:00,M1P0Q0F0L0f0l0,5602.75,1,281300,1162.5,0.41,0,1537.5,0.55,0,0.00,-5150,0.00,1 +182,Entry short,2025-03-13 02:00,M1P0Q0F0L0f0l0,5626,1,281300,1162.5,0.41,0,1537.5,0.55,0,0.00,-5150,0.00,1 +183,Exit long,2025-03-13 04:00,M1P0Q0F0L1f0l1,5597.25,1,280137.5,-275,-0.10,0,62.5,0.02,-387.5,-0.14,-5425,0.00,1 +183,Entry long,2025-03-13 03:00,M1P0Q0F0L0f0l0,5602.75,1,280137.5,-275,-0.10,0,62.5,0.02,-387.5,-0.14,-5425,0.00,1 +184,Exit short,2025-03-13 06:00,M1P0Q0F1L0f1l0,5609.25,1,279862.5,-600,-0.21,0,87.5,0.03,-687.5,-0.25,-6025,0.00,1 +184,Entry short,2025-03-13 04:00,M1P0Q0F0L1f0l1,5597.25,1,279862.5,-600,-0.21,0,87.5,0.03,-687.5,-0.25,-6025,0.00,1 +185,Exit long,2025-03-13 07:00,M1P0Q0F0L0f0l0,5620.5,1,280462.5,562.5,0.20,0,600,0.21,-25,-0.01,-5462.5,0.00,1 +185,Entry long,2025-03-13 06:00,M1P0Q0F1L0f1l0,5609.25,1,280462.5,562.5,0.20,0,600,0.21,-25,-0.01,-5462.5,0.00,1 +186,Exit short,2025-03-13 08:00,M1P0Q0F0L0f0l0,5611,1,281025,475,0.17,0,525,0.19,-125,-0.04,-4987.5,0.00,1 +186,Entry short,2025-03-13 07:00,M1P0Q0F0L0f0l0,5620.5,1,281025,475,0.17,0,525,0.19,-125,-0.04,-4987.5,0.00,1 +187,Exit long,2025-03-13 09:00,M1P0Q0F0L0f0l0,5612.25,1,280550,62.5,0.02,0,137.5,0.05,-362.5,-0.13,-4925,0.00,1 +187,Entry long,2025-03-13 08:00,M1P0Q0F0L0f0l0,5611,1,280550,62.5,0.02,0,137.5,0.05,-362.5,-0.13,-4925,0.00,1 +188,Exit short,2025-03-13 10:00,M1P0Q0F0L0f0l0,5603.25,1,280612.5,450,0.16,0,487.5,0.17,-50,-0.02,-4475,0.00,1 +188,Entry short,2025-03-13 09:00,M1P0Q0F0L0f0l0,5612.25,1,280612.5,450,0.16,0,487.5,0.17,-50,-0.02,-4475,0.00,1 +189,Exit long,2025-03-13 11:00,M1P0Q0F0L0f0l0,5588.5,1,280162.5,-737.5,-0.26,0,37.5,0.01,-850,-0.30,-5212.5,0.00,1 +189,Entry long,2025-03-13 10:00,M1P0Q0F0L0f0l0,5603.25,1,280162.5,-737.5,-0.26,0,37.5,0.01,-850,-0.30,-5212.5,0.00,1 +190,Exit short,2025-03-13 12:00,M1P0Q0F0L0f0l0,5580.75,1,279425,387.5,0.14,0,587.5,0.21,-237.5,-0.08,-4825,0.00,1 +190,Entry short,2025-03-13 11:00,M1P0Q0F0L0f0l0,5588.5,1,279425,387.5,0.14,0,587.5,0.21,-237.5,-0.08,-4825,0.00,1 +191,Exit long,2025-03-13 13:00,M1P0Q0F0L0f0l0,5577.5,1,279037.5,-162.5,-0.06,0,187.5,0.07,-500,-0.18,-4987.5,0.00,1 +191,Entry long,2025-03-13 12:00,M1P0Q0F0L0f0l0,5580.75,1,279037.5,-162.5,-0.06,0,187.5,0.07,-500,-0.18,-4987.5,0.00,1 +192,Exit short,2025-03-13 14:00,M1P0Q0F0L0f0l0,5582,1,278875,-225,-0.08,0,700,0.25,-375,-0.13,-5212.5,0.00,1 +192,Entry short,2025-03-13 13:00,M1P0Q0F0L0f0l0,5577.5,1,278875,-225,-0.08,0,700,0.25,-375,-0.13,-5212.5,0.00,1 +193,Exit long,2025-03-13 15:00,M1P0Q0F0L0f0l0,5567,1,279100,-750,-0.27,0,150,0.05,-900,-0.32,-5962.5,0.00,1 +193,Entry long,2025-03-13 14:00,M1P0Q0F0L0f0l0,5582,1,279100,-750,-0.27,0,150,0.05,-900,-0.32,-5962.5,0.00,1 +194,Exit short,2025-03-13 16:00,M1P0Q0F0L0f0l0,5580,1,278350,-650,-0.23,0,387.5,0.14,-675,-0.24,-6612.5,0.00,1 +194,Entry short,2025-03-13 15:00,M1P0Q0F0L0f0l0,5567,1,278350,-650,-0.23,0,387.5,0.14,-675,-0.24,-6612.5,0.00,1 +195,Exit long,2025-03-13 17:00,M1P0Q0F0L0f0l0,5604.5,1,279000,1225,0.44,0,1275,0.46,-400,-0.14,-5387.5,0.00,1 +195,Entry long,2025-03-13 16:00,M1P0Q0F0L0f0l0,5580,1,279000,1225,0.44,0,1275,0.46,-400,-0.14,-5387.5,0.00,1 +196,Exit short,2025-03-13 18:00,M1P0Q0F0L0f0l0,5599.75,1,280225,237.5,0.08,0,450,0.16,-262.5,-0.09,-5150,0.00,1 +196,Entry short,2025-03-13 17:00,M1P0Q0F0L0f0l0,5604.5,1,280225,237.5,0.08,0,450,0.16,-262.5,-0.09,-5150,0.00,1 +197,Exit long,2025-03-13 19:00,M1P0Q0F0L0f0l0,5590.75,1,279987.5,-450,-0.16,0,162.5,0.06,-975,-0.35,-5600,0.00,1 +197,Entry long,2025-03-13 18:00,M1P0Q0F0L0f0l0,5599.75,1,279987.5,-450,-0.16,0,162.5,0.06,-975,-0.35,-5600,0.00,1 +198,Exit short,2025-03-13 20:00,M1P0Q0F0L0f0l0,5594.75,1,279537.5,-200,-0.07,0,775,0.28,-662.5,-0.24,-5800,0.00,1 +198,Entry short,2025-03-13 19:00,M1P0Q0F0L0f0l0,5590.75,1,279537.5,-200,-0.07,0,775,0.28,-662.5,-0.24,-5800,0.00,1 +199,Exit long,2025-03-13 21:00,M1P0Q0F0L0f0l0,5563,1,279737.5,-1587.5,-0.57,0,400,0.14,-1900,-0.68,-7387.5,0.00,1 +199,Entry long,2025-03-13 20:00,M1P0Q0F0L0f0l0,5594.75,1,279737.5,-1587.5,-0.57,0,400,0.14,-1900,-0.68,-7387.5,0.00,1 +200,Exit short,2025-03-13 22:00,M1P0Q0F0L0f0l0,5572.75,1,278150,-487.5,-0.18,0,300,0.11,-2037.5,-0.73,-7875,0.00,1 +200,Entry short,2025-03-13 21:00,M1P0Q0F0L0f0l0,5563,1,278150,-487.5,-0.18,0,300,0.11,-2037.5,-0.73,-7875,0.00,1 +201,Exit long,2025-03-13 23:00,M1P0Q0F0L0f0l0,5537.75,1,278637.5,-1750,-0.63,0,487.5,0.17,-1825,-0.65,-9625,0.00,1 +201,Entry long,2025-03-13 22:00,M1P0Q0F0L0f0l0,5572.75,1,278637.5,-1750,-0.63,0,487.5,0.17,-1825,-0.65,-9625,0.00,1 +202,Exit short,2025-03-14 00:00,M1P0Q0F0L0f0l0,5538.75,1,276887.5,-50,-0.02,0,600,0.22,-1050,-0.38,-9675,0.00,1 +202,Entry short,2025-03-13 23:00,M1P0Q0F0L0f0l0,5537.75,1,276887.5,-50,-0.02,0,600,0.22,-1050,-0.38,-9675,0.00,1 +203,Exit long,2025-03-14 01:00,M1P0Q0F0L0f0l0,5513.25,1,276937.5,-1275,-0.46,0,362.5,0.13,-1475,-0.53,-10950,0.00,1 +203,Entry long,2025-03-14 00:00,M1P0Q0F0L0f0l0,5538.75,1,276937.5,-1275,-0.46,0,362.5,0.13,-1475,-0.53,-10950,0.00,1 +204,Exit short,2025-03-14 02:00,M1P0Q0F0L0f0l0,5552,1,275662.5,-1937.5,-0.70,0,62.5,0.02,-2112.5,-0.77,-12887.5,0.00,1 +204,Entry short,2025-03-14 01:00,M1P0Q0F0L0f0l0,5513.25,1,275662.5,-1937.5,-0.70,0,62.5,0.02,-2112.5,-0.77,-12887.5,0.00,1 +205,Exit long,2025-03-14 03:00,M1P0Q0F0L0f0l0,5528.25,1,277600,-1187.5,-0.43,0,350,0.13,-1900,-0.68,-14075,0.00,1 +205,Entry long,2025-03-14 02:00,M1P0Q0F0L0f0l0,5552,1,277600,-1187.5,-0.43,0,350,0.13,-1900,-0.68,-14075,0.00,1 +206,Exit short,2025-03-14 04:00,M1P0Q0F0L1f0l1,5537.5,1,276412.5,-462.5,-0.17,0,75,0.03,-837.5,-0.30,-14537.5,0.00,1 +206,Entry short,2025-03-14 03:00,M1P0Q0F0L0f0l0,5528.25,1,276412.5,-462.5,-0.17,0,75,0.03,-837.5,-0.30,-14537.5,0.00,1 +207,Exit long,2025-03-14 06:00,M1P0Q0F1L0f1l0,5552.5,1,276875,750,0.27,0,975,0.35,0,0.00,-13787.5,0.00,1 +207,Entry long,2025-03-14 04:00,M1P0Q0F0L1f0l1,5537.5,1,276875,750,0.27,0,975,0.35,0,0.00,-13787.5,0.00,1 +208,Exit short,2025-03-14 07:00,M1P0Q0F0L0f0l0,5552.75,1,277625,-12.5,0.00,0,112.5,0.04,-300,-0.11,-13800,0.00,1 +208,Entry short,2025-03-14 06:00,M1P0Q0F1L0f1l0,5552.5,1,277625,-12.5,0.00,0,112.5,0.04,-300,-0.11,-13800,0.00,1 +209,Exit long,2025-03-14 08:00,M1P0Q0F0L0f0l0,5561.75,1,277637.5,450,0.16,0,712.5,0.26,-262.5,-0.09,-13350,0.00,1 +209,Entry long,2025-03-14 07:00,M1P0Q0F0L0f0l0,5552.75,1,277637.5,450,0.16,0,712.5,0.26,-262.5,-0.09,-13350,0.00,1 +210,Exit short,2025-03-14 08:00,,5561.75,1,278087.5,0,0.00,0,0,0.00,0,0.00,-13350,0.00,0 +210,Entry short,2025-03-14 08:00,M1P0Q0F0L0f0l0,5561.75,1,278087.5,0,0.00,0,0,0.00,0,0.00,-13350,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/meta.json b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/meta.json new file mode 100644 index 0000000..348387a --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/meta.json @@ -0,0 +1,16 @@ +{ + "title": "CG-ISMARKET session flags", + "slug": "cgim-flags-es1-60-dst-nov", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T21:55:52.765Z", + "chart": { + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-10-26", + "to": "2025-11-07" + }, + "pine_sha256": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tv_trades_sha256": "b477e11c942c31189e03684ec3d700c1f7a45e7f78c2e2e8f932f59c23fd51d8", + "tv_trades_rows": 418 +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/metrics.json b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/metrics.json new file mode 100644 index 0000000..7170fdf --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "cgim-flags-es1-60-dst-nov", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-10-26", + "to": "2025-11-07", + "deepBacktesting": true, + "trades": 209, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tvTradesCsvHash": "b477e11c942c31189e03684ec3d700c1f7a45e7f78c2e2e8f932f59c23fd51d8", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74598", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "requestedRange": { + "from": 1761436800000, + "to": 1762473600000 + }, + "returnedRange": { + "from": 1761516000000, + "to": 1762473600000 + }, + "rangeProof": "covered", + "rawFrameSha256": "a91c73c7b92ecf6ec246e154880fc6d4078c57bad76023a35b6cc497999201e5", + "decodedReportSha256": "09fe68e49a40dd98365cd01b88caa4ca996e0e9a1591ebb608561f1c3dffce17", + "closedTrades": 209, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T21:55:52.764Z" +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/strategy.pine b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/strategy.pine new file mode 100644 index 0000000..0740da1 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/strategy.pine @@ -0,0 +1,22 @@ +// CG-ISMARKET: which session.* flags does TradingView set on each chart bar? +// process_orders_on_close=true: every bar reverses the position at its own +// close, so every trade's ENTRY is one chart bar (TradingView dates a +// process_orders_on_close fill at the bar's open) and the entry's Signal (its +// comment) carries the flags TradingView evaluated on that bar, a letter and a +// digit each: M session.ismarket, P session.ispremarket, Q session.ispostmarket, +// F session.isfirstbar, L session.islastbar, f session.isfirstbar_regular, +// l session.islastbar_regular (1 true, 0 false). +//@version=6 +strategy("CG-ISMARKET session flags", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +bit(bool x) => x ? "1" : "0" +flag = "M" + bit(session.ismarket) + "P" + bit(session.ispremarket) + "Q" + bit(session.ispostmarket) + + "F" + bit(session.isfirstbar) + "L" + bit(session.islastbar) + + "f" + bit(session.isfirstbar_regular) + "l" + bit(session.islastbar_regular) +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/tv_trades.csv b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/tv_trades.csv new file mode 100644 index 0000000..3387425 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-dst-nov/tv_trades.csv @@ -0,0 +1,419 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-10-27 07:00,M1P0Q0F0L0f0l0,6870.75,1,343600,-62.5,-0.02,0,237.5,0.07,-162.5,-0.05,-62.5,0.00,1 +1,Entry long,2025-10-27 06:00,M1P0Q0F1L0f1l0,6872,1,343600,-62.5,-0.02,0,237.5,0.07,-162.5,-0.05,-62.5,0.00,1 +2,Exit short,2025-10-27 08:00,M1P0Q0F0L0f0l0,6872.25,1,343537.5,-75,-0.02,0,75,0.02,-300,-0.09,-137.5,0.00,1 +2,Entry short,2025-10-27 07:00,M1P0Q0F0L0f0l0,6870.75,1,343537.5,-75,-0.02,0,75,0.02,-300,-0.09,-137.5,0.00,1 +3,Exit long,2025-10-27 09:00,M1P0Q0F0L0f0l0,6869.5,1,343612.5,-137.5,-0.04,0,50,0.01,-150,-0.04,-275,0.00,1 +3,Entry long,2025-10-27 08:00,M1P0Q0F0L0f0l0,6872.25,1,343612.5,-137.5,-0.04,0,50,0.01,-150,-0.04,-275,0.00,1 +4,Exit short,2025-10-27 10:00,M1P0Q0F0L0f0l0,6875,1,343475,-275,-0.08,0,100,0.03,-287.5,-0.08,-550,0.00,1 +4,Entry short,2025-10-27 09:00,M1P0Q0F0L0f0l0,6869.5,1,343475,-275,-0.08,0,100,0.03,-287.5,-0.08,-550,0.00,1 +5,Exit long,2025-10-27 11:00,M1P0Q0F0L0f0l0,6878.5,1,343750,175,0.05,0,312.5,0.09,-37.5,-0.01,-375,0.00,1 +5,Entry long,2025-10-27 10:00,M1P0Q0F0L0f0l0,6875,1,343750,175,0.05,0,312.5,0.09,-37.5,-0.01,-375,0.00,1 +6,Exit short,2025-10-27 12:00,M1P0Q0F0L0f0l0,6879.25,1,343925,-37.5,-0.01,0,75,0.02,-100,-0.03,-412.5,0.00,1 +6,Entry short,2025-10-27 11:00,M1P0Q0F0L0f0l0,6878.5,1,343925,-37.5,-0.01,0,75,0.02,-100,-0.03,-412.5,0.00,1 +7,Exit long,2025-10-27 13:00,M1P0Q0F0L0f0l0,6882.75,1,343962.5,175,0.05,0,225,0.07,-12.5,0.00,-237.5,0.00,1 +7,Entry long,2025-10-27 12:00,M1P0Q0F0L0f0l0,6879.25,1,343962.5,175,0.05,0,225,0.07,-12.5,0.00,-237.5,0.00,1 +8,Exit short,2025-10-27 14:00,M1P0Q0F0L0f0l0,6884.5,1,344137.5,-87.5,-0.03,0,25,0.01,-275,-0.08,-325,0.00,1 +8,Entry short,2025-10-27 13:00,M1P0Q0F0L0f0l0,6882.75,1,344137.5,-87.5,-0.03,0,25,0.01,-275,-0.08,-325,0.00,1 +9,Exit long,2025-10-27 15:00,M1P0Q0F0L0f0l0,6882.75,1,344225,-87.5,-0.03,0,225,0.07,-87.5,-0.03,-412.5,0.00,1 +9,Entry long,2025-10-27 14:00,M1P0Q0F0L0f0l0,6884.5,1,344225,-87.5,-0.03,0,225,0.07,-87.5,-0.03,-412.5,0.00,1 +10,Exit short,2025-10-27 16:00,M1P0Q0F0L0f0l0,6881,1,344137.5,87.5,0.03,0,312.5,0.09,-75,-0.02,-325,0.00,1 +10,Entry short,2025-10-27 15:00,M1P0Q0F0L0f0l0,6882.75,1,344137.5,87.5,0.03,0,312.5,0.09,-75,-0.02,-325,0.00,1 +11,Exit long,2025-10-27 17:00,M1P0Q0F0L0f0l0,6887,1,344050,300,0.09,0,300,0.09,-112.5,-0.03,-25,0.00,1 +11,Entry long,2025-10-27 16:00,M1P0Q0F0L0f0l0,6881,1,344050,300,0.09,0,300,0.09,-112.5,-0.03,-25,0.00,1 +12,Exit short,2025-10-27 18:00,M1P0Q0F0L0f0l0,6886.5,1,344350,25,0.01,0,150,0.04,-75,-0.02,0,0.00,1 +12,Entry short,2025-10-27 17:00,M1P0Q0F0L0f0l0,6887,1,344350,25,0.01,0,150,0.04,-75,-0.02,0,0.00,1 +13,Exit long,2025-10-27 19:00,M1P0Q0F0L0f0l0,6880.25,1,344325,-312.5,-0.09,0,125,0.04,-387.5,-0.11,-312.5,0.00,1 +13,Entry long,2025-10-27 18:00,M1P0Q0F0L0f0l0,6886.5,1,344325,-312.5,-0.09,0,125,0.04,-387.5,-0.11,-312.5,0.00,1 +14,Exit short,2025-10-27 20:00,M1P0Q0F0L0f0l0,6883,1,344012.5,-137.5,-0.04,0,50,0.01,-250,-0.07,-450,0.00,1 +14,Entry short,2025-10-27 19:00,M1P0Q0F0L0f0l0,6880.25,1,344012.5,-137.5,-0.04,0,50,0.01,-250,-0.07,-450,0.00,1 +15,Exit long,2025-10-27 21:00,M1P0Q0F0L0f0l0,6886.75,1,344150,187.5,0.05,0,300,0.09,-300,-0.09,-262.5,0.00,1 +15,Entry long,2025-10-27 20:00,M1P0Q0F0L0f0l0,6883,1,344150,187.5,0.05,0,300,0.09,-300,-0.09,-262.5,0.00,1 +16,Exit short,2025-10-27 22:00,M1P0Q0F0L0f0l0,6883,1,344337.5,187.5,0.05,0,350,0.10,-287.5,-0.08,-75,0.00,1 +16,Entry short,2025-10-27 21:00,M1P0Q0F0L0f0l0,6886.75,1,344337.5,187.5,0.05,0,350,0.10,-287.5,-0.08,-75,0.00,1 +17,Exit long,2025-10-27 23:00,M1P0Q0F0L0f0l0,6890.25,1,344150,362.5,0.11,0,462.5,0.13,-87.5,-0.03,287.5,0.00,1 +17,Entry long,2025-10-27 22:00,M1P0Q0F0L0f0l0,6883,1,344150,362.5,0.11,0,462.5,0.13,-87.5,-0.03,287.5,0.00,1 +18,Exit short,2025-10-28 00:00,M1P0Q0F0L0f0l0,6893.75,1,344512.5,-175,-0.05,0,25,0.01,-237.5,-0.07,112.5,0.00,1 +18,Entry short,2025-10-27 23:00,M1P0Q0F0L0f0l0,6890.25,1,344512.5,-175,-0.05,0,25,0.01,-237.5,-0.07,112.5,0.00,1 +19,Exit long,2025-10-28 01:00,M1P0Q0F0L0f0l0,6895.5,1,344687.5,87.5,0.03,0,112.5,0.03,-300,-0.09,200,0.00,1 +19,Entry long,2025-10-28 00:00,M1P0Q0F0L0f0l0,6893.75,1,344687.5,87.5,0.03,0,112.5,0.03,-300,-0.09,200,0.00,1 +20,Exit short,2025-10-28 02:00,M1P0Q0F0L0f0l0,6897.5,1,344775,-100,-0.03,0,87.5,0.03,-162.5,-0.05,100,0.00,1 +20,Entry short,2025-10-28 01:00,M1P0Q0F0L0f0l0,6895.5,1,344775,-100,-0.03,0,87.5,0.03,-162.5,-0.05,100,0.00,1 +21,Exit long,2025-10-28 03:00,M1P0Q0F0L0f0l0,6907.5,1,344875,500,0.14,0,712.5,0.21,-62.5,-0.02,600,0.00,1 +21,Entry long,2025-10-28 02:00,M1P0Q0F0L0f0l0,6897.5,1,344875,500,0.14,0,712.5,0.21,-62.5,-0.02,600,0.00,1 +22,Exit short,2025-10-28 04:00,M1P0Q0F0L1f0l1,6914,1,345375,-325,-0.09,0,25,0.01,-437.5,-0.13,275,0.00,1 +22,Entry short,2025-10-28 03:00,M1P0Q0F0L0f0l0,6907.5,1,345375,-325,-0.09,0,25,0.01,-437.5,-0.13,275,0.00,1 +23,Exit long,2025-10-28 06:00,M1P0Q0F1L0f1l0,6911.75,1,345700,-112.5,-0.03,0,0,0.00,-187.5,-0.05,162.5,0.00,1 +23,Entry long,2025-10-28 04:00,M1P0Q0F0L1f0l1,6914,1,345700,-112.5,-0.03,0,0,0.00,-187.5,-0.05,162.5,0.00,1 +24,Exit short,2025-10-28 07:00,M1P0Q0F0L0f0l0,6911,1,345587.5,37.5,0.01,0,50,0.01,-300,-0.09,200,0.00,1 +24,Entry short,2025-10-28 06:00,M1P0Q0F1L0f1l0,6911.75,1,345587.5,37.5,0.01,0,50,0.01,-300,-0.09,200,0.00,1 +25,Exit long,2025-10-28 08:00,M1P0Q0F0L0f0l0,6909,1,345550,-100,-0.03,0,50,0.01,-125,-0.04,100,0.00,1 +25,Entry long,2025-10-28 07:00,M1P0Q0F0L0f0l0,6911,1,345550,-100,-0.03,0,50,0.01,-125,-0.04,100,0.00,1 +26,Exit short,2025-10-28 09:00,M1P0Q0F0L0f0l0,6907.25,1,345450,87.5,0.03,0,150,0.04,-62.5,-0.02,187.5,0.00,1 +26,Entry short,2025-10-28 08:00,M1P0Q0F0L0f0l0,6909,1,345450,87.5,0.03,0,150,0.04,-62.5,-0.02,187.5,0.00,1 +27,Exit long,2025-10-28 10:00,M1P0Q0F0L0f0l0,6907.75,1,345362.5,25,0.01,0,100,0.03,-100,-0.03,212.5,0.00,1 +27,Entry long,2025-10-28 09:00,M1P0Q0F0L0f0l0,6907.25,1,345362.5,25,0.01,0,100,0.03,-100,-0.03,212.5,0.00,1 +28,Exit short,2025-10-28 11:00,M1P0Q0F0L0f0l0,6908.25,1,345387.5,-25,-0.01,0,87.5,0.03,-112.5,-0.03,187.5,0.00,1 +28,Entry short,2025-10-28 10:00,M1P0Q0F0L0f0l0,6907.75,1,345387.5,-25,-0.01,0,87.5,0.03,-112.5,-0.03,187.5,0.00,1 +29,Exit long,2025-10-28 12:00,M1P0Q0F0L0f0l0,6905,1,345412.5,-162.5,-0.05,0,37.5,0.01,-175,-0.05,25,0.00,1 +29,Entry long,2025-10-28 11:00,M1P0Q0F0L0f0l0,6908.25,1,345412.5,-162.5,-0.05,0,37.5,0.01,-175,-0.05,25,0.00,1 +30,Exit short,2025-10-28 13:00,M1P0Q0F0L0f0l0,6904.75,1,345250,12.5,0.00,0,137.5,0.04,-75,-0.02,37.5,0.00,1 +30,Entry short,2025-10-28 12:00,M1P0Q0F0L0f0l0,6905,1,345250,12.5,0.00,0,137.5,0.04,-75,-0.02,37.5,0.00,1 +31,Exit long,2025-10-28 14:00,M1P0Q0F0L0f0l0,6903.75,1,345237.5,-50,-0.01,0,250,0.07,-62.5,-0.02,-12.5,0.00,1 +31,Entry long,2025-10-28 13:00,M1P0Q0F0L0f0l0,6904.75,1,345237.5,-50,-0.01,0,250,0.07,-62.5,-0.02,-12.5,0.00,1 +32,Exit short,2025-10-28 15:00,M1P0Q0F0L0f0l0,6903.5,1,345187.5,12.5,0.00,0,75,0.02,-250,-0.07,0,0.00,1 +32,Entry short,2025-10-28 14:00,M1P0Q0F0L0f0l0,6903.75,1,345187.5,12.5,0.00,0,75,0.02,-250,-0.07,0,0.00,1 +33,Exit long,2025-10-28 16:00,M1P0Q0F0L0f0l0,6906.75,1,345175,162.5,0.05,0,225,0.07,-100,-0.03,162.5,0.00,1 +33,Entry long,2025-10-28 15:00,M1P0Q0F0L0f0l0,6903.5,1,345175,162.5,0.05,0,225,0.07,-100,-0.03,162.5,0.00,1 +34,Exit short,2025-10-28 17:00,M1P0Q0F0L0f0l0,6907.25,1,345337.5,-25,-0.01,0,137.5,0.04,-75,-0.02,137.5,0.00,1 +34,Entry short,2025-10-28 16:00,M1P0Q0F0L0f0l0,6906.75,1,345337.5,-25,-0.01,0,137.5,0.04,-75,-0.02,137.5,0.00,1 +35,Exit long,2025-10-28 18:00,M1P0Q0F0L0f0l0,6907.5,1,345362.5,12.5,0.00,0,162.5,0.05,-62.5,-0.02,150,0.00,1 +35,Entry long,2025-10-28 17:00,M1P0Q0F0L0f0l0,6907.25,1,345362.5,12.5,0.00,0,162.5,0.05,-62.5,-0.02,150,0.00,1 +36,Exit short,2025-10-28 19:00,M1P0Q0F0L0f0l0,6912.5,1,345375,-250,-0.07,0,25,0.01,-325,-0.09,-100,0.00,1 +36,Entry short,2025-10-28 18:00,M1P0Q0F0L0f0l0,6907.5,1,345375,-250,-0.07,0,25,0.01,-325,-0.09,-100,0.00,1 +37,Exit long,2025-10-28 20:00,M1P0Q0F0L0f0l0,6916,1,345625,175,0.05,0,287.5,0.08,-12.5,0.00,75,0.00,1 +37,Entry long,2025-10-28 19:00,M1P0Q0F0L0f0l0,6912.5,1,345625,175,0.05,0,287.5,0.08,-12.5,0.00,75,0.00,1 +38,Exit short,2025-10-28 21:00,M1P0Q0F0L0f0l0,6911.5,1,345800,225,0.07,0,462.5,0.13,-575,-0.17,300,0.00,1 +38,Entry short,2025-10-28 20:00,M1P0Q0F0L0f0l0,6916,1,345800,225,0.07,0,462.5,0.13,-575,-0.17,300,0.00,1 +39,Exit long,2025-10-28 22:00,M1P0Q0F0L0f0l0,6913.75,1,345575,112.5,0.03,0,375,0.11,-75,-0.02,412.5,0.00,1 +39,Entry long,2025-10-28 21:00,M1P0Q0F0L0f0l0,6911.5,1,345575,112.5,0.03,0,375,0.11,-75,-0.02,412.5,0.00,1 +40,Exit short,2025-10-28 23:00,M1P0Q0F0L0f0l0,6911,1,345687.5,137.5,0.04,0,537.5,0.16,-187.5,-0.05,550,0.00,1 +40,Entry short,2025-10-28 22:00,M1P0Q0F0L0f0l0,6913.75,1,345687.5,137.5,0.04,0,537.5,0.16,-187.5,-0.05,550,0.00,1 +41,Exit long,2025-10-29 00:00,M1P0Q0F0L0f0l0,6924.25,1,345550,662.5,0.19,0,950,0.27,-12.5,0.00,1212.5,0.00,1 +41,Entry long,2025-10-28 23:00,M1P0Q0F0L0f0l0,6911,1,345550,662.5,0.19,0,950,0.27,-12.5,0.00,1212.5,0.00,1 +42,Exit short,2025-10-29 01:00,M1P0Q0F0L0f0l0,6931.5,1,346212.5,-362.5,-0.10,0,12.5,0.00,-412.5,-0.12,850,0.00,1 +42,Entry short,2025-10-29 00:00,M1P0Q0F0L0f0l0,6924.25,1,346212.5,-362.5,-0.10,0,12.5,0.00,-412.5,-0.12,850,0.00,1 +43,Exit long,2025-10-29 02:00,M1P0Q0F0L0f0l0,6937,1,346575,275,0.08,0,412.5,0.12,-25,-0.01,1125,0.00,1 +43,Entry long,2025-10-29 01:00,M1P0Q0F0L0f0l0,6931.5,1,346575,275,0.08,0,412.5,0.12,-25,-0.01,1125,0.00,1 +44,Exit short,2025-10-29 03:00,M1P0Q0F0L0f0l0,6925.5,1,346850,575,0.17,0,637.5,0.18,-387.5,-0.11,1700,0.00,1 +44,Entry short,2025-10-29 02:00,M1P0Q0F0L0f0l0,6937,1,346850,575,0.17,0,637.5,0.18,-387.5,-0.11,1700,0.00,1 +45,Exit long,2025-10-29 04:00,M1P0Q0F0L1f0l1,6927.5,1,346275,100,0.03,0,125,0.04,-200,-0.06,1800,0.00,1 +45,Entry long,2025-10-29 03:00,M1P0Q0F0L0f0l0,6925.5,1,346275,100,0.03,0,125,0.04,-200,-0.06,1800,0.00,1 +46,Exit short,2025-10-29 06:00,M1P0Q0F1L0f1l0,6926,1,346375,75,0.02,0,112.5,0.03,-200,-0.06,1875,0.00,1 +46,Entry short,2025-10-29 04:00,M1P0Q0F0L1f0l1,6927.5,1,346375,75,0.02,0,112.5,0.03,-200,-0.06,1875,0.00,1 +47,Exit long,2025-10-29 07:00,M1P0Q0F0L0f0l0,6927.75,1,346300,87.5,0.03,0,150,0.04,-75,-0.02,1962.5,0.00,1 +47,Entry long,2025-10-29 06:00,M1P0Q0F1L0f1l0,6926,1,346300,87.5,0.03,0,150,0.04,-75,-0.02,1962.5,0.00,1 +48,Exit short,2025-10-29 08:00,M1P0Q0F0L0f0l0,6926,1,346387.5,87.5,0.03,0,162.5,0.05,-137.5,-0.04,2050,0.00,1 +48,Entry short,2025-10-29 07:00,M1P0Q0F0L0f0l0,6927.75,1,346387.5,87.5,0.03,0,162.5,0.05,-137.5,-0.04,2050,0.00,1 +49,Exit long,2025-10-29 09:00,M1P0Q0F0L0f0l0,6932.75,1,346300,337.5,0.10,0,450,0.13,-25,-0.01,2387.5,0.00,1 +49,Entry long,2025-10-29 08:00,M1P0Q0F0L0f0l0,6926,1,346300,337.5,0.10,0,450,0.13,-25,-0.01,2387.5,0.00,1 +50,Exit short,2025-10-29 10:00,M1P0Q0F0L0f0l0,6937.5,1,346637.5,-237.5,-0.07,0,12.5,0.00,-362.5,-0.10,2150,0.00,1 +50,Entry short,2025-10-29 09:00,M1P0Q0F0L0f0l0,6932.75,1,346637.5,-237.5,-0.07,0,12.5,0.00,-362.5,-0.10,2150,0.00,1 +51,Exit long,2025-10-29 11:00,M1P0Q0F0L0f0l0,6938,1,346875,25,0.01,0,87.5,0.03,-150,-0.04,2175,0.00,1 +51,Entry long,2025-10-29 10:00,M1P0Q0F0L0f0l0,6937.5,1,346875,25,0.01,0,87.5,0.03,-150,-0.04,2175,0.00,1 +52,Exit short,2025-10-29 12:00,M1P0Q0F0L0f0l0,6938.75,1,346900,-37.5,-0.01,0,250,0.07,-62.5,-0.02,2137.5,0.00,1 +52,Entry short,2025-10-29 11:00,M1P0Q0F0L0f0l0,6938,1,346900,-37.5,-0.01,0,250,0.07,-62.5,-0.02,2137.5,0.00,1 +53,Exit long,2025-10-29 13:00,M1P0Q0F0L0f0l0,6940.5,1,346937.5,87.5,0.03,0,125,0.04,-25,-0.01,2225,0.00,1 +53,Entry long,2025-10-29 12:00,M1P0Q0F0L0f0l0,6938.75,1,346937.5,87.5,0.03,0,125,0.04,-25,-0.01,2225,0.00,1 +54,Exit short,2025-10-29 14:00,M1P0Q0F0L0f0l0,6943,1,347025,-125,-0.04,0,50,0.01,-175,-0.05,2100,0.00,1 +54,Entry short,2025-10-29 13:00,M1P0Q0F0L0f0l0,6940.5,1,347025,-125,-0.04,0,50,0.01,-175,-0.05,2100,0.00,1 +55,Exit long,2025-10-29 15:00,M1P0Q0F0L0f0l0,6945,1,347150,100,0.03,0,125,0.04,-175,-0.05,2200,0.00,1 +55,Entry long,2025-10-29 14:00,M1P0Q0F0L0f0l0,6943,1,347150,100,0.03,0,125,0.04,-175,-0.05,2200,0.00,1 +56,Exit short,2025-10-29 16:00,M1P0Q0F0L0f0l0,6937.25,1,347250,387.5,0.11,0,462.5,0.13,-212.5,-0.06,2587.5,0.00,1 +56,Entry short,2025-10-29 15:00,M1P0Q0F0L0f0l0,6945,1,347250,387.5,0.11,0,462.5,0.13,-212.5,-0.06,2587.5,0.00,1 +57,Exit long,2025-10-29 17:00,M1P0Q0F0L0f0l0,6935.75,1,346862.5,-75,-0.02,0,25,0.01,-325,-0.09,2512.5,0.00,1 +57,Entry long,2025-10-29 16:00,M1P0Q0F0L0f0l0,6937.25,1,346862.5,-75,-0.02,0,25,0.01,-325,-0.09,2512.5,0.00,1 +58,Exit short,2025-10-29 18:00,M1P0Q0F0L0f0l0,6938.75,1,346787.5,-150,-0.04,0,62.5,0.02,-337.5,-0.10,2362.5,0.00,1 +58,Entry short,2025-10-29 17:00,M1P0Q0F0L0f0l0,6935.75,1,346787.5,-150,-0.04,0,62.5,0.02,-337.5,-0.10,2362.5,0.00,1 +59,Exit long,2025-10-29 19:00,M1P0Q0F0L0f0l0,6943,1,346937.5,212.5,0.06,0,487.5,0.14,-100,-0.03,2575,0.00,1 +59,Entry long,2025-10-29 18:00,M1P0Q0F0L0f0l0,6938.75,1,346937.5,212.5,0.06,0,487.5,0.14,-100,-0.03,2575,0.00,1 +60,Exit short,2025-10-29 20:00,M1P0Q0F0L0f0l0,6942,1,347150,50,0.01,0,275,0.08,-150,-0.04,2625,0.00,1 +60,Entry short,2025-10-29 19:00,M1P0Q0F0L0f0l0,6943,1,347150,50,0.01,0,275,0.08,-150,-0.04,2625,0.00,1 +61,Exit long,2025-10-29 21:00,M1P0Q0F0L0f0l0,6950.75,1,347100,437.5,0.13,0,487.5,0.14,-287.5,-0.08,3062.5,0.00,1 +61,Entry long,2025-10-29 20:00,M1P0Q0F0L0f0l0,6942,1,347100,437.5,0.13,0,487.5,0.14,-287.5,-0.08,3062.5,0.00,1 +62,Exit short,2025-10-29 22:00,M1P0Q0F0L0f0l0,6938,1,347537.5,637.5,0.18,0,912.5,0.26,-62.5,-0.02,3700,0.00,1 +62,Entry short,2025-10-29 21:00,M1P0Q0F0L0f0l0,6950.75,1,347537.5,637.5,0.18,0,912.5,0.26,-62.5,-0.02,3700,0.00,1 +63,Exit long,2025-10-29 23:00,M1P0Q0F0L0f0l0,6934.75,1,346900,-162.5,-0.05,0,237.5,0.07,-262.5,-0.08,3537.5,0.00,1 +63,Entry long,2025-10-29 22:00,M1P0Q0F0L0f0l0,6938,1,346900,-162.5,-0.05,0,237.5,0.07,-262.5,-0.08,3537.5,0.00,1 +64,Exit short,2025-10-30 00:00,M1P0Q0F0L0f0l0,6940,1,346737.5,-262.5,-0.08,0,250,0.07,-387.5,-0.11,3275,0.00,1 +64,Entry short,2025-10-29 23:00,M1P0Q0F0L0f0l0,6934.75,1,346737.5,-262.5,-0.08,0,250,0.07,-387.5,-0.11,3275,0.00,1 +65,Exit long,2025-10-30 01:00,M1P0Q0F0L0f0l0,6935,1,347000,-250,-0.07,0,125,0.04,-475,-0.14,3025,0.00,1 +65,Entry long,2025-10-30 00:00,M1P0Q0F0L0f0l0,6940,1,347000,-250,-0.07,0,125,0.04,-475,-0.14,3025,0.00,1 +66,Exit short,2025-10-30 02:00,M1P0Q0F0L0f0l0,6914.75,1,346750,1012.5,0.29,0,2637.5,0.76,-475,-0.14,4037.5,0.00,1 +66,Entry short,2025-10-30 01:00,M1P0Q0F0L0f0l0,6935,1,346750,1012.5,0.29,0,2637.5,0.76,-475,-0.14,4037.5,0.00,1 +67,Exit long,2025-10-30 03:00,M1P0Q0F0L0f0l0,6928,1,345737.5,662.5,0.19,0,700,0.20,-987.5,-0.29,4700,0.00,1 +67,Entry long,2025-10-30 02:00,M1P0Q0F0L0f0l0,6914.75,1,345737.5,662.5,0.19,0,700,0.20,-987.5,-0.29,4700,0.00,1 +68,Exit short,2025-10-30 04:00,M1P0Q0F0L1f0l1,6918,1,346400,500,0.14,0,1125,0.32,-875,-0.25,5200,0.00,1 +68,Entry short,2025-10-30 03:00,M1P0Q0F0L0f0l0,6928,1,346400,500,0.14,0,1125,0.32,-875,-0.25,5200,0.00,1 +69,Exit long,2025-10-30 06:00,M1P0Q0F1L0f1l0,6913,1,345900,-250,-0.07,0,212.5,0.06,-775,-0.22,4950,0.00,1 +69,Entry long,2025-10-30 04:00,M1P0Q0F0L1f0l1,6918,1,345900,-250,-0.07,0,212.5,0.06,-775,-0.22,4950,0.00,1 +70,Exit short,2025-10-30 07:00,M1P0Q0F0L0f0l0,6922.25,1,345650,-462.5,-0.13,0,237.5,0.07,-587.5,-0.17,4487.5,0.00,1 +70,Entry short,2025-10-30 06:00,M1P0Q0F1L0f1l0,6913,1,345650,-462.5,-0.13,0,237.5,0.07,-587.5,-0.17,4487.5,0.00,1 +71,Exit long,2025-10-30 08:00,M1P0Q0F0L0f0l0,6933,1,346112.5,537.5,0.16,0,887.5,0.26,0,0.00,5025,0.00,1 +71,Entry long,2025-10-30 07:00,M1P0Q0F0L0f0l0,6922.25,1,346112.5,537.5,0.16,0,887.5,0.26,0,0.00,5025,0.00,1 +72,Exit short,2025-10-30 09:00,M1P0Q0F0L0f0l0,6935.75,1,346650,-137.5,-0.04,0,337.5,0.10,-312.5,-0.09,4887.5,0.00,1 +72,Entry short,2025-10-30 08:00,M1P0Q0F0L0f0l0,6933,1,346650,-137.5,-0.04,0,337.5,0.10,-312.5,-0.09,4887.5,0.00,1 +73,Exit long,2025-10-30 10:00,M1P0Q0F0L0f0l0,6944.25,1,346787.5,425,0.12,0,650,0.19,-12.5,0.00,5312.5,0.00,1 +73,Entry long,2025-10-30 09:00,M1P0Q0F0L0f0l0,6935.75,1,346787.5,425,0.12,0,650,0.19,-12.5,0.00,5312.5,0.00,1 +74,Exit short,2025-10-30 11:00,M1P0Q0F0L0f0l0,6948,1,347212.5,-187.5,-0.05,0,12.5,0.00,-475,-0.14,5125,0.00,1 +74,Entry short,2025-10-30 10:00,M1P0Q0F0L0f0l0,6944.25,1,347212.5,-187.5,-0.05,0,12.5,0.00,-475,-0.14,5125,0.00,1 +75,Exit long,2025-10-30 12:00,M1P0Q0F0L0f0l0,6914.25,1,347400,-1687.5,-0.49,0,50,0.01,-2350,-0.68,3437.5,0.00,1 +75,Entry long,2025-10-30 11:00,M1P0Q0F0L0f0l0,6948,1,347400,-1687.5,-0.49,0,50,0.01,-2350,-0.68,3437.5,0.00,1 +76,Exit short,2025-10-30 13:00,M1P0Q0F0L0f0l0,6929.75,1,345712.5,-775,-0.22,0,100,0.03,-1237.5,-0.36,2662.5,0.00,1 +76,Entry short,2025-10-30 12:00,M1P0Q0F0L0f0l0,6914.25,1,345712.5,-775,-0.22,0,100,0.03,-1237.5,-0.36,2662.5,0.00,1 +77,Exit long,2025-10-30 14:00,M1P0Q0F0L0f0l0,6919.25,1,346487.5,-525,-0.15,0,25,0.01,-687.5,-0.20,2137.5,0.00,1 +77,Entry long,2025-10-30 13:00,M1P0Q0F0L0f0l0,6929.75,1,346487.5,-525,-0.15,0,25,0.01,-687.5,-0.20,2137.5,0.00,1 +78,Exit short,2025-10-30 15:00,M1P0Q0F0L0f0l0,6927.25,1,345962.5,-400,-0.12,0,375,0.11,-675,-0.20,1737.5,0.00,1 +78,Entry short,2025-10-30 14:00,M1P0Q0F0L0f0l0,6919.25,1,345962.5,-400,-0.12,0,375,0.11,-675,-0.20,1737.5,0.00,1 +79,Exit long,2025-10-30 16:00,M1P0Q0F0L0f0l0,6922,1,346362.5,-262.5,-0.08,0,112.5,0.03,-562.5,-0.16,1475,0.00,1 +79,Entry long,2025-10-30 15:00,M1P0Q0F0L0f0l0,6927.25,1,346362.5,-262.5,-0.08,0,112.5,0.03,-562.5,-0.16,1475,0.00,1 +80,Exit short,2025-10-30 17:00,M1P0Q0F0L0f0l0,6908.25,1,346100,687.5,0.20,0,812.5,0.23,-187.5,-0.05,2162.5,0.00,1 +80,Entry short,2025-10-30 16:00,M1P0Q0F0L0f0l0,6922,1,346100,687.5,0.20,0,812.5,0.23,-187.5,-0.05,2162.5,0.00,1 +81,Exit long,2025-10-30 18:00,M1P0Q0F0L0f0l0,6918,1,345412.5,487.5,0.14,0,600,0.17,-75,-0.02,2650,0.00,1 +81,Entry long,2025-10-30 17:00,M1P0Q0F0L0f0l0,6908.25,1,345412.5,487.5,0.14,0,600,0.17,-75,-0.02,2650,0.00,1 +82,Exit short,2025-10-30 19:00,M1P0Q0F0L0f0l0,6921.75,1,345900,-187.5,-0.05,0,75,0.02,-587.5,-0.17,2462.5,0.00,1 +82,Entry short,2025-10-30 18:00,M1P0Q0F0L0f0l0,6918,1,345900,-187.5,-0.05,0,75,0.02,-587.5,-0.17,2462.5,0.00,1 +83,Exit long,2025-10-30 20:00,M1P0Q0F0L0f0l0,6891,1,346087.5,-1537.5,-0.44,0,150,0.04,-1562.5,-0.45,925,0.00,1 +83,Entry long,2025-10-30 19:00,M1P0Q0F0L0f0l0,6921.75,1,346087.5,-1537.5,-0.44,0,150,0.04,-1562.5,-0.45,925,0.00,1 +84,Exit short,2025-10-30 21:00,M1P0Q0F0L0f0l0,6904.25,1,344550,-662.5,-0.19,0,1162.5,0.34,-987.5,-0.29,262.5,0.00,1 +84,Entry short,2025-10-30 20:00,M1P0Q0F0L0f0l0,6891,1,344550,-662.5,-0.19,0,1162.5,0.34,-987.5,-0.29,262.5,0.00,1 +85,Exit long,2025-10-30 22:00,M1P0Q0F0L0f0l0,6898.25,1,345212.5,-300,-0.09,0,475,0.14,-900,-0.26,-37.5,0.00,1 +85,Entry long,2025-10-30 21:00,M1P0Q0F0L0f0l0,6904.25,1,345212.5,-300,-0.09,0,475,0.14,-900,-0.26,-37.5,0.00,1 +86,Exit short,2025-10-30 23:00,M1P0Q0F0L0f0l0,6887.75,1,344912.5,525,0.15,0,725,0.21,-562.5,-0.16,487.5,0.00,1 +86,Entry short,2025-10-30 22:00,M1P0Q0F0L0f0l0,6898.25,1,344912.5,525,0.15,0,725,0.21,-562.5,-0.16,487.5,0.00,1 +87,Exit long,2025-10-31 00:00,M1P0Q0F0L0f0l0,6898.25,1,344387.5,525,0.15,0,900,0.26,-87.5,-0.03,1012.5,0.00,1 +87,Entry long,2025-10-30 23:00,M1P0Q0F0L0f0l0,6887.75,1,344387.5,525,0.15,0,900,0.26,-87.5,-0.03,1012.5,0.00,1 +88,Exit short,2025-10-31 01:00,M1P0Q0F0L0f0l0,6898.25,1,344912.5,0,0.00,0,712.5,0.21,-112.5,-0.03,1012.5,0.00,1 +88,Entry short,2025-10-31 00:00,M1P0Q0F0L0f0l0,6898.25,1,344912.5,0,0.00,0,712.5,0.21,-112.5,-0.03,1012.5,0.00,1 +89,Exit long,2025-10-31 02:00,M1P0Q0F0L0f0l0,6877.5,1,344912.5,-1037.5,-0.30,0,0,0.00,-1150,-0.33,-25,0.00,1 +89,Entry long,2025-10-31 01:00,M1P0Q0F0L0f0l0,6898.25,1,344912.5,-1037.5,-0.30,0,0,0.00,-1150,-0.33,-25,0.00,1 +90,Exit short,2025-10-31 03:00,M1P0Q0F0L0f0l0,6853.75,1,343875,1187.5,0.35,0,1250,0.36,-37.5,-0.01,1162.5,0.00,1 +90,Entry short,2025-10-31 02:00,M1P0Q0F0L0f0l0,6877.5,1,343875,1187.5,0.35,0,1250,0.36,-37.5,-0.01,1162.5,0.00,1 +91,Exit long,2025-10-31 04:00,M1P0Q0F0L1f0l1,6894,1,342687.5,2012.5,0.59,0,2137.5,0.62,-137.5,-0.04,3175,0.00,1 +91,Entry long,2025-10-31 03:00,M1P0Q0F0L0f0l0,6853.75,1,342687.5,2012.5,0.59,0,2137.5,0.62,-137.5,-0.04,3175,0.00,1 +92,Exit short,2025-10-31 06:00,M1P0Q0F1L0f1l0,6893.25,1,344700,37.5,0.01,0,162.5,0.05,-300,-0.09,3212.5,0.00,1 +92,Entry short,2025-10-31 04:00,M1P0Q0F0L1f0l1,6894,1,344700,37.5,0.01,0,162.5,0.05,-300,-0.09,3212.5,0.00,1 +93,Exit long,2025-10-31 07:00,M1P0Q0F0L0f0l0,6898.5,1,344662.5,262.5,0.08,0,300,0.09,-262.5,-0.08,3475,0.00,1 +93,Entry long,2025-10-31 06:00,M1P0Q0F1L0f1l0,6893.25,1,344662.5,262.5,0.08,0,300,0.09,-262.5,-0.08,3475,0.00,1 +94,Exit short,2025-10-31 08:00,M1P0Q0F0L0f0l0,6901,1,344925,-125,-0.04,0,462.5,0.13,-237.5,-0.07,3350,0.00,1 +94,Entry short,2025-10-31 07:00,M1P0Q0F0L0f0l0,6898.5,1,344925,-125,-0.04,0,462.5,0.13,-237.5,-0.07,3350,0.00,1 +95,Exit long,2025-10-31 09:00,M1P0Q0F0L0f0l0,6903.25,1,345050,112.5,0.03,0,150,0.04,-275,-0.08,3462.5,0.00,1 +95,Entry long,2025-10-31 08:00,M1P0Q0F0L0f0l0,6901,1,345050,112.5,0.03,0,150,0.04,-275,-0.08,3462.5,0.00,1 +96,Exit short,2025-10-31 10:00,M1P0Q0F0L0f0l0,6897,1,345162.5,312.5,0.09,0,500,0.14,-62.5,-0.02,3775,0.00,1 +96,Entry short,2025-10-31 09:00,M1P0Q0F0L0f0l0,6903.25,1,345162.5,312.5,0.09,0,500,0.14,-62.5,-0.02,3775,0.00,1 +97,Exit long,2025-10-31 11:00,M1P0Q0F0L0f0l0,6900,1,344850,150,0.04,0,175,0.05,-200,-0.06,3925,0.00,1 +97,Entry long,2025-10-31 10:00,M1P0Q0F0L0f0l0,6897,1,344850,150,0.04,0,175,0.05,-200,-0.06,3925,0.00,1 +98,Exit short,2025-10-31 12:00,M1P0Q0F0L0f0l0,6901,1,345000,-50,-0.01,0,12.5,0.00,-150,-0.04,3875,0.00,1 +98,Entry short,2025-10-31 11:00,M1P0Q0F0L0f0l0,6900,1,345000,-50,-0.01,0,12.5,0.00,-150,-0.04,3875,0.00,1 +99,Exit long,2025-10-31 13:00,M1P0Q0F0L0f0l0,6895.25,1,345050,-287.5,-0.08,0,12.5,0.00,-350,-0.10,3587.5,0.00,1 +99,Entry long,2025-10-31 12:00,M1P0Q0F0L0f0l0,6901,1,345050,-287.5,-0.08,0,12.5,0.00,-350,-0.10,3587.5,0.00,1 +100,Exit short,2025-10-31 14:00,M1P0Q0F0L0f0l0,6895.75,1,344762.5,-25,-0.01,0,50,0.01,-362.5,-0.11,3562.5,0.00,1 +100,Entry short,2025-10-31 13:00,M1P0Q0F0L0f0l0,6895.25,1,344762.5,-25,-0.01,0,50,0.01,-362.5,-0.11,3562.5,0.00,1 +101,Exit long,2025-10-31 15:00,M1P0Q0F0L0f0l0,6905.75,1,344787.5,500,0.15,0,525,0.15,-137.5,-0.04,4062.5,0.00,1 +101,Entry long,2025-10-31 14:00,M1P0Q0F0L0f0l0,6895.75,1,344787.5,500,0.15,0,525,0.15,-137.5,-0.04,4062.5,0.00,1 +102,Exit short,2025-10-31 16:00,M1P0Q0F0L0f0l0,6903.25,1,345287.5,125,0.04,0,475,0.14,-12.5,0.00,4187.5,0.00,1 +102,Entry short,2025-10-31 15:00,M1P0Q0F0L0f0l0,6905.75,1,345287.5,125,0.04,0,475,0.14,-12.5,0.00,4187.5,0.00,1 +103,Exit long,2025-10-31 17:00,M1P0Q0F0L0f0l0,6899.75,1,345162.5,-175,-0.05,0,137.5,0.04,-225,-0.07,4012.5,0.00,1 +103,Entry long,2025-10-31 16:00,M1P0Q0F0L0f0l0,6903.25,1,345162.5,-175,-0.05,0,137.5,0.04,-225,-0.07,4012.5,0.00,1 +104,Exit short,2025-10-31 18:00,M1P0Q0F0L0f0l0,6898,1,344987.5,87.5,0.03,0,325,0.09,-50,-0.01,4100,0.00,1 +104,Entry short,2025-10-31 17:00,M1P0Q0F0L0f0l0,6899.75,1,344987.5,87.5,0.03,0,325,0.09,-50,-0.01,4100,0.00,1 +105,Exit long,2025-10-31 19:00,M1P0Q0F0L0f0l0,6907.75,1,344900,487.5,0.14,0,675,0.20,-162.5,-0.05,4587.5,0.00,1 +105,Entry long,2025-10-31 18:00,M1P0Q0F0L0f0l0,6898,1,344900,487.5,0.14,0,675,0.20,-162.5,-0.05,4587.5,0.00,1 +106,Exit short,2025-10-31 20:00,M1P0Q0F0L0f0l0,6905.75,1,345387.5,100,0.03,0,300,0.09,-537.5,-0.16,4687.5,0.00,1 +106,Entry short,2025-10-31 19:00,M1P0Q0F0L0f0l0,6907.75,1,345387.5,100,0.03,0,300,0.09,-537.5,-0.16,4687.5,0.00,1 +107,Exit long,2025-10-31 21:00,M1P0Q0F0L0f0l0,6886.25,1,345287.5,-975,-0.28,0,25,0.01,-1287.5,-0.37,3712.5,0.00,1 +107,Entry long,2025-10-31 20:00,M1P0Q0F0L0f0l0,6905.75,1,345287.5,-975,-0.28,0,25,0.01,-1287.5,-0.37,3712.5,0.00,1 +108,Exit short,2025-10-31 22:00,M1P0Q0F0L0f0l0,6896.5,1,344312.5,-512.5,-0.15,0,625,0.18,-662.5,-0.19,3200,0.00,1 +108,Entry short,2025-10-31 21:00,M1P0Q0F0L0f0l0,6886.25,1,344312.5,-512.5,-0.15,0,625,0.18,-662.5,-0.19,3200,0.00,1 +109,Exit long,2025-10-31 23:00,M1P0Q0F0L0f0l0,6873.5,1,344825,-1150,-0.33,0,150,0.04,-1200,-0.35,2050,0.00,1 +109,Entry long,2025-10-31 22:00,M1P0Q0F0L0f0l0,6896.5,1,344825,-1150,-0.33,0,150,0.04,-1200,-0.35,2050,0.00,1 +110,Exit short,2025-11-01 00:00,M1P0Q0F0L0f0l0,6855,1,343675,925,0.27,0,1050,0.31,-137.5,-0.04,2975,0.00,1 +110,Entry short,2025-10-31 23:00,M1P0Q0F0L0f0l0,6873.5,1,343675,925,0.27,0,1050,0.31,-137.5,-0.04,2975,0.00,1 +111,Exit long,2025-11-01 01:00,M1P0Q0F0L0f0l0,6860.5,1,342750,275,0.08,0,575,0.17,-575,-0.17,3250,0.00,1 +111,Entry long,2025-11-01 00:00,M1P0Q0F0L0f0l0,6855,1,342750,275,0.08,0,575,0.17,-575,-0.17,3250,0.00,1 +112,Exit short,2025-11-01 02:00,M1P0Q0F0L0f0l0,6878,1,343025,-875,-0.26,0,50,0.01,-937.5,-0.27,2375,0.00,1 +112,Entry short,2025-11-01 01:00,M1P0Q0F0L0f0l0,6860.5,1,343025,-875,-0.26,0,50,0.01,-937.5,-0.27,2375,0.00,1 +113,Exit long,2025-11-01 03:00,M1P0Q0F0L0f0l0,6872,1,343900,-300,-0.09,0,1100,0.32,-312.5,-0.09,2075,0.00,1 +113,Entry long,2025-11-01 02:00,M1P0Q0F0L0f0l0,6878,1,343900,-300,-0.09,0,1100,0.32,-312.5,-0.09,2075,0.00,1 +114,Exit short,2025-11-01 04:00,M1P0Q0F0L1f0l1,6872.25,1,343600,-12.5,0.00,0,262.5,0.08,-137.5,-0.04,2062.5,0.00,1 +114,Entry short,2025-11-01 03:00,M1P0Q0F0L0f0l0,6872,1,343600,-12.5,0.00,0,262.5,0.08,-137.5,-0.04,2062.5,0.00,1 +115,Exit long,2025-11-03 07:00,M1P0Q0F1L0f1l0,6892.5,1,343612.5,1012.5,0.29,0,1137.5,0.33,0,0.00,3075,0.00,1 +115,Entry long,2025-11-01 04:00,M1P0Q0F0L1f0l1,6872.25,1,343612.5,1012.5,0.29,0,1137.5,0.33,0,0.00,3075,0.00,1 +116,Exit short,2025-11-03 08:00,M1P0Q0F0L0f0l0,6898.25,1,344625,-287.5,-0.08,0,25,0.01,-300,-0.09,2787.5,0.00,1 +116,Entry short,2025-11-03 07:00,M1P0Q0F1L0f1l0,6892.5,1,344625,-287.5,-0.08,0,25,0.01,-300,-0.09,2787.5,0.00,1 +117,Exit long,2025-11-03 09:00,M1P0Q0F0L0f0l0,6891.5,1,344912.5,-337.5,-0.10,0,50,0.01,-350,-0.10,2450,0.00,1 +117,Entry long,2025-11-03 08:00,M1P0Q0F0L0f0l0,6898.25,1,344912.5,-337.5,-0.10,0,50,0.01,-350,-0.10,2450,0.00,1 +118,Exit short,2025-11-03 10:00,M1P0Q0F0L0f0l0,6888.5,1,344575,150,0.04,0,212.5,0.06,-225,-0.07,2600,0.00,1 +118,Entry short,2025-11-03 09:00,M1P0Q0F0L0f0l0,6891.5,1,344575,150,0.04,0,212.5,0.06,-225,-0.07,2600,0.00,1 +119,Exit long,2025-11-03 11:00,M1P0Q0F0L0f0l0,6886.25,1,344425,-112.5,-0.03,0,25,0.01,-387.5,-0.11,2487.5,0.00,1 +119,Entry long,2025-11-03 10:00,M1P0Q0F0L0f0l0,6888.5,1,344425,-112.5,-0.03,0,25,0.01,-387.5,-0.11,2487.5,0.00,1 +120,Exit short,2025-11-03 12:00,M1P0Q0F0L0f0l0,6887,1,344312.5,-37.5,-0.01,0,125,0.04,-87.5,-0.03,2450,0.00,1 +120,Entry short,2025-11-03 11:00,M1P0Q0F0L0f0l0,6886.25,1,344312.5,-37.5,-0.01,0,125,0.04,-87.5,-0.03,2450,0.00,1 +121,Exit long,2025-11-03 13:00,M1P0Q0F0L0f0l0,6884.75,1,344350,-112.5,-0.03,0,87.5,0.03,-250,-0.07,2337.5,0.00,1 +121,Entry long,2025-11-03 12:00,M1P0Q0F0L0f0l0,6887,1,344350,-112.5,-0.03,0,87.5,0.03,-250,-0.07,2337.5,0.00,1 +122,Exit short,2025-11-03 14:00,M1P0Q0F0L0f0l0,6880.5,1,344237.5,212.5,0.06,0,350,0.10,-162.5,-0.05,2550,0.00,1 +122,Entry short,2025-11-03 13:00,M1P0Q0F0L0f0l0,6884.75,1,344237.5,212.5,0.06,0,350,0.10,-162.5,-0.05,2550,0.00,1 +123,Exit long,2025-11-03 15:00,M1P0Q0F0L0f0l0,6876,1,344025,-225,-0.07,0,0,0.00,-337.5,-0.10,2325,0.00,1 +123,Entry long,2025-11-03 14:00,M1P0Q0F0L0f0l0,6880.5,1,344025,-225,-0.07,0,0,0.00,-337.5,-0.10,2325,0.00,1 +124,Exit short,2025-11-03 16:00,M1P0Q0F0L0f0l0,6887.25,1,343800,-562.5,-0.16,0,137.5,0.04,-675,-0.20,1762.5,0.00,1 +124,Entry short,2025-11-03 15:00,M1P0Q0F0L0f0l0,6876,1,343800,-562.5,-0.16,0,137.5,0.04,-675,-0.20,1762.5,0.00,1 +125,Exit long,2025-11-03 17:00,M1P0Q0F0L0f0l0,6894.75,1,344362.5,375,0.11,0,750,0.22,-12.5,0.00,2137.5,0.00,1 +125,Entry long,2025-11-03 16:00,M1P0Q0F0L0f0l0,6887.25,1,344362.5,375,0.11,0,750,0.22,-12.5,0.00,2137.5,0.00,1 +126,Exit short,2025-11-03 18:00,M1P0Q0F0L0f0l0,6895.75,1,344737.5,-50,-0.01,0,75,0.02,-300,-0.09,2087.5,0.00,1 +126,Entry short,2025-11-03 17:00,M1P0Q0F0L0f0l0,6894.75,1,344737.5,-50,-0.01,0,75,0.02,-300,-0.09,2087.5,0.00,1 +127,Exit long,2025-11-03 19:00,M1P0Q0F0L0f0l0,6896,1,344787.5,12.5,0.00,0,362.5,0.11,0,0.00,2100,0.00,1 +127,Entry long,2025-11-03 18:00,M1P0Q0F0L0f0l0,6895.75,1,344787.5,12.5,0.00,0,362.5,0.11,0,0.00,2100,0.00,1 +128,Exit short,2025-11-03 20:00,M1P0Q0F0L0f0l0,6891.75,1,344800,212.5,0.06,0,225,0.07,-212.5,-0.06,2312.5,0.00,1 +128,Entry short,2025-11-03 19:00,M1P0Q0F0L0f0l0,6896,1,344800,212.5,0.06,0,225,0.07,-212.5,-0.06,2312.5,0.00,1 +129,Exit long,2025-11-03 21:00,M1P0Q0F0L0f0l0,6896.5,1,344587.5,237.5,0.07,0,275,0.08,-300,-0.09,2550,0.00,1 +129,Entry long,2025-11-03 20:00,M1P0Q0F0L0f0l0,6891.75,1,344587.5,237.5,0.07,0,275,0.08,-300,-0.09,2550,0.00,1 +130,Exit short,2025-11-03 22:00,M1P0Q0F0L0f0l0,6875.75,1,344825,1037.5,0.30,0,1212.5,0.35,-650,-0.19,3587.5,0.00,1 +130,Entry short,2025-11-03 21:00,M1P0Q0F0L0f0l0,6896.5,1,344825,1037.5,0.30,0,1212.5,0.35,-650,-0.19,3587.5,0.00,1 +131,Exit long,2025-11-03 23:00,M1P0Q0F0L0f0l0,6874.25,1,343787.5,-75,-0.02,0,237.5,0.07,-1312.5,-0.38,3512.5,0.00,1 +131,Entry long,2025-11-03 22:00,M1P0Q0F0L0f0l0,6875.75,1,343787.5,-75,-0.02,0,237.5,0.07,-1312.5,-0.38,3512.5,0.00,1 +132,Exit short,2025-11-04 00:00,M1P0Q0F0L0f0l0,6884.75,1,343712.5,-525,-0.15,0,275,0.08,-625,-0.18,2987.5,0.00,1 +132,Entry short,2025-11-03 23:00,M1P0Q0F0L0f0l0,6874.25,1,343712.5,-525,-0.15,0,275,0.08,-625,-0.18,2987.5,0.00,1 +133,Exit long,2025-11-04 01:00,M1P0Q0F0L0f0l0,6889.25,1,344237.5,225,0.07,0,287.5,0.08,-500,-0.15,3212.5,0.00,1 +133,Entry long,2025-11-04 00:00,M1P0Q0F0L0f0l0,6884.75,1,344237.5,225,0.07,0,287.5,0.08,-500,-0.15,3212.5,0.00,1 +134,Exit short,2025-11-04 02:00,M1P0Q0F0L0f0l0,6886.75,1,344462.5,125,0.04,0,212.5,0.06,-200,-0.06,3337.5,0.00,1 +134,Entry short,2025-11-04 01:00,M1P0Q0F0L0f0l0,6889.25,1,344462.5,125,0.04,0,212.5,0.06,-200,-0.06,3337.5,0.00,1 +135,Exit long,2025-11-04 03:00,M1P0Q0F0L0f0l0,6885,1,344337.5,-87.5,-0.03,0,137.5,0.04,-512.5,-0.15,3250,0.00,1 +135,Entry long,2025-11-04 02:00,M1P0Q0F0L0f0l0,6886.75,1,344337.5,-87.5,-0.03,0,137.5,0.04,-512.5,-0.15,3250,0.00,1 +136,Exit short,2025-11-04 04:00,M1P0Q0F0L0f0l0,6885.25,1,344250,-12.5,0.00,0,462.5,0.13,-125,-0.04,3237.5,0.00,1 +136,Entry short,2025-11-04 03:00,M1P0Q0F0L0f0l0,6885,1,344250,-12.5,0.00,0,462.5,0.13,-125,-0.04,3237.5,0.00,1 +137,Exit long,2025-11-04 05:00,M1P0Q0F0L1f0l1,6884,1,344262.5,-62.5,-0.02,0,362.5,0.11,-150,-0.04,3175,0.00,1 +137,Entry long,2025-11-04 04:00,M1P0Q0F0L0f0l0,6885.25,1,344262.5,-62.5,-0.02,0,362.5,0.11,-150,-0.04,3175,0.00,1 +138,Exit short,2025-11-04 07:00,M1P0Q0F1L0f1l0,6876.25,1,344200,387.5,0.11,0,462.5,0.13,0,0.00,3562.5,0.00,1 +138,Entry short,2025-11-04 05:00,M1P0Q0F0L1f0l1,6884,1,344200,387.5,0.11,0,462.5,0.13,0,0.00,3562.5,0.00,1 +139,Exit long,2025-11-04 08:00,M1P0Q0F0L0f0l0,6869.25,1,343812.5,-350,-0.10,0,0,0.00,-687.5,-0.20,3212.5,0.00,1 +139,Entry long,2025-11-04 07:00,M1P0Q0F1L0f1l0,6876.25,1,343812.5,-350,-0.10,0,0,0.00,-687.5,-0.20,3212.5,0.00,1 +140,Exit short,2025-11-04 09:00,M1P0Q0F0L0f0l0,6866,1,343462.5,162.5,0.05,0,362.5,0.11,-100,-0.03,3375,0.00,1 +140,Entry short,2025-11-04 08:00,M1P0Q0F0L0f0l0,6869.25,1,343462.5,162.5,0.05,0,362.5,0.11,-100,-0.03,3375,0.00,1 +141,Exit long,2025-11-04 10:00,M1P0Q0F0L0f0l0,6853,1,343300,-650,-0.19,0,12.5,0.00,-650,-0.19,2725,0.00,1 +141,Entry long,2025-11-04 09:00,M1P0Q0F0L0f0l0,6866,1,343300,-650,-0.19,0,12.5,0.00,-650,-0.19,2725,0.00,1 +142,Exit short,2025-11-04 11:00,M1P0Q0F0L0f0l0,6852.5,1,342650,25,0.01,0,37.5,0.01,-450,-0.13,2750,0.00,1 +142,Entry short,2025-11-04 10:00,M1P0Q0F0L0f0l0,6853,1,342650,25,0.01,0,37.5,0.01,-450,-0.13,2750,0.00,1 +143,Exit long,2025-11-04 12:00,M1P0Q0F0L0f0l0,6849.25,1,342625,-162.5,-0.05,0,112.5,0.03,-325,-0.09,2587.5,0.00,1 +143,Entry long,2025-11-04 11:00,M1P0Q0F0L0f0l0,6852.5,1,342625,-162.5,-0.05,0,112.5,0.03,-325,-0.09,2587.5,0.00,1 +144,Exit short,2025-11-04 13:00,M1P0Q0F0L0f0l0,6830,1,342462.5,962.5,0.28,0,1137.5,0.33,-50,-0.01,3550,0.00,1 +144,Entry short,2025-11-04 12:00,M1P0Q0F0L0f0l0,6849.25,1,342462.5,962.5,0.28,0,1137.5,0.33,-50,-0.01,3550,0.00,1 +145,Exit long,2025-11-04 14:00,M1P0Q0F0L0f0l0,6820.5,1,341500,-475,-0.14,0,25,0.01,-762.5,-0.22,3075,0.00,1 +145,Entry long,2025-11-04 13:00,M1P0Q0F0L0f0l0,6830,1,341500,-475,-0.14,0,25,0.01,-762.5,-0.22,3075,0.00,1 +146,Exit short,2025-11-04 15:00,M1P0Q0F0L0f0l0,6821.5,1,341025,-50,-0.01,0,437.5,0.13,-200,-0.06,3025,0.00,1 +146,Entry short,2025-11-04 14:00,M1P0Q0F0L0f0l0,6820.5,1,341025,-50,-0.01,0,437.5,0.13,-200,-0.06,3025,0.00,1 +147,Exit long,2025-11-04 16:00,M1P0Q0F0L0f0l0,6814.25,1,341075,-362.5,-0.11,0,12.5,0.00,-750,-0.22,2662.5,0.00,1 +147,Entry long,2025-11-04 15:00,M1P0Q0F0L0f0l0,6821.5,1,341075,-362.5,-0.11,0,12.5,0.00,-750,-0.22,2662.5,0.00,1 +148,Exit short,2025-11-04 17:00,M1P0Q0F0L0f0l0,6792.75,1,340712.5,1075,0.32,0,1137.5,0.33,-225,-0.07,3737.5,0.00,1 +148,Entry short,2025-11-04 16:00,M1P0Q0F0L0f0l0,6814.25,1,340712.5,1075,0.32,0,1137.5,0.33,-225,-0.07,3737.5,0.00,1 +149,Exit long,2025-11-04 18:00,M1P0Q0F0L0f0l0,6813.5,1,339637.5,1037.5,0.31,0,1125,0.33,-325,-0.10,4775,0.00,1 +149,Entry long,2025-11-04 17:00,M1P0Q0F0L0f0l0,6792.75,1,339637.5,1037.5,0.31,0,1125,0.33,-325,-0.10,4775,0.00,1 +150,Exit short,2025-11-04 19:00,M1P0Q0F0L0f0l0,6812.75,1,340675,37.5,0.01,0,137.5,0.04,-212.5,-0.06,4812.5,0.00,1 +150,Entry short,2025-11-04 18:00,M1P0Q0F0L0f0l0,6813.5,1,340675,37.5,0.01,0,137.5,0.04,-212.5,-0.06,4812.5,0.00,1 +151,Exit long,2025-11-04 20:00,M1P0Q0F0L0f0l0,6814.5,1,340637.5,87.5,0.03,0,387.5,0.11,-387.5,-0.11,4900,0.00,1 +151,Entry long,2025-11-04 19:00,M1P0Q0F0L0f0l0,6812.75,1,340637.5,87.5,0.03,0,387.5,0.11,-387.5,-0.11,4900,0.00,1 +152,Exit short,2025-11-04 21:00,M1P0Q0F0L0f0l0,6809,1,340725,275,0.08,0,612.5,0.18,-100,-0.03,5175,0.00,1 +152,Entry short,2025-11-04 20:00,M1P0Q0F0L0f0l0,6814.5,1,340725,275,0.08,0,612.5,0.18,-100,-0.03,5175,0.00,1 +153,Exit long,2025-11-04 22:00,M1P0Q0F0L0f0l0,6836.5,1,340450,1375,0.40,0,1437.5,0.42,-662.5,-0.19,6550,0.00,1 +153,Entry long,2025-11-04 21:00,M1P0Q0F0L0f0l0,6809,1,340450,1375,0.40,0,1437.5,0.42,-662.5,-0.19,6550,0.00,1 +154,Exit short,2025-11-04 23:00,M1P0Q0F0L0f0l0,6831.25,1,341825,262.5,0.08,0,537.5,0.16,-637.5,-0.19,6812.5,0.00,1 +154,Entry short,2025-11-04 22:00,M1P0Q0F0L0f0l0,6836.5,1,341825,262.5,0.08,0,537.5,0.16,-637.5,-0.19,6812.5,0.00,1 +155,Exit long,2025-11-05 00:00,M1P0Q0F0L0f0l0,6831.5,1,341562.5,12.5,0.00,0,337.5,0.10,-362.5,-0.11,6825,0.00,1 +155,Entry long,2025-11-04 23:00,M1P0Q0F0L0f0l0,6831.25,1,341562.5,12.5,0.00,0,337.5,0.10,-362.5,-0.11,6825,0.00,1 +156,Exit short,2025-11-05 01:00,M1P0Q0F0L0f0l0,6809.25,1,341575,1112.5,0.33,0,1275,0.37,-12.5,0.00,7937.5,0.00,1 +156,Entry short,2025-11-05 00:00,M1P0Q0F0L0f0l0,6831.5,1,341575,1112.5,0.33,0,1275,0.37,-12.5,0.00,7937.5,0.00,1 +157,Exit long,2025-11-05 02:00,M1P0Q0F0L0f0l0,6810.5,1,340462.5,62.5,0.02,0,200,0.06,-650,-0.19,8000,0.00,1 +157,Entry long,2025-11-05 01:00,M1P0Q0F0L0f0l0,6809.25,1,340462.5,62.5,0.02,0,200,0.06,-650,-0.19,8000,0.00,1 +158,Exit short,2025-11-05 03:00,M1P0Q0F0L0f0l0,6801.25,1,340525,462.5,0.14,0,787.5,0.23,-275,-0.08,8462.5,0.00,1 +158,Entry short,2025-11-05 02:00,M1P0Q0F0L0f0l0,6810.5,1,340525,462.5,0.14,0,787.5,0.23,-275,-0.08,8462.5,0.00,1 +159,Exit long,2025-11-05 04:00,M1P0Q0F0L0f0l0,6803.5,1,340062.5,112.5,0.03,0,687.5,0.20,-275,-0.08,8575,0.00,1 +159,Entry long,2025-11-05 03:00,M1P0Q0F0L0f0l0,6801.25,1,340062.5,112.5,0.03,0,687.5,0.20,-275,-0.08,8575,0.00,1 +160,Exit short,2025-11-05 05:00,M1P0Q0F0L1f0l1,6806.25,1,340175,-137.5,-0.04,0,337.5,0.10,-225,-0.07,8437.5,0.00,1 +160,Entry short,2025-11-05 04:00,M1P0Q0F0L0f0l0,6803.5,1,340175,-137.5,-0.04,0,337.5,0.10,-225,-0.07,8437.5,0.00,1 +161,Exit long,2025-11-05 07:00,M1P0Q0F1L0f1l0,6793.25,1,340312.5,-650,-0.19,0,12.5,0.00,-662.5,-0.19,7787.5,0.00,1 +161,Entry long,2025-11-05 05:00,M1P0Q0F0L1f0l1,6806.25,1,340312.5,-650,-0.19,0,12.5,0.00,-662.5,-0.19,7787.5,0.00,1 +162,Exit short,2025-11-05 08:00,M1P0Q0F0L0f0l0,6773.25,1,339662.5,1000,0.29,0,1012.5,0.30,-12.5,0.00,8787.5,0.00,1 +162,Entry short,2025-11-05 07:00,M1P0Q0F1L0f1l0,6793.25,1,339662.5,1000,0.29,0,1012.5,0.30,-12.5,0.00,8787.5,0.00,1 +163,Exit long,2025-11-05 09:00,M1P0Q0F0L0f0l0,6760,1,338662.5,-662.5,-0.20,0,12.5,0.00,-1237.5,-0.37,8125,0.00,1 +163,Entry long,2025-11-05 08:00,M1P0Q0F0L0f0l0,6773.25,1,338662.5,-662.5,-0.20,0,12.5,0.00,-1237.5,-0.37,8125,0.00,1 +164,Exit short,2025-11-05 10:00,M1P0Q0F0L0f0l0,6775.25,1,338000,-762.5,-0.23,0,362.5,0.11,-850,-0.25,7362.5,0.00,1 +164,Entry short,2025-11-05 09:00,M1P0Q0F0L0f0l0,6760,1,338000,-762.5,-0.23,0,362.5,0.11,-850,-0.25,7362.5,0.00,1 +165,Exit long,2025-11-05 11:00,M1P0Q0F0L0f0l0,6795,1,338762.5,987.5,0.29,0,1000,0.30,0,0.00,8350,0.00,1 +165,Entry long,2025-11-05 10:00,M1P0Q0F0L0f0l0,6775.25,1,338762.5,987.5,0.29,0,1000,0.30,0,0.00,8350,0.00,1 +166,Exit short,2025-11-05 12:00,M1P0Q0F0L0f0l0,6786.75,1,339750,412.5,0.12,0,612.5,0.18,-37.5,-0.01,8762.5,0.00,1 +166,Entry short,2025-11-05 11:00,M1P0Q0F0L0f0l0,6795,1,339750,412.5,0.12,0,612.5,0.18,-37.5,-0.01,8762.5,0.00,1 +167,Exit long,2025-11-05 13:00,M1P0Q0F0L0f0l0,6789,1,339337.5,112.5,0.03,0,600,0.18,-112.5,-0.03,8875,0.00,1 +167,Entry long,2025-11-05 12:00,M1P0Q0F0L0f0l0,6786.75,1,339337.5,112.5,0.03,0,600,0.18,-112.5,-0.03,8875,0.00,1 +168,Exit short,2025-11-05 14:00,M1P0Q0F0L0f0l0,6797.75,1,339450,-437.5,-0.13,0,287.5,0.08,-612.5,-0.18,8437.5,0.00,1 +168,Entry short,2025-11-05 13:00,M1P0Q0F0L0f0l0,6789,1,339450,-437.5,-0.13,0,287.5,0.08,-612.5,-0.18,8437.5,0.00,1 +169,Exit long,2025-11-05 15:00,M1P0Q0F0L0f0l0,6787,1,339887.5,-537.5,-0.16,0,50,0.01,-575,-0.17,7900,0.00,1 +169,Entry long,2025-11-05 14:00,M1P0Q0F0L0f0l0,6797.75,1,339887.5,-537.5,-0.16,0,50,0.01,-575,-0.17,7900,0.00,1 +170,Exit short,2025-11-05 16:00,M1P0Q0F0L0f0l0,6795,1,339350,-400,-0.12,0,250,0.07,-675,-0.20,7500,0.00,1 +170,Entry short,2025-11-05 15:00,M1P0Q0F0L0f0l0,6787,1,339350,-400,-0.12,0,250,0.07,-675,-0.20,7500,0.00,1 +171,Exit long,2025-11-05 17:00,M1P0Q0F0L0f0l0,6794,1,339750,-50,-0.01,0,312.5,0.09,-362.5,-0.11,7450,0.00,1 +171,Entry long,2025-11-05 16:00,M1P0Q0F0L0f0l0,6795,1,339750,-50,-0.01,0,312.5,0.09,-362.5,-0.11,7450,0.00,1 +172,Exit short,2025-11-05 18:00,M1P0Q0F0L0f0l0,6773.5,1,339700,1025,0.30,0,1037.5,0.31,-237.5,-0.07,8475,0.00,1 +172,Entry short,2025-11-05 17:00,M1P0Q0F0L0f0l0,6794,1,339700,1025,0.30,0,1037.5,0.31,-237.5,-0.07,8475,0.00,1 +173,Exit long,2025-11-05 19:00,M1P0Q0F0L0f0l0,6787.25,1,338675,687.5,0.20,0,775,0.23,-87.5,-0.03,9162.5,0.00,1 +173,Entry long,2025-11-05 18:00,M1P0Q0F0L0f0l0,6773.5,1,338675,687.5,0.20,0,775,0.23,-87.5,-0.03,9162.5,0.00,1 +174,Exit short,2025-11-05 20:00,M1P0Q0F0L0f0l0,6795.25,1,339362.5,-400,-0.12,0,262.5,0.08,-462.5,-0.14,8762.5,0.00,1 +174,Entry short,2025-11-05 19:00,M1P0Q0F0L0f0l0,6787.25,1,339362.5,-400,-0.12,0,262.5,0.08,-462.5,-0.14,8762.5,0.00,1 +175,Exit long,2025-11-05 21:00,M1P0Q0F0L0f0l0,6805.5,1,339762.5,512.5,0.15,0,625,0.18,-237.5,-0.07,9275,0.00,1 +175,Entry long,2025-11-05 20:00,M1P0Q0F0L0f0l0,6795.25,1,339762.5,512.5,0.15,0,625,0.18,-237.5,-0.07,9275,0.00,1 +176,Exit short,2025-11-05 22:00,M1P0Q0F0L0f0l0,6822,1,340275,-825,-0.24,0,787.5,0.23,-950,-0.28,8450,0.00,1 +176,Entry short,2025-11-05 21:00,M1P0Q0F0L0f0l0,6805.5,1,340275,-825,-0.24,0,787.5,0.23,-950,-0.28,8450,0.00,1 +177,Exit long,2025-11-05 23:00,M1P0Q0F0L0f0l0,6827,1,341100,250,0.07,0,462.5,0.14,-625,-0.18,8700,0.00,1 +177,Entry long,2025-11-05 22:00,M1P0Q0F0L0f0l0,6822,1,341100,250,0.07,0,462.5,0.14,-625,-0.18,8700,0.00,1 +178,Exit short,2025-11-06 00:00,M1P0Q0F0L0f0l0,6842.5,1,341350,-775,-0.23,0,550,0.16,-975,-0.29,7925,0.00,1 +178,Entry short,2025-11-05 23:00,M1P0Q0F0L0f0l0,6827,1,341350,-775,-0.23,0,550,0.16,-975,-0.29,7925,0.00,1 +179,Exit long,2025-11-06 01:00,M1P0Q0F0L0f0l0,6851,1,342125,425,0.12,0,762.5,0.22,-175,-0.05,8350,0.00,1 +179,Entry long,2025-11-06 00:00,M1P0Q0F0L0f0l0,6842.5,1,342125,425,0.12,0,762.5,0.22,-175,-0.05,8350,0.00,1 +180,Exit short,2025-11-06 02:00,M1P0Q0F0L0f0l0,6855.5,1,342550,-225,-0.07,0,100,0.03,-325,-0.09,8125,0.00,1 +180,Entry short,2025-11-06 01:00,M1P0Q0F0L0f0l0,6851,1,342550,-225,-0.07,0,100,0.03,-325,-0.09,8125,0.00,1 +181,Exit long,2025-11-06 03:00,M1P0Q0F0L0f0l0,6851.25,1,342775,-212.5,-0.06,0,0,0.00,-462.5,-0.13,7912.5,0.00,1 +181,Entry long,2025-11-06 02:00,M1P0Q0F0L0f0l0,6855.5,1,342775,-212.5,-0.06,0,0,0.00,-462.5,-0.13,7912.5,0.00,1 +182,Exit short,2025-11-06 04:00,M1P0Q0F0L0f0l0,6824.25,1,342562.5,1350,0.39,0,1412.5,0.41,-162.5,-0.05,9262.5,0.00,1 +182,Entry short,2025-11-06 03:00,M1P0Q0F0L0f0l0,6851.25,1,342562.5,1350,0.39,0,1412.5,0.41,-162.5,-0.05,9262.5,0.00,1 +183,Exit long,2025-11-06 05:00,M1P0Q0F0L1f0l1,6827.5,1,341212.5,162.5,0.05,0,325,0.10,-212.5,-0.06,9425,0.00,1 +183,Entry long,2025-11-06 04:00,M1P0Q0F0L0f0l0,6824.25,1,341212.5,162.5,0.05,0,325,0.10,-212.5,-0.06,9425,0.00,1 +184,Exit short,2025-11-06 07:00,M1P0Q0F1L0f1l0,6834.75,1,341375,-362.5,-0.11,0,337.5,0.10,-375,-0.11,9062.5,0.00,1 +184,Entry short,2025-11-06 05:00,M1P0Q0F0L1f0l1,6827.5,1,341375,-362.5,-0.11,0,337.5,0.10,-375,-0.11,9062.5,0.00,1 +185,Exit long,2025-11-06 08:00,M1P0Q0F0L0f0l0,6821,1,341737.5,-687.5,-0.20,0,12.5,0.00,-1212.5,-0.35,8375,0.00,1 +185,Entry long,2025-11-06 07:00,M1P0Q0F1L0f1l0,6834.75,1,341737.5,-687.5,-0.20,0,12.5,0.00,-1212.5,-0.35,8375,0.00,1 +186,Exit short,2025-11-06 09:00,M1P0Q0F0L0f0l0,6815,1,341050,300,0.09,0,775,0.23,0,0.00,8675,0.00,1 +186,Entry short,2025-11-06 08:00,M1P0Q0F0L0f0l0,6821,1,341050,300,0.09,0,775,0.23,0,0.00,8675,0.00,1 +187,Exit long,2025-11-06 10:00,M1P0Q0F0L0f0l0,6822.25,1,340750,362.5,0.11,0,400,0.12,-350,-0.10,9037.5,0.00,1 +187,Entry long,2025-11-06 09:00,M1P0Q0F0L0f0l0,6815,1,340750,362.5,0.11,0,400,0.12,-350,-0.10,9037.5,0.00,1 +188,Exit short,2025-11-06 11:00,M1P0Q0F0L0f0l0,6823.25,1,341112.5,-50,-0.01,0,150,0.04,-187.5,-0.05,8987.5,0.00,1 +188,Entry short,2025-11-06 10:00,M1P0Q0F0L0f0l0,6822.25,1,341112.5,-50,-0.01,0,150,0.04,-187.5,-0.05,8987.5,0.00,1 +189,Exit long,2025-11-06 12:00,M1P0Q0F0L0f0l0,6826.5,1,341162.5,162.5,0.05,0,212.5,0.06,-162.5,-0.05,9150,0.00,1 +189,Entry long,2025-11-06 11:00,M1P0Q0F0L0f0l0,6823.25,1,341162.5,162.5,0.05,0,212.5,0.06,-162.5,-0.05,9150,0.00,1 +190,Exit short,2025-11-06 13:00,M1P0Q0F0L0f0l0,6818,1,341325,425,0.12,0,500,0.15,-37.5,-0.01,9575,0.00,1 +190,Entry short,2025-11-06 12:00,M1P0Q0F0L0f0l0,6826.5,1,341325,425,0.12,0,500,0.15,-37.5,-0.01,9575,0.00,1 +191,Exit long,2025-11-06 14:00,M1P0Q0F0L0f0l0,6815.25,1,340900,-137.5,-0.04,0,162.5,0.05,-225,-0.07,9437.5,0.00,1 +191,Entry long,2025-11-06 13:00,M1P0Q0F0L0f0l0,6818,1,340900,-137.5,-0.04,0,162.5,0.05,-225,-0.07,9437.5,0.00,1 +192,Exit short,2025-11-06 15:00,M1P0Q0F0L0f0l0,6808.5,1,340762.5,337.5,0.10,0,375,0.11,-325,-0.10,9775,0.00,1 +192,Entry short,2025-11-06 14:00,M1P0Q0F0L0f0l0,6815.25,1,340762.5,337.5,0.10,0,375,0.11,-325,-0.10,9775,0.00,1 +193,Exit long,2025-11-06 16:00,M1P0Q0F0L0f0l0,6812.75,1,340425,212.5,0.06,0,312.5,0.09,-225,-0.07,9987.5,0.00,1 +193,Entry long,2025-11-06 15:00,M1P0Q0F0L0f0l0,6808.5,1,340425,212.5,0.06,0,312.5,0.09,-225,-0.07,9987.5,0.00,1 +194,Exit short,2025-11-06 17:00,M1P0Q0F0L0f0l0,6823.75,1,340637.5,-550,-0.16,0,25,0.01,-737.5,-0.22,9437.5,0.00,1 +194,Entry short,2025-11-06 16:00,M1P0Q0F0L0f0l0,6812.75,1,340637.5,-550,-0.16,0,25,0.01,-737.5,-0.22,9437.5,0.00,1 +195,Exit long,2025-11-06 18:00,M1P0Q0F0L0f0l0,6829,1,341187.5,262.5,0.08,0,475,0.14,-50,-0.01,9700,0.00,1 +195,Entry long,2025-11-06 17:00,M1P0Q0F0L0f0l0,6823.75,1,341187.5,262.5,0.08,0,475,0.14,-50,-0.01,9700,0.00,1 +196,Exit short,2025-11-06 19:00,M1P0Q0F0L0f0l0,6828.5,1,341450,25,0.01,0,100,0.03,-250,-0.07,9725,0.00,1 +196,Entry short,2025-11-06 18:00,M1P0Q0F0L0f0l0,6829,1,341450,25,0.01,0,100,0.03,-250,-0.07,9725,0.00,1 +197,Exit long,2025-11-06 20:00,M1P0Q0F0L0f0l0,6836.25,1,341425,387.5,0.11,0,487.5,0.14,-25,-0.01,10112.5,0.00,1 +197,Entry long,2025-11-06 19:00,M1P0Q0F0L0f0l0,6828.5,1,341425,387.5,0.11,0,487.5,0.14,-25,-0.01,10112.5,0.00,1 +198,Exit short,2025-11-06 21:00,M1P0Q0F0L0f0l0,6832,1,341812.5,212.5,0.06,0,262.5,0.08,-362.5,-0.11,10325,0.00,1 +198,Entry short,2025-11-06 20:00,M1P0Q0F0L0f0l0,6836.25,1,341812.5,212.5,0.06,0,262.5,0.08,-362.5,-0.11,10325,0.00,1 +199,Exit long,2025-11-06 22:00,M1P0Q0F0L0f0l0,6788.5,1,341600,-2175,-0.64,0,112.5,0.03,-2200,-0.64,8150,0.00,1 +199,Entry long,2025-11-06 21:00,M1P0Q0F0L0f0l0,6832,1,341600,-2175,-0.64,0,112.5,0.03,-2200,-0.64,8150,0.00,1 +200,Exit short,2025-11-06 23:00,M1P0Q0F0L0f0l0,6756.25,1,339425,1612.5,0.48,0,1712.5,0.50,-612.5,-0.18,9762.5,0.00,1 +200,Entry short,2025-11-06 22:00,M1P0Q0F0L0f0l0,6788.5,1,339425,1612.5,0.48,0,1712.5,0.50,-612.5,-0.18,9762.5,0.00,1 +201,Exit long,2025-11-07 00:00,M1P0Q0F0L0f0l0,6738.75,1,337812.5,-875,-0.26,0,525,0.16,-975,-0.29,8887.5,0.00,1 +201,Entry long,2025-11-06 23:00,M1P0Q0F0L0f0l0,6756.25,1,337812.5,-875,-0.26,0,525,0.16,-975,-0.29,8887.5,0.00,1 +202,Exit short,2025-11-07 01:00,M1P0Q0F0L0f0l0,6757.75,1,336937.5,-950,-0.28,0,262.5,0.08,-1187.5,-0.35,7937.5,0.00,1 +202,Entry short,2025-11-07 00:00,M1P0Q0F0L0f0l0,6738.75,1,336937.5,-950,-0.28,0,262.5,0.08,-1187.5,-0.35,7937.5,0.00,1 +203,Exit long,2025-11-07 02:00,M1P0Q0F0L0f0l0,6762,1,337887.5,212.5,0.06,0,562.5,0.17,-987.5,-0.29,8150,0.00,1 +203,Entry long,2025-11-07 01:00,M1P0Q0F0L0f0l0,6757.75,1,337887.5,212.5,0.06,0,562.5,0.17,-987.5,-0.29,8150,0.00,1 +204,Exit short,2025-11-07 03:00,M1P0Q0F0L0f0l0,6777,1,338100,-750,-0.22,0,125,0.04,-1125,-0.33,7400,0.00,1 +204,Entry short,2025-11-07 02:00,M1P0Q0F0L0f0l0,6762,1,338100,-750,-0.22,0,125,0.04,-1125,-0.33,7400,0.00,1 +205,Exit long,2025-11-07 04:00,M1P0Q0F0L0f0l0,6750,1,338850,-1350,-0.40,0,187.5,0.06,-1725,-0.51,6050,0.00,1 +205,Entry long,2025-11-07 03:00,M1P0Q0F0L0f0l0,6777,1,338850,-1350,-0.40,0,187.5,0.06,-1725,-0.51,6050,0.00,1 +206,Exit short,2025-11-07 05:00,M1P0Q0F0L1f0l1,6764.75,1,337500,-737.5,-0.22,0,62.5,0.02,-875,-0.26,5312.5,0.00,1 +206,Entry short,2025-11-07 04:00,M1P0Q0F0L0f0l0,6750,1,337500,-737.5,-0.22,0,62.5,0.02,-875,-0.26,5312.5,0.00,1 +207,Exit long,2025-11-07 07:00,M1P0Q0F1L0f1l0,6765,1,338237.5,12.5,0.00,0,225,0.07,-437.5,-0.13,5325,0.00,1 +207,Entry long,2025-11-07 05:00,M1P0Q0F0L1f0l1,6764.75,1,338237.5,12.5,0.00,0,225,0.07,-437.5,-0.13,5325,0.00,1 +208,Exit short,2025-11-07 08:00,M1P0Q0F0L0f0l0,6766.5,1,338250,-75,-0.02,0,375,0.11,-350,-0.10,5250,0.00,1 +208,Entry short,2025-11-07 07:00,M1P0Q0F1L0f1l0,6765,1,338250,-75,-0.02,0,375,0.11,-350,-0.10,5250,0.00,1 +209,Exit long,2025-11-07 08:00,,6766.5,1,338325,0,0.00,0,0,0.00,0,0.00,5250,0.00,0 +209,Entry long,2025-11-07 08:00,M1P0Q0F0L0f0l0,6766.5,1,338325,0,0.00,0,0,0.00,0,0.00,5250,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/meta.json b/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/meta.json new file mode 100644 index 0000000..a138016 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/meta.json @@ -0,0 +1,16 @@ +{ + "title": "CG-ISMARKET session flags", + "slug": "cgim-flags-es1-60-thanksgiving", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T21:55:56.087Z", + "chart": { + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-11-23", + "to": "2025-12-05" + }, + "pine_sha256": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tv_trades_sha256": "54dfac6128b63df3ffe32e898df3ec0829998a700d2f2d78b7d1aebf140397f4", + "tv_trades_rows": 384 +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/metrics.json b/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/metrics.json new file mode 100644 index 0000000..9586258 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "cgim-flags-es1-60-thanksgiving", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "from": "2025-11-23", + "to": "2025-12-05", + "deepBacktesting": true, + "trades": 192, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tvTradesCsvHash": "54dfac6128b63df3ffe32e898df3ec0829998a700d2f2d78b7d1aebf140397f4", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74598", + "symbol": "CME_MINI:ES1!", + "interval": "60", + "requestedRange": { + "from": 1763856000000, + "to": 1764892800000 + }, + "returnedRange": { + "from": 1763938800000, + "to": 1764892800000 + }, + "rangeProof": "covered", + "rawFrameSha256": "5bb531a9e300d5c99b7c1fe02d55ea8fe2c8eca5dff4b7c375ce8df585e15cf8", + "decodedReportSha256": "603671289935c669b26d0b48c8234a722dd8499aeea4e621324e4f07e5670113", + "closedTrades": 192, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T21:55:56.086Z" +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/strategy.pine b/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/strategy.pine new file mode 100644 index 0000000..0740da1 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/strategy.pine @@ -0,0 +1,22 @@ +// CG-ISMARKET: which session.* flags does TradingView set on each chart bar? +// process_orders_on_close=true: every bar reverses the position at its own +// close, so every trade's ENTRY is one chart bar (TradingView dates a +// process_orders_on_close fill at the bar's open) and the entry's Signal (its +// comment) carries the flags TradingView evaluated on that bar, a letter and a +// digit each: M session.ismarket, P session.ispremarket, Q session.ispostmarket, +// F session.isfirstbar, L session.islastbar, f session.isfirstbar_regular, +// l session.islastbar_regular (1 true, 0 false). +//@version=6 +strategy("CG-ISMARKET session flags", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +bit(bool x) => x ? "1" : "0" +flag = "M" + bit(session.ismarket) + "P" + bit(session.ispremarket) + "Q" + bit(session.ispostmarket) + + "F" + bit(session.isfirstbar) + "L" + bit(session.islastbar) + + "f" + bit(session.isfirstbar_regular) + "l" + bit(session.islastbar_regular) +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/tv_trades.csv b/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/tv_trades.csv new file mode 100644 index 0000000..b2043ac --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-es1-60-thanksgiving/tv_trades.csv @@ -0,0 +1,385 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-11-24 08:00,M1P0Q0F0L0f0l0,6647.5,1,332662.5,-287.5,-0.09,0,0,0.00,-812.5,-0.24,-287.5,0.00,1 +1,Entry long,2025-11-24 07:00,M1P0Q0F1L0f1l0,6653.25,1,332662.5,-287.5,-0.09,0,0,0.00,-812.5,-0.24,-287.5,0.00,1 +2,Exit short,2025-11-24 09:00,M1P0Q0F0L0f0l0,6647,1,332375,25,0.01,0,275,0.08,-312.5,-0.09,-262.5,0.00,1 +2,Entry short,2025-11-24 08:00,M1P0Q0F0L0f0l0,6647.5,1,332375,25,0.01,0,275,0.08,-312.5,-0.09,-262.5,0.00,1 +3,Exit long,2025-11-24 10:00,M1P0Q0F0L0f0l0,6661,1,332350,700,0.21,0,712.5,0.21,-162.5,-0.05,437.5,0.00,1 +3,Entry long,2025-11-24 09:00,M1P0Q0F0L0f0l0,6647,1,332350,700,0.21,0,712.5,0.21,-162.5,-0.05,437.5,0.00,1 +4,Exit short,2025-11-24 11:00,M1P0Q0F0L0f0l0,6655.5,1,333050,275,0.08,0,350,0.11,-75,-0.02,712.5,0.00,1 +4,Entry short,2025-11-24 10:00,M1P0Q0F0L0f0l0,6661,1,333050,275,0.08,0,350,0.11,-75,-0.02,712.5,0.00,1 +5,Exit long,2025-11-24 12:00,M1P0Q0F0L0f0l0,6648.75,1,332775,-337.5,-0.10,0,62.5,0.02,-487.5,-0.15,375,0.00,1 +5,Entry long,2025-11-24 11:00,M1P0Q0F0L0f0l0,6655.5,1,332775,-337.5,-0.10,0,62.5,0.02,-487.5,-0.15,375,0.00,1 +6,Exit short,2025-11-24 13:00,M1P0Q0F0L0f0l0,6656.75,1,332437.5,-400,-0.12,0,62.5,0.02,-525,-0.16,-25,0.00,1 +6,Entry short,2025-11-24 12:00,M1P0Q0F0L0f0l0,6648.75,1,332437.5,-400,-0.12,0,62.5,0.02,-525,-0.16,-25,0.00,1 +7,Exit long,2025-11-24 14:00,M1P0Q0F0L0f0l0,6652.5,1,332837.5,-212.5,-0.06,0,12.5,0.00,-387.5,-0.12,-237.5,0.00,1 +7,Entry long,2025-11-24 13:00,M1P0Q0F0L0f0l0,6656.75,1,332837.5,-212.5,-0.06,0,12.5,0.00,-387.5,-0.12,-237.5,0.00,1 +8,Exit short,2025-11-24 15:00,M1P0Q0F0L0f0l0,6660.25,1,332625,-387.5,-0.12,0,275,0.08,-512.5,-0.15,-625,0.00,1 +8,Entry short,2025-11-24 14:00,M1P0Q0F0L0f0l0,6652.5,1,332625,-387.5,-0.12,0,275,0.08,-512.5,-0.15,-625,0.00,1 +9,Exit long,2025-11-24 16:00,M1P0Q0F0L0f0l0,6668,1,333012.5,387.5,0.12,0,462.5,0.14,-637.5,-0.19,-237.5,0.00,1 +9,Entry long,2025-11-24 15:00,M1P0Q0F0L0f0l0,6660.25,1,333012.5,387.5,0.12,0,462.5,0.14,-637.5,-0.19,-237.5,0.00,1 +10,Exit short,2025-11-24 17:00,M1P0Q0F0L0f0l0,6638,1,333400,1500,0.45,0,2150,0.64,-75,-0.02,1262.5,0.00,1 +10,Entry short,2025-11-24 16:00,M1P0Q0F0L0f0l0,6668,1,333400,1500,0.45,0,2150,0.64,-75,-0.02,1262.5,0.00,1 +11,Exit long,2025-11-24 18:00,M1P0Q0F0L0f0l0,6632.75,1,331900,-262.5,-0.08,0,200,0.06,-625,-0.19,1000,0.00,1 +11,Entry long,2025-11-24 17:00,M1P0Q0F0L0f0l0,6638,1,331900,-262.5,-0.08,0,200,0.06,-625,-0.19,1000,0.00,1 +12,Exit short,2025-11-24 19:00,M1P0Q0F0L0f0l0,6645.75,1,331637.5,-650,-0.20,0,325,0.10,-675,-0.20,350,0.00,1 +12,Entry short,2025-11-24 18:00,M1P0Q0F0L0f0l0,6632.75,1,331637.5,-650,-0.20,0,325,0.10,-675,-0.20,350,0.00,1 +13,Exit long,2025-11-24 20:00,M1P0Q0F0L0f0l0,6657.25,1,332287.5,575,0.17,0,650,0.20,-325,-0.10,925,0.00,1 +13,Entry long,2025-11-24 19:00,M1P0Q0F0L0f0l0,6645.75,1,332287.5,575,0.17,0,650,0.20,-325,-0.10,925,0.00,1 +14,Exit short,2025-11-24 21:00,M1P0Q0F0L0f0l0,6653,1,332862.5,212.5,0.06,0,275,0.08,-500,-0.15,1137.5,0.00,1 +14,Entry short,2025-11-24 20:00,M1P0Q0F0L0f0l0,6657.25,1,332862.5,212.5,0.06,0,275,0.08,-500,-0.15,1137.5,0.00,1 +15,Exit long,2025-11-24 22:00,M1P0Q0F0L0f0l0,6671.25,1,332650,912.5,0.27,0,1687.5,0.51,-312.5,-0.09,2050,0.00,1 +15,Entry long,2025-11-24 21:00,M1P0Q0F0L0f0l0,6653,1,332650,912.5,0.27,0,1687.5,0.51,-312.5,-0.09,2050,0.00,1 +16,Exit short,2025-11-24 23:00,M1P0Q0F0L0f0l0,6696.75,1,333562.5,-1275,-0.38,0,50,0.01,-1625,-0.49,775,0.00,1 +16,Entry short,2025-11-24 22:00,M1P0Q0F0L0f0l0,6671.25,1,333562.5,-1275,-0.38,0,50,0.01,-1625,-0.49,775,0.00,1 +17,Exit long,2025-11-25 00:00,M1P0Q0F0L0f0l0,6706.25,1,334837.5,475,0.14,0,975,0.29,0,0.00,1250,0.00,1 +17,Entry long,2025-11-24 23:00,M1P0Q0F0L0f0l0,6696.75,1,334837.5,475,0.14,0,975,0.29,0,0.00,1250,0.00,1 +18,Exit short,2025-11-25 01:00,M1P0Q0F0L0f0l0,6722,1,335312.5,-787.5,-0.23,0,300,0.09,-950,-0.28,462.5,0.00,1 +18,Entry short,2025-11-25 00:00,M1P0Q0F0L0f0l0,6706.25,1,335312.5,-787.5,-0.23,0,300,0.09,-950,-0.28,462.5,0.00,1 +19,Exit long,2025-11-25 02:00,M1P0Q0F0L0f0l0,6723.75,1,336100,87.5,0.03,0,350,0.10,-150,-0.04,550,0.00,1 +19,Entry long,2025-11-25 01:00,M1P0Q0F0L0f0l0,6722,1,336100,87.5,0.03,0,350,0.10,-150,-0.04,550,0.00,1 +20,Exit short,2025-11-25 03:00,M1P0Q0F0L0f0l0,6714.5,1,336187.5,462.5,0.14,0,687.5,0.20,-287.5,-0.09,1012.5,0.00,1 +20,Entry short,2025-11-25 02:00,M1P0Q0F0L0f0l0,6723.75,1,336187.5,462.5,0.14,0,687.5,0.20,-287.5,-0.09,1012.5,0.00,1 +21,Exit long,2025-11-25 04:00,M1P0Q0F0L0f0l0,6718.75,1,335725,212.5,0.06,0,862.5,0.26,0,0.00,1225,0.00,1 +21,Entry long,2025-11-25 03:00,M1P0Q0F0L0f0l0,6714.5,1,335725,212.5,0.06,0,862.5,0.26,0,0.00,1225,0.00,1 +22,Exit short,2025-11-25 05:00,M1P0Q0F0L1f0l1,6725,1,335937.5,-312.5,-0.09,0,150,0.04,-437.5,-0.13,912.5,0.00,1 +22,Entry short,2025-11-25 04:00,M1P0Q0F0L0f0l0,6718.75,1,335937.5,-312.5,-0.09,0,150,0.04,-437.5,-0.13,912.5,0.00,1 +23,Exit long,2025-11-25 07:00,M1P0Q0F1L0f1l0,6722.25,1,336250,-137.5,-0.04,0,162.5,0.05,-150,-0.04,775,0.00,1 +23,Entry long,2025-11-25 05:00,M1P0Q0F0L1f0l1,6725,1,336250,-137.5,-0.04,0,162.5,0.05,-150,-0.04,775,0.00,1 +24,Exit short,2025-11-25 08:00,M1P0Q0F0L0f0l0,6723.25,1,336112.5,-50,-0.01,0,325,0.10,-87.5,-0.03,725,0.00,1 +24,Entry short,2025-11-25 07:00,M1P0Q0F1L0f1l0,6722.25,1,336112.5,-50,-0.01,0,325,0.10,-87.5,-0.03,725,0.00,1 +25,Exit long,2025-11-25 09:00,M1P0Q0F0L0f0l0,6715.25,1,336162.5,-400,-0.12,0,37.5,0.01,-437.5,-0.13,325,0.00,1 +25,Entry long,2025-11-25 08:00,M1P0Q0F0L0f0l0,6723.25,1,336162.5,-400,-0.12,0,37.5,0.01,-437.5,-0.13,325,0.00,1 +26,Exit short,2025-11-25 10:00,M1P0Q0F0L0f0l0,6720.5,1,335762.5,-262.5,-0.08,0,12.5,0.00,-325,-0.10,62.5,0.00,1 +26,Entry short,2025-11-25 09:00,M1P0Q0F0L0f0l0,6715.25,1,335762.5,-262.5,-0.08,0,12.5,0.00,-325,-0.10,62.5,0.00,1 +27,Exit long,2025-11-25 11:00,M1P0Q0F0L0f0l0,6715,1,336025,-275,-0.08,0,75,0.02,-350,-0.10,-212.5,0.00,1 +27,Entry long,2025-11-25 10:00,M1P0Q0F0L0f0l0,6720.5,1,336025,-275,-0.08,0,75,0.02,-350,-0.10,-212.5,0.00,1 +28,Exit short,2025-11-25 12:00,M1P0Q0F0L0f0l0,6719.75,1,335750,-237.5,-0.07,0,12.5,0.00,-387.5,-0.12,-450,0.00,1 +28,Entry short,2025-11-25 11:00,M1P0Q0F0L0f0l0,6715,1,335750,-237.5,-0.07,0,12.5,0.00,-387.5,-0.12,-450,0.00,1 +29,Exit long,2025-11-25 13:00,M1P0Q0F0L0f0l0,6717,1,335987.5,-137.5,-0.04,0,200,0.06,-250,-0.07,-587.5,0.00,1 +29,Entry long,2025-11-25 12:00,M1P0Q0F0L0f0l0,6719.75,1,335987.5,-137.5,-0.04,0,200,0.06,-250,-0.07,-587.5,0.00,1 +30,Exit short,2025-11-25 14:00,M1P0Q0F0L0f0l0,6713.75,1,335850,162.5,0.05,0,237.5,0.07,-162.5,-0.05,-425,0.00,1 +30,Entry short,2025-11-25 13:00,M1P0Q0F0L0f0l0,6717,1,335850,162.5,0.05,0,237.5,0.07,-162.5,-0.05,-425,0.00,1 +31,Exit long,2025-11-25 15:00,M1P0Q0F0L0f0l0,6718,1,335687.5,212.5,0.06,0,387.5,0.12,-150,-0.04,-212.5,0.00,1 +31,Entry long,2025-11-25 14:00,M1P0Q0F0L0f0l0,6713.75,1,335687.5,212.5,0.06,0,387.5,0.12,-150,-0.04,-212.5,0.00,1 +32,Exit short,2025-11-25 16:00,M1P0Q0F0L0f0l0,6709.25,1,335900,437.5,0.13,0,562.5,0.17,-125,-0.04,225,0.00,1 +32,Entry short,2025-11-25 15:00,M1P0Q0F0L0f0l0,6718,1,335900,437.5,0.13,0,562.5,0.17,-125,-0.04,225,0.00,1 +33,Exit long,2025-11-25 17:00,M1P0Q0F0L0f0l0,6708,1,335462.5,-62.5,-0.02,0,325,0.10,-375,-0.11,162.5,0.00,1 +33,Entry long,2025-11-25 16:00,M1P0Q0F0L0f0l0,6709.25,1,335462.5,-62.5,-0.02,0,325,0.10,-375,-0.11,162.5,0.00,1 +34,Exit short,2025-11-25 18:00,M1P0Q0F0L0f0l0,6713,1,335400,-250,-0.07,0,250,0.07,-362.5,-0.11,-87.5,0.00,1 +34,Entry short,2025-11-25 17:00,M1P0Q0F0L0f0l0,6708,1,335400,-250,-0.07,0,250,0.07,-362.5,-0.11,-87.5,0.00,1 +35,Exit long,2025-11-25 19:00,M1P0Q0F0L0f0l0,6712,1,335650,-50,-0.01,0,87.5,0.03,-325,-0.10,-137.5,0.00,1 +35,Entry long,2025-11-25 18:00,M1P0Q0F0L0f0l0,6713,1,335650,-50,-0.01,0,87.5,0.03,-325,-0.10,-137.5,0.00,1 +36,Exit short,2025-11-25 20:00,M1P0Q0F0L0f0l0,6717.5,1,335600,-275,-0.08,0,50,0.01,-1025,-0.31,-412.5,0.00,1 +36,Entry short,2025-11-25 19:00,M1P0Q0F0L0f0l0,6712,1,335600,-275,-0.08,0,50,0.01,-1025,-0.31,-412.5,0.00,1 +37,Exit long,2025-11-25 21:00,M1P0Q0F0L0f0l0,6718,1,335875,25,0.01,0,650,0.19,-137.5,-0.04,-387.5,0.00,1 +37,Entry long,2025-11-25 20:00,M1P0Q0F0L0f0l0,6717.5,1,335875,25,0.01,0,650,0.19,-137.5,-0.04,-387.5,0.00,1 +38,Exit short,2025-11-25 22:00,M1P0Q0F0L0f0l0,6718.25,1,335900,-12.5,0.00,0,2175,0.65,-600,-0.18,-400,0.00,1 +38,Entry short,2025-11-25 21:00,M1P0Q0F0L0f0l0,6718,1,335900,-12.5,0.00,0,2175,0.65,-600,-0.18,-400,0.00,1 +39,Exit long,2025-11-25 23:00,M1P0Q0F0L0f0l0,6728.5,1,335912.5,512.5,0.15,0,1125,0.33,-1462.5,-0.44,112.5,0.00,1 +39,Entry long,2025-11-25 22:00,M1P0Q0F0L0f0l0,6718.25,1,335912.5,512.5,0.15,0,1125,0.33,-1462.5,-0.44,112.5,0.00,1 +40,Exit short,2025-11-26 00:00,M1P0Q0F0L0f0l0,6747.5,1,336425,-950,-0.28,0,500,0.15,-1062.5,-0.32,-837.5,0.00,1 +40,Entry short,2025-11-25 23:00,M1P0Q0F0L0f0l0,6728.5,1,336425,-950,-0.28,0,500,0.15,-1062.5,-0.32,-837.5,0.00,1 +41,Exit long,2025-11-26 01:00,M1P0Q0F0L0f0l0,6763.75,1,337375,812.5,0.24,0,1337.5,0.40,-12.5,0.00,-25,0.00,1 +41,Entry long,2025-11-26 00:00,M1P0Q0F0L0f0l0,6747.5,1,337375,812.5,0.24,0,1337.5,0.40,-12.5,0.00,-25,0.00,1 +42,Exit short,2025-11-26 02:00,M1P0Q0F0L0f0l0,6769,1,338187.5,-262.5,-0.08,0,50,0.01,-537.5,-0.16,-287.5,0.00,1 +42,Entry short,2025-11-26 01:00,M1P0Q0F0L0f0l0,6763.75,1,338187.5,-262.5,-0.08,0,50,0.01,-537.5,-0.16,-287.5,0.00,1 +43,Exit long,2025-11-26 03:00,M1P0Q0F0L0f0l0,6769.75,1,338450,37.5,0.01,0,125,0.04,-700,-0.21,-250,0.00,1 +43,Entry long,2025-11-26 02:00,M1P0Q0F0L0f0l0,6769,1,338450,37.5,0.01,0,125,0.04,-700,-0.21,-250,0.00,1 +44,Exit short,2025-11-26 04:00,M1P0Q0F0L0f0l0,6780.25,1,338487.5,-525,-0.16,0,12.5,0.00,-1137.5,-0.34,-775,0.00,1 +44,Entry short,2025-11-26 03:00,M1P0Q0F0L0f0l0,6769.75,1,338487.5,-525,-0.16,0,12.5,0.00,-1137.5,-0.34,-775,0.00,1 +45,Exit long,2025-11-26 05:00,M1P0Q0F0L1f0l1,6780.75,1,339012.5,25,0.01,0,200,0.06,-87.5,-0.03,-750,0.00,1 +45,Entry long,2025-11-26 04:00,M1P0Q0F0L0f0l0,6780.25,1,339012.5,25,0.01,0,200,0.06,-87.5,-0.03,-750,0.00,1 +46,Exit short,2025-11-26 07:00,M1P0Q0F1L0f1l0,6783.25,1,339037.5,-125,-0.04,0,125,0.04,-237.5,-0.07,-875,0.00,1 +46,Entry short,2025-11-26 05:00,M1P0Q0F0L1f0l1,6780.75,1,339037.5,-125,-0.04,0,125,0.04,-237.5,-0.07,-875,0.00,1 +47,Exit long,2025-11-26 08:00,M1P0Q0F0L0f0l0,6789.75,1,339162.5,325,0.10,0,375,0.11,-150,-0.04,-550,0.00,1 +47,Entry long,2025-11-26 07:00,M1P0Q0F1L0f1l0,6783.25,1,339162.5,325,0.10,0,375,0.11,-150,-0.04,-550,0.00,1 +48,Exit short,2025-11-26 09:00,M1P0Q0F0L0f0l0,6797.5,1,339487.5,-387.5,-0.11,0,100,0.03,-412.5,-0.12,-937.5,0.00,1 +48,Entry short,2025-11-26 08:00,M1P0Q0F0L0f0l0,6789.75,1,339487.5,-387.5,-0.11,0,100,0.03,-412.5,-0.12,-937.5,0.00,1 +49,Exit long,2025-11-26 10:00,M1P0Q0F0L0f0l0,6799,1,339875,75,0.02,0,100,0.03,-87.5,-0.03,-862.5,0.00,1 +49,Entry long,2025-11-26 09:00,M1P0Q0F0L0f0l0,6797.5,1,339875,75,0.02,0,100,0.03,-87.5,-0.03,-862.5,0.00,1 +50,Exit short,2025-11-26 11:00,M1P0Q0F0L0f0l0,6800,1,339950,-50,-0.01,0,75,0.02,-137.5,-0.04,-912.5,0.00,1 +50,Entry short,2025-11-26 10:00,M1P0Q0F0L0f0l0,6799,1,339950,-50,-0.01,0,75,0.02,-137.5,-0.04,-912.5,0.00,1 +51,Exit long,2025-11-26 12:00,M1P0Q0F0L0f0l0,6797.5,1,340000,-125,-0.04,0,50,0.01,-200,-0.06,-1037.5,0.00,1 +51,Entry long,2025-11-26 11:00,M1P0Q0F0L0f0l0,6800,1,340000,-125,-0.04,0,50,0.01,-200,-0.06,-1037.5,0.00,1 +52,Exit short,2025-11-26 13:00,M1P0Q0F0L0f0l0,6803,1,339875,-275,-0.08,0,12.5,0.00,-337.5,-0.10,-1312.5,0.00,1 +52,Entry short,2025-11-26 12:00,M1P0Q0F0L0f0l0,6797.5,1,339875,-275,-0.08,0,12.5,0.00,-337.5,-0.10,-1312.5,0.00,1 +53,Exit long,2025-11-26 14:00,M1P0Q0F0L0f0l0,6805,1,340150,100,0.03,0,212.5,0.06,-112.5,-0.03,-1212.5,0.00,1 +53,Entry long,2025-11-26 13:00,M1P0Q0F0L0f0l0,6803,1,340150,100,0.03,0,212.5,0.06,-112.5,-0.03,-1212.5,0.00,1 +54,Exit short,2025-11-26 15:00,M1P0Q0F0L0f0l0,6807.25,1,340250,-112.5,-0.03,0,12.5,0.00,-287.5,-0.08,-1325,0.00,1 +54,Entry short,2025-11-26 14:00,M1P0Q0F0L0f0l0,6805,1,340250,-112.5,-0.03,0,12.5,0.00,-287.5,-0.08,-1325,0.00,1 +55,Exit long,2025-11-26 16:00,M1P0Q0F0L0f0l0,6800.5,1,340362.5,-337.5,-0.10,0,87.5,0.03,-350,-0.10,-1662.5,0.00,1 +55,Entry long,2025-11-26 15:00,M1P0Q0F0L0f0l0,6807.25,1,340362.5,-337.5,-0.10,0,87.5,0.03,-350,-0.10,-1662.5,0.00,1 +56,Exit short,2025-11-26 17:00,M1P0Q0F0L0f0l0,6795.25,1,340025,262.5,0.08,0,362.5,0.11,-25,-0.01,-1400,0.00,1 +56,Entry short,2025-11-26 16:00,M1P0Q0F0L0f0l0,6800.5,1,340025,262.5,0.08,0,362.5,0.11,-25,-0.01,-1400,0.00,1 +57,Exit long,2025-11-26 18:00,M1P0Q0F0L0f0l0,6803.25,1,339762.5,400,0.12,0,450,0.13,0,0.00,-1000,0.00,1 +57,Entry long,2025-11-26 17:00,M1P0Q0F0L0f0l0,6795.25,1,339762.5,400,0.12,0,450,0.13,0,0.00,-1000,0.00,1 +58,Exit short,2025-11-26 19:00,M1P0Q0F0L0f0l0,6798,1,340162.5,262.5,0.08,0,325,0.10,-87.5,-0.03,-737.5,0.00,1 +58,Entry short,2025-11-26 18:00,M1P0Q0F0L0f0l0,6803.25,1,340162.5,262.5,0.08,0,325,0.10,-87.5,-0.03,-737.5,0.00,1 +59,Exit long,2025-11-26 20:00,M1P0Q0F0L0f0l0,6796.5,1,339900,-75,-0.02,0,62.5,0.02,-550,-0.16,-812.5,0.00,1 +59,Entry long,2025-11-26 19:00,M1P0Q0F0L0f0l0,6798,1,339900,-75,-0.02,0,62.5,0.02,-550,-0.16,-812.5,0.00,1 +60,Exit short,2025-11-26 21:00,M1P0Q0F0L0f0l0,6803.75,1,339825,-362.5,-0.11,0,87.5,0.03,-400,-0.12,-1175,0.00,1 +60,Entry short,2025-11-26 20:00,M1P0Q0F0L0f0l0,6796.5,1,339825,-362.5,-0.11,0,87.5,0.03,-400,-0.12,-1175,0.00,1 +61,Exit long,2025-11-26 22:00,M1P0Q0F0L0f0l0,6802,1,340187.5,-87.5,-0.03,0,1012.5,0.30,-312.5,-0.09,-1262.5,0.00,1 +61,Entry long,2025-11-26 21:00,M1P0Q0F0L0f0l0,6803.75,1,340187.5,-87.5,-0.03,0,1012.5,0.30,-312.5,-0.09,-1262.5,0.00,1 +62,Exit short,2025-11-26 23:00,M1P0Q0F0L0f0l0,6824.5,1,340100,-1125,-0.33,0,312.5,0.09,-1150,-0.34,-2387.5,0.00,1 +62,Entry short,2025-11-26 22:00,M1P0Q0F0L0f0l0,6802,1,340100,-1125,-0.33,0,312.5,0.09,-1150,-0.34,-2387.5,0.00,1 +63,Exit long,2025-11-27 00:00,M1P0Q0F0L0f0l0,6843,1,341225,925,0.27,0,1100,0.32,-37.5,-0.01,-1462.5,0.00,1 +63,Entry long,2025-11-26 23:00,M1P0Q0F0L0f0l0,6824.5,1,341225,925,0.27,0,1100,0.32,-37.5,-0.01,-1462.5,0.00,1 +64,Exit short,2025-11-27 01:00,M1P0Q0F0L0f0l0,6840.5,1,342150,125,0.04,0,475,0.14,-187.5,-0.05,-1337.5,0.00,1 +64,Entry short,2025-11-27 00:00,M1P0Q0F0L0f0l0,6843,1,342150,125,0.04,0,475,0.14,-187.5,-0.05,-1337.5,0.00,1 +65,Exit long,2025-11-27 02:00,M1P0Q0F0L0f0l0,6833,1,342025,-375,-0.11,0,225,0.07,-775,-0.23,-1712.5,0.00,1 +65,Entry long,2025-11-27 01:00,M1P0Q0F0L0f0l0,6840.5,1,342025,-375,-0.11,0,225,0.07,-775,-0.23,-1712.5,0.00,1 +66,Exit short,2025-11-27 03:00,M1P0Q0F0L0f0l0,6838,1,341650,-250,-0.07,0,125,0.04,-512.5,-0.15,-1962.5,0.00,1 +66,Entry short,2025-11-27 02:00,M1P0Q0F0L0f0l0,6833,1,341650,-250,-0.07,0,125,0.04,-512.5,-0.15,-1962.5,0.00,1 +67,Exit long,2025-11-27 04:00,M1P0Q0F0L0f0l0,6825.25,1,341900,-637.5,-0.19,0,362.5,0.11,-637.5,-0.19,-2600,0.00,1 +67,Entry long,2025-11-27 03:00,M1P0Q0F0L0f0l0,6838,1,341900,-637.5,-0.19,0,362.5,0.11,-637.5,-0.19,-2600,0.00,1 +68,Exit short,2025-11-27 05:00,M1P0Q0F0L1f0l1,6830.25,1,341262.5,-250,-0.07,0,12.5,0.00,-400,-0.12,-2850,0.00,1 +68,Entry short,2025-11-27 04:00,M1P0Q0F0L0f0l0,6825.25,1,341262.5,-250,-0.07,0,12.5,0.00,-400,-0.12,-2850,0.00,1 +69,Exit long,2025-11-27 07:00,M1P0Q0F1L0f1l0,6829.25,1,341512.5,-50,-0.01,0,162.5,0.05,-137.5,-0.04,-2900,0.00,1 +69,Entry long,2025-11-27 05:00,M1P0Q0F0L1f0l1,6830.25,1,341512.5,-50,-0.01,0,162.5,0.05,-137.5,-0.04,-2900,0.00,1 +70,Exit short,2025-11-27 08:00,M1P0Q0F0L0f0l0,6832.25,1,341462.5,-150,-0.04,0,50,0.01,-162.5,-0.05,-3050,0.00,1 +70,Entry short,2025-11-27 07:00,M1P0Q0F1L0f1l0,6829.25,1,341462.5,-150,-0.04,0,50,0.01,-162.5,-0.05,-3050,0.00,1 +71,Exit long,2025-11-27 09:00,M1P0Q0F0L0f0l0,6832.75,1,341612.5,25,0.01,0,75,0.02,-225,-0.07,-3025,0.00,1 +71,Entry long,2025-11-27 08:00,M1P0Q0F0L0f0l0,6832.25,1,341612.5,25,0.01,0,75,0.02,-225,-0.07,-3025,0.00,1 +72,Exit short,2025-11-27 10:00,M1P0Q0F0L0f0l0,6829,1,341637.5,187.5,0.05,0,212.5,0.06,-50,-0.01,-2837.5,0.00,1 +72,Entry short,2025-11-27 09:00,M1P0Q0F0L0f0l0,6832.75,1,341637.5,187.5,0.05,0,212.5,0.06,-50,-0.01,-2837.5,0.00,1 +73,Exit long,2025-11-27 11:00,M1P0Q0F0L0f0l0,6828.25,1,341450,-37.5,-0.01,0,37.5,0.01,-125,-0.04,-2875,0.00,1 +73,Entry long,2025-11-27 10:00,M1P0Q0F0L0f0l0,6829,1,341450,-37.5,-0.01,0,37.5,0.01,-125,-0.04,-2875,0.00,1 +74,Exit short,2025-11-27 12:00,M1P0Q0F0L0f0l0,6830,1,341412.5,-87.5,-0.03,0,50,0.01,-125,-0.04,-2962.5,0.00,1 +74,Entry short,2025-11-27 11:00,M1P0Q0F0L0f0l0,6828.25,1,341412.5,-87.5,-0.03,0,50,0.01,-125,-0.04,-2962.5,0.00,1 +75,Exit long,2025-11-27 13:00,M1P0Q0F0L0f0l0,6830.75,1,341500,37.5,0.01,0,162.5,0.05,0,0.00,-2925,0.00,1 +75,Entry long,2025-11-27 12:00,M1P0Q0F0L0f0l0,6830,1,341500,37.5,0.01,0,162.5,0.05,0,0.00,-2925,0.00,1 +76,Exit short,2025-11-27 14:00,M1P0Q0F0L0f0l0,6825.5,1,341537.5,262.5,0.08,0,287.5,0.08,-25,-0.01,-2662.5,0.00,1 +76,Entry short,2025-11-27 13:00,M1P0Q0F0L0f0l0,6830.75,1,341537.5,262.5,0.08,0,287.5,0.08,-25,-0.01,-2662.5,0.00,1 +77,Exit long,2025-11-27 15:00,M1P0Q0F0L0f0l0,6829.75,1,341275,212.5,0.06,0,237.5,0.07,-25,-0.01,-2450,0.00,1 +77,Entry long,2025-11-27 14:00,M1P0Q0F0L0f0l0,6825.5,1,341275,212.5,0.06,0,237.5,0.07,-25,-0.01,-2450,0.00,1 +78,Exit short,2025-11-27 16:00,M1P0Q0F0L0f0l0,6826.75,1,341487.5,150,0.04,0,275,0.08,-150,-0.04,-2300,0.00,1 +78,Entry short,2025-11-27 15:00,M1P0Q0F0L0f0l0,6829.75,1,341487.5,150,0.04,0,275,0.08,-150,-0.04,-2300,0.00,1 +79,Exit long,2025-11-27 17:00,M1P0Q0F0L0f0l0,6825.25,1,341337.5,-75,-0.02,0,237.5,0.07,-87.5,-0.03,-2375,0.00,1 +79,Entry long,2025-11-27 16:00,M1P0Q0F0L0f0l0,6826.75,1,341337.5,-75,-0.02,0,237.5,0.07,-87.5,-0.03,-2375,0.00,1 +80,Exit short,2025-11-27 18:00,M1P0Q0F0L0f0l0,6828.5,1,341262.5,-162.5,-0.05,0,50,0.01,-175,-0.05,-2537.5,0.00,1 +80,Entry short,2025-11-27 17:00,M1P0Q0F0L0f0l0,6825.25,1,341262.5,-162.5,-0.05,0,50,0.01,-175,-0.05,-2537.5,0.00,1 +81,Exit long,2025-11-27 19:00,M1P0Q0F0L0f0l0,6827.5,1,341425,-50,-0.01,0,50,0.01,-162.5,-0.05,-2587.5,0.00,1 +81,Entry long,2025-11-27 18:00,M1P0Q0F0L0f0l0,6828.5,1,341425,-50,-0.01,0,50,0.01,-162.5,-0.05,-2587.5,0.00,1 +82,Exit short,2025-11-27 20:00,M1P0Q0F0L0f0l0,6827,1,341375,25,0.01,0,50,0.01,-137.5,-0.04,-2562.5,0.00,1 +82,Entry short,2025-11-27 19:00,M1P0Q0F0L0f0l0,6827.5,1,341375,25,0.01,0,50,0.01,-137.5,-0.04,-2562.5,0.00,1 +83,Exit long,2025-11-27 21:00,M1P0Q0F0L0f0l0,6828,1,341350,50,0.01,0,150,0.04,-112.5,-0.03,-2512.5,0.00,1 +83,Entry long,2025-11-27 20:00,M1P0Q0F0L0f0l0,6827,1,341350,50,0.01,0,150,0.04,-112.5,-0.03,-2512.5,0.00,1 +84,Exit short,2025-11-27 22:00,M1P0Q0F0L0f0l0,6827.5,1,341400,25,0.01,0,112.5,0.03,-187.5,-0.05,-2487.5,0.00,1 +84,Entry short,2025-11-27 21:00,M1P0Q0F0L0f0l0,6828,1,341400,25,0.01,0,112.5,0.03,-187.5,-0.05,-2487.5,0.00,1 +85,Exit long,2025-11-27 23:00,M1P0Q0F0L0f0l0,6827,1,341375,-25,-0.01,0,75,0.02,-125,-0.04,-2512.5,0.00,1 +85,Entry long,2025-11-27 22:00,M1P0Q0F0L0f0l0,6827.5,1,341375,-25,-0.01,0,75,0.02,-125,-0.04,-2512.5,0.00,1 +86,Exit short,2025-11-28 00:00,M1P0Q0F0L0f0l0,6827,1,341350,0,0.00,0,100,0.03,-87.5,-0.03,-2512.5,0.00,1 +86,Entry short,2025-11-27 23:00,M1P0Q0F0L0f0l0,6827,1,341350,0,0.00,0,100,0.03,-87.5,-0.03,-2512.5,0.00,1 +87,Exit long,2025-11-28 01:00,M1P0Q0F0L1f0l1,6828,1,341350,50,0.01,0,75,0.02,-75,-0.02,-2462.5,0.00,1 +87,Entry long,2025-11-28 00:00,M1P0Q0F0L0f0l0,6827,1,341350,50,0.01,0,75,0.02,-75,-0.02,-2462.5,0.00,1 +88,Exit short,2025-11-28 07:00,M1P0Q0F1L0f1l0,6836.5,1,341400,-425,-0.12,0,0,0.00,-437.5,-0.13,-2887.5,0.00,1 +88,Entry short,2025-11-28 01:00,M1P0Q0F0L1f0l1,6828,1,341400,-425,-0.12,0,0,0.00,-437.5,-0.13,-2887.5,0.00,1 +89,Exit long,2025-11-28 08:00,M1P0Q0F0L0f0l0,6836.25,1,341825,-12.5,0.00,0,137.5,0.04,-75,-0.02,-2900,0.00,1 +89,Entry long,2025-11-28 07:00,M1P0Q0F1L0f1l0,6836.5,1,341825,-12.5,0.00,0,137.5,0.04,-75,-0.02,-2900,0.00,1 +90,Exit short,2025-11-28 09:00,M1P0Q0F0L0f0l0,6835.25,1,341812.5,50,0.01,0,87.5,0.03,-250,-0.07,-2850,0.00,1 +90,Entry short,2025-11-28 08:00,M1P0Q0F0L0f0l0,6836.25,1,341812.5,50,0.01,0,87.5,0.03,-250,-0.07,-2850,0.00,1 +91,Exit long,2025-11-28 10:00,M1P0Q0F0L0f0l0,6835,1,341762.5,-12.5,0.00,0,100,0.03,-150,-0.04,-2862.5,0.00,1 +91,Entry long,2025-11-28 09:00,M1P0Q0F0L0f0l0,6835.25,1,341762.5,-12.5,0.00,0,100,0.03,-150,-0.04,-2862.5,0.00,1 +92,Exit short,2025-11-28 21:00,M1P0Q0F0L0f0l0,6837.25,1,341750,-112.5,-0.03,0,0,0.00,-475,-0.14,-2975,0.00,1 +92,Entry short,2025-11-28 10:00,M1P0Q0F0L0f0l0,6835,1,341750,-112.5,-0.03,0,0,0.00,-475,-0.14,-2975,0.00,1 +93,Exit long,2025-11-28 22:00,M1P0Q0F0L0f0l0,6838.5,1,341862.5,62.5,0.02,0,350,0.10,-300,-0.09,-2912.5,0.00,1 +93,Entry long,2025-11-28 21:00,M1P0Q0F0L0f0l0,6837.25,1,341862.5,62.5,0.02,0,350,0.10,-300,-0.09,-2912.5,0.00,1 +94,Exit short,2025-11-28 23:00,M1P0Q0F0L0f0l0,6851,1,341925,-625,-0.18,0,100,0.03,-700,-0.20,-3537.5,0.00,1 +94,Entry short,2025-11-28 22:00,M1P0Q0F0L0f0l0,6838.5,1,341925,-625,-0.18,0,100,0.03,-700,-0.20,-3537.5,0.00,1 +95,Exit long,2025-11-29 00:00,M1P0Q0F0L0f0l0,6854.25,1,342550,162.5,0.05,0,250,0.07,-425,-0.12,-3375,0.00,1 +95,Entry long,2025-11-28 23:00,M1P0Q0F0L0f0l0,6851,1,342550,162.5,0.05,0,250,0.07,-425,-0.12,-3375,0.00,1 +96,Exit short,2025-11-29 01:00,M1P0Q0F0L0f0l0,6860.5,1,342712.5,-312.5,-0.09,0,450,0.13,-475,-0.14,-3687.5,0.00,1 +96,Entry short,2025-11-29 00:00,M1P0Q0F0L0f0l0,6854.25,1,342712.5,-312.5,-0.09,0,450,0.13,-475,-0.14,-3687.5,0.00,1 +97,Exit long,2025-11-29 02:00,M1P0Q0F0L1f0l1,6857.25,1,343025,-162.5,-0.05,0,150,0.04,-262.5,-0.08,-3850,0.00,1 +97,Entry long,2025-11-29 01:00,M1P0Q0F0L0f0l0,6860.5,1,343025,-162.5,-0.05,0,150,0.04,-262.5,-0.08,-3850,0.00,1 +98,Exit short,2025-12-01 07:00,M1P0Q0F1L0f1l0,6853,1,342862.5,212.5,0.06,0,437.5,0.13,-362.5,-0.11,-3637.5,0.00,1 +98,Entry short,2025-11-29 02:00,M1P0Q0F0L1f0l1,6857.25,1,342862.5,212.5,0.06,0,437.5,0.13,-362.5,-0.11,-3637.5,0.00,1 +99,Exit long,2025-12-01 08:00,M1P0Q0F0L0f0l0,6828.75,1,342650,-1212.5,-0.35,0,75,0.02,-1337.5,-0.39,-4850,0.00,1 +99,Entry long,2025-12-01 07:00,M1P0Q0F1L0f1l0,6853,1,342650,-1212.5,-0.35,0,75,0.02,-1337.5,-0.39,-4850,0.00,1 +100,Exit short,2025-12-01 09:00,M1P0Q0F0L0f0l0,6825.25,1,341437.5,175,0.05,0,575,0.17,-112.5,-0.03,-4675,0.00,1 +100,Entry short,2025-12-01 08:00,M1P0Q0F0L0f0l0,6828.75,1,341437.5,175,0.05,0,575,0.17,-112.5,-0.03,-4675,0.00,1 +101,Exit long,2025-12-01 10:00,M1P0Q0F0L0f0l0,6819.75,1,341262.5,-275,-0.08,0,87.5,0.03,-400,-0.12,-4950,0.00,1 +101,Entry long,2025-12-01 09:00,M1P0Q0F0L0f0l0,6825.25,1,341262.5,-275,-0.08,0,87.5,0.03,-400,-0.12,-4950,0.00,1 +102,Exit short,2025-12-01 11:00,M1P0Q0F0L0f0l0,6814.75,1,340987.5,250,0.07,0,412.5,0.12,0,0.00,-4700,0.00,1 +102,Entry short,2025-12-01 10:00,M1P0Q0F0L0f0l0,6819.75,1,340987.5,250,0.07,0,412.5,0.12,0,0.00,-4700,0.00,1 +103,Exit long,2025-12-01 12:00,M1P0Q0F0L0f0l0,6807.75,1,340737.5,-350,-0.10,0,50,0.01,-350,-0.10,-5050,0.00,1 +103,Entry long,2025-12-01 11:00,M1P0Q0F0L0f0l0,6814.75,1,340737.5,-350,-0.10,0,50,0.01,-350,-0.10,-5050,0.00,1 +104,Exit short,2025-12-01 13:00,M1P0Q0F0L0f0l0,6811.75,1,340387.5,-200,-0.06,0,287.5,0.08,-237.5,-0.07,-5250,0.00,1 +104,Entry short,2025-12-01 12:00,M1P0Q0F0L0f0l0,6807.75,1,340387.5,-200,-0.06,0,287.5,0.08,-237.5,-0.07,-5250,0.00,1 +105,Exit long,2025-12-01 14:00,M1P0Q0F0L0f0l0,6815.25,1,340587.5,175,0.05,0,187.5,0.06,-175,-0.05,-5075,0.00,1 +105,Entry long,2025-12-01 13:00,M1P0Q0F0L0f0l0,6811.75,1,340587.5,175,0.05,0,187.5,0.06,-175,-0.05,-5075,0.00,1 +106,Exit short,2025-12-01 15:00,M1P0Q0F0L0f0l0,6816,1,340762.5,-37.5,-0.01,0,325,0.10,-112.5,-0.03,-5112.5,0.00,1 +106,Entry short,2025-12-01 14:00,M1P0Q0F0L0f0l0,6815.25,1,340762.5,-37.5,-0.01,0,325,0.10,-112.5,-0.03,-5112.5,0.00,1 +107,Exit long,2025-12-01 16:00,M1P0Q0F0L0f0l0,6823,1,340800,350,0.10,0,575,0.17,-187.5,-0.06,-4762.5,0.00,1 +107,Entry long,2025-12-01 15:00,M1P0Q0F0L0f0l0,6816,1,340800,350,0.10,0,575,0.17,-187.5,-0.06,-4762.5,0.00,1 +108,Exit short,2025-12-01 17:00,M1P0Q0F0L0f0l0,6816.25,1,341150,337.5,0.10,0,400,0.12,-337.5,-0.10,-4425,0.00,1 +108,Entry short,2025-12-01 16:00,M1P0Q0F0L0f0l0,6823,1,341150,337.5,0.10,0,400,0.12,-337.5,-0.10,-4425,0.00,1 +109,Exit long,2025-12-01 18:00,M1P0Q0F0L0f0l0,6820.5,1,340812.5,212.5,0.06,0,475,0.14,0,0.00,-4212.5,0.00,1 +109,Entry long,2025-12-01 17:00,M1P0Q0F0L0f0l0,6816.25,1,340812.5,212.5,0.06,0,475,0.14,0,0.00,-4212.5,0.00,1 +110,Exit short,2025-12-01 19:00,M1P0Q0F0L0f0l0,6819.5,1,341025,50,0.01,0,237.5,0.07,-62.5,-0.02,-4162.5,0.00,1 +110,Entry short,2025-12-01 18:00,M1P0Q0F0L0f0l0,6820.5,1,341025,50,0.01,0,237.5,0.07,-62.5,-0.02,-4162.5,0.00,1 +111,Exit long,2025-12-01 20:00,M1P0Q0F0L0f0l0,6808.75,1,340975,-537.5,-0.16,0,87.5,0.03,-725,-0.21,-4700,0.00,1 +111,Entry long,2025-12-01 19:00,M1P0Q0F0L0f0l0,6819.5,1,340975,-537.5,-0.16,0,87.5,0.03,-725,-0.21,-4700,0.00,1 +112,Exit short,2025-12-01 21:00,M1P0Q0F0L0f0l0,6817.25,1,340437.5,-425,-0.12,0,87.5,0.03,-475,-0.14,-5125,0.00,1 +112,Entry short,2025-12-01 20:00,M1P0Q0F0L0f0l0,6808.75,1,340437.5,-425,-0.12,0,87.5,0.03,-475,-0.14,-5125,0.00,1 +113,Exit long,2025-12-01 22:00,M1P0Q0F0L0f0l0,6839.75,1,340862.5,1125,0.33,0,1350,0.40,-275,-0.08,-4000,0.00,1 +113,Entry long,2025-12-01 21:00,M1P0Q0F0L0f0l0,6817.25,1,340862.5,1125,0.33,0,1350,0.40,-275,-0.08,-4000,0.00,1 +114,Exit short,2025-12-01 23:00,M1P0Q0F0L0f0l0,6842.25,1,341987.5,-125,-0.04,0,1300,0.38,-212.5,-0.06,-4125,0.00,1 +114,Entry short,2025-12-01 22:00,M1P0Q0F0L0f0l0,6839.75,1,341987.5,-125,-0.04,0,1300,0.38,-212.5,-0.06,-4125,0.00,1 +115,Exit long,2025-12-02 00:00,M1P0Q0F0L0f0l0,6845,1,342112.5,137.5,0.04,0,387.5,0.11,-775,-0.23,-3987.5,0.00,1 +115,Entry long,2025-12-01 23:00,M1P0Q0F0L0f0l0,6842.25,1,342112.5,137.5,0.04,0,387.5,0.11,-775,-0.23,-3987.5,0.00,1 +116,Exit short,2025-12-02 01:00,M1P0Q0F0L0f0l0,6846,1,342250,-50,-0.01,0,325,0.09,-425,-0.12,-4037.5,0.00,1 +116,Entry short,2025-12-02 00:00,M1P0Q0F0L0f0l0,6845,1,342250,-50,-0.01,0,325,0.09,-425,-0.12,-4037.5,0.00,1 +117,Exit long,2025-12-02 02:00,M1P0Q0F0L0f0l0,6853.75,1,342300,387.5,0.11,0,487.5,0.14,-37.5,-0.01,-3650,0.00,1 +117,Entry long,2025-12-02 01:00,M1P0Q0F0L0f0l0,6846,1,342300,387.5,0.11,0,487.5,0.14,-37.5,-0.01,-3650,0.00,1 +118,Exit short,2025-12-02 03:00,M1P0Q0F0L0f0l0,6827.75,1,342687.5,1300,0.38,0,1500,0.44,-25,-0.01,-2350,0.00,1 +118,Entry short,2025-12-02 02:00,M1P0Q0F0L0f0l0,6853.75,1,342687.5,1300,0.38,0,1500,0.44,-25,-0.01,-2350,0.00,1 +119,Exit long,2025-12-02 04:00,M1P0Q0F0L0f0l0,6829,1,341387.5,62.5,0.02,0,425,0.12,-425,-0.12,-2287.5,0.00,1 +119,Entry long,2025-12-02 03:00,M1P0Q0F0L0f0l0,6827.75,1,341387.5,62.5,0.02,0,425,0.12,-425,-0.12,-2287.5,0.00,1 +120,Exit short,2025-12-02 05:00,M1P0Q0F0L1f0l1,6826.75,1,341450,112.5,0.03,0,212.5,0.06,-50,-0.01,-2175,0.00,1 +120,Entry short,2025-12-02 04:00,M1P0Q0F0L0f0l0,6829,1,341450,112.5,0.03,0,212.5,0.06,-50,-0.01,-2175,0.00,1 +121,Exit long,2025-12-02 07:00,M1P0Q0F1L0f1l0,6825,1,341337.5,-87.5,-0.03,0,225,0.07,-237.5,-0.07,-2262.5,0.00,1 +121,Entry long,2025-12-02 05:00,M1P0Q0F0L1f0l1,6826.75,1,341337.5,-87.5,-0.03,0,225,0.07,-237.5,-0.07,-2262.5,0.00,1 +122,Exit short,2025-12-02 08:00,M1P0Q0F0L0f0l0,6826.5,1,341250,-75,-0.02,0,150,0.04,-200,-0.06,-2337.5,0.00,1 +122,Entry short,2025-12-02 07:00,M1P0Q0F1L0f1l0,6825,1,341250,-75,-0.02,0,150,0.04,-200,-0.06,-2337.5,0.00,1 +123,Exit long,2025-12-02 09:00,M1P0Q0F0L0f0l0,6827.25,1,341325,37.5,0.01,0,337.5,0.10,-75,-0.02,-2300,0.00,1 +123,Entry long,2025-12-02 08:00,M1P0Q0F0L0f0l0,6826.5,1,341325,37.5,0.01,0,337.5,0.10,-75,-0.02,-2300,0.00,1 +124,Exit short,2025-12-02 10:00,M1P0Q0F0L0f0l0,6829.25,1,341362.5,-100,-0.03,0,212.5,0.06,-187.5,-0.05,-2400,0.00,1 +124,Entry short,2025-12-02 09:00,M1P0Q0F0L0f0l0,6827.25,1,341362.5,-100,-0.03,0,212.5,0.06,-187.5,-0.05,-2400,0.00,1 +125,Exit long,2025-12-02 11:00,M1P0Q0F0L0f0l0,6824.25,1,341462.5,-250,-0.07,0,12.5,0.00,-700,-0.21,-2650,0.00,1 +125,Entry long,2025-12-02 10:00,M1P0Q0F0L0f0l0,6829.25,1,341462.5,-250,-0.07,0,12.5,0.00,-700,-0.21,-2650,0.00,1 +126,Exit short,2025-12-02 12:00,M1P0Q0F0L0f0l0,6820.75,1,341212.5,175,0.05,0,225,0.07,-75,-0.02,-2475,0.00,1 +126,Entry short,2025-12-02 11:00,M1P0Q0F0L0f0l0,6824.25,1,341212.5,175,0.05,0,225,0.07,-75,-0.02,-2475,0.00,1 +127,Exit long,2025-12-02 13:00,M1P0Q0F0L0f0l0,6820.75,1,341037.5,0,0.00,0,112.5,0.03,-100,-0.03,-2475,0.00,1 +127,Entry long,2025-12-02 12:00,M1P0Q0F0L0f0l0,6820.75,1,341037.5,0,0.00,0,112.5,0.03,-100,-0.03,-2475,0.00,1 +128,Exit short,2025-12-02 14:00,M1P0Q0F0L0f0l0,6821,1,341037.5,-12.5,0.00,0,325,0.10,-162.5,-0.05,-2487.5,0.00,1 +128,Entry short,2025-12-02 13:00,M1P0Q0F0L0f0l0,6820.75,1,341037.5,-12.5,0.00,0,325,0.10,-162.5,-0.05,-2487.5,0.00,1 +129,Exit long,2025-12-02 15:00,M1P0Q0F0L0f0l0,6819.25,1,341050,-87.5,-0.03,0,200,0.06,-175,-0.05,-2575,0.00,1 +129,Entry long,2025-12-02 14:00,M1P0Q0F0L0f0l0,6821,1,341050,-87.5,-0.03,0,200,0.06,-175,-0.05,-2575,0.00,1 +130,Exit short,2025-12-02 16:00,M1P0Q0F0L0f0l0,6829.5,1,340962.5,-512.5,-0.15,0,350,0.10,-575,-0.17,-3087.5,0.00,1 +130,Entry short,2025-12-02 15:00,M1P0Q0F0L0f0l0,6819.25,1,340962.5,-512.5,-0.15,0,350,0.10,-575,-0.17,-3087.5,0.00,1 +131,Exit long,2025-12-02 17:00,M1P0Q0F0L0f0l0,6834.5,1,341475,250,0.07,0,375,0.11,-12.5,0.00,-2837.5,0.00,1 +131,Entry long,2025-12-02 16:00,M1P0Q0F0L0f0l0,6829.5,1,341475,250,0.07,0,375,0.11,-12.5,0.00,-2837.5,0.00,1 +132,Exit short,2025-12-02 18:00,M1P0Q0F0L0f0l0,6845,1,341725,-525,-0.15,0,62.5,0.02,-612.5,-0.18,-3362.5,0.00,1 +132,Entry short,2025-12-02 17:00,M1P0Q0F0L0f0l0,6834.5,1,341725,-525,-0.15,0,62.5,0.02,-612.5,-0.18,-3362.5,0.00,1 +133,Exit long,2025-12-02 19:00,M1P0Q0F0L0f0l0,6843.5,1,342250,-75,-0.02,0,200,0.06,-125,-0.04,-3437.5,0.00,1 +133,Entry long,2025-12-02 18:00,M1P0Q0F0L0f0l0,6845,1,342250,-75,-0.02,0,200,0.06,-125,-0.04,-3437.5,0.00,1 +134,Exit short,2025-12-02 20:00,M1P0Q0F0L0f0l0,6845.5,1,342175,-100,-0.03,0,325,0.09,-112.5,-0.03,-3537.5,0.00,1 +134,Entry short,2025-12-02 19:00,M1P0Q0F0L0f0l0,6843.5,1,342175,-100,-0.03,0,325,0.09,-112.5,-0.03,-3537.5,0.00,1 +135,Exit long,2025-12-02 21:00,M1P0Q0F0L0f0l0,6848.5,1,342275,150,0.04,0,150,0.04,-162.5,-0.05,-3387.5,0.00,1 +135,Entry long,2025-12-02 20:00,M1P0Q0F0L0f0l0,6845.5,1,342275,150,0.04,0,150,0.04,-162.5,-0.05,-3387.5,0.00,1 +136,Exit short,2025-12-02 22:00,M1P0Q0F0L0f0l0,6848.25,1,342425,12.5,0.00,0,437.5,0.13,-312.5,-0.09,-3375,0.00,1 +136,Entry short,2025-12-02 21:00,M1P0Q0F0L0f0l0,6848.5,1,342425,12.5,0.00,0,437.5,0.13,-312.5,-0.09,-3375,0.00,1 +137,Exit long,2025-12-02 23:00,M1P0Q0F0L0f0l0,6860.25,1,342412.5,600,0.18,0,687.5,0.20,-750,-0.22,-2775,0.00,1 +137,Entry long,2025-12-02 22:00,M1P0Q0F0L0f0l0,6848.25,1,342412.5,600,0.18,0,687.5,0.20,-750,-0.22,-2775,0.00,1 +138,Exit short,2025-12-03 00:00,M1P0Q0F0L0f0l0,6830.5,1,343012.5,1487.5,0.43,0,2112.5,0.62,-162.5,-0.05,-1287.5,0.00,1 +138,Entry short,2025-12-02 23:00,M1P0Q0F0L0f0l0,6860.25,1,343012.5,1487.5,0.43,0,2112.5,0.62,-162.5,-0.05,-1287.5,0.00,1 +139,Exit long,2025-12-03 01:00,M1P0Q0F0L0f0l0,6826.25,1,341525,-212.5,-0.06,0,1137.5,0.33,-225,-0.07,-1500,0.00,1 +139,Entry long,2025-12-03 00:00,M1P0Q0F0L0f0l0,6830.5,1,341525,-212.5,-0.06,0,1137.5,0.33,-225,-0.07,-1500,0.00,1 +140,Exit short,2025-12-03 02:00,M1P0Q0F0L0f0l0,6835.75,1,341312.5,-475,-0.14,0,100,0.03,-725,-0.21,-1975,0.00,1 +140,Entry short,2025-12-03 01:00,M1P0Q0F0L0f0l0,6826.25,1,341312.5,-475,-0.14,0,100,0.03,-725,-0.21,-1975,0.00,1 +141,Exit long,2025-12-03 03:00,M1P0Q0F0L0f0l0,6848,1,341787.5,612.5,0.18,0,750,0.22,-175,-0.05,-1362.5,0.00,1 +141,Entry long,2025-12-03 02:00,M1P0Q0F0L0f0l0,6835.75,1,341787.5,612.5,0.18,0,750,0.22,-175,-0.05,-1362.5,0.00,1 +142,Exit short,2025-12-03 04:00,M1P0Q0F0L0f0l0,6839.25,1,342400,437.5,0.13,0,500,0.15,-275,-0.08,-925,0.00,1 +142,Entry short,2025-12-03 03:00,M1P0Q0F0L0f0l0,6848,1,342400,437.5,0.13,0,500,0.15,-275,-0.08,-925,0.00,1 +143,Exit long,2025-12-03 05:00,M1P0Q0F0L1f0l1,6842.75,1,341962.5,175,0.05,0,187.5,0.05,-62.5,-0.02,-750,0.00,1 +143,Entry long,2025-12-03 04:00,M1P0Q0F0L0f0l0,6839.25,1,341962.5,175,0.05,0,187.5,0.05,-62.5,-0.02,-750,0.00,1 +144,Exit short,2025-12-03 07:00,M1P0Q0F1L0f1l0,6845.75,1,342137.5,-150,-0.04,0,62.5,0.02,-250,-0.07,-900,0.00,1 +144,Entry short,2025-12-03 05:00,M1P0Q0F0L1f0l1,6842.75,1,342137.5,-150,-0.04,0,62.5,0.02,-250,-0.07,-900,0.00,1 +145,Exit long,2025-12-03 08:00,M1P0Q0F0L0f0l0,6848.5,1,342287.5,137.5,0.04,0,250,0.07,-425,-0.12,-762.5,0.00,1 +145,Entry long,2025-12-03 07:00,M1P0Q0F1L0f1l0,6845.75,1,342287.5,137.5,0.04,0,250,0.07,-425,-0.12,-762.5,0.00,1 +146,Exit short,2025-12-03 09:00,M1P0Q0F0L0f0l0,6849.75,1,342425,-62.5,-0.02,0,50,0.01,-162.5,-0.05,-825,0.00,1 +146,Entry short,2025-12-03 08:00,M1P0Q0F0L0f0l0,6848.5,1,342425,-62.5,-0.02,0,50,0.01,-162.5,-0.05,-825,0.00,1 +147,Exit long,2025-12-03 10:00,M1P0Q0F0L0f0l0,6852,1,342487.5,112.5,0.03,0,300,0.09,-50,-0.01,-712.5,0.00,1 +147,Entry long,2025-12-03 09:00,M1P0Q0F0L0f0l0,6849.75,1,342487.5,112.5,0.03,0,300,0.09,-50,-0.01,-712.5,0.00,1 +148,Exit short,2025-12-03 11:00,M1P0Q0F0L0f0l0,6855.75,1,342600,-187.5,-0.05,0,112.5,0.03,-250,-0.07,-900,0.00,1 +148,Entry short,2025-12-03 10:00,M1P0Q0F0L0f0l0,6852,1,342600,-187.5,-0.05,0,112.5,0.03,-250,-0.07,-900,0.00,1 +149,Exit long,2025-12-03 12:00,M1P0Q0F0L0f0l0,6854.5,1,342787.5,-62.5,-0.02,0,50,0.01,-87.5,-0.03,-962.5,0.00,1 +149,Entry long,2025-12-03 11:00,M1P0Q0F0L0f0l0,6855.75,1,342787.5,-62.5,-0.02,0,50,0.01,-87.5,-0.03,-962.5,0.00,1 +150,Exit short,2025-12-03 13:00,M1P0Q0F0L0f0l0,6853.5,1,342725,50,0.01,0,87.5,0.03,-162.5,-0.05,-912.5,0.00,1 +150,Entry short,2025-12-03 12:00,M1P0Q0F0L0f0l0,6854.5,1,342725,50,0.01,0,87.5,0.03,-162.5,-0.05,-912.5,0.00,1 +151,Exit long,2025-12-03 14:00,M1P0Q0F0L0f0l0,6853.25,1,342675,-12.5,0.00,0,137.5,0.04,-212.5,-0.06,-925,0.00,1 +151,Entry long,2025-12-03 13:00,M1P0Q0F0L0f0l0,6853.5,1,342675,-12.5,0.00,0,137.5,0.04,-212.5,-0.06,-925,0.00,1 +152,Exit short,2025-12-03 15:00,M1P0Q0F0L0f0l0,6852.5,1,342662.5,37.5,0.01,0,150,0.04,-187.5,-0.05,-887.5,0.00,1 +152,Entry short,2025-12-03 14:00,M1P0Q0F0L0f0l0,6853.25,1,342662.5,37.5,0.01,0,150,0.04,-187.5,-0.05,-887.5,0.00,1 +153,Exit long,2025-12-03 16:00,M1P0Q0F0L0f0l0,6855.25,1,342625,137.5,0.04,0,175,0.05,-337.5,-0.10,-750,0.00,1 +153,Entry long,2025-12-03 15:00,M1P0Q0F0L0f0l0,6852.5,1,342625,137.5,0.04,0,175,0.05,-337.5,-0.10,-750,0.00,1 +154,Exit short,2025-12-03 17:00,M1P0Q0F0L0f0l0,6852,1,342762.5,162.5,0.05,0,412.5,0.12,-12.5,0.00,-587.5,0.00,1 +154,Entry short,2025-12-03 16:00,M1P0Q0F0L0f0l0,6855.25,1,342762.5,162.5,0.05,0,412.5,0.12,-12.5,0.00,-587.5,0.00,1 +155,Exit long,2025-12-03 18:00,M1P0Q0F0L0f0l0,6849.75,1,342600,-112.5,-0.03,0,125,0.04,-275,-0.08,-700,0.00,1 +155,Entry long,2025-12-03 17:00,M1P0Q0F0L0f0l0,6852,1,342600,-112.5,-0.03,0,125,0.04,-275,-0.08,-700,0.00,1 +156,Exit short,2025-12-03 19:00,M1P0Q0F0L0f0l0,6850.5,1,342487.5,-37.5,-0.01,0,137.5,0.04,-200,-0.06,-737.5,0.00,1 +156,Entry short,2025-12-03 18:00,M1P0Q0F0L0f0l0,6849.75,1,342487.5,-37.5,-0.01,0,137.5,0.04,-200,-0.06,-737.5,0.00,1 +157,Exit long,2025-12-03 20:00,M1P0Q0F0L0f0l0,6858,1,342525,375,0.11,0,500,0.15,-200,-0.06,-362.5,0.00,1 +157,Entry long,2025-12-03 19:00,M1P0Q0F0L0f0l0,6850.5,1,342525,375,0.11,0,500,0.15,-200,-0.06,-362.5,0.00,1 +158,Exit short,2025-12-03 21:00,M1P0Q0F0L0f0l0,6855.5,1,342900,125,0.04,0,200,0.06,-212.5,-0.06,-237.5,0.00,1 +158,Entry short,2025-12-03 20:00,M1P0Q0F0L0f0l0,6858,1,342900,125,0.04,0,200,0.06,-212.5,-0.06,-237.5,0.00,1 +159,Exit long,2025-12-03 22:00,M1P0Q0F0L0f0l0,6832.75,1,342775,-1137.5,-0.33,0,50,0.01,-1900,-0.55,-1375,0.00,1 +159,Entry long,2025-12-03 21:00,M1P0Q0F0L0f0l0,6855.5,1,342775,-1137.5,-0.33,0,50,0.01,-1900,-0.55,-1375,0.00,1 +160,Exit short,2025-12-03 23:00,M1P0Q0F0L0f0l0,6847,1,341637.5,-712.5,-0.21,0,87.5,0.03,-1037.5,-0.30,-2087.5,0.00,1 +160,Entry short,2025-12-03 22:00,M1P0Q0F0L0f0l0,6832.75,1,341637.5,-712.5,-0.21,0,87.5,0.03,-1037.5,-0.30,-2087.5,0.00,1 +161,Exit long,2025-12-04 00:00,M1P0Q0F0L0f0l0,6845.75,1,342350,-62.5,-0.02,0,625,0.18,-350,-0.10,-2150,0.00,1 +161,Entry long,2025-12-03 23:00,M1P0Q0F0L0f0l0,6847,1,342350,-62.5,-0.02,0,625,0.18,-350,-0.10,-2150,0.00,1 +162,Exit short,2025-12-04 01:00,M1P0Q0F0L0f0l0,6863,1,342287.5,-862.5,-0.25,0,50,0.01,-962.5,-0.28,-3012.5,0.00,1 +162,Entry short,2025-12-04 00:00,M1P0Q0F0L0f0l0,6845.75,1,342287.5,-862.5,-0.25,0,50,0.01,-962.5,-0.28,-3012.5,0.00,1 +163,Exit long,2025-12-04 02:00,M1P0Q0F0L0f0l0,6863,1,343150,0,0.00,0,312.5,0.09,-212.5,-0.06,-3012.5,0.00,1 +163,Entry long,2025-12-04 01:00,M1P0Q0F0L0f0l0,6863,1,343150,0,0.00,0,312.5,0.09,-212.5,-0.06,-3012.5,0.00,1 +164,Exit short,2025-12-04 03:00,M1P0Q0F0L0f0l0,6870.25,1,343150,-362.5,-0.11,0,37.5,0.01,-437.5,-0.13,-3375,0.00,1 +164,Entry short,2025-12-04 02:00,M1P0Q0F0L0f0l0,6863,1,343150,-362.5,-0.11,0,37.5,0.01,-437.5,-0.13,-3375,0.00,1 +165,Exit long,2025-12-04 04:00,M1P0Q0F0L0f0l0,6862.5,1,343512.5,-387.5,-0.11,0,150,0.04,-550,-0.16,-3762.5,0.00,1 +165,Entry long,2025-12-04 03:00,M1P0Q0F0L0f0l0,6870.25,1,343512.5,-387.5,-0.11,0,150,0.04,-550,-0.16,-3762.5,0.00,1 +166,Exit short,2025-12-04 05:00,M1P0Q0F0L1f0l1,6864.75,1,343125,-112.5,-0.03,0,50,0.01,-137.5,-0.04,-3875,0.00,1 +166,Entry short,2025-12-04 04:00,M1P0Q0F0L0f0l0,6862.5,1,343125,-112.5,-0.03,0,50,0.01,-137.5,-0.04,-3875,0.00,1 +167,Exit long,2025-12-04 07:00,M1P0Q0F1L0f1l0,6863.5,1,343237.5,-62.5,-0.02,0,62.5,0.02,-187.5,-0.05,-3937.5,0.00,1 +167,Entry long,2025-12-04 05:00,M1P0Q0F0L1f0l1,6864.75,1,343237.5,-62.5,-0.02,0,62.5,0.02,-187.5,-0.05,-3937.5,0.00,1 +168,Exit short,2025-12-04 08:00,M1P0Q0F0L0f0l0,6859.5,1,343175,200,0.06,0,287.5,0.08,-162.5,-0.05,-3737.5,0.00,1 +168,Entry short,2025-12-04 07:00,M1P0Q0F1L0f1l0,6863.5,1,343175,200,0.06,0,287.5,0.08,-162.5,-0.05,-3737.5,0.00,1 +169,Exit long,2025-12-04 09:00,M1P0Q0F0L0f0l0,6861.25,1,342975,87.5,0.03,0,275,0.08,-37.5,-0.01,-3650,0.00,1 +169,Entry long,2025-12-04 08:00,M1P0Q0F0L0f0l0,6859.5,1,342975,87.5,0.03,0,275,0.08,-37.5,-0.01,-3650,0.00,1 +170,Exit short,2025-12-04 10:00,M1P0Q0F0L0f0l0,6863.25,1,343062.5,-100,-0.03,0,187.5,0.05,-162.5,-0.05,-3750,0.00,1 +170,Entry short,2025-12-04 09:00,M1P0Q0F0L0f0l0,6861.25,1,343062.5,-100,-0.03,0,187.5,0.05,-162.5,-0.05,-3750,0.00,1 +171,Exit long,2025-12-04 11:00,M1P0Q0F0L0f0l0,6860.5,1,343162.5,-137.5,-0.04,0,0,0.00,-312.5,-0.09,-3887.5,0.00,1 +171,Entry long,2025-12-04 10:00,M1P0Q0F0L0f0l0,6863.25,1,343162.5,-137.5,-0.04,0,0,0.00,-312.5,-0.09,-3887.5,0.00,1 +172,Exit short,2025-12-04 12:00,M1P0Q0F0L0f0l0,6862.75,1,343025,-112.5,-0.03,0,100,0.03,-150,-0.04,-4000,0.00,1 +172,Entry short,2025-12-04 11:00,M1P0Q0F0L0f0l0,6860.5,1,343025,-112.5,-0.03,0,100,0.03,-150,-0.04,-4000,0.00,1 +173,Exit long,2025-12-04 13:00,M1P0Q0F0L0f0l0,6862.75,1,343137.5,0,0.00,0,87.5,0.03,-100,-0.03,-4000,0.00,1 +173,Entry long,2025-12-04 12:00,M1P0Q0F0L0f0l0,6862.75,1,343137.5,0,0.00,0,87.5,0.03,-100,-0.03,-4000,0.00,1 +174,Exit short,2025-12-04 14:00,M1P0Q0F0L0f0l0,6865.25,1,343137.5,-125,-0.04,0,50,0.01,-175,-0.05,-4125,0.00,1 +174,Entry short,2025-12-04 13:00,M1P0Q0F0L0f0l0,6862.75,1,343137.5,-125,-0.04,0,50,0.01,-175,-0.05,-4125,0.00,1 +175,Exit long,2025-12-04 15:00,M1P0Q0F0L0f0l0,6865.5,1,343262.5,12.5,0.00,0,162.5,0.05,-37.5,-0.01,-4112.5,0.00,1 +175,Entry long,2025-12-04 14:00,M1P0Q0F0L0f0l0,6865.25,1,343262.5,12.5,0.00,0,162.5,0.05,-37.5,-0.01,-4112.5,0.00,1 +176,Exit short,2025-12-04 16:00,M1P0Q0F0L0f0l0,6858.75,1,343275,337.5,0.10,0,562.5,0.16,0,0.00,-3775,0.00,1 +176,Entry short,2025-12-04 15:00,M1P0Q0F0L0f0l0,6865.5,1,343275,337.5,0.10,0,562.5,0.16,0,0.00,-3775,0.00,1 +177,Exit long,2025-12-04 17:00,M1P0Q0F0L0f0l0,6868.25,1,342937.5,475,0.14,0,562.5,0.16,-150,-0.04,-3300,0.00,1 +177,Entry long,2025-12-04 16:00,M1P0Q0F0L0f0l0,6858.75,1,342937.5,475,0.14,0,562.5,0.16,-150,-0.04,-3300,0.00,1 +178,Exit short,2025-12-04 18:00,M1P0Q0F0L0f0l0,6862.5,1,343412.5,287.5,0.08,0,337.5,0.10,-50,-0.01,-3012.5,0.00,1 +178,Entry short,2025-12-04 17:00,M1P0Q0F0L0f0l0,6868.25,1,343412.5,287.5,0.08,0,337.5,0.10,-50,-0.01,-3012.5,0.00,1 +179,Exit long,2025-12-04 19:00,M1P0Q0F0L0f0l0,6865.25,1,343125,137.5,0.04,0,162.5,0.05,-125,-0.04,-2875,0.00,1 +179,Entry long,2025-12-04 18:00,M1P0Q0F0L0f0l0,6862.5,1,343125,137.5,0.04,0,162.5,0.05,-125,-0.04,-2875,0.00,1 +180,Exit short,2025-12-04 20:00,M1P0Q0F0L0f0l0,6868.25,1,343262.5,-150,-0.04,0,37.5,0.01,-300,-0.09,-3025,0.00,1 +180,Entry short,2025-12-04 19:00,M1P0Q0F0L0f0l0,6865.25,1,343262.5,-150,-0.04,0,37.5,0.01,-300,-0.09,-3025,0.00,1 +181,Exit long,2025-12-04 21:00,M1P0Q0F0L0f0l0,6864.25,1,343412.5,-200,-0.06,0,137.5,0.04,-312.5,-0.09,-3225,0.00,1 +181,Entry long,2025-12-04 20:00,M1P0Q0F0L0f0l0,6868.25,1,343412.5,-200,-0.06,0,137.5,0.04,-312.5,-0.09,-3225,0.00,1 +182,Exit short,2025-12-04 22:00,M1P0Q0F0L0f0l0,6853.5,1,343212.5,537.5,0.16,0,700,0.20,-825,-0.24,-2687.5,0.00,1 +182,Entry short,2025-12-04 21:00,M1P0Q0F0L0f0l0,6864.25,1,343212.5,537.5,0.16,0,700,0.20,-825,-0.24,-2687.5,0.00,1 +183,Exit long,2025-12-04 23:00,M1P0Q0F0L0f0l0,6855.75,1,342675,112.5,0.03,0,762.5,0.22,-450,-0.13,-2575,0.00,1 +183,Entry long,2025-12-04 22:00,M1P0Q0F0L0f0l0,6853.5,1,342675,112.5,0.03,0,762.5,0.22,-450,-0.13,-2575,0.00,1 +184,Exit short,2025-12-05 00:00,M1P0Q0F0L0f0l0,6867.25,1,342787.5,-575,-0.17,0,537.5,0.16,-650,-0.19,-3150,0.00,1 +184,Entry short,2025-12-04 23:00,M1P0Q0F0L0f0l0,6855.75,1,342787.5,-575,-0.17,0,537.5,0.16,-650,-0.19,-3150,0.00,1 +185,Exit long,2025-12-05 01:00,M1P0Q0F0L0f0l0,6866,1,343362.5,-62.5,-0.02,0,75,0.02,-537.5,-0.16,-3212.5,0.00,1 +185,Entry long,2025-12-05 00:00,M1P0Q0F0L0f0l0,6867.25,1,343362.5,-62.5,-0.02,0,75,0.02,-537.5,-0.16,-3212.5,0.00,1 +186,Exit short,2025-12-05 02:00,M1P0Q0F0L0f0l0,6864.25,1,343300,87.5,0.03,0,412.5,0.12,-250,-0.07,-3125,0.00,1 +186,Entry short,2025-12-05 01:00,M1P0Q0F0L0f0l0,6866,1,343300,87.5,0.03,0,412.5,0.12,-250,-0.07,-3125,0.00,1 +187,Exit long,2025-12-05 03:00,M1P0Q0F0L0f0l0,6855.5,1,343212.5,-437.5,-0.13,0,62.5,0.02,-1400,-0.41,-3562.5,0.00,1 +187,Entry long,2025-12-05 02:00,M1P0Q0F0L0f0l0,6864.25,1,343212.5,-437.5,-0.13,0,62.5,0.02,-1400,-0.41,-3562.5,0.00,1 +188,Exit short,2025-12-05 04:00,M1P0Q0F0L0f0l0,6867.5,1,342775,-600,-0.18,0,475,0.14,-675,-0.20,-4162.5,0.00,1 +188,Entry short,2025-12-05 03:00,M1P0Q0F0L0f0l0,6855.5,1,342775,-600,-0.18,0,475,0.14,-675,-0.20,-4162.5,0.00,1 +189,Exit long,2025-12-05 05:00,M1P0Q0F0L1f0l1,6865.75,1,343375,-87.5,-0.03,0,50,0.01,-175,-0.05,-4250,0.00,1 +189,Entry long,2025-12-05 04:00,M1P0Q0F0L0f0l0,6867.5,1,343375,-87.5,-0.03,0,50,0.01,-175,-0.05,-4250,0.00,1 +190,Exit short,2025-12-05 07:00,M1P0Q0F1L0f1l0,6863.75,1,343287.5,100,0.03,0,225,0.07,-187.5,-0.05,-4150,0.00,1 +190,Entry short,2025-12-05 05:00,M1P0Q0F0L1f0l1,6865.75,1,343287.5,100,0.03,0,225,0.07,-187.5,-0.05,-4150,0.00,1 +191,Exit long,2025-12-05 08:00,M1P0Q0F0L0f0l0,6870.75,1,343187.5,350,0.10,0,387.5,0.11,-87.5,-0.03,-3800,0.00,1 +191,Entry long,2025-12-05 07:00,M1P0Q0F1L0f1l0,6863.75,1,343187.5,350,0.10,0,387.5,0.11,-87.5,-0.03,-3800,0.00,1 +192,Exit short,2025-12-05 08:00,,6870.75,1,343537.5,0,0.00,0,0,0.00,0,0.00,-3800,0.00,0 +192,Entry short,2025-12-05 08:00,M1P0Q0F0L0f0l0,6870.75,1,343537.5,0,0.00,0,0,0.00,0,0.00,-3800,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/meta.json b/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/meta.json new file mode 100644 index 0000000..feff731 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/meta.json @@ -0,0 +1,16 @@ +{ + "title": "CG-ISMARKET session flags", + "slug": "cgim-flags-eth-60-24x7", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T21:56:04.777Z", + "chart": { + "symbol": "BINANCE:ETHUSDT.P", + "interval": "60", + "from": "2025-03-07", + "to": "2025-03-11" + }, + "pine_sha256": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tv_trades_sha256": "0a077e8b7af95d0a9279b0182d7024c140240ecd47d0d648a82e81cbbc61a5fe", + "tv_trades_rows": 194 +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/metrics.json b/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/metrics.json new file mode 100644 index 0000000..49d77aa --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "cgim-flags-eth-60-24x7", + "symbol": "BINANCE:ETHUSDT.P", + "interval": "60", + "from": "2025-03-07", + "to": "2025-03-11", + "deepBacktesting": true, + "trades": 97, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tvTradesCsvHash": "0a077e8b7af95d0a9279b0182d7024c140240ecd47d0d648a82e81cbbc61a5fe", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74598", + "symbol": "BINANCE:ETHUSDT.P", + "interval": "60", + "requestedRange": { + "from": 1741305600000, + "to": 1741651200000 + }, + "returnedRange": { + "from": 1741305600000, + "to": 1741651200000 + }, + "rangeProof": "covered", + "rawFrameSha256": "813d0695327f0bd4f8c8f7a3195a29e89777bf9156ec72b95cf20379c2440d3f", + "decodedReportSha256": "d725c577db618b4016ec4d9c7b8ac4f25c20d42cd72ef725c81528fc62742625", + "closedTrades": 97, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T21:56:04.776Z" +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/strategy.pine b/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/strategy.pine new file mode 100644 index 0000000..0740da1 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/strategy.pine @@ -0,0 +1,22 @@ +// CG-ISMARKET: which session.* flags does TradingView set on each chart bar? +// process_orders_on_close=true: every bar reverses the position at its own +// close, so every trade's ENTRY is one chart bar (TradingView dates a +// process_orders_on_close fill at the bar's open) and the entry's Signal (its +// comment) carries the flags TradingView evaluated on that bar, a letter and a +// digit each: M session.ismarket, P session.ispremarket, Q session.ispostmarket, +// F session.isfirstbar, L session.islastbar, f session.isfirstbar_regular, +// l session.islastbar_regular (1 true, 0 false). +//@version=6 +strategy("CG-ISMARKET session flags", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +bit(bool x) => x ? "1" : "0" +flag = "M" + bit(session.ismarket) + "P" + bit(session.ispremarket) + "Q" + bit(session.ispostmarket) + + "F" + bit(session.isfirstbar) + "L" + bit(session.islastbar) + + "f" + bit(session.isfirstbar_regular) + "l" + bit(session.islastbar_regular) +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/tv_trades.csv b/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/tv_trades.csv new file mode 100644 index 0000000..9429601 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-eth-60-24x7/tv_trades.csv @@ -0,0 +1,195 @@ +Trade number,Type,Date and time,Signal,Price USDT,Size (qty),Size (value),Net PnL USDT,Return %,Commission USDT,Favorable excursion USDT,Favorable excursion %,Adverse excursion USDT,Adverse excursion %,Cumulative PnL USDT,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-07 09:00,M1P0Q0F0L0f0l0,2174.07,1,2116.38,57.69,2.73,0,76.64,3.62,-9.12,-0.43,57.69,0.00,1 +1,Entry long,2025-03-07 08:00,M1P0Q0F1L0f1l0,2116.38,1,2116.38,57.69,2.73,0,76.64,3.62,-9.12,-0.43,57.69,0.00,1 +2,Exit short,2025-03-07 10:00,M1P0Q0F0L0f0l0,2154.5,1,2174.07,19.57,0.90,0,20.27,0.93,-11.2,-0.52,77.26,0.00,1 +2,Entry short,2025-03-07 09:00,M1P0Q0F0L0f0l0,2174.07,1,2174.07,19.57,0.90,0,20.27,0.93,-11.2,-0.52,77.26,0.00,1 +3,Exit long,2025-03-07 11:00,M1P0Q0F0L0f0l0,2147.21,1,2154.5,-7.29,-0.34,0,7.84,0.36,-9.15,-0.42,69.97,0.00,1 +3,Entry long,2025-03-07 10:00,M1P0Q0F0L0f0l0,2154.5,1,2154.5,-7.29,-0.34,0,7.84,0.36,-9.15,-0.42,69.97,0.00,1 +4,Exit short,2025-03-07 12:00,M1P0Q0F0L0f0l0,2154.32,1,2147.21,-7.11,-0.33,0,3.8,0.18,-16.79,-0.78,62.86,0.00,1 +4,Entry short,2025-03-07 11:00,M1P0Q0F0L0f0l0,2147.21,1,2147.21,-7.11,-0.33,0,3.8,0.18,-16.79,-0.78,62.86,0.00,1 +5,Exit long,2025-03-07 13:00,M1P0Q0F0L0f0l0,2173.73,1,2154.32,19.41,0.90,0,28.86,1.34,-1,-0.05,82.27,0.00,1 +5,Entry long,2025-03-07 12:00,M1P0Q0F0L0f0l0,2154.32,1,2154.32,19.41,0.90,0,28.86,1.34,-1,-0.05,82.27,0.00,1 +6,Exit short,2025-03-07 14:00,M1P0Q0F0L0f0l0,2181.32,1,2173.73,-7.59,-0.35,0,9.42,0.43,-12.53,-0.58,74.68,0.00,1 +6,Entry short,2025-03-07 13:00,M1P0Q0F0L0f0l0,2173.73,1,2173.73,-7.59,-0.35,0,9.42,0.43,-12.53,-0.58,74.68,0.00,1 +7,Exit long,2025-03-07 15:00,M1P0Q0F0L0f0l0,2191.52,1,2181.32,10.2,0.47,0,11.52,0.53,-4.5,-0.21,84.88,0.00,1 +7,Entry long,2025-03-07 14:00,M1P0Q0F0L0f0l0,2181.32,1,2181.32,10.2,0.47,0,11.52,0.53,-4.5,-0.21,84.88,0.00,1 +8,Exit short,2025-03-07 16:00,M1P0Q0F0L0f0l0,2184.4,1,2191.52,7.12,0.32,0,15.47,0.71,-4.36,-0.20,92,0.00,1 +8,Entry short,2025-03-07 15:00,M1P0Q0F0L0f0l0,2191.52,1,2191.52,7.12,0.32,0,15.47,0.71,-4.36,-0.20,92,0.00,1 +9,Exit long,2025-03-07 17:00,M1P0Q0F0L0f0l0,2192.7,1,2184.4,8.3,0.38,0,25.54,1.17,-0.42,-0.02,100.3,0.00,1 +9,Entry long,2025-03-07 16:00,M1P0Q0F0L0f0l0,2184.4,1,2184.4,8.3,0.38,0,25.54,1.17,-0.42,-0.02,100.3,0.00,1 +10,Exit short,2025-03-07 18:00,M1P0Q0F0L0f0l0,2195.72,1,2192.7,-3.02,-0.14,0,8.21,0.37,-4.57,-0.21,97.28,0.00,1 +10,Entry short,2025-03-07 17:00,M1P0Q0F0L0f0l0,2192.7,1,2192.7,-3.02,-0.14,0,8.21,0.37,-4.57,-0.21,97.28,0.00,1 +11,Exit long,2025-03-07 19:00,M1P0Q0F0L0f0l0,2196.69,1,2195.72,0.97,0.04,0,11.28,0.51,-6.44,-0.29,98.25,0.00,1 +11,Entry long,2025-03-07 18:00,M1P0Q0F0L0f0l0,2195.72,1,2195.72,0.97,0.04,0,11.28,0.51,-6.44,-0.29,98.25,0.00,1 +12,Exit short,2025-03-07 20:00,M1P0Q0F0L0f0l0,2177.26,1,2196.69,19.43,0.88,0,32.32,1.47,-1.64,-0.07,117.68,0.00,1 +12,Entry short,2025-03-07 19:00,M1P0Q0F0L0f0l0,2196.69,1,2196.69,19.43,0.88,0,32.32,1.47,-1.64,-0.07,117.68,0.00,1 +13,Exit long,2025-03-07 21:00,M1P0Q0F0L0f0l0,2187.56,1,2177.26,10.3,0.47,0,51.74,2.38,-0.74,-0.03,127.98,0.00,1 +13,Entry long,2025-03-07 20:00,M1P0Q0F0L0f0l0,2177.26,1,2177.26,10.3,0.47,0,51.74,2.38,-0.74,-0.03,127.98,0.00,1 +14,Exit short,2025-03-07 22:00,M1P0Q0F0L0f0l0,2220.8,1,2187.56,-33.24,-1.52,0,11.92,0.54,-71.78,-3.28,94.74,0.00,1 +14,Entry short,2025-03-07 21:00,M1P0Q0F0L0f0l0,2187.56,1,2187.56,-33.24,-1.52,0,11.92,0.54,-71.78,-3.28,94.74,0.00,1 +15,Exit long,2025-03-07 23:00,M1P0Q0F0L0f0l0,2208.94,1,2220.8,-11.86,-0.53,0,17.86,0.80,-41.12,-1.85,82.88,0.00,1 +15,Entry long,2025-03-07 22:00,M1P0Q0F0L0f0l0,2220.8,1,2220.8,-11.86,-0.53,0,17.86,0.80,-41.12,-1.85,82.88,0.00,1 +16,Exit short,2025-03-08 00:00,M1P0Q0F0L0f0l0,2157.53,1,2208.94,51.41,2.33,0,66.57,3.01,-5.91,-0.27,134.29,0.00,1 +16,Entry short,2025-03-07 23:00,M1P0Q0F0L0f0l0,2208.94,1,2208.94,51.41,2.33,0,66.57,3.01,-5.91,-0.27,134.29,0.00,1 +17,Exit long,2025-03-08 01:00,M1P0Q0F0L0f0l0,2161.23,1,2157.53,3.7,0.17,0,26.33,1.22,-17.7,-0.82,137.99,0.00,1 +17,Entry long,2025-03-08 00:00,M1P0Q0F0L0f0l0,2157.53,1,2157.53,3.7,0.17,0,26.33,1.22,-17.7,-0.82,137.99,0.00,1 +18,Exit short,2025-03-08 02:00,M1P0Q0F0L0f0l0,2193.99,1,2161.23,-32.76,-1.52,0,5.02,0.23,-38.76,-1.79,105.23,0.00,1 +18,Entry short,2025-03-08 01:00,M1P0Q0F0L0f0l0,2161.23,1,2161.23,-32.76,-1.52,0,5.02,0.23,-38.76,-1.79,105.23,0.00,1 +19,Exit long,2025-03-08 03:00,M1P0Q0F0L0f0l0,2177.47,1,2193.99,-16.52,-0.75,0,7.86,0.36,-33.69,-1.54,88.71,0.00,1 +19,Entry long,2025-03-08 02:00,M1P0Q0F0L0f0l0,2193.99,1,2193.99,-16.52,-0.75,0,7.86,0.36,-33.69,-1.54,88.71,0.00,1 +20,Exit short,2025-03-08 04:00,M1P0Q0F0L0f0l0,2156.37,1,2177.47,21.1,0.97,0,32.77,1.50,-8.74,-0.40,109.81,0.00,1 +20,Entry short,2025-03-08 03:00,M1P0Q0F0L0f0l0,2177.47,1,2177.47,21.1,0.97,0,32.77,1.50,-8.74,-0.40,109.81,0.00,1 +21,Exit long,2025-03-08 05:00,M1P0Q0F0L0f0l0,2138.36,1,2156.37,-18.01,-0.84,0,7.1,0.33,-43.27,-2.01,91.8,0.00,1 +21,Entry long,2025-03-08 04:00,M1P0Q0F0L0f0l0,2156.37,1,2156.37,-18.01,-0.84,0,7.1,0.33,-43.27,-2.01,91.8,0.00,1 +22,Exit short,2025-03-08 06:00,M1P0Q0F0L0f0l0,2143.46,1,2138.36,-5.1,-0.24,0,23.2,1.08,-12.46,-0.58,86.7,0.00,1 +22,Entry short,2025-03-08 05:00,M1P0Q0F0L0f0l0,2138.36,1,2138.36,-5.1,-0.24,0,23.2,1.08,-12.46,-0.58,86.7,0.00,1 +23,Exit long,2025-03-08 07:00,M1P0Q0F0L1f0l1,2140.72,1,2143.46,-2.74,-0.13,0,0.32,0.01,-29.53,-1.38,83.96,0.00,1 +23,Entry long,2025-03-08 06:00,M1P0Q0F0L0f0l0,2143.46,1,2143.46,-2.74,-0.13,0,0.32,0.01,-29.53,-1.38,83.96,0.00,1 +24,Exit short,2025-03-08 08:00,M1P0Q0F1L0f1l0,2151.25,1,2140.72,-10.53,-0.49,0,11.41,0.53,-11.5,-0.54,73.43,0.00,1 +24,Entry short,2025-03-08 07:00,M1P0Q0F0L1f0l1,2140.72,1,2140.72,-10.53,-0.49,0,11.41,0.53,-11.5,-0.54,73.43,0.00,1 +25,Exit long,2025-03-08 09:00,M1P0Q0F0L0f0l0,2131.96,1,2151.25,-19.29,-0.90,0,4.12,0.19,-48.18,-2.24,54.14,0.00,1 +25,Entry long,2025-03-08 08:00,M1P0Q0F1L0f1l0,2151.25,1,2151.25,-19.29,-0.90,0,4.12,0.19,-48.18,-2.24,54.14,0.00,1 +26,Exit short,2025-03-08 10:00,M1P0Q0F0L0f0l0,2142.97,1,2131.96,-11.01,-0.52,0,1.88,0.09,-12.99,-0.61,43.13,0.00,1 +26,Entry short,2025-03-08 09:00,M1P0Q0F0L0f0l0,2131.96,1,2131.96,-11.01,-0.52,0,1.88,0.09,-12.99,-0.61,43.13,0.00,1 +27,Exit long,2025-03-08 11:00,M1P0Q0F0L0f0l0,2137.07,1,2142.97,-5.9,-0.28,0,0.01,0.00,-19.45,-0.91,37.23,0.00,1 +27,Entry long,2025-03-08 10:00,M1P0Q0F0L0f0l0,2142.97,1,2142.97,-5.9,-0.28,0,0.01,0.00,-19.45,-0.91,37.23,0.00,1 +28,Exit short,2025-03-08 12:00,M1P0Q0F0L0f0l0,2149.12,1,2137.07,-12.05,-0.56,0,6.65,0.31,-14.96,-0.70,25.18,0.00,1 +28,Entry short,2025-03-08 11:00,M1P0Q0F0L0f0l0,2137.07,1,2137.07,-12.05,-0.56,0,6.65,0.31,-14.96,-0.70,25.18,0.00,1 +29,Exit long,2025-03-08 13:00,M1P0Q0F0L0f0l0,2139.46,1,2149.12,-9.66,-0.45,0,0.54,0.03,-16.77,-0.78,15.52,0.00,1 +29,Entry long,2025-03-08 12:00,M1P0Q0F0L0f0l0,2149.12,1,2149.12,-9.66,-0.45,0,0.54,0.03,-16.77,-0.78,15.52,0.00,1 +30,Exit short,2025-03-08 14:00,M1P0Q0F0L0f0l0,2138.26,1,2139.46,1.2,0.06,0,7.46,0.35,-5.13,-0.24,16.72,0.00,1 +30,Entry short,2025-03-08 13:00,M1P0Q0F0L0f0l0,2139.46,1,2139.46,1.2,0.06,0,7.46,0.35,-5.13,-0.24,16.72,0.00,1 +31,Exit long,2025-03-08 15:00,M1P0Q0F0L0f0l0,2136.65,1,2138.26,-1.61,-0.08,0,8.74,0.41,-5.11,-0.24,15.11,0.00,1 +31,Entry long,2025-03-08 14:00,M1P0Q0F0L0f0l0,2138.26,1,2138.26,-1.61,-0.08,0,8.74,0.41,-5.11,-0.24,15.11,0.00,1 +32,Exit short,2025-03-08 16:00,M1P0Q0F0L0f0l0,2127.2,1,2136.65,9.45,0.44,0,11.1,0.52,-3.47,-0.16,24.56,0.00,1 +32,Entry short,2025-03-08 15:00,M1P0Q0F0L0f0l0,2136.65,1,2136.65,9.45,0.44,0,11.1,0.52,-3.47,-0.16,24.56,0.00,1 +33,Exit long,2025-03-08 17:00,M1P0Q0F0L0f0l0,2128.64,1,2127.2,1.44,0.07,0,15.3,0.72,-1.8,-0.08,26,0.00,1 +33,Entry long,2025-03-08 16:00,M1P0Q0F0L0f0l0,2127.2,1,2127.2,1.44,0.07,0,15.3,0.72,-1.8,-0.08,26,0.00,1 +34,Exit short,2025-03-08 18:00,M1P0Q0F0L0f0l0,2138.77,1,2128.64,-10.13,-0.48,0,1.98,0.09,-11.52,-0.54,15.87,0.00,1 +34,Entry short,2025-03-08 17:00,M1P0Q0F0L0f0l0,2128.64,1,2128.64,-10.13,-0.48,0,1.98,0.09,-11.52,-0.54,15.87,0.00,1 +35,Exit long,2025-03-08 19:00,M1P0Q0F0L0f0l0,2140.89,1,2138.77,2.12,0.10,0,2.73,0.13,-12.6,-0.59,17.99,0.00,1 +35,Entry long,2025-03-08 18:00,M1P0Q0F0L0f0l0,2138.77,1,2138.77,2.12,0.10,0,2.73,0.13,-12.6,-0.59,17.99,0.00,1 +36,Exit short,2025-03-08 20:00,M1P0Q0F0L0f0l0,2167.48,1,2140.89,-26.59,-1.24,0,4.05,0.19,-31.96,-1.49,-8.6,0.00,1 +36,Entry short,2025-03-08 19:00,M1P0Q0F0L0f0l0,2140.89,1,2140.89,-26.59,-1.24,0,4.05,0.19,-31.96,-1.49,-8.6,0.00,1 +37,Exit long,2025-03-08 21:00,M1P0Q0F0L0f0l0,2189.25,1,2167.48,21.77,1.00,0,30.52,1.41,-2.34,-0.11,13.17,0.00,1 +37,Entry long,2025-03-08 20:00,M1P0Q0F0L0f0l0,2167.48,1,2167.48,21.77,1.00,0,30.52,1.41,-2.34,-0.11,13.17,0.00,1 +38,Exit short,2025-03-08 22:00,M1P0Q0F0L0f0l0,2178,1,2189.25,11.25,0.51,0,15.76,0.72,-5.57,-0.25,24.42,0.00,1 +38,Entry short,2025-03-08 21:00,M1P0Q0F0L0f0l0,2189.25,1,2189.25,11.25,0.51,0,15.76,0.72,-5.57,-0.25,24.42,0.00,1 +39,Exit long,2025-03-08 23:00,M1P0Q0F0L0f0l0,2180.41,1,2178,2.41,0.11,0,13.36,0.61,-11,-0.51,26.83,0.00,1 +39,Entry long,2025-03-08 22:00,M1P0Q0F0L0f0l0,2178,1,2178,2.41,0.11,0,13.36,0.61,-11,-0.51,26.83,0.00,1 +40,Exit short,2025-03-09 00:00,M1P0Q0F0L0f0l0,2189.17,1,2180.41,-8.76,-0.40,0,20.21,0.93,-17.28,-0.79,18.07,0.00,1 +40,Entry short,2025-03-08 23:00,M1P0Q0F0L0f0l0,2180.41,1,2180.41,-8.76,-0.40,0,20.21,0.93,-17.28,-0.79,18.07,0.00,1 +41,Exit long,2025-03-09 01:00,M1P0Q0F0L0f0l0,2198.1,1,2189.17,8.93,0.41,0,31.27,1.43,-10.17,-0.46,27,0.00,1 +41,Entry long,2025-03-09 00:00,M1P0Q0F0L0f0l0,2189.17,1,2189.17,8.93,0.41,0,31.27,1.43,-10.17,-0.46,27,0.00,1 +42,Exit short,2025-03-09 02:00,M1P0Q0F0L0f0l0,2207.76,1,2198.1,-9.66,-0.44,0,4.86,0.22,-15.5,-0.71,17.34,0.00,1 +42,Entry short,2025-03-09 01:00,M1P0Q0F0L0f0l0,2198.1,1,2198.1,-9.66,-0.44,0,4.86,0.22,-15.5,-0.71,17.34,0.00,1 +43,Exit long,2025-03-09 03:00,M1P0Q0F0L0f0l0,2223.73,1,2207.76,15.97,0.72,0,26.64,1.21,-8.12,-0.37,33.31,0.00,1 +43,Entry long,2025-03-09 02:00,M1P0Q0F0L0f0l0,2207.76,1,2207.76,15.97,0.72,0,26.64,1.21,-8.12,-0.37,33.31,0.00,1 +44,Exit short,2025-03-09 04:00,M1P0Q0F0L0f0l0,2212.01,1,2223.73,11.72,0.53,0,13.23,0.59,-1.42,-0.06,45.03,0.00,1 +44,Entry short,2025-03-09 03:00,M1P0Q0F0L0f0l0,2223.73,1,2223.73,11.72,0.53,0,13.23,0.59,-1.42,-0.06,45.03,0.00,1 +45,Exit long,2025-03-09 05:00,M1P0Q0F0L0f0l0,2215.28,1,2212.01,3.27,0.15,0,12.01,0.54,-0.28,-0.01,48.3,0.00,1 +45,Entry long,2025-03-09 04:00,M1P0Q0F0L0f0l0,2212.01,1,2212.01,3.27,0.15,0,12.01,0.54,-0.28,-0.01,48.3,0.00,1 +46,Exit short,2025-03-09 06:00,M1P0Q0F0L0f0l0,2206.66,1,2215.28,8.62,0.39,0,18.41,0.83,-1.71,-0.08,56.92,0.00,1 +46,Entry short,2025-03-09 05:00,M1P0Q0F0L0f0l0,2215.28,1,2215.28,8.62,0.39,0,18.41,0.83,-1.71,-0.08,56.92,0.00,1 +47,Exit long,2025-03-09 07:00,M1P0Q0F0L1f0l1,2202.84,1,2206.66,-3.82,-0.17,0,3.14,0.14,-14.25,-0.65,53.1,0.00,1 +47,Entry long,2025-03-09 06:00,M1P0Q0F0L0f0l0,2206.66,1,2206.66,-3.82,-0.17,0,3.14,0.14,-14.25,-0.65,53.1,0.00,1 +48,Exit short,2025-03-09 08:00,M1P0Q0F1L0f1l0,2205.34,1,2202.84,-2.5,-0.11,0,4.04,0.18,-5.96,-0.27,50.6,0.00,1 +48,Entry short,2025-03-09 07:00,M1P0Q0F0L1f0l1,2202.84,1,2202.84,-2.5,-0.11,0,4.04,0.18,-5.96,-0.27,50.6,0.00,1 +49,Exit long,2025-03-09 09:00,M1P0Q0F0L0f0l0,2190.11,1,2205.34,-15.23,-0.69,0,5.93,0.27,-19.1,-0.87,35.37,0.00,1 +49,Entry long,2025-03-09 08:00,M1P0Q0F1L0f1l0,2205.34,1,2205.34,-15.23,-0.69,0,5.93,0.27,-19.1,-0.87,35.37,0.00,1 +50,Exit short,2025-03-09 10:00,M1P0Q0F0L0f0l0,2180.89,1,2190.11,9.22,0.42,0,11.03,0.50,-3.58,-0.16,44.59,0.00,1 +50,Entry short,2025-03-09 09:00,M1P0Q0F0L0f0l0,2190.11,1,2190.11,9.22,0.42,0,11.03,0.50,-3.58,-0.16,44.59,0.00,1 +51,Exit long,2025-03-09 11:00,M1P0Q0F0L0f0l0,2184.82,1,2180.89,3.93,0.18,0,8.11,0.37,-5.88,-0.27,48.52,0.00,1 +51,Entry long,2025-03-09 10:00,M1P0Q0F0L0f0l0,2180.89,1,2180.89,3.93,0.18,0,8.11,0.37,-5.88,-0.27,48.52,0.00,1 +52,Exit short,2025-03-09 12:00,M1P0Q0F0L0f0l0,2188.6,1,2184.82,-3.78,-0.17,0,2.27,0.10,-5.9,-0.27,44.74,0.00,1 +52,Entry short,2025-03-09 11:00,M1P0Q0F0L0f0l0,2184.82,1,2184.82,-3.78,-0.17,0,2.27,0.10,-5.9,-0.27,44.74,0.00,1 +53,Exit long,2025-03-09 13:00,M1P0Q0F0L0f0l0,2182.09,1,2188.6,-6.51,-0.30,0,7.68,0.35,-9.2,-0.42,38.23,0.00,1 +53,Entry long,2025-03-09 12:00,M1P0Q0F0L0f0l0,2188.6,1,2188.6,-6.51,-0.30,0,7.68,0.35,-9.2,-0.42,38.23,0.00,1 +54,Exit short,2025-03-09 14:00,M1P0Q0F0L0f0l0,2178.79,1,2182.09,3.3,0.15,0,11.26,0.52,-1.89,-0.09,41.53,0.00,1 +54,Entry short,2025-03-09 13:00,M1P0Q0F0L0f0l0,2182.09,1,2182.09,3.3,0.15,0,11.26,0.52,-1.89,-0.09,41.53,0.00,1 +55,Exit long,2025-03-09 15:00,M1P0Q0F0L0f0l0,2184.07,1,2178.79,5.28,0.24,0,9.78,0.45,-1.69,-0.08,46.81,0.00,1 +55,Entry long,2025-03-09 14:00,M1P0Q0F0L0f0l0,2178.79,1,2178.79,5.28,0.24,0,9.78,0.45,-1.69,-0.08,46.81,0.00,1 +56,Exit short,2025-03-09 16:00,M1P0Q0F0L0f0l0,2175.29,1,2184.07,8.78,0.40,0,9.66,0.44,-2.93,-0.13,55.59,0.00,1 +56,Entry short,2025-03-09 15:00,M1P0Q0F0L0f0l0,2184.07,1,2184.07,8.78,0.40,0,9.66,0.44,-2.93,-0.13,55.59,0.00,1 +57,Exit long,2025-03-09 17:00,M1P0Q0F0L0f0l0,2164.81,1,2175.29,-10.48,-0.48,0,4.45,0.20,-15.49,-0.71,45.11,0.00,1 +57,Entry long,2025-03-09 16:00,M1P0Q0F0L0f0l0,2175.29,1,2175.29,-10.48,-0.48,0,4.45,0.20,-15.49,-0.71,45.11,0.00,1 +58,Exit short,2025-03-09 18:00,M1P0Q0F0L0f0l0,2132.84,1,2164.81,31.97,1.48,0,37.79,1.75,-4.57,-0.21,77.08,0.00,1 +58,Entry short,2025-03-09 17:00,M1P0Q0F0L0f0l0,2164.81,1,2164.81,31.97,1.48,0,37.79,1.75,-4.57,-0.21,77.08,0.00,1 +59,Exit long,2025-03-09 19:00,M1P0Q0F0L0f0l0,2145.63,1,2132.84,12.79,0.60,0,14.8,0.69,-1.55,-0.07,89.87,0.00,1 +59,Entry long,2025-03-09 18:00,M1P0Q0F0L0f0l0,2132.84,1,2132.84,12.79,0.60,0,14.8,0.69,-1.55,-0.07,89.87,0.00,1 +60,Exit short,2025-03-09 20:00,M1P0Q0F0L0f0l0,2140.9,1,2145.63,4.73,0.22,0,15.22,0.71,-0.43,-0.02,94.6,0.00,1 +60,Entry short,2025-03-09 19:00,M1P0Q0F0L0f0l0,2145.63,1,2145.63,4.73,0.22,0,15.22,0.71,-0.43,-0.02,94.6,0.00,1 +61,Exit long,2025-03-09 21:00,M1P0Q0F0L0f0l0,2103.2,1,2140.9,-37.7,-1.76,0,2.1,0.10,-40.74,-1.90,56.9,0.00,1 +61,Entry long,2025-03-09 20:00,M1P0Q0F0L0f0l0,2140.9,1,2140.9,-37.7,-1.76,0,2.1,0.10,-40.74,-1.90,56.9,0.00,1 +62,Exit short,2025-03-09 22:00,M1P0Q0F0L0f0l0,2116.32,1,2103.2,-13.12,-0.62,0,8.51,0.40,-20.5,-0.97,43.78,0.00,1 +62,Entry short,2025-03-09 21:00,M1P0Q0F0L0f0l0,2103.2,1,2103.2,-13.12,-0.62,0,8.51,0.40,-20.5,-0.97,43.78,0.00,1 +63,Exit long,2025-03-09 23:00,M1P0Q0F0L0f0l0,2095.86,1,2116.32,-20.46,-0.97,0,5.27,0.25,-34.32,-1.62,23.32,0.00,1 +63,Entry long,2025-03-09 22:00,M1P0Q0F0L0f0l0,2116.32,1,2116.32,-20.46,-0.97,0,5.27,0.25,-34.32,-1.62,23.32,0.00,1 +64,Exit short,2025-03-10 00:00,M1P0Q0F0L0f0l0,2048,1,2095.86,47.86,2.28,0,55.86,2.67,-12.44,-0.59,71.18,0.00,1 +64,Entry short,2025-03-09 23:00,M1P0Q0F0L0f0l0,2095.86,1,2095.86,47.86,2.28,0,55.86,2.67,-12.44,-0.59,71.18,0.00,1 +65,Exit long,2025-03-10 01:00,M1P0Q0F0L0f0l0,2022.82,1,2048,-25.18,-1.23,0,8.19,0.40,-35.5,-1.73,46,0.00,1 +65,Entry long,2025-03-10 00:00,M1P0Q0F0L0f0l0,2048,1,2048,-25.18,-1.23,0,8.19,0.40,-35.5,-1.73,46,0.00,1 +66,Exit short,2025-03-10 02:00,M1P0Q0F0L0f0l0,2019.99,1,2022.82,2.83,0.14,0,26.99,1.33,-15.41,-0.76,48.83,0.00,1 +66,Entry short,2025-03-10 01:00,M1P0Q0F0L0f0l0,2022.82,1,2022.82,2.83,0.14,0,26.99,1.33,-15.41,-0.76,48.83,0.00,1 +67,Exit long,2025-03-10 03:00,M1P0Q0F0L0f0l0,2039.34,1,2019.99,19.35,0.96,0,28.11,1.39,-4.59,-0.23,68.18,0.00,1 +67,Entry long,2025-03-10 02:00,M1P0Q0F0L0f0l0,2019.99,1,2019.99,19.35,0.96,0,28.11,1.39,-4.59,-0.23,68.18,0.00,1 +68,Exit short,2025-03-10 04:00,M1P0Q0F0L0f0l0,2046,1,2039.34,-6.66,-0.33,0,3.95,0.19,-16.3,-0.80,61.52,0.00,1 +68,Entry short,2025-03-10 03:00,M1P0Q0F0L0f0l0,2039.34,1,2039.34,-6.66,-0.33,0,3.95,0.19,-16.3,-0.80,61.52,0.00,1 +69,Exit long,2025-03-10 05:00,M1P0Q0F0L0f0l0,2023.51,1,2046,-22.49,-1.10,0,3.63,0.18,-33.95,-1.66,39.03,0.00,1 +69,Entry long,2025-03-10 04:00,M1P0Q0F0L0f0l0,2046,1,2046,-22.49,-1.10,0,3.63,0.18,-33.95,-1.66,39.03,0.00,1 +70,Exit short,2025-03-10 06:00,M1P0Q0F0L0f0l0,2009.28,1,2023.51,14.23,0.70,0,18.74,0.93,-5.81,-0.29,53.26,0.00,1 +70,Entry short,2025-03-10 05:00,M1P0Q0F0L0f0l0,2023.51,1,2023.51,14.23,0.70,0,18.74,0.93,-5.81,-0.29,53.26,0.00,1 +71,Exit long,2025-03-10 07:00,M1P0Q0F0L1f0l1,2019.2,1,2009.28,9.92,0.49,0,22.38,1.11,-22.48,-1.12,63.18,0.00,1 +71,Entry long,2025-03-10 06:00,M1P0Q0F0L0f0l0,2009.28,1,2009.28,9.92,0.49,0,22.38,1.11,-22.48,-1.12,63.18,0.00,1 +72,Exit short,2025-03-10 08:00,M1P0Q0F1L0f1l0,2035.1,1,2019.2,-15.9,-0.79,0,25.66,1.27,-23.5,-1.16,47.28,0.00,1 +72,Entry short,2025-03-10 07:00,M1P0Q0F0L1f0l1,2019.2,1,2019.2,-15.9,-0.79,0,25.66,1.27,-23.5,-1.16,47.28,0.00,1 +73,Exit long,2025-03-10 09:00,M1P0Q0F0L0f0l0,2042.16,1,2035.1,7.06,0.35,0,17.9,0.88,-9.08,-0.45,54.34,0.00,1 +73,Entry long,2025-03-10 08:00,M1P0Q0F1L0f1l0,2035.1,1,2035.1,7.06,0.35,0,17.9,0.88,-9.08,-0.45,54.34,0.00,1 +74,Exit short,2025-03-10 10:00,M1P0Q0F0L0f0l0,2056.75,1,2042.16,-14.59,-0.71,0,6.55,0.32,-27.65,-1.35,39.75,0.00,1 +74,Entry short,2025-03-10 09:00,M1P0Q0F0L0f0l0,2042.16,1,2042.16,-14.59,-0.71,0,6.55,0.32,-27.65,-1.35,39.75,0.00,1 +75,Exit long,2025-03-10 11:00,M1P0Q0F0L0f0l0,2056.82,1,2056.75,0.07,0.00,0,7.72,0.38,-13.68,-0.67,39.82,0.00,1 +75,Entry long,2025-03-10 10:00,M1P0Q0F0L0f0l0,2056.75,1,2056.75,0.07,0.00,0,7.72,0.38,-13.68,-0.67,39.82,0.00,1 +76,Exit short,2025-03-10 12:00,M1P0Q0F0L0f0l0,2071.75,1,2056.82,-14.93,-0.73,0,1.96,0.10,-19.36,-0.94,24.89,0.00,1 +76,Entry short,2025-03-10 11:00,M1P0Q0F0L0f0l0,2056.82,1,2056.82,-14.93,-0.73,0,1.96,0.10,-19.36,-0.94,24.89,0.00,1 +77,Exit long,2025-03-10 13:00,M1P0Q0F0L0f0l0,2063.12,1,2071.75,-8.63,-0.42,0,3.25,0.16,-13.75,-0.66,16.26,0.00,1 +77,Entry long,2025-03-10 12:00,M1P0Q0F0L0f0l0,2071.75,1,2071.75,-8.63,-0.42,0,3.25,0.16,-13.75,-0.66,16.26,0.00,1 +78,Exit short,2025-03-10 14:00,M1P0Q0F0L0f0l0,2066,1,2063.12,-2.88,-0.14,0,9.94,0.48,-3.84,-0.19,13.38,0.00,1 +78,Entry short,2025-03-10 13:00,M1P0Q0F0L0f0l0,2063.12,1,2063.12,-2.88,-0.14,0,9.94,0.48,-3.84,-0.19,13.38,0.00,1 +79,Exit long,2025-03-10 15:00,M1P0Q0F0L0f0l0,2074.2,1,2066,8.2,0.40,0,12.55,0.61,-4,-0.19,21.58,0.00,1 +79,Entry long,2025-03-10 14:00,M1P0Q0F0L0f0l0,2066,1,2066,8.2,0.40,0,12.55,0.61,-4,-0.19,21.58,0.00,1 +80,Exit short,2025-03-10 16:00,M1P0Q0F0L0f0l0,2061.1,1,2074.2,13.1,0.63,0,27.45,1.32,-2.14,-0.10,34.68,0.00,1 +80,Entry short,2025-03-10 15:00,M1P0Q0F0L0f0l0,2074.2,1,2074.2,13.1,0.63,0,27.45,1.32,-2.14,-0.10,34.68,0.00,1 +81,Exit long,2025-03-10 17:00,M1P0Q0F0L0f0l0,2100.98,1,2061.1,39.88,1.93,0,91.89,4.46,-0.21,-0.01,74.56,0.00,1 +81,Entry long,2025-03-10 16:00,M1P0Q0F0L0f0l0,2061.1,1,2061.1,39.88,1.93,0,91.89,4.46,-0.21,-0.01,74.56,0.00,1 +82,Exit short,2025-03-10 18:00,M1P0Q0F0L0f0l0,2098.92,1,2100.98,2.06,0.10,0,25.64,1.22,-4.7,-0.22,76.62,0.00,1 +82,Entry short,2025-03-10 17:00,M1P0Q0F0L0f0l0,2100.98,1,2100.98,2.06,0.10,0,25.64,1.22,-4.7,-0.22,76.62,0.00,1 +83,Exit long,2025-03-10 19:00,M1P0Q0F0L0f0l0,2127.13,1,2098.92,28.21,1.34,0,39.44,1.88,-1.44,-0.07,104.83,0.00,1 +83,Entry long,2025-03-10 18:00,M1P0Q0F0L0f0l0,2098.92,1,2098.92,28.21,1.34,0,39.44,1.88,-1.44,-0.07,104.83,0.00,1 +84,Exit short,2025-03-10 20:00,M1P0Q0F0L0f0l0,2124.79,1,2127.13,2.34,0.11,0,23.1,1.09,-7.8,-0.37,107.17,0.00,1 +84,Entry short,2025-03-10 19:00,M1P0Q0F0L0f0l0,2127.13,1,2127.13,2.34,0.11,0,23.1,1.09,-7.8,-0.37,107.17,0.00,1 +85,Exit long,2025-03-10 21:00,M1P0Q0F0L0f0l0,2082.79,1,2124.79,-42,-1.98,0,4.46,0.21,-47.67,-2.24,65.17,0.00,1 +85,Entry long,2025-03-10 20:00,M1P0Q0F0L0f0l0,2124.79,1,2124.79,-42,-1.98,0,4.46,0.21,-47.67,-2.24,65.17,0.00,1 +86,Exit short,2025-03-10 22:00,M1P0Q0F0L0f0l0,2018.12,1,2082.79,64.67,3.10,0,87.32,4.19,-0.49,-0.02,129.84,0.00,1 +86,Entry short,2025-03-10 21:00,M1P0Q0F0L0f0l0,2082.79,1,2082.79,64.67,3.10,0,87.32,4.19,-0.49,-0.02,129.84,0.00,1 +87,Exit long,2025-03-10 23:00,M1P0Q0F0L0f0l0,2016.99,1,2018.12,-1.13,-0.06,0,24.73,1.23,-8.55,-0.42,128.71,0.00,1 +87,Entry long,2025-03-10 22:00,M1P0Q0F0L0f0l0,2018.12,1,2018.12,-1.13,-0.06,0,24.73,1.23,-8.55,-0.42,128.71,0.00,1 +88,Exit short,2025-03-11 00:00,M1P0Q0F0L0f0l0,2004.6,1,2016.99,12.39,0.61,0,18.52,0.92,-7.3,-0.36,141.1,0.00,1 +88,Entry short,2025-03-10 23:00,M1P0Q0F0L0f0l0,2016.99,1,2016.99,12.39,0.61,0,18.52,0.92,-7.3,-0.36,141.1,0.00,1 +89,Exit long,2025-03-11 01:00,M1P0Q0F0L0f0l0,1916.65,1,2004.6,-87.95,-4.39,0,3.86,0.19,-99.2,-4.95,53.15,0.00,1 +89,Entry long,2025-03-11 00:00,M1P0Q0F0L0f0l0,2004.6,1,2004.6,-87.95,-4.39,0,3.86,0.19,-99.2,-4.95,53.15,0.00,1 +90,Exit short,2025-03-11 02:00,M1P0Q0F0L0f0l0,1823.99,1,1916.65,92.66,4.83,0,105.6,5.51,-21.73,-1.13,145.81,0.00,1 +90,Entry short,2025-03-11 01:00,M1P0Q0F0L0f0l0,1916.65,1,1916.65,92.66,4.83,0,105.6,5.51,-21.73,-1.13,145.81,0.00,1 +91,Exit long,2025-03-11 03:00,M1P0Q0F0L0f0l0,1868.66,1,1823.99,44.67,2.45,0,59.01,3.24,-16.24,-0.89,190.48,0.00,1 +91,Entry long,2025-03-11 02:00,M1P0Q0F0L0f0l0,1823.99,1,1823.99,44.67,2.45,0,59.01,3.24,-16.24,-0.89,190.48,0.00,1 +92,Exit short,2025-03-11 04:00,M1P0Q0F0L0f0l0,1868.1,1,1868.66,0.56,0.03,0,26.45,1.42,-12.81,-0.69,191.04,0.00,1 +92,Entry short,2025-03-11 03:00,M1P0Q0F0L0f0l0,1868.66,1,1868.66,0.56,0.03,0,26.45,1.42,-12.81,-0.69,191.04,0.00,1 +93,Exit long,2025-03-11 05:00,M1P0Q0F0L0f0l0,1886.38,1,1868.1,18.28,0.98,0,34.9,1.87,-7.84,-0.42,209.32,0.00,1 +93,Entry long,2025-03-11 04:00,M1P0Q0F0L0f0l0,1868.1,1,1868.1,18.28,0.98,0,34.9,1.87,-7.84,-0.42,209.32,0.00,1 +94,Exit short,2025-03-11 06:00,M1P0Q0F0L0f0l0,1878.91,1,1886.38,7.47,0.40,0,21.58,1.14,-3.03,-0.16,216.79,0.00,1 +94,Entry short,2025-03-11 05:00,M1P0Q0F0L0f0l0,1886.38,1,1886.38,7.47,0.40,0,21.58,1.14,-3.03,-0.16,216.79,0.00,1 +95,Exit long,2025-03-11 07:00,M1P0Q0F0L1f0l1,1864.51,1,1878.91,-14.4,-0.77,0,15.66,0.83,-22.42,-1.19,202.39,0.00,1 +95,Entry long,2025-03-11 06:00,M1P0Q0F0L0f0l0,1878.91,1,1878.91,-14.4,-0.77,0,15.66,0.83,-22.42,-1.19,202.39,0.00,1 +96,Exit short,2025-03-11 08:00,M1P0Q0F1L0f1l0,1813.08,1,1864.51,51.43,2.76,0,112.01,6.01,-24.98,-1.34,253.82,0.00,1 +96,Entry short,2025-03-11 07:00,M1P0Q0F0L1f0l1,1864.51,1,1864.51,51.43,2.76,0,112.01,6.01,-24.98,-1.34,253.82,0.00,1 +97,Exit long,2025-03-11 08:00,,1813.08,1,1813.08,0,0.00,0,0,0.00,0,0.00,253.82,0.00,0 +97,Entry long,2025-03-11 08:00,M1P0Q0F1L0f1l0,1813.08,1,1813.08,0,0.00,0,0,0.00,0,0.00,253.82,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/meta.json b/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/meta.json new file mode 100644 index 0000000..7f5fc93 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/meta.json @@ -0,0 +1,16 @@ +{ + "title": "CG-ISMARKET session flags", + "slug": "cgim-flags-eurusd-60-dst-mar", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T21:55:58.879Z", + "chart": { + "symbol": "OANDA:EURUSD", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14" + }, + "pine_sha256": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tv_trades_sha256": "b40fbc81f290140da74127637c705c1d35872c92d10a7aa95e7228e8a791d25b", + "tv_trades_rows": 440 +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/metrics.json b/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/metrics.json new file mode 100644 index 0000000..8e395d9 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "cgim-flags-eurusd-60-dst-mar", + "symbol": "OANDA:EURUSD", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14", + "deepBacktesting": true, + "trades": 220, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tvTradesCsvHash": "b40fbc81f290140da74127637c705c1d35872c92d10a7aa95e7228e8a791d25b", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74598", + "symbol": "OANDA:EURUSD", + "interval": "60", + "requestedRange": { + "from": 1740873600000, + "to": 1741910400000 + }, + "returnedRange": { + "from": 1740952800000, + "to": 1741910400000 + }, + "rangeProof": "covered", + "rawFrameSha256": "110c890b64826088a1d7ba3eecf6b8c76cfb62a11fdfc0d5d19d9cd14e1f8e68", + "decodedReportSha256": "d1f718223f130b8ac553828de3d2e2b5f64cbf1880fd8c6f00d2741ec2fcfee1", + "closedTrades": 220, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T21:55:58.878Z" +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/strategy.pine b/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/strategy.pine new file mode 100644 index 0000000..0740da1 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/strategy.pine @@ -0,0 +1,22 @@ +// CG-ISMARKET: which session.* flags does TradingView set on each chart bar? +// process_orders_on_close=true: every bar reverses the position at its own +// close, so every trade's ENTRY is one chart bar (TradingView dates a +// process_orders_on_close fill at the bar's open) and the entry's Signal (its +// comment) carries the flags TradingView evaluated on that bar, a letter and a +// digit each: M session.ismarket, P session.ispremarket, Q session.ispostmarket, +// F session.isfirstbar, L session.islastbar, f session.isfirstbar_regular, +// l session.islastbar_regular (1 true, 0 false). +//@version=6 +strategy("CG-ISMARKET session flags", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +bit(bool x) => x ? "1" : "0" +flag = "M" + bit(session.ismarket) + "P" + bit(session.ispremarket) + "Q" + bit(session.ispostmarket) + + "F" + bit(session.isfirstbar) + "L" + bit(session.islastbar) + + "f" + bit(session.isfirstbar_regular) + "l" + bit(session.islastbar_regular) +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/tv_trades.csv b/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/tv_trades.csv new file mode 100644 index 0000000..8e08714 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-eurusd-60-dst-mar/tv_trades.csv @@ -0,0 +1,441 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-03 07:00,M1P0Q0F0L0f0l0,1.04122,1,1.04038,0.00084,0.08,0,0.00174,0.17,-0.00038,-0.04,0.00084,0.00,1 +1,Entry long,2025-03-03 06:00,M1P0Q0F1L0f1l0,1.04038,1,1.04038,0.00084,0.08,0,0.00174,0.17,-0.00038,-0.04,0.00084,0.00,1 +2,Exit short,2025-03-03 08:00,M1P0Q0F0L0f0l0,1.04095,1,1.04122,0.00027,0.03,0,0.00098,0.09,-0.00078,-0.07,0.00111,0.00,1 +2,Entry short,2025-03-03 07:00,M1P0Q0F0L0f0l0,1.04122,1,1.04122,0.00027,0.03,0,0.00098,0.09,-0.00078,-0.07,0.00111,0.00,1 +3,Exit long,2025-03-03 09:00,M1P0Q0F0L0f0l0,1.04199,1,1.04095,0.00104,0.10,0,0.00138,0.13,-0.00019,-0.02,0.00215,0.00,1 +3,Entry long,2025-03-03 08:00,M1P0Q0F0L0f0l0,1.04095,1,1.04095,0.00104,0.10,0,0.00138,0.13,-0.00019,-0.02,0.00215,0.00,1 +4,Exit short,2025-03-03 10:00,M1P0Q0F0L0f0l0,1.042,1,1.04199,-0.00001,0.00,0,0.00049,0.05,-0.00037,-0.04,0.00214,0.00,1 +4,Entry short,2025-03-03 09:00,M1P0Q0F0L0f0l0,1.04199,1,1.04199,-0.00001,0.00,0,0.00049,0.05,-0.00037,-0.04,0.00214,0.00,1 +5,Exit long,2025-03-03 11:00,M1P0Q0F0L0f0l0,1.0417,1,1.042,-0.0003,-0.03,0,0.00002,0.00,-0.00099,-0.10,0.00184,0.00,1 +5,Entry long,2025-03-03 10:00,M1P0Q0F0L0f0l0,1.042,1,1.042,-0.0003,-0.03,0,0.00002,0.00,-0.00099,-0.10,0.00184,0.00,1 +6,Exit short,2025-03-03 12:00,M1P0Q0F0L0f0l0,1.0418,1,1.0417,-0.0001,-0.01,0,0.00003,0.00,-0.00035,-0.03,0.00174,0.00,1 +6,Entry short,2025-03-03 11:00,M1P0Q0F0L0f0l0,1.0417,1,1.0417,-0.0001,-0.01,0,0.00003,0.00,-0.00035,-0.03,0.00174,0.00,1 +7,Exit long,2025-03-03 13:00,M1P0Q0F0L0f0l0,1.04144,1,1.0418,-0.00036,-0.03,0,0.00016,0.02,-0.00054,-0.05,0.00138,0.00,1 +7,Entry long,2025-03-03 12:00,M1P0Q0F0L0f0l0,1.0418,1,1.0418,-0.00036,-0.03,0,0.00016,0.02,-0.00054,-0.05,0.00138,0.00,1 +8,Exit short,2025-03-03 14:00,M1P0Q0F0L0f0l0,1.04084,1,1.04144,0.0006,0.06,0,0.00076,0.07,-0.00021,-0.02,0.00198,0.00,1 +8,Entry short,2025-03-03 13:00,M1P0Q0F0L0f0l0,1.04144,1,1.04144,0.0006,0.06,0,0.00076,0.07,-0.00021,-0.02,0.00198,0.00,1 +9,Exit long,2025-03-03 15:00,M1P0Q0F0L0f0l0,1.04057,1,1.04084,-0.00027,-0.03,0,0.00019,0.02,-0.00065,-0.06,0.00171,0.00,1 +9,Entry long,2025-03-03 14:00,M1P0Q0F0L0f0l0,1.04084,1,1.04084,-0.00027,-0.03,0,0.00019,0.02,-0.00065,-0.06,0.00171,0.00,1 +10,Exit short,2025-03-03 16:00,M1P0Q0F0L0f0l0,1.04012,1,1.04057,0.00045,0.04,0,0.00171,0.16,-0.00011,-0.01,0.00216,0.00,1 +10,Entry short,2025-03-03 15:00,M1P0Q0F0L0f0l0,1.04057,1,1.04057,0.00045,0.04,0,0.00171,0.16,-0.00011,-0.01,0.00216,0.00,1 +11,Exit long,2025-03-03 17:00,M1P0Q0F0L0f0l0,1.04272,1,1.04012,0.0026,0.25,0,0.00278,0.27,0,0.00,0.00476,0.00,1 +11,Entry long,2025-03-03 16:00,M1P0Q0F0L0f0l0,1.04012,1,1.04012,0.0026,0.25,0,0.00278,0.27,0,0.00,0.00476,0.00,1 +12,Exit short,2025-03-03 18:00,M1P0Q0F0L0f0l0,1.04422,1,1.04272,-0.0015,-0.14,0,0,0.00,-0.00176,-0.17,0.00326,0.00,1 +12,Entry short,2025-03-03 17:00,M1P0Q0F0L0f0l0,1.04272,1,1.04272,-0.0015,-0.14,0,0,0.00,-0.00176,-0.17,0.00326,0.00,1 +13,Exit long,2025-03-03 19:00,M1P0Q0F0L0f0l0,1.04526,1,1.04422,0.00104,0.10,0,0.00158,0.15,-0.00016,-0.02,0.0043,0.00,1 +13,Entry long,2025-03-03 18:00,M1P0Q0F0L0f0l0,1.04422,1,1.04422,0.00104,0.10,0,0.00158,0.15,-0.00016,-0.02,0.0043,0.00,1 +14,Exit short,2025-03-03 20:00,M1P0Q0F0L0f0l0,1.04705,1,1.04526,-0.00179,-0.17,0,0,0.00,-0.00237,-0.23,0.00251,0.00,1 +14,Entry short,2025-03-03 19:00,M1P0Q0F0L0f0l0,1.04526,1,1.04526,-0.00179,-0.17,0,0,0.00,-0.00237,-0.23,0.00251,0.00,1 +15,Exit long,2025-03-03 21:00,M1P0Q0F0L0f0l0,1.04719,1,1.04705,0.00014,0.01,0,0.00059,0.06,-0.0011,-0.11,0.00265,0.00,1 +15,Entry long,2025-03-03 20:00,M1P0Q0F0L0f0l0,1.04705,1,1.04705,0.00014,0.01,0,0.00059,0.06,-0.0011,-0.11,0.00265,0.00,1 +16,Exit short,2025-03-03 22:00,M1P0Q0F0L0f0l0,1.04824,1,1.04719,-0.00105,-0.10,0,0.00031,0.03,-0.00191,-0.18,0.0016,0.00,1 +16,Entry short,2025-03-03 21:00,M1P0Q0F0L0f0l0,1.04719,1,1.04719,-0.00105,-0.10,0,0.00031,0.03,-0.00191,-0.18,0.0016,0.00,1 +17,Exit long,2025-03-03 23:00,M1P0Q0F0L0f0l0,1.04846,1,1.04824,0.00022,0.02,0,0.00214,0.20,-0.00051,-0.05,0.00182,0.00,1 +17,Entry long,2025-03-03 22:00,M1P0Q0F0L0f0l0,1.04824,1,1.04824,0.00022,0.02,0,0.00214,0.20,-0.00051,-0.05,0.00182,0.00,1 +18,Exit short,2025-03-04 00:00,M1P0Q0F0L0f0l0,1.04962,1,1.04846,-0.00116,-0.11,0,0.00006,0.01,-0.00169,-0.16,0.00066,0.00,1 +18,Entry short,2025-03-03 23:00,M1P0Q0F0L0f0l0,1.04846,1,1.04846,-0.00116,-0.11,0,0.00006,0.01,-0.00169,-0.16,0.00066,0.00,1 +19,Exit long,2025-03-04 01:00,M1P0Q0F0L0f0l0,1.04904,1,1.04962,-0.00058,-0.06,0,0.00007,0.01,-0.00096,-0.09,0.00008,0.00,1 +19,Entry long,2025-03-04 00:00,M1P0Q0F0L0f0l0,1.04962,1,1.04962,-0.00058,-0.06,0,0.00007,0.01,-0.00096,-0.09,0.00008,0.00,1 +20,Exit short,2025-03-04 02:00,M1P0Q0F0L0f0l0,1.04872,1,1.04904,0.00032,0.03,0,0.00084,0.08,-0.00136,-0.13,0.0004,0.00,1 +20,Entry short,2025-03-04 01:00,M1P0Q0F0L0f0l0,1.04904,1,1.04904,0.00032,0.03,0,0.00084,0.08,-0.00136,-0.13,0.0004,0.00,1 +21,Exit long,2025-03-04 03:00,M1P0Q0F0L0f0l0,1.0473,1,1.04872,-0.00142,-0.14,0,0.00066,0.06,-0.00148,-0.14,-0.00102,0.00,1 +21,Entry long,2025-03-04 02:00,M1P0Q0F0L0f0l0,1.04872,1,1.04872,-0.00142,-0.14,0,0.00066,0.06,-0.00148,-0.14,-0.00102,0.00,1 +22,Exit short,2025-03-04 04:00,M1P0Q0F0L0f0l0,1.04823,1,1.0473,-0.00093,-0.09,0,0.00066,0.06,-0.00123,-0.12,-0.00195,0.00,1 +22,Entry short,2025-03-04 03:00,M1P0Q0F0L0f0l0,1.0473,1,1.0473,-0.00093,-0.09,0,0.00066,0.06,-0.00123,-0.12,-0.00195,0.00,1 +23,Exit long,2025-03-04 05:00,M1P0Q0F0L1f0l1,1.04882,1,1.04823,0.00059,0.06,0,0.00105,0.10,-0.00019,-0.02,-0.00136,0.00,1 +23,Entry long,2025-03-04 04:00,M1P0Q0F0L0f0l0,1.04823,1,1.04823,0.00059,0.06,0,0.00105,0.10,-0.00019,-0.02,-0.00136,0.00,1 +24,Exit short,2025-03-04 06:00,M1P0Q0F1L0f1l0,1.0488,1,1.04882,0.00002,0.00,0,0.00037,0.04,-0.00006,-0.01,-0.00134,0.00,1 +24,Entry short,2025-03-04 05:00,M1P0Q0F0L1f0l1,1.04882,1,1.04882,0.00002,0.00,0,0.00037,0.04,-0.00006,-0.01,-0.00134,0.00,1 +25,Exit long,2025-03-04 07:00,M1P0Q0F0L0f0l0,1.04856,1,1.0488,-0.00024,-0.02,0,0.00045,0.04,-0.00114,-0.11,-0.00158,0.00,1 +25,Entry long,2025-03-04 06:00,M1P0Q0F1L0f1l0,1.0488,1,1.0488,-0.00024,-0.02,0,0.00045,0.04,-0.00114,-0.11,-0.00158,0.00,1 +26,Exit short,2025-03-04 08:00,M1P0Q0F0L0f0l0,1.04882,1,1.04856,-0.00026,-0.02,0,0.00089,0.08,-0.00032,-0.03,-0.00184,0.00,1 +26,Entry short,2025-03-04 07:00,M1P0Q0F0L0f0l0,1.04856,1,1.04856,-0.00026,-0.02,0,0.00089,0.08,-0.00032,-0.03,-0.00184,0.00,1 +27,Exit long,2025-03-04 09:00,M1P0Q0F0L0f0l0,1.04884,1,1.04882,0.00002,0.00,0,0.0008,0.08,-0.00058,-0.06,-0.00182,0.00,1 +27,Entry long,2025-03-04 08:00,M1P0Q0F0L0f0l0,1.04882,1,1.04882,0.00002,0.00,0,0.0008,0.08,-0.00058,-0.06,-0.00182,0.00,1 +28,Exit short,2025-03-04 10:00,M1P0Q0F0L0f0l0,1.04808,1,1.04884,0.00076,0.07,0,0.0008,0.08,-0.00016,-0.02,-0.00106,0.00,1 +28,Entry short,2025-03-04 09:00,M1P0Q0F0L0f0l0,1.04884,1,1.04884,0.00076,0.07,0,0.0008,0.08,-0.00016,-0.02,-0.00106,0.00,1 +29,Exit long,2025-03-04 11:00,M1P0Q0F0L0f0l0,1.04772,1,1.04808,-0.00036,-0.03,0,0.0003,0.03,-0.00059,-0.06,-0.00142,0.00,1 +29,Entry long,2025-03-04 10:00,M1P0Q0F0L0f0l0,1.04808,1,1.04808,-0.00036,-0.03,0,0.0003,0.03,-0.00059,-0.06,-0.00142,0.00,1 +30,Exit short,2025-03-04 12:00,M1P0Q0F0L0f0l0,1.04782,1,1.04772,-0.0001,-0.01,0,0.00059,0.06,-0.00034,-0.03,-0.00152,0.00,1 +30,Entry short,2025-03-04 11:00,M1P0Q0F0L0f0l0,1.04772,1,1.04772,-0.0001,-0.01,0,0.00059,0.06,-0.00034,-0.03,-0.00152,0.00,1 +31,Exit long,2025-03-04 13:00,M1P0Q0F0L0f0l0,1.04837,1,1.04782,0.00055,0.05,0,0.00083,0.08,-0.00072,-0.07,-0.00097,0.00,1 +31,Entry long,2025-03-04 12:00,M1P0Q0F0L0f0l0,1.04782,1,1.04782,0.00055,0.05,0,0.00083,0.08,-0.00072,-0.07,-0.00097,0.00,1 +32,Exit short,2025-03-04 14:00,M1P0Q0F0L0f0l0,1.04861,1,1.04837,-0.00024,-0.02,0,0.00046,0.04,-0.00061,-0.06,-0.00121,0.00,1 +32,Entry short,2025-03-04 13:00,M1P0Q0F0L0f0l0,1.04837,1,1.04837,-0.00024,-0.02,0,0.00046,0.04,-0.00061,-0.06,-0.00121,0.00,1 +33,Exit long,2025-03-04 15:00,M1P0Q0F0L0f0l0,1.0493,1,1.04861,0.00069,0.07,0,0.00147,0.14,-0.00051,-0.05,-0.00052,0.00,1 +33,Entry long,2025-03-04 14:00,M1P0Q0F0L0f0l0,1.04861,1,1.04861,0.00069,0.07,0,0.00147,0.14,-0.00051,-0.05,-0.00052,0.00,1 +34,Exit short,2025-03-04 16:00,M1P0Q0F0L0f0l0,1.05188,1,1.0493,-0.00258,-0.25,0,0.00067,0.06,-0.0031,-0.30,-0.0031,0.00,1 +34,Entry short,2025-03-04 15:00,M1P0Q0F0L0f0l0,1.0493,1,1.0493,-0.00258,-0.25,0,0.00067,0.06,-0.0031,-0.30,-0.0031,0.00,1 +35,Exit long,2025-03-04 17:00,M1P0Q0F0L0f0l0,1.05122,1,1.05188,-0.00066,-0.06,0,0.00087,0.08,-0.00094,-0.09,-0.00376,0.00,1 +35,Entry long,2025-03-04 16:00,M1P0Q0F0L0f0l0,1.05188,1,1.05188,-0.00066,-0.06,0,0.00087,0.08,-0.00094,-0.09,-0.00376,0.00,1 +36,Exit short,2025-03-04 18:00,M1P0Q0F0L0f0l0,1.05114,1,1.05122,0.00008,0.01,0,0.00096,0.09,-0.00074,-0.07,-0.00368,0.00,1 +36,Entry short,2025-03-04 17:00,M1P0Q0F0L0f0l0,1.05122,1,1.05122,0.00008,0.01,0,0.00096,0.09,-0.00074,-0.07,-0.00368,0.00,1 +37,Exit long,2025-03-04 19:00,M1P0Q0F0L0f0l0,1.05442,1,1.05114,0.00328,0.31,0,0.00333,0.32,-0.00018,-0.02,-0.0004,0.00,1 +37,Entry long,2025-03-04 18:00,M1P0Q0F0L0f0l0,1.05114,1,1.05114,0.00328,0.31,0,0.00333,0.32,-0.00018,-0.02,-0.0004,0.00,1 +38,Exit short,2025-03-04 20:00,M1P0Q0F0L0f0l0,1.05532,1,1.05442,-0.0009,-0.09,0,0.00081,0.08,-0.00129,-0.12,-0.0013,0.00,1 +38,Entry short,2025-03-04 19:00,M1P0Q0F0L0f0l0,1.05442,1,1.05442,-0.0009,-0.09,0,0.00081,0.08,-0.00129,-0.12,-0.0013,0.00,1 +39,Exit long,2025-03-04 21:00,M1P0Q0F0L0f0l0,1.05391,1,1.05532,-0.00141,-0.13,0,0.00063,0.06,-0.00224,-0.21,-0.00271,0.00,1 +39,Entry long,2025-03-04 20:00,M1P0Q0F0L0f0l0,1.05532,1,1.05532,-0.00141,-0.13,0,0.00063,0.06,-0.00224,-0.21,-0.00271,0.00,1 +40,Exit short,2025-03-04 22:00,M1P0Q0F0L0f0l0,1.05214,1,1.05391,0.00177,0.17,0,0.00185,0.18,-0.00095,-0.09,-0.00094,0.00,1 +40,Entry short,2025-03-04 21:00,M1P0Q0F0L0f0l0,1.05391,1,1.05391,0.00177,0.17,0,0.00185,0.18,-0.00095,-0.09,-0.00094,0.00,1 +41,Exit long,2025-03-04 23:00,M1P0Q0F0L0f0l0,1.05266,1,1.05214,0.00052,0.05,0,0.00067,0.06,-0.0025,-0.24,-0.00042,0.00,1 +41,Entry long,2025-03-04 22:00,M1P0Q0F0L0f0l0,1.05214,1,1.05214,0.00052,0.05,0,0.00067,0.06,-0.0025,-0.24,-0.00042,0.00,1 +42,Exit short,2025-03-05 00:00,M1P0Q0F0L0f0l0,1.05338,1,1.05266,-0.00072,-0.07,0,0.00112,0.11,-0.00132,-0.13,-0.00114,0.00,1 +42,Entry short,2025-03-04 23:00,M1P0Q0F0L0f0l0,1.05266,1,1.05266,-0.00072,-0.07,0,0.00112,0.11,-0.00132,-0.13,-0.00114,0.00,1 +43,Exit long,2025-03-05 01:00,M1P0Q0F0L0f0l0,1.05418,1,1.05338,0.0008,0.08,0,0.00102,0.10,-0.00032,-0.03,-0.00034,0.00,1 +43,Entry long,2025-03-05 00:00,M1P0Q0F0L0f0l0,1.05338,1,1.05338,0.0008,0.08,0,0.00102,0.10,-0.00032,-0.03,-0.00034,0.00,1 +44,Exit short,2025-03-05 02:00,M1P0Q0F0L0f0l0,1.05907,1,1.05418,-0.00489,-0.46,0,0.0004,0.04,-0.00494,-0.47,-0.00523,0.00,1 +44,Entry short,2025-03-05 01:00,M1P0Q0F0L0f0l0,1.05418,1,1.05418,-0.00489,-0.46,0,0.0004,0.04,-0.00494,-0.47,-0.00523,0.00,1 +45,Exit long,2025-03-05 03:00,M1P0Q0F0L0f0l0,1.06008,1,1.05907,0.00101,0.10,0,0.00114,0.11,-0.00042,-0.04,-0.00422,0.00,1 +45,Entry long,2025-03-05 02:00,M1P0Q0F0L0f0l0,1.05907,1,1.05907,0.00101,0.10,0,0.00114,0.11,-0.00042,-0.04,-0.00422,0.00,1 +46,Exit short,2025-03-05 04:00,M1P0Q0F0L0f0l0,1.06085,1,1.06008,-0.00077,-0.07,0,0.00001,0.00,-0.00233,-0.22,-0.00499,0.00,1 +46,Entry short,2025-03-05 03:00,M1P0Q0F0L0f0l0,1.06008,1,1.06008,-0.00077,-0.07,0,0.00001,0.00,-0.00233,-0.22,-0.00499,0.00,1 +47,Exit long,2025-03-05 05:00,M1P0Q0F0L1f0l1,1.06258,1,1.06085,0.00173,0.16,0,0.00193,0.18,-0.00003,0.00,-0.00326,0.00,1 +47,Entry long,2025-03-05 04:00,M1P0Q0F0L0f0l0,1.06085,1,1.06085,0.00173,0.16,0,0.00193,0.18,-0.00003,0.00,-0.00326,0.00,1 +48,Exit short,2025-03-05 06:00,M1P0Q0F1L0f1l0,1.06202,1,1.06258,0.00056,0.05,0,0.00079,0.07,-0.00004,0.00,-0.0027,0.00,1 +48,Entry short,2025-03-05 05:00,M1P0Q0F0L1f0l1,1.06258,1,1.06258,0.00056,0.05,0,0.00079,0.07,-0.00004,0.00,-0.0027,0.00,1 +49,Exit long,2025-03-05 07:00,M1P0Q0F0L0f0l0,1.06232,1,1.06202,0.0003,0.03,0,0.0017,0.16,-0.00006,-0.01,-0.0024,0.00,1 +49,Entry long,2025-03-05 06:00,M1P0Q0F1L0f1l0,1.06202,1,1.06202,0.0003,0.03,0,0.0017,0.16,-0.00006,-0.01,-0.0024,0.00,1 +50,Exit short,2025-03-05 08:00,M1P0Q0F0L0f0l0,1.0621,1,1.06232,0.00022,0.02,0,0.00124,0.12,-0.00043,-0.04,-0.00218,0.00,1 +50,Entry short,2025-03-05 07:00,M1P0Q0F0L0f0l0,1.06232,1,1.06232,0.00022,0.02,0,0.00124,0.12,-0.00043,-0.04,-0.00218,0.00,1 +51,Exit long,2025-03-05 09:00,M1P0Q0F0L0f0l0,1.06127,1,1.0621,-0.00083,-0.08,0,0.00067,0.06,-0.00125,-0.12,-0.00301,0.00,1 +51,Entry long,2025-03-05 08:00,M1P0Q0F0L0f0l0,1.0621,1,1.0621,-0.00083,-0.08,0,0.00067,0.06,-0.00125,-0.12,-0.00301,0.00,1 +52,Exit short,2025-03-05 10:00,M1P0Q0F0L0f0l0,1.0604,1,1.06127,0.00087,0.08,0,0.00087,0.08,-0.00031,-0.03,-0.00214,0.00,1 +52,Entry short,2025-03-05 09:00,M1P0Q0F0L0f0l0,1.06127,1,1.06127,0.00087,0.08,0,0.00087,0.08,-0.00031,-0.03,-0.00214,0.00,1 +53,Exit long,2025-03-05 11:00,M1P0Q0F0L0f0l0,1.06182,1,1.0604,0.00142,0.13,0,0.00168,0.16,-0.0002,-0.02,-0.00072,0.00,1 +53,Entry long,2025-03-05 10:00,M1P0Q0F0L0f0l0,1.0604,1,1.0604,0.00142,0.13,0,0.00168,0.16,-0.0002,-0.02,-0.00072,0.00,1 +54,Exit short,2025-03-05 12:00,M1P0Q0F0L0f0l0,1.0619,1,1.06182,-0.00008,-0.01,0,0.00028,0.03,-0.0008,-0.08,-0.0008,0.00,1 +54,Entry short,2025-03-05 11:00,M1P0Q0F0L0f0l0,1.06182,1,1.06182,-0.00008,-0.01,0,0.00028,0.03,-0.0008,-0.08,-0.0008,0.00,1 +55,Exit long,2025-03-05 13:00,M1P0Q0F0L0f0l0,1.06316,1,1.0619,0.00126,0.12,0,0.00136,0.13,-0.00001,0.00,0.00046,0.00,1 +55,Entry long,2025-03-05 12:00,M1P0Q0F0L0f0l0,1.0619,1,1.0619,0.00126,0.12,0,0.00136,0.13,-0.00001,0.00,0.00046,0.00,1 +56,Exit short,2025-03-05 14:00,M1P0Q0F0L0f0l0,1.06324,1,1.06316,-0.00008,-0.01,0,0.00073,0.07,-0.00076,-0.07,0.00038,0.00,1 +56,Entry short,2025-03-05 13:00,M1P0Q0F0L0f0l0,1.06316,1,1.06316,-0.00008,-0.01,0,0.00073,0.07,-0.00076,-0.07,0.00038,0.00,1 +57,Exit long,2025-03-05 15:00,M1P0Q0F0L0f0l0,1.06744,1,1.06324,0.0042,0.40,0,0.00442,0.42,-0.00026,-0.02,0.00458,0.00,1 +57,Entry long,2025-03-05 14:00,M1P0Q0F0L0f0l0,1.06324,1,1.06324,0.0042,0.40,0,0.00442,0.42,-0.00026,-0.02,0.00458,0.00,1 +58,Exit short,2025-03-05 16:00,M1P0Q0F0L0f0l0,1.06981,1,1.06744,-0.00237,-0.22,0,0.00158,0.15,-0.00254,-0.24,0.00221,0.00,1 +58,Entry short,2025-03-05 15:00,M1P0Q0F0L0f0l0,1.06744,1,1.06744,-0.00237,-0.22,0,0.00158,0.15,-0.00254,-0.24,0.00221,0.00,1 +59,Exit long,2025-03-05 17:00,M1P0Q0F0L0f0l0,1.0712,1,1.06981,0.00139,0.13,0,0.00242,0.23,-0.00025,-0.02,0.0036,0.00,1 +59,Entry long,2025-03-05 16:00,M1P0Q0F0L0f0l0,1.06981,1,1.06981,0.00139,0.13,0,0.00242,0.23,-0.00025,-0.02,0.0036,0.00,1 +60,Exit short,2025-03-05 18:00,M1P0Q0F0L0f0l0,1.06972,1,1.0712,0.00148,0.14,0,0.00284,0.27,-0.00032,-0.03,0.00508,0.00,1 +60,Entry short,2025-03-05 17:00,M1P0Q0F0L0f0l0,1.0712,1,1.0712,0.00148,0.14,0,0.00284,0.27,-0.00032,-0.03,0.00508,0.00,1 +61,Exit long,2025-03-05 19:00,M1P0Q0F0L0f0l0,1.06789,1,1.06972,-0.00183,-0.17,0,0.00016,0.01,-0.00208,-0.19,0.00325,0.00,1 +61,Entry long,2025-03-05 18:00,M1P0Q0F0L0f0l0,1.06972,1,1.06972,-0.00183,-0.17,0,0.00016,0.01,-0.00208,-0.19,0.00325,0.00,1 +62,Exit short,2025-03-05 20:00,M1P0Q0F0L0f0l0,1.06958,1,1.06789,-0.00169,-0.16,0,0.00001,0.00,-0.00351,-0.33,0.00156,0.00,1 +62,Entry short,2025-03-05 19:00,M1P0Q0F0L0f0l0,1.06789,1,1.06789,-0.00169,-0.16,0,0.00001,0.00,-0.00351,-0.33,0.00156,0.00,1 +63,Exit long,2025-03-05 21:00,M1P0Q0F0L0f0l0,1.07158,1,1.06958,0.002,0.19,0,0.00272,0.25,-0.00089,-0.08,0.00356,0.00,1 +63,Entry long,2025-03-05 20:00,M1P0Q0F0L0f0l0,1.06958,1,1.06958,0.002,0.19,0,0.00272,0.25,-0.00089,-0.08,0.00356,0.00,1 +64,Exit short,2025-03-05 22:00,M1P0Q0F0L0f0l0,1.077,1,1.07158,-0.00542,-0.51,0,0.0002,0.02,-0.00612,-0.57,-0.00186,0.00,1 +64,Entry short,2025-03-05 21:00,M1P0Q0F0L0f0l0,1.07158,1,1.07158,-0.00542,-0.51,0,0.0002,0.02,-0.00612,-0.57,-0.00186,0.00,1 +65,Exit long,2025-03-05 23:00,M1P0Q0F0L0f0l0,1.07652,1,1.077,-0.00048,-0.04,0,0.00012,0.01,-0.00289,-0.27,-0.00234,0.00,1 +65,Entry long,2025-03-05 22:00,M1P0Q0F0L0f0l0,1.077,1,1.077,-0.00048,-0.04,0,0.00012,0.01,-0.00289,-0.27,-0.00234,0.00,1 +66,Exit short,2025-03-06 00:00,M1P0Q0F0L0f0l0,1.07671,1,1.07652,-0.00019,-0.02,0,0.0004,0.04,-0.00218,-0.20,-0.00253,0.00,1 +66,Entry short,2025-03-05 23:00,M1P0Q0F0L0f0l0,1.07652,1,1.07652,-0.00019,-0.02,0,0.0004,0.04,-0.00218,-0.20,-0.00253,0.00,1 +67,Exit long,2025-03-06 01:00,M1P0Q0F0L0f0l0,1.07851,1,1.07671,0.0018,0.17,0,0.00209,0.19,-0.00047,-0.04,-0.00073,0.00,1 +67,Entry long,2025-03-06 00:00,M1P0Q0F0L0f0l0,1.07671,1,1.07671,0.0018,0.17,0,0.00209,0.19,-0.00047,-0.04,-0.00073,0.00,1 +68,Exit short,2025-03-06 02:00,M1P0Q0F0L0f0l0,1.07737,1,1.07851,0.00114,0.11,0,0.00213,0.20,-0.00039,-0.04,0.00041,0.00,1 +68,Entry short,2025-03-06 01:00,M1P0Q0F0L0f0l0,1.07851,1,1.07851,0.00114,0.11,0,0.00213,0.20,-0.00039,-0.04,0.00041,0.00,1 +69,Exit long,2025-03-06 03:00,M1P0Q0F0L0f0l0,1.07902,1,1.07737,0.00165,0.15,0,0.00173,0.16,-0.00037,-0.03,0.00206,0.00,1 +69,Entry long,2025-03-06 02:00,M1P0Q0F0L0f0l0,1.07737,1,1.07737,0.00165,0.15,0,0.00173,0.16,-0.00037,-0.03,0.00206,0.00,1 +70,Exit short,2025-03-06 04:00,M1P0Q0F0L0f0l0,1.07922,1,1.07902,-0.0002,-0.02,0,0.00025,0.02,-0.00066,-0.06,0.00186,0.00,1 +70,Entry short,2025-03-06 03:00,M1P0Q0F0L0f0l0,1.07902,1,1.07902,-0.0002,-0.02,0,0.00025,0.02,-0.00066,-0.06,0.00186,0.00,1 +71,Exit long,2025-03-06 05:00,M1P0Q0F0L1f0l1,1.07896,1,1.07922,-0.00026,-0.02,0,0.00006,0.01,-0.00067,-0.06,0.0016,0.00,1 +71,Entry long,2025-03-06 04:00,M1P0Q0F0L0f0l0,1.07922,1,1.07922,-0.00026,-0.02,0,0.00006,0.01,-0.00067,-0.06,0.0016,0.00,1 +72,Exit short,2025-03-06 06:00,M1P0Q0F1L0f1l0,1.07908,1,1.07896,-0.00012,-0.01,0,0,0.00,-0.00036,-0.03,0.00148,0.00,1 +72,Entry short,2025-03-06 05:00,M1P0Q0F0L1f0l1,1.07896,1,1.07896,-0.00012,-0.01,0,0,0.00,-0.00036,-0.03,0.00148,0.00,1 +73,Exit long,2025-03-06 07:00,M1P0Q0F0L0f0l0,1.07942,1,1.07908,0.00034,0.03,0,0.00044,0.04,-0.00035,-0.03,0.00182,0.00,1 +73,Entry long,2025-03-06 06:00,M1P0Q0F1L0f1l0,1.07908,1,1.07908,0.00034,0.03,0,0.00044,0.04,-0.00035,-0.03,0.00182,0.00,1 +74,Exit short,2025-03-06 08:00,M1P0Q0F0L0f0l0,1.07944,1,1.07942,-0.00002,0.00,0,0.00068,0.06,-0.00088,-0.08,0.0018,0.00,1 +74,Entry short,2025-03-06 07:00,M1P0Q0F0L0f0l0,1.07942,1,1.07942,-0.00002,0.00,0,0.00068,0.06,-0.00088,-0.08,0.0018,0.00,1 +75,Exit long,2025-03-06 09:00,M1P0Q0F0L0f0l0,1.08152,1,1.07944,0.00208,0.19,0,0.0026,0.24,-0.00048,-0.04,0.00388,0.00,1 +75,Entry long,2025-03-06 08:00,M1P0Q0F0L0f0l0,1.07944,1,1.07944,0.00208,0.19,0,0.0026,0.24,-0.00048,-0.04,0.00388,0.00,1 +76,Exit short,2025-03-06 10:00,M1P0Q0F0L0f0l0,1.08052,1,1.08152,0.001,0.09,0,0.00173,0.16,-0.00042,-0.04,0.00488,0.00,1 +76,Entry short,2025-03-06 09:00,M1P0Q0F0L0f0l0,1.08152,1,1.08152,0.001,0.09,0,0.00173,0.16,-0.00042,-0.04,0.00488,0.00,1 +77,Exit long,2025-03-06 11:00,M1P0Q0F0L0f0l0,1.07896,1,1.08052,-0.00156,-0.14,0,0.00002,0.00,-0.0017,-0.16,0.00332,0.00,1 +77,Entry long,2025-03-06 10:00,M1P0Q0F0L0f0l0,1.08052,1,1.08052,-0.00156,-0.14,0,0.00002,0.00,-0.0017,-0.16,0.00332,0.00,1 +78,Exit short,2025-03-06 12:00,M1P0Q0F0L0f0l0,1.08036,1,1.07896,-0.0014,-0.13,0,0.00054,0.05,-0.00148,-0.14,0.00192,0.00,1 +78,Entry short,2025-03-06 11:00,M1P0Q0F0L0f0l0,1.07896,1,1.07896,-0.0014,-0.13,0,0.00054,0.05,-0.00148,-0.14,0.00192,0.00,1 +79,Exit long,2025-03-06 13:00,M1P0Q0F0L0f0l0,1.08104,1,1.08036,0.00068,0.06,0,0.00082,0.08,-0.00034,-0.03,0.0026,0.00,1 +79,Entry long,2025-03-06 12:00,M1P0Q0F0L0f0l0,1.08036,1,1.08036,0.00068,0.06,0,0.00082,0.08,-0.00034,-0.03,0.0026,0.00,1 +80,Exit short,2025-03-06 14:00,M1P0Q0F0L0f0l0,1.08028,1,1.08104,0.00076,0.07,0,0.00112,0.10,-0.00097,-0.09,0.00336,0.00,1 +80,Entry short,2025-03-06 13:00,M1P0Q0F0L0f0l0,1.08104,1,1.08104,0.00076,0.07,0,0.00112,0.10,-0.00097,-0.09,0.00336,0.00,1 +81,Exit long,2025-03-06 15:00,M1P0Q0F0L0f0l0,1.07992,1,1.08028,-0.00036,-0.03,0,0.00194,0.18,-0.00108,-0.10,0.003,0.00,1 +81,Entry long,2025-03-06 14:00,M1P0Q0F0L0f0l0,1.08028,1,1.08028,-0.00036,-0.03,0,0.00194,0.18,-0.00108,-0.10,0.003,0.00,1 +82,Exit short,2025-03-06 16:00,M1P0Q0F0L0f0l0,1.08012,1,1.07992,-0.0002,-0.02,0,0.00062,0.06,-0.00178,-0.16,0.0028,0.00,1 +82,Entry short,2025-03-06 15:00,M1P0Q0F0L0f0l0,1.07992,1,1.07992,-0.0002,-0.02,0,0.00062,0.06,-0.00178,-0.16,0.0028,0.00,1 +83,Exit long,2025-03-06 17:00,M1P0Q0F0L0f0l0,1.07999,1,1.08012,-0.00013,-0.01,0,0.00056,0.05,-0.00208,-0.19,0.00267,0.00,1 +83,Entry long,2025-03-06 16:00,M1P0Q0F0L0f0l0,1.08012,1,1.08012,-0.00013,-0.01,0,0.00056,0.05,-0.00208,-0.19,0.00267,0.00,1 +84,Exit short,2025-03-06 18:00,M1P0Q0F0L0f0l0,1.07919,1,1.07999,0.0008,0.07,0,0.00171,0.16,-0.00039,-0.04,0.00347,0.00,1 +84,Entry short,2025-03-06 17:00,M1P0Q0F0L0f0l0,1.07999,1,1.07999,0.0008,0.07,0,0.00171,0.16,-0.00039,-0.04,0.00347,0.00,1 +85,Exit long,2025-03-06 19:00,M1P0Q0F0L0f0l0,1.07993,1,1.07919,0.00074,0.07,0,0.00093,0.09,-0.00087,-0.08,0.00421,0.00,1 +85,Entry long,2025-03-06 18:00,M1P0Q0F0L0f0l0,1.07919,1,1.07919,0.00074,0.07,0,0.00093,0.09,-0.00087,-0.08,0.00421,0.00,1 +86,Exit short,2025-03-06 20:00,M1P0Q0F0L0f0l0,1.08002,1,1.07993,-0.00009,-0.01,0,0.00111,0.10,-0.0008,-0.07,0.00412,0.00,1 +86,Entry short,2025-03-06 19:00,M1P0Q0F0L0f0l0,1.07993,1,1.07993,-0.00009,-0.01,0,0.00111,0.10,-0.0008,-0.07,0.00412,0.00,1 +87,Exit long,2025-03-06 21:00,M1P0Q0F0L0f0l0,1.08262,1,1.08002,0.0026,0.24,0,0.00451,0.42,-0.0009,-0.08,0.00672,0.00,1 +87,Entry long,2025-03-06 20:00,M1P0Q0F0L0f0l0,1.08002,1,1.08002,0.0026,0.24,0,0.00451,0.42,-0.0009,-0.08,0.00672,0.00,1 +88,Exit short,2025-03-06 22:00,M1P0Q0F0L0f0l0,1.08372,1,1.08262,-0.0011,-0.10,0,0.0015,0.14,-0.00152,-0.14,0.00562,0.00,1 +88,Entry short,2025-03-06 21:00,M1P0Q0F0L0f0l0,1.08262,1,1.08262,-0.0011,-0.10,0,0.0015,0.14,-0.00152,-0.14,0.00562,0.00,1 +89,Exit long,2025-03-06 23:00,M1P0Q0F0L0f0l0,1.08172,1,1.08372,-0.002,-0.18,0,0.00164,0.15,-0.00258,-0.24,0.00362,0.00,1 +89,Entry long,2025-03-06 22:00,M1P0Q0F0L0f0l0,1.08372,1,1.08372,-0.002,-0.18,0,0.00164,0.15,-0.00258,-0.24,0.00362,0.00,1 +90,Exit short,2025-03-07 00:00,M1P0Q0F0L0f0l0,1.08175,1,1.08172,-0.00003,0.00,0,0.00018,0.02,-0.00203,-0.19,0.00359,0.00,1 +90,Entry short,2025-03-06 23:00,M1P0Q0F0L0f0l0,1.08172,1,1.08172,-0.00003,0.00,0,0.00018,0.02,-0.00203,-0.19,0.00359,0.00,1 +91,Exit long,2025-03-07 01:00,M1P0Q0F0L0f0l0,1.07971,1,1.08175,-0.00204,-0.19,0,0.00049,0.05,-0.00261,-0.24,0.00155,0.00,1 +91,Entry long,2025-03-07 00:00,M1P0Q0F0L0f0l0,1.08175,1,1.08175,-0.00204,-0.19,0,0.00049,0.05,-0.00261,-0.24,0.00155,0.00,1 +92,Exit short,2025-03-07 02:00,M1P0Q0F0L0f0l0,1.07838,1,1.07971,0.00133,0.12,0,0.00313,0.29,-0.00048,-0.04,0.00288,0.00,1 +92,Entry short,2025-03-07 01:00,M1P0Q0F0L0f0l0,1.07971,1,1.07971,0.00133,0.12,0,0.00313,0.29,-0.00048,-0.04,0.00288,0.00,1 +93,Exit long,2025-03-07 03:00,M1P0Q0F0L0f0l0,1.08018,1,1.07838,0.0018,0.17,0,0.00278,0.26,-0.0001,-0.01,0.00468,0.00,1 +93,Entry long,2025-03-07 02:00,M1P0Q0F0L0f0l0,1.07838,1,1.07838,0.0018,0.17,0,0.00278,0.26,-0.0001,-0.01,0.00468,0.00,1 +94,Exit short,2025-03-07 04:00,M1P0Q0F0L0f0l0,1.07868,1,1.08018,0.0015,0.14,0,0.00163,0.15,-0.00016,-0.01,0.00618,0.00,1 +94,Entry short,2025-03-07 03:00,M1P0Q0F0L0f0l0,1.08018,1,1.08018,0.0015,0.14,0,0.00163,0.15,-0.00016,-0.01,0.00618,0.00,1 +95,Exit long,2025-03-07 05:00,M1P0Q0F0L1f0l1,1.07854,1,1.07868,-0.00014,-0.01,0,0.00038,0.04,-0.00117,-0.11,0.00604,0.00,1 +95,Entry long,2025-03-07 04:00,M1P0Q0F0L0f0l0,1.07868,1,1.07868,-0.00014,-0.01,0,0.00038,0.04,-0.00117,-0.11,0.00604,0.00,1 +96,Exit short,2025-03-07 06:00,M1P0Q0F1L0f1l0,1.07917,1,1.07854,-0.00063,-0.06,0,0.00026,0.02,-0.00079,-0.07,0.00541,0.00,1 +96,Entry short,2025-03-07 05:00,M1P0Q0F0L1f0l1,1.07854,1,1.07854,-0.00063,-0.06,0,0.00026,0.02,-0.00079,-0.07,0.00541,0.00,1 +97,Exit long,2025-03-07 07:00,M1P0Q0F0L0f0l0,1.07875,1,1.07917,-0.00042,-0.04,0,0.00047,0.04,-0.00071,-0.07,0.00499,0.00,1 +97,Entry long,2025-03-07 06:00,M1P0Q0F1L0f1l0,1.07917,1,1.07917,-0.00042,-0.04,0,0.00047,0.04,-0.00071,-0.07,0.00499,0.00,1 +98,Exit short,2025-03-07 08:00,M1P0Q0F0L0f0l0,1.07876,1,1.07875,-0.00001,0.00,0,0.00006,0.01,-0.00081,-0.08,0.00498,0.00,1 +98,Entry short,2025-03-07 07:00,M1P0Q0F0L0f0l0,1.07875,1,1.07875,-0.00001,0.00,0,0.00006,0.01,-0.00081,-0.08,0.00498,0.00,1 +99,Exit long,2025-03-07 09:00,M1P0Q0F0L0f0l0,1.079,1,1.07876,0.00024,0.02,0,0.00053,0.05,-0.00062,-0.06,0.00522,0.00,1 +99,Entry long,2025-03-07 08:00,M1P0Q0F0L0f0l0,1.07876,1,1.07876,0.00024,0.02,0,0.00053,0.05,-0.00062,-0.06,0.00522,0.00,1 +100,Exit short,2025-03-07 10:00,M1P0Q0F0L0f0l0,1.07994,1,1.079,-0.00094,-0.09,0,0.00053,0.05,-0.00095,-0.09,0.00428,0.00,1 +100,Entry short,2025-03-07 09:00,M1P0Q0F0L0f0l0,1.079,1,1.079,-0.00094,-0.09,0,0.00053,0.05,-0.00095,-0.09,0.00428,0.00,1 +101,Exit long,2025-03-07 11:00,M1P0Q0F0L0f0l0,1.08058,1,1.07994,0.00064,0.06,0,0.00154,0.14,-0.00031,-0.03,0.00492,0.00,1 +101,Entry long,2025-03-07 10:00,M1P0Q0F0L0f0l0,1.07994,1,1.07994,0.00064,0.06,0,0.00154,0.14,-0.00031,-0.03,0.00492,0.00,1 +102,Exit short,2025-03-07 12:00,M1P0Q0F0L0f0l0,1.0813,1,1.08058,-0.00072,-0.07,0,0.00028,0.03,-0.00075,-0.07,0.0042,0.00,1 +102,Entry short,2025-03-07 11:00,M1P0Q0F0L0f0l0,1.08058,1,1.08058,-0.00072,-0.07,0,0.00028,0.03,-0.00075,-0.07,0.0042,0.00,1 +103,Exit long,2025-03-07 13:00,M1P0Q0F0L0f0l0,1.08134,1,1.0813,0.00004,0.00,0,0.00048,0.04,-0.00053,-0.05,0.00424,0.00,1 +103,Entry long,2025-03-07 12:00,M1P0Q0F0L0f0l0,1.0813,1,1.0813,0.00004,0.00,0,0.00048,0.04,-0.00053,-0.05,0.00424,0.00,1 +104,Exit short,2025-03-07 14:00,M1P0Q0F0L0f0l0,1.08237,1,1.08134,-0.00103,-0.10,0,0.00053,0.05,-0.00118,-0.11,0.00321,0.00,1 +104,Entry short,2025-03-07 13:00,M1P0Q0F0L0f0l0,1.08134,1,1.08134,-0.00103,-0.10,0,0.00053,0.05,-0.00118,-0.11,0.00321,0.00,1 +105,Exit long,2025-03-07 15:00,M1P0Q0F0L0f0l0,1.08299,1,1.08237,0.00062,0.06,0,0.00171,0.16,-0.00036,-0.03,0.00383,0.00,1 +105,Entry long,2025-03-07 14:00,M1P0Q0F0L0f0l0,1.08237,1,1.08237,0.00062,0.06,0,0.00171,0.16,-0.00036,-0.03,0.00383,0.00,1 +106,Exit short,2025-03-07 16:00,M1P0Q0F0L0f0l0,1.08508,1,1.08299,-0.00209,-0.19,0,0.00037,0.03,-0.00254,-0.23,0.00174,0.00,1 +106,Entry short,2025-03-07 15:00,M1P0Q0F0L0f0l0,1.08299,1,1.08299,-0.00209,-0.19,0,0.00037,0.03,-0.00254,-0.23,0.00174,0.00,1 +107,Exit long,2025-03-07 17:00,M1P0Q0F0L0f0l0,1.08614,1,1.08508,0.00106,0.10,0,0.00206,0.19,-0.00062,-0.06,0.0028,0.00,1 +107,Entry long,2025-03-07 16:00,M1P0Q0F0L0f0l0,1.08508,1,1.08508,0.00106,0.10,0,0.00206,0.19,-0.00062,-0.06,0.0028,0.00,1 +108,Exit short,2025-03-07 18:00,M1P0Q0F0L0f0l0,1.08607,1,1.08614,0.00007,0.01,0,0.00039,0.04,-0.00057,-0.05,0.00287,0.00,1 +108,Entry short,2025-03-07 17:00,M1P0Q0F0L0f0l0,1.08614,1,1.08614,0.00007,0.01,0,0.00039,0.04,-0.00057,-0.05,0.00287,0.00,1 +109,Exit long,2025-03-07 19:00,M1P0Q0F0L0f0l0,1.08495,1,1.08607,-0.00112,-0.10,0,0.00001,0.00,-0.00162,-0.15,0.00175,0.00,1 +109,Entry long,2025-03-07 18:00,M1P0Q0F0L0f0l0,1.08607,1,1.08607,-0.00112,-0.10,0,0.00001,0.00,-0.00162,-0.15,0.00175,0.00,1 +110,Exit short,2025-03-07 20:00,M1P0Q0F0L0f0l0,1.08546,1,1.08495,-0.00051,-0.05,0,0.00083,0.08,-0.00077,-0.07,0.00124,0.00,1 +110,Entry short,2025-03-07 19:00,M1P0Q0F0L0f0l0,1.08495,1,1.08495,-0.00051,-0.05,0,0.00083,0.08,-0.00077,-0.07,0.00124,0.00,1 +111,Exit long,2025-03-07 21:00,M1P0Q0F0L0f0l0,1.08445,1,1.08546,-0.00101,-0.09,0,0.00344,0.32,-0.00116,-0.11,0.00023,0.00,1 +111,Entry long,2025-03-07 20:00,M1P0Q0F0L0f0l0,1.08546,1,1.08546,-0.00101,-0.09,0,0.00344,0.32,-0.00116,-0.11,0.00023,0.00,1 +112,Exit short,2025-03-07 22:00,M1P0Q0F0L0f0l0,1.08537,1,1.08445,-0.00092,-0.08,0,0.00003,0.00,-0.00376,-0.35,-0.00069,0.00,1 +112,Entry short,2025-03-07 21:00,M1P0Q0F0L0f0l0,1.08445,1,1.08445,-0.00092,-0.08,0,0.00003,0.00,-0.00376,-0.35,-0.00069,0.00,1 +113,Exit long,2025-03-07 23:00,M1P0Q0F0L0f0l0,1.087,1,1.08537,0.00163,0.15,0,0.00335,0.31,-0.00181,-0.17,0.00094,0.00,1 +113,Entry long,2025-03-07 22:00,M1P0Q0F0L0f0l0,1.08537,1,1.08537,0.00163,0.15,0,0.00335,0.31,-0.00181,-0.17,0.00094,0.00,1 +114,Exit short,2025-03-08 00:00,M1P0Q0F0L0f0l0,1.08588,1,1.087,0.00112,0.10,0,0.00326,0.30,-0.00028,-0.03,0.00206,0.00,1 +114,Entry short,2025-03-07 23:00,M1P0Q0F0L0f0l0,1.087,1,1.087,0.00112,0.10,0,0.00326,0.30,-0.00028,-0.03,0.00206,0.00,1 +115,Exit long,2025-03-08 01:00,M1P0Q0F0L0f0l0,1.08434,1,1.08588,-0.00154,-0.14,0,0.00055,0.05,-0.00268,-0.25,0.00052,0.00,1 +115,Entry long,2025-03-08 00:00,M1P0Q0F0L0f0l0,1.08588,1,1.08588,-0.00154,-0.14,0,0.00055,0.05,-0.00268,-0.25,0.00052,0.00,1 +116,Exit short,2025-03-08 02:00,M1P0Q0F0L0f0l0,1.084,1,1.08434,0.00034,0.03,0,0.00177,0.16,-0.00012,-0.01,0.00086,0.00,1 +116,Entry short,2025-03-08 01:00,M1P0Q0F0L0f0l0,1.08434,1,1.08434,0.00034,0.03,0,0.00177,0.16,-0.00012,-0.01,0.00086,0.00,1 +117,Exit long,2025-03-08 03:00,M1P0Q0F0L0f0l0,1.08426,1,1.084,0.00026,0.02,0,0.00043,0.04,-0.00066,-0.06,0.00112,0.00,1 +117,Entry long,2025-03-08 02:00,M1P0Q0F0L0f0l0,1.084,1,1.084,0.00026,0.02,0,0.00043,0.04,-0.00066,-0.06,0.00112,0.00,1 +118,Exit short,2025-03-08 04:00,M1P0Q0F0L0f0l0,1.08474,1,1.08426,-0.00048,-0.04,0,0.00026,0.02,-0.00066,-0.06,0.00064,0.00,1 +118,Entry short,2025-03-08 03:00,M1P0Q0F0L0f0l0,1.08426,1,1.08426,-0.00048,-0.04,0,0.00026,0.02,-0.00066,-0.06,0.00064,0.00,1 +119,Exit long,2025-03-08 05:00,M1P0Q0F0L1f0l1,1.08345,1,1.08474,-0.00129,-0.12,0,0.0004,0.04,-0.00154,-0.14,-0.00065,0.00,1 +119,Entry long,2025-03-08 04:00,M1P0Q0F0L0f0l0,1.08474,1,1.08474,-0.00129,-0.12,0,0.0004,0.04,-0.00154,-0.14,-0.00065,0.00,1 +120,Exit short,2025-03-10 05:00,M1P0Q0F1L0f1l0,1.08404,1,1.08345,-0.00059,-0.05,0,0.00043,0.04,-0.00059,-0.05,-0.00124,0.00,1 +120,Entry short,2025-03-08 05:00,M1P0Q0F0L1f0l1,1.08345,1,1.08345,-0.00059,-0.05,0,0.00043,0.04,-0.00059,-0.05,-0.00124,0.00,1 +121,Exit long,2025-03-10 06:00,M1P0Q0F0L0f0l0,1.08496,1,1.08404,0.00092,0.08,0,0.00194,0.18,-0.00004,0.00,-0.00032,0.00,1 +121,Entry long,2025-03-10 05:00,M1P0Q0F1L0f1l0,1.08404,1,1.08404,0.00092,0.08,0,0.00194,0.18,-0.00004,0.00,-0.00032,0.00,1 +122,Exit short,2025-03-10 07:00,M1P0Q0F0L0f0l0,1.08602,1,1.08496,-0.00106,-0.10,0,0.00012,0.01,-0.00159,-0.15,-0.00138,0.00,1 +122,Entry short,2025-03-10 06:00,M1P0Q0F0L0f0l0,1.08496,1,1.08496,-0.00106,-0.10,0,0.00012,0.01,-0.00159,-0.15,-0.00138,0.00,1 +123,Exit long,2025-03-10 08:00,M1P0Q0F0L0f0l0,1.08642,1,1.08602,0.0004,0.04,0,0.00072,0.07,-0.00074,-0.07,-0.00098,0.00,1 +123,Entry long,2025-03-10 07:00,M1P0Q0F0L0f0l0,1.08602,1,1.08602,0.0004,0.04,0,0.00072,0.07,-0.00074,-0.07,-0.00098,0.00,1 +124,Exit short,2025-03-10 09:00,M1P0Q0F0L0f0l0,1.0853,1,1.08642,0.00112,0.10,0,0.00115,0.11,-0.00072,-0.07,0.00014,0.00,1 +124,Entry short,2025-03-10 08:00,M1P0Q0F0L0f0l0,1.08642,1,1.08642,0.00112,0.10,0,0.00115,0.11,-0.00072,-0.07,0.00014,0.00,1 +125,Exit long,2025-03-10 10:00,M1P0Q0F0L0f0l0,1.0837,1,1.0853,-0.0016,-0.15,0,0.00029,0.03,-0.00171,-0.16,-0.00146,0.00,1 +125,Entry long,2025-03-10 09:00,M1P0Q0F0L0f0l0,1.0853,1,1.0853,-0.0016,-0.15,0,0.00029,0.03,-0.00171,-0.16,-0.00146,0.00,1 +126,Exit short,2025-03-10 11:00,M1P0Q0F0L0f0l0,1.08317,1,1.0837,0.00053,0.05,0,0.00068,0.06,-0.00016,-0.01,-0.00093,0.00,1 +126,Entry short,2025-03-10 10:00,M1P0Q0F0L0f0l0,1.0837,1,1.0837,0.00053,0.05,0,0.00068,0.06,-0.00016,-0.01,-0.00093,0.00,1 +127,Exit long,2025-03-10 12:00,M1P0Q0F0L0f0l0,1.08306,1,1.08317,-0.00011,-0.01,0,0.00061,0.06,-0.00013,-0.01,-0.00104,0.00,1 +127,Entry long,2025-03-10 11:00,M1P0Q0F0L0f0l0,1.08317,1,1.08317,-0.00011,-0.01,0,0.00061,0.06,-0.00013,-0.01,-0.00104,0.00,1 +128,Exit short,2025-03-10 13:00,M1P0Q0F0L0f0l0,1.08351,1,1.08306,-0.00045,-0.04,0,0.00026,0.02,-0.00052,-0.05,-0.00149,0.00,1 +128,Entry short,2025-03-10 12:00,M1P0Q0F0L0f0l0,1.08306,1,1.08306,-0.00045,-0.04,0,0.00026,0.02,-0.00052,-0.05,-0.00149,0.00,1 +129,Exit long,2025-03-10 14:00,M1P0Q0F0L0f0l0,1.08374,1,1.08351,0.00023,0.02,0,0.00098,0.09,-0.00005,0.00,-0.00126,0.00,1 +129,Entry long,2025-03-10 13:00,M1P0Q0F0L0f0l0,1.08351,1,1.08351,0.00023,0.02,0,0.00098,0.09,-0.00005,0.00,-0.00126,0.00,1 +130,Exit short,2025-03-10 15:00,M1P0Q0F0L0f0l0,1.08228,1,1.08374,0.00146,0.13,0,0.00264,0.24,-0.00069,-0.06,0.0002,0.00,1 +130,Entry short,2025-03-10 14:00,M1P0Q0F0L0f0l0,1.08374,1,1.08374,0.00146,0.13,0,0.00264,0.24,-0.00069,-0.06,0.0002,0.00,1 +131,Exit long,2025-03-10 16:00,M1P0Q0F0L0f0l0,1.081,1,1.08228,-0.00128,-0.12,0,0.00018,0.02,-0.00178,-0.16,-0.00108,0.00,1 +131,Entry long,2025-03-10 15:00,M1P0Q0F0L0f0l0,1.08228,1,1.08228,-0.00128,-0.12,0,0.00018,0.02,-0.00178,-0.16,-0.00108,0.00,1 +132,Exit short,2025-03-10 17:00,M1P0Q0F0L0f0l0,1.08512,1,1.081,-0.00412,-0.38,0,0.00012,0.01,-0.00468,-0.43,-0.0052,0.00,1 +132,Entry short,2025-03-10 16:00,M1P0Q0F0L0f0l0,1.081,1,1.081,-0.00412,-0.38,0,0.00012,0.01,-0.00468,-0.43,-0.0052,0.00,1 +133,Exit long,2025-03-10 18:00,M1P0Q0F0L0f0l0,1.08611,1,1.08512,0.00099,0.09,0,0.00235,0.22,-0.00006,-0.01,-0.00421,0.00,1 +133,Entry long,2025-03-10 17:00,M1P0Q0F0L0f0l0,1.08512,1,1.08512,0.00099,0.09,0,0.00235,0.22,-0.00006,-0.01,-0.00421,0.00,1 +134,Exit short,2025-03-10 19:00,M1P0Q0F0L0f0l0,1.08507,1,1.08611,0.00104,0.10,0,0.00486,0.45,-0.00035,-0.03,-0.00317,0.00,1 +134,Entry short,2025-03-10 18:00,M1P0Q0F0L0f0l0,1.08611,1,1.08611,0.00104,0.10,0,0.00486,0.45,-0.00035,-0.03,-0.00317,0.00,1 +135,Exit long,2025-03-10 20:00,M1P0Q0F0L0f0l0,1.08439,1,1.08507,-0.00068,-0.06,0,0.00095,0.09,-0.00086,-0.08,-0.00385,0.00,1 +135,Entry long,2025-03-10 19:00,M1P0Q0F0L0f0l0,1.08507,1,1.08507,-0.00068,-0.06,0,0.00095,0.09,-0.00086,-0.08,-0.00385,0.00,1 +136,Exit short,2025-03-10 21:00,M1P0Q0F0L0f0l0,1.08352,1,1.08439,0.00087,0.08,0,0.00107,0.10,-0.00069,-0.06,-0.00298,0.00,1 +136,Entry short,2025-03-10 20:00,M1P0Q0F0L0f0l0,1.08439,1,1.08439,0.00087,0.08,0,0.00107,0.10,-0.00069,-0.06,-0.00298,0.00,1 +137,Exit long,2025-03-10 22:00,M1P0Q0F0L0f0l0,1.08452,1,1.08352,0.001,0.09,0,0.00116,0.11,-0.00036,-0.03,-0.00198,0.00,1 +137,Entry long,2025-03-10 21:00,M1P0Q0F0L0f0l0,1.08352,1,1.08352,0.001,0.09,0,0.00116,0.11,-0.00036,-0.03,-0.00198,0.00,1 +138,Exit short,2025-03-10 23:00,M1P0Q0F0L0f0l0,1.0837,1,1.08452,0.00082,0.08,0,0.00244,0.22,-0.00029,-0.03,-0.00116,0.00,1 +138,Entry short,2025-03-10 22:00,M1P0Q0F0L0f0l0,1.08452,1,1.08452,0.00082,0.08,0,0.00244,0.22,-0.00029,-0.03,-0.00116,0.00,1 +139,Exit long,2025-03-11 00:00,M1P0Q0F0L0f0l0,1.08304,1,1.0837,-0.00066,-0.06,0,0.0005,0.05,-0.00091,-0.08,-0.00182,0.00,1 +139,Entry long,2025-03-10 23:00,M1P0Q0F0L0f0l0,1.0837,1,1.0837,-0.00066,-0.06,0,0.0005,0.05,-0.00091,-0.08,-0.00182,0.00,1 +140,Exit short,2025-03-11 01:00,M1P0Q0F0L0f0l0,1.08298,1,1.08304,0.00006,0.01,0,0.00047,0.04,-0.00154,-0.14,-0.00176,0.00,1 +140,Entry short,2025-03-11 00:00,M1P0Q0F0L0f0l0,1.08304,1,1.08304,0.00006,0.01,0,0.00047,0.04,-0.00154,-0.14,-0.00176,0.00,1 +141,Exit long,2025-03-11 02:00,M1P0Q0F0L0f0l0,1.08297,1,1.08298,-0.00001,0.00,0,0.00056,0.05,-0.0012,-0.11,-0.00177,0.00,1 +141,Entry long,2025-03-11 01:00,M1P0Q0F0L0f0l0,1.08298,1,1.08298,-0.00001,0.00,0,0.00056,0.05,-0.0012,-0.11,-0.00177,0.00,1 +142,Exit short,2025-03-11 03:00,M1P0Q0F0L0f0l0,1.08318,1,1.08297,-0.00021,-0.02,0,0.00121,0.11,-0.00031,-0.03,-0.00198,0.00,1 +142,Entry short,2025-03-11 02:00,M1P0Q0F0L0f0l0,1.08297,1,1.08297,-0.00021,-0.02,0,0.00121,0.11,-0.00031,-0.03,-0.00198,0.00,1 +143,Exit long,2025-03-11 04:00,M1P0Q0F0L1f0l1,1.08362,1,1.08318,0.00044,0.04,0,0.00048,0.04,-0.0006,-0.06,-0.00154,0.00,1 +143,Entry long,2025-03-11 03:00,M1P0Q0F0L0f0l0,1.08318,1,1.08318,0.00044,0.04,0,0.00048,0.04,-0.0006,-0.06,-0.00154,0.00,1 +144,Exit short,2025-03-11 05:00,M1P0Q0F1L0f1l0,1.08353,1,1.08362,0.00009,0.01,0,0.00038,0.04,-0.00002,0.00,-0.00145,0.00,1 +144,Entry short,2025-03-11 04:00,M1P0Q0F0L1f0l1,1.08362,1,1.08362,0.00009,0.01,0,0.00038,0.04,-0.00002,0.00,-0.00145,0.00,1 +145,Exit long,2025-03-11 06:00,M1P0Q0F0L0f0l0,1.08348,1,1.08353,-0.00005,0.00,0,0.00064,0.06,-0.00021,-0.02,-0.0015,0.00,1 +145,Entry long,2025-03-11 05:00,M1P0Q0F1L0f1l0,1.08353,1,1.08353,-0.00005,0.00,0,0.00064,0.06,-0.00021,-0.02,-0.0015,0.00,1 +146,Exit short,2025-03-11 07:00,M1P0Q0F0L0f0l0,1.08394,1,1.08348,-0.00046,-0.04,0,0,0.00,-0.00088,-0.08,-0.00196,0.00,1 +146,Entry short,2025-03-11 06:00,M1P0Q0F0L0f0l0,1.08348,1,1.08348,-0.00046,-0.04,0,0,0.00,-0.00088,-0.08,-0.00196,0.00,1 +147,Exit long,2025-03-11 08:00,M1P0Q0F0L0f0l0,1.08515,1,1.08394,0.00121,0.11,0,0.00143,0.13,-0.00002,0.00,-0.00075,0.00,1 +147,Entry long,2025-03-11 07:00,M1P0Q0F0L0f0l0,1.08394,1,1.08394,0.00121,0.11,0,0.00143,0.13,-0.00002,0.00,-0.00075,0.00,1 +148,Exit short,2025-03-11 09:00,M1P0Q0F0L0f0l0,1.08582,1,1.08515,-0.00067,-0.06,0,0.00079,0.07,-0.00073,-0.07,-0.00142,0.00,1 +148,Entry short,2025-03-11 08:00,M1P0Q0F0L0f0l0,1.08515,1,1.08515,-0.00067,-0.06,0,0.00079,0.07,-0.00073,-0.07,-0.00142,0.00,1 +149,Exit long,2025-03-11 10:00,M1P0Q0F0L0f0l0,1.08559,1,1.08582,-0.00023,-0.02,0,0.00024,0.02,-0.00081,-0.07,-0.00165,0.00,1 +149,Entry long,2025-03-11 09:00,M1P0Q0F0L0f0l0,1.08582,1,1.08582,-0.00023,-0.02,0,0.00024,0.02,-0.00081,-0.07,-0.00165,0.00,1 +150,Exit short,2025-03-11 11:00,M1P0Q0F0L0f0l0,1.08544,1,1.08559,0.00015,0.01,0,0.00069,0.06,-0.0004,-0.04,-0.0015,0.00,1 +150,Entry short,2025-03-11 10:00,M1P0Q0F0L0f0l0,1.08559,1,1.08559,0.00015,0.01,0,0.00069,0.06,-0.0004,-0.04,-0.0015,0.00,1 +151,Exit long,2025-03-11 12:00,M1P0Q0F0L0f0l0,1.08545,1,1.08544,0.00001,0.00,0,0.00073,0.07,-0.00038,-0.04,-0.00149,0.00,1 +151,Entry long,2025-03-11 11:00,M1P0Q0F0L0f0l0,1.08544,1,1.08544,0.00001,0.00,0,0.00073,0.07,-0.00038,-0.04,-0.00149,0.00,1 +152,Exit short,2025-03-11 13:00,M1P0Q0F0L0f0l0,1.08384,1,1.08545,0.00161,0.15,0,0.00189,0.17,-0.00013,-0.01,0.00012,0.00,1 +152,Entry short,2025-03-11 12:00,M1P0Q0F0L0f0l0,1.08545,1,1.08545,0.00161,0.15,0,0.00189,0.17,-0.00013,-0.01,0.00012,0.00,1 +153,Exit long,2025-03-11 14:00,M1P0Q0F0L0f0l0,1.08566,1,1.08384,0.00182,0.17,0,0.00376,0.35,-0.00018,-0.02,0.00194,0.00,1 +153,Entry long,2025-03-11 13:00,M1P0Q0F0L0f0l0,1.08384,1,1.08384,0.00182,0.17,0,0.00376,0.35,-0.00018,-0.02,0.00194,0.00,1 +154,Exit short,2025-03-11 15:00,M1P0Q0F0L0f0l0,1.08907,1,1.08566,-0.00341,-0.31,0,0.00012,0.01,-0.00448,-0.41,-0.00147,0.00,1 +154,Entry short,2025-03-11 14:00,M1P0Q0F0L0f0l0,1.08566,1,1.08566,-0.00341,-0.31,0,0.00012,0.01,-0.00448,-0.41,-0.00147,0.00,1 +155,Exit long,2025-03-11 16:00,M1P0Q0F0L0f0l0,1.09172,1,1.08907,0.00265,0.24,0,0.00285,0.26,-0.00059,-0.05,0.00118,0.00,1 +155,Entry long,2025-03-11 15:00,M1P0Q0F0L0f0l0,1.08907,1,1.08907,0.00265,0.24,0,0.00285,0.26,-0.00059,-0.05,0.00118,0.00,1 +156,Exit short,2025-03-11 17:00,M1P0Q0F0L0f0l0,1.09085,1,1.09172,0.00087,0.08,0,0.00211,0.19,-0.00038,-0.03,0.00205,0.00,1 +156,Entry short,2025-03-11 16:00,M1P0Q0F0L0f0l0,1.09172,1,1.09172,0.00087,0.08,0,0.00211,0.19,-0.00038,-0.03,0.00205,0.00,1 +157,Exit long,2025-03-11 18:00,M1P0Q0F0L0f0l0,1.08906,1,1.09085,-0.00179,-0.16,0,0,0.00,-0.00261,-0.24,0.00026,0.00,1 +157,Entry long,2025-03-11 17:00,M1P0Q0F0L0f0l0,1.09085,1,1.09085,-0.00179,-0.16,0,0,0.00,-0.00261,-0.24,0.00026,0.00,1 +158,Exit short,2025-03-11 19:00,M1P0Q0F0L0f0l0,1.09046,1,1.08906,-0.0014,-0.13,0,0.00094,0.09,-0.00142,-0.13,-0.00114,0.00,1 +158,Entry short,2025-03-11 18:00,M1P0Q0F0L0f0l0,1.08906,1,1.08906,-0.0014,-0.13,0,0.00094,0.09,-0.00142,-0.13,-0.00114,0.00,1 +159,Exit long,2025-03-11 20:00,M1P0Q0F0L0f0l0,1.0918,1,1.09046,0.00134,0.12,0,0.0016,0.15,-0.00024,-0.02,0.0002,0.00,1 +159,Entry long,2025-03-11 19:00,M1P0Q0F0L0f0l0,1.09046,1,1.09046,0.00134,0.12,0,0.0016,0.15,-0.00024,-0.02,0.0002,0.00,1 +160,Exit short,2025-03-11 21:00,M1P0Q0F0L0f0l0,1.09201,1,1.0918,-0.00021,-0.02,0,0.00064,0.06,-0.00128,-0.12,-0.00001,0.00,1 +160,Entry short,2025-03-11 20:00,M1P0Q0F0L0f0l0,1.0918,1,1.0918,-0.00021,-0.02,0,0.00064,0.06,-0.00128,-0.12,-0.00001,0.00,1 +161,Exit long,2025-03-11 22:00,M1P0Q0F0L0f0l0,1.09194,1,1.09201,-0.00007,-0.01,0,0.00003,0.00,-0.00251,-0.23,-0.00008,0.00,1 +161,Entry long,2025-03-11 21:00,M1P0Q0F0L0f0l0,1.09201,1,1.09201,-0.00007,-0.01,0,0.00003,0.00,-0.00251,-0.23,-0.00008,0.00,1 +162,Exit short,2025-03-11 23:00,M1P0Q0F0L0f0l0,1.09272,1,1.09194,-0.00078,-0.07,0,0.00071,0.07,-0.00094,-0.09,-0.00086,0.00,1 +162,Entry short,2025-03-11 22:00,M1P0Q0F0L0f0l0,1.09194,1,1.09194,-0.00078,-0.07,0,0.00071,0.07,-0.00094,-0.09,-0.00086,0.00,1 +163,Exit long,2025-03-12 00:00,M1P0Q0F0L0f0l0,1.09252,1,1.09272,-0.0002,-0.02,0,0.00025,0.02,-0.00092,-0.08,-0.00106,0.00,1 +163,Entry long,2025-03-11 23:00,M1P0Q0F0L0f0l0,1.09272,1,1.09272,-0.0002,-0.02,0,0.00025,0.02,-0.00092,-0.08,-0.00106,0.00,1 +164,Exit short,2025-03-12 01:00,M1P0Q0F0L0f0l0,1.09342,1,1.09252,-0.0009,-0.08,0,0.00012,0.01,-0.00098,-0.09,-0.00196,0.00,1 +164,Entry short,2025-03-12 00:00,M1P0Q0F0L0f0l0,1.09252,1,1.09252,-0.0009,-0.08,0,0.00012,0.01,-0.00098,-0.09,-0.00196,0.00,1 +165,Exit long,2025-03-12 02:00,M1P0Q0F0L0f0l0,1.0931,1,1.09342,-0.00032,-0.03,0,0.0013,0.12,-0.0009,-0.08,-0.00228,0.00,1 +165,Entry long,2025-03-12 01:00,M1P0Q0F0L0f0l0,1.09342,1,1.09342,-0.00032,-0.03,0,0.0013,0.12,-0.0009,-0.08,-0.00228,0.00,1 +166,Exit short,2025-03-12 03:00,M1P0Q0F0L0f0l0,1.092,1,1.0931,0.0011,0.10,0,0.00114,0.10,-0.00031,-0.03,-0.00118,0.00,1 +166,Entry short,2025-03-12 02:00,M1P0Q0F0L0f0l0,1.0931,1,1.0931,0.0011,0.10,0,0.00114,0.10,-0.00031,-0.03,-0.00118,0.00,1 +167,Exit long,2025-03-12 04:00,M1P0Q0F0L1f0l1,1.09194,1,1.092,-0.00006,-0.01,0,0.0001,0.01,-0.00098,-0.09,-0.00124,0.00,1 +167,Entry long,2025-03-12 03:00,M1P0Q0F0L0f0l0,1.092,1,1.092,-0.00006,-0.01,0,0.0001,0.01,-0.00098,-0.09,-0.00124,0.00,1 +168,Exit short,2025-03-12 05:00,M1P0Q0F1L0f1l0,1.09116,1,1.09194,0.00078,0.07,0,0.00088,0.08,-0.00014,-0.01,-0.00046,0.00,1 +168,Entry short,2025-03-12 04:00,M1P0Q0F0L1f0l1,1.09194,1,1.09194,0.00078,0.07,0,0.00088,0.08,-0.00014,-0.01,-0.00046,0.00,1 +169,Exit long,2025-03-12 06:00,M1P0Q0F0L0f0l0,1.09158,1,1.09116,0.00042,0.04,0,0.00074,0.07,-0.00006,-0.01,-0.00004,0.00,1 +169,Entry long,2025-03-12 05:00,M1P0Q0F1L0f1l0,1.09116,1,1.09116,0.00042,0.04,0,0.00074,0.07,-0.00006,-0.01,-0.00004,0.00,1 +170,Exit short,2025-03-12 07:00,M1P0Q0F0L0f0l0,1.09142,1,1.09158,0.00016,0.01,0,0.00026,0.02,-0.0002,-0.02,0.00012,0.00,1 +170,Entry short,2025-03-12 06:00,M1P0Q0F0L0f0l0,1.09158,1,1.09158,0.00016,0.01,0,0.00026,0.02,-0.0002,-0.02,0.00012,0.00,1 +171,Exit long,2025-03-12 08:00,M1P0Q0F0L0f0l0,1.09088,1,1.09142,-0.00054,-0.05,0,0.00016,0.01,-0.00085,-0.08,-0.00042,0.00,1 +171,Entry long,2025-03-12 07:00,M1P0Q0F0L0f0l0,1.09142,1,1.09142,-0.00054,-0.05,0,0.00016,0.01,-0.00085,-0.08,-0.00042,0.00,1 +172,Exit short,2025-03-12 09:00,M1P0Q0F0L0f0l0,1.09066,1,1.09088,0.00022,0.02,0,0.00027,0.02,-0.00066,-0.06,-0.0002,0.00,1 +172,Entry short,2025-03-12 08:00,M1P0Q0F0L0f0l0,1.09088,1,1.09088,0.00022,0.02,0,0.00027,0.02,-0.00066,-0.06,-0.0002,0.00,1 +173,Exit long,2025-03-12 10:00,M1P0Q0F0L0f0l0,1.09038,1,1.09066,-0.00028,-0.03,0,0.0005,0.05,-0.00034,-0.03,-0.00048,0.00,1 +173,Entry long,2025-03-12 09:00,M1P0Q0F0L0f0l0,1.09066,1,1.09066,-0.00028,-0.03,0,0.0005,0.05,-0.00034,-0.03,-0.00048,0.00,1 +174,Exit short,2025-03-12 11:00,M1P0Q0F0L0f0l0,1.08974,1,1.09038,0.00064,0.06,0,0.00076,0.07,-0.00011,-0.01,0.00016,0.00,1 +174,Entry short,2025-03-12 10:00,M1P0Q0F0L0f0l0,1.09038,1,1.09038,0.00064,0.06,0,0.00076,0.07,-0.00011,-0.01,0.00016,0.00,1 +175,Exit long,2025-03-12 12:00,M1P0Q0F0L0f0l0,1.08988,1,1.08974,0.00014,0.01,0,0.00053,0.05,-0.00016,-0.01,0.0003,0.00,1 +175,Entry long,2025-03-12 11:00,M1P0Q0F0L0f0l0,1.08974,1,1.08974,0.00014,0.01,0,0.00053,0.05,-0.00016,-0.01,0.0003,0.00,1 +176,Exit short,2025-03-12 13:00,M1P0Q0F0L0f0l0,1.09036,1,1.08988,-0.00048,-0.04,0,0.00036,0.03,-0.00056,-0.05,-0.00018,0.00,1 +176,Entry short,2025-03-12 12:00,M1P0Q0F0L0f0l0,1.08988,1,1.08988,-0.00048,-0.04,0,0.00036,0.03,-0.00056,-0.05,-0.00018,0.00,1 +177,Exit long,2025-03-12 14:00,M1P0Q0F0L0f0l0,1.08922,1,1.09036,-0.00114,-0.10,0,0.00054,0.05,-0.00116,-0.11,-0.00132,0.00,1 +177,Entry long,2025-03-12 13:00,M1P0Q0F0L0f0l0,1.09036,1,1.09036,-0.00114,-0.10,0,0.00054,0.05,-0.00116,-0.11,-0.00132,0.00,1 +178,Exit short,2025-03-12 15:00,M1P0Q0F0L0f0l0,1.09017,1,1.08922,-0.00095,-0.09,0,0.00048,0.04,-0.0011,-0.10,-0.00227,0.00,1 +178,Entry short,2025-03-12 14:00,M1P0Q0F0L0f0l0,1.08922,1,1.08922,-0.00095,-0.09,0,0.00048,0.04,-0.0011,-0.10,-0.00227,0.00,1 +179,Exit long,2025-03-12 16:00,M1P0Q0F0L0f0l0,1.09216,1,1.09017,0.00199,0.18,0,0.00201,0.18,-0.00039,-0.04,-0.00028,0.00,1 +179,Entry long,2025-03-12 15:00,M1P0Q0F0L0f0l0,1.09017,1,1.09017,0.00199,0.18,0,0.00201,0.18,-0.00039,-0.04,-0.00028,0.00,1 +180,Exit short,2025-03-12 17:00,M1P0Q0F0L0f0l0,1.09145,1,1.09216,0.00071,0.07,0,0.00082,0.08,-0.0005,-0.05,0.00043,0.00,1 +180,Entry short,2025-03-12 16:00,M1P0Q0F0L0f0l0,1.09216,1,1.09216,0.00071,0.07,0,0.00082,0.08,-0.0005,-0.05,0.00043,0.00,1 +181,Exit long,2025-03-12 18:00,M1P0Q0F0L0f0l0,1.09064,1,1.09145,-0.00081,-0.07,0,0.00065,0.06,-0.00099,-0.09,-0.00038,0.00,1 +181,Entry long,2025-03-12 17:00,M1P0Q0F0L0f0l0,1.09145,1,1.09145,-0.00081,-0.07,0,0.00065,0.06,-0.00099,-0.09,-0.00038,0.00,1 +182,Exit short,2025-03-12 19:00,M1P0Q0F0L0f0l0,1.0901,1,1.09064,0.00054,0.05,0,0.0007,0.06,-0.00065,-0.06,0.00016,0.00,1 +182,Entry short,2025-03-12 18:00,M1P0Q0F0L0f0l0,1.09064,1,1.09064,0.00054,0.05,0,0.0007,0.06,-0.00065,-0.06,0.00016,0.00,1 +183,Exit long,2025-03-12 20:00,M1P0Q0F0L0f0l0,1.0878,1,1.0901,-0.0023,-0.21,0,0.00312,0.29,-0.00248,-0.23,-0.00214,0.00,1 +183,Entry long,2025-03-12 19:00,M1P0Q0F0L0f0l0,1.0901,1,1.0901,-0.0023,-0.21,0,0.00312,0.29,-0.00248,-0.23,-0.00214,0.00,1 +184,Exit short,2025-03-12 21:00,M1P0Q0F0L0f0l0,1.08824,1,1.0878,-0.00044,-0.04,0,0.00023,0.02,-0.00184,-0.17,-0.00258,0.00,1 +184,Entry short,2025-03-12 20:00,M1P0Q0F0L0f0l0,1.0878,1,1.0878,-0.00044,-0.04,0,0.00023,0.02,-0.00184,-0.17,-0.00258,0.00,1 +185,Exit long,2025-03-12 22:00,M1P0Q0F0L0f0l0,1.0913,1,1.08824,0.00306,0.28,0,0.00313,0.29,-0.00012,-0.01,0.00048,0.00,1 +185,Entry long,2025-03-12 21:00,M1P0Q0F0L0f0l0,1.08824,1,1.08824,0.00306,0.28,0,0.00313,0.29,-0.00012,-0.01,0.00048,0.00,1 +186,Exit short,2025-03-12 23:00,M1P0Q0F0L0f0l0,1.09244,1,1.0913,-0.00114,-0.10,0,0.0003,0.03,-0.00114,-0.10,-0.00066,0.00,1 +186,Entry short,2025-03-12 22:00,M1P0Q0F0L0f0l0,1.0913,1,1.0913,-0.00114,-0.10,0,0.0003,0.03,-0.00114,-0.10,-0.00066,0.00,1 +187,Exit long,2025-03-13 00:00,M1P0Q0F0L0f0l0,1.09058,1,1.09244,-0.00186,-0.17,0,0.00036,0.03,-0.00187,-0.17,-0.00252,0.00,1 +187,Entry long,2025-03-12 23:00,M1P0Q0F0L0f0l0,1.09244,1,1.09244,-0.00186,-0.17,0,0.00036,0.03,-0.00187,-0.17,-0.00252,0.00,1 +188,Exit short,2025-03-13 01:00,M1P0Q0F0L0f0l0,1.0907,1,1.09058,-0.00012,-0.01,0,0.00024,0.02,-0.00085,-0.08,-0.00264,0.00,1 +188,Entry short,2025-03-13 00:00,M1P0Q0F0L0f0l0,1.09058,1,1.09058,-0.00012,-0.01,0,0.00024,0.02,-0.00085,-0.08,-0.00264,0.00,1 +189,Exit long,2025-03-13 02:00,M1P0Q0F0L0f0l0,1.08846,1,1.0907,-0.00224,-0.21,0,0.00026,0.02,-0.00272,-0.25,-0.00488,0.00,1 +189,Entry long,2025-03-13 01:00,M1P0Q0F0L0f0l0,1.0907,1,1.0907,-0.00224,-0.21,0,0.00026,0.02,-0.00272,-0.25,-0.00488,0.00,1 +190,Exit short,2025-03-13 03:00,M1P0Q0F0L0f0l0,1.08902,1,1.08846,-0.00056,-0.05,0,0.00014,0.01,-0.00133,-0.12,-0.00544,0.00,1 +190,Entry short,2025-03-13 02:00,M1P0Q0F0L0f0l0,1.08846,1,1.08846,-0.00056,-0.05,0,0.00014,0.01,-0.00133,-0.12,-0.00544,0.00,1 +191,Exit long,2025-03-13 04:00,M1P0Q0F0L1f0l1,1.08875,1,1.08902,-0.00027,-0.02,0,0.00034,0.03,-0.00036,-0.03,-0.00571,0.00,1 +191,Entry long,2025-03-13 03:00,M1P0Q0F0L0f0l0,1.08902,1,1.08902,-0.00027,-0.02,0,0.00034,0.03,-0.00036,-0.03,-0.00571,0.00,1 +192,Exit short,2025-03-13 05:00,M1P0Q0F1L0f1l0,1.0887,1,1.08875,0.00005,0.00,0,0.00007,0.01,-0.00031,-0.03,-0.00566,0.00,1 +192,Entry short,2025-03-13 04:00,M1P0Q0F0L1f0l1,1.08875,1,1.08875,0.00005,0.00,0,0.00007,0.01,-0.00031,-0.03,-0.00566,0.00,1 +193,Exit long,2025-03-13 06:00,M1P0Q0F0L0f0l0,1.08892,1,1.0887,0.00022,0.02,0,0.0003,0.03,0,0.00,-0.00544,0.00,1 +193,Entry long,2025-03-13 05:00,M1P0Q0F1L0f1l0,1.0887,1,1.0887,0.00022,0.02,0,0.0003,0.03,0,0.00,-0.00544,0.00,1 +194,Exit short,2025-03-13 07:00,M1P0Q0F0L0f0l0,1.08854,1,1.08892,0.00038,0.03,0,0.00058,0.05,-0.00008,-0.01,-0.00506,0.00,1 +194,Entry short,2025-03-13 06:00,M1P0Q0F0L0f0l0,1.08892,1,1.08892,0.00038,0.03,0,0.00058,0.05,-0.00008,-0.01,-0.00506,0.00,1 +195,Exit long,2025-03-13 08:00,M1P0Q0F0L0f0l0,1.08916,1,1.08854,0.00062,0.06,0,0.00065,0.06,-0.00028,-0.03,-0.00444,0.00,1 +195,Entry long,2025-03-13 07:00,M1P0Q0F0L0f0l0,1.08854,1,1.08854,0.00062,0.06,0,0.00065,0.06,-0.00028,-0.03,-0.00444,0.00,1 +196,Exit short,2025-03-13 09:00,M1P0Q0F0L0f0l0,1.08892,1,1.08916,0.00024,0.02,0,0.00052,0.05,-0.00018,-0.02,-0.0042,0.00,1 +196,Entry short,2025-03-13 08:00,M1P0Q0F0L0f0l0,1.08916,1,1.08916,0.00024,0.02,0,0.00052,0.05,-0.00018,-0.02,-0.0042,0.00,1 +197,Exit long,2025-03-13 10:00,M1P0Q0F0L0f0l0,1.08956,1,1.08892,0.00064,0.06,0,0.00081,0.07,-0.00002,0.00,-0.00356,0.00,1 +197,Entry long,2025-03-13 09:00,M1P0Q0F0L0f0l0,1.08892,1,1.08892,0.00064,0.06,0,0.00081,0.07,-0.00002,0.00,-0.00356,0.00,1 +198,Exit short,2025-03-13 11:00,M1P0Q0F0L0f0l0,1.08851,1,1.08956,0.00105,0.10,0,0.00105,0.10,-0.00001,0.00,-0.00251,0.00,1 +198,Entry short,2025-03-13 10:00,M1P0Q0F0L0f0l0,1.08956,1,1.08956,0.00105,0.10,0,0.00105,0.10,-0.00001,0.00,-0.00251,0.00,1 +199,Exit long,2025-03-13 12:00,M1P0Q0F0L0f0l0,1.08935,1,1.08851,0.00084,0.08,0,0.00085,0.08,-0.00033,-0.03,-0.00167,0.00,1 +199,Entry long,2025-03-13 11:00,M1P0Q0F0L0f0l0,1.08851,1,1.08851,0.00084,0.08,0,0.00085,0.08,-0.00033,-0.03,-0.00167,0.00,1 +200,Exit short,2025-03-13 13:00,M1P0Q0F0L0f0l0,1.08852,1,1.08935,0.00083,0.08,0,0.00141,0.13,-0.00001,0.00,-0.00084,0.00,1 +200,Entry short,2025-03-13 12:00,M1P0Q0F0L0f0l0,1.08935,1,1.08935,0.00083,0.08,0,0.00141,0.13,-0.00001,0.00,-0.00084,0.00,1 +201,Exit long,2025-03-13 14:00,M1P0Q0F0L0f0l0,1.08746,1,1.08852,-0.00106,-0.10,0,0.00004,0.00,-0.0016,-0.15,-0.0019,0.00,1 +201,Entry long,2025-03-13 13:00,M1P0Q0F0L0f0l0,1.08852,1,1.08852,-0.00106,-0.10,0,0.00004,0.00,-0.0016,-0.15,-0.0019,0.00,1 +202,Exit short,2025-03-13 15:00,M1P0Q0F0L0f0l0,1.08654,1,1.08746,0.00092,0.08,0,0.00148,0.14,-0.00106,-0.10,-0.00098,0.00,1 +202,Entry short,2025-03-13 14:00,M1P0Q0F0L0f0l0,1.08746,1,1.08746,0.00092,0.08,0,0.00148,0.14,-0.00106,-0.10,-0.00098,0.00,1 +203,Exit long,2025-03-13 16:00,M1P0Q0F0L0f0l0,1.08732,1,1.08654,0.00078,0.07,0,0.00188,0.17,-0.00062,-0.06,-0.0002,0.00,1 +203,Entry long,2025-03-13 15:00,M1P0Q0F0L0f0l0,1.08654,1,1.08654,0.00078,0.07,0,0.00188,0.17,-0.00062,-0.06,-0.0002,0.00,1 +204,Exit short,2025-03-13 17:00,M1P0Q0F0L0f0l0,1.08794,1,1.08732,-0.00062,-0.06,0,0.00044,0.04,-0.00122,-0.11,-0.00082,0.00,1 +204,Entry short,2025-03-13 16:00,M1P0Q0F0L0f0l0,1.08732,1,1.08732,-0.00062,-0.06,0,0.00044,0.04,-0.00122,-0.11,-0.00082,0.00,1 +205,Exit long,2025-03-13 18:00,M1P0Q0F0L0f0l0,1.08702,1,1.08794,-0.00092,-0.08,0,0.00036,0.03,-0.00169,-0.16,-0.00174,0.00,1 +205,Entry long,2025-03-13 17:00,M1P0Q0F0L0f0l0,1.08794,1,1.08794,-0.00092,-0.08,0,0.00036,0.03,-0.00169,-0.16,-0.00174,0.00,1 +206,Exit short,2025-03-13 19:00,M1P0Q0F0L0f0l0,1.08564,1,1.08702,0.00138,0.13,0,0.00258,0.24,-0.00048,-0.04,-0.00036,0.00,1 +206,Entry short,2025-03-13 18:00,M1P0Q0F0L0f0l0,1.08702,1,1.08702,0.00138,0.13,0,0.00258,0.24,-0.00048,-0.04,-0.00036,0.00,1 +207,Exit long,2025-03-13 20:00,M1P0Q0F0L0f0l0,1.08349,1,1.08564,-0.00215,-0.20,0,0.00222,0.20,-0.00302,-0.28,-0.00251,0.00,1 +207,Entry long,2025-03-13 19:00,M1P0Q0F0L0f0l0,1.08564,1,1.08564,-0.00215,-0.20,0,0.00222,0.20,-0.00302,-0.28,-0.00251,0.00,1 +208,Exit short,2025-03-13 21:00,M1P0Q0F0L0f0l0,1.08474,1,1.08349,-0.00125,-0.12,0,0.00123,0.11,-0.00183,-0.17,-0.00376,0.00,1 +208,Entry short,2025-03-13 20:00,M1P0Q0F0L0f0l0,1.08349,1,1.08349,-0.00125,-0.12,0,0.00123,0.11,-0.00183,-0.17,-0.00376,0.00,1 +209,Exit long,2025-03-13 22:00,M1P0Q0F0L0f0l0,1.08652,1,1.08474,0.00178,0.16,0,0.00224,0.21,-0.00012,-0.01,-0.00198,0.00,1 +209,Entry long,2025-03-13 21:00,M1P0Q0F0L0f0l0,1.08474,1,1.08474,0.00178,0.16,0,0.00224,0.21,-0.00012,-0.01,-0.00198,0.00,1 +210,Exit short,2025-03-13 23:00,M1P0Q0F0L0f0l0,1.08585,1,1.08652,0.00067,0.06,0,0.00112,0.10,-0.00068,-0.06,-0.00131,0.00,1 +210,Entry short,2025-03-13 22:00,M1P0Q0F0L0f0l0,1.08652,1,1.08652,0.00067,0.06,0,0.00112,0.10,-0.00068,-0.06,-0.00131,0.00,1 +211,Exit long,2025-03-14 00:00,M1P0Q0F0L0f0l0,1.08726,1,1.08585,0.00141,0.13,0,0.00197,0.18,-0.00033,-0.03,0.0001,0.00,1 +211,Entry long,2025-03-13 23:00,M1P0Q0F0L0f0l0,1.08585,1,1.08585,0.00141,0.13,0,0.00197,0.18,-0.00033,-0.03,0.0001,0.00,1 +212,Exit short,2025-03-14 01:00,M1P0Q0F0L0f0l0,1.08546,1,1.08726,0.0018,0.17,0,0.00182,0.17,-0.00009,-0.01,0.0019,0.00,1 +212,Entry short,2025-03-14 00:00,M1P0Q0F0L0f0l0,1.08726,1,1.08726,0.0018,0.17,0,0.00182,0.17,-0.00009,-0.01,0.0019,0.00,1 +213,Exit long,2025-03-14 02:00,M1P0Q0F0L0f0l0,1.08536,1,1.08546,-0.0001,-0.01,0,0.00035,0.03,-0.00025,-0.02,0.0018,0.00,1 +213,Entry long,2025-03-14 01:00,M1P0Q0F0L0f0l0,1.08546,1,1.08546,-0.0001,-0.01,0,0.00035,0.03,-0.00025,-0.02,0.0018,0.00,1 +214,Exit short,2025-03-14 03:00,M1P0Q0F0L0f0l0,1.08484,1,1.08536,0.00052,0.05,0,0.00058,0.05,-0.00034,-0.03,0.00232,0.00,1 +214,Entry short,2025-03-14 02:00,M1P0Q0F0L0f0l0,1.08536,1,1.08536,0.00052,0.05,0,0.00058,0.05,-0.00034,-0.03,0.00232,0.00,1 +215,Exit long,2025-03-14 04:00,M1P0Q0F0L1f0l1,1.08524,1,1.08484,0.0004,0.04,0,0.00076,0.07,-0.0002,-0.02,0.00272,0.00,1 +215,Entry long,2025-03-14 03:00,M1P0Q0F0L0f0l0,1.08484,1,1.08484,0.0004,0.04,0,0.00076,0.07,-0.0002,-0.02,0.00272,0.00,1 +216,Exit short,2025-03-14 05:00,M1P0Q0F1L0f1l0,1.08528,1,1.08524,-0.00004,0.00,0,0.00035,0.03,-0.00006,-0.01,0.00268,0.00,1 +216,Entry short,2025-03-14 04:00,M1P0Q0F0L1f0l1,1.08524,1,1.08524,-0.00004,0.00,0,0.00035,0.03,-0.00006,-0.01,0.00268,0.00,1 +217,Exit long,2025-03-14 06:00,M1P0Q0F0L0f0l0,1.08526,1,1.08528,-0.00002,0.00,0,0.0003,0.03,-0.00015,-0.01,0.00266,0.00,1 +217,Entry long,2025-03-14 05:00,M1P0Q0F1L0f1l0,1.08528,1,1.08528,-0.00002,0.00,0,0.0003,0.03,-0.00015,-0.01,0.00266,0.00,1 +218,Exit short,2025-03-14 07:00,M1P0Q0F0L0f0l0,1.0855,1,1.08526,-0.00024,-0.02,0,0.00024,0.02,-0.00025,-0.02,0.00242,0.00,1 +218,Entry short,2025-03-14 06:00,M1P0Q0F0L0f0l0,1.08526,1,1.08526,-0.00024,-0.02,0,0.00024,0.02,-0.00025,-0.02,0.00242,0.00,1 +219,Exit long,2025-03-14 08:00,M1P0Q0F0L0f0l0,1.08492,1,1.0855,-0.00058,-0.05,0,0.00036,0.03,-0.00066,-0.06,0.00184,0.00,1 +219,Entry long,2025-03-14 07:00,M1P0Q0F0L0f0l0,1.0855,1,1.0855,-0.00058,-0.05,0,0.00036,0.03,-0.00066,-0.06,0.00184,0.00,1 +220,Exit short,2025-03-14 08:00,,1.08492,1,1.08492,0,0.00,0,0,0.00,0,0.00,0.00184,0.00,0 +220,Entry short,2025-03-14 08:00,M1P0Q0F0L0f0l0,1.08492,1,1.08492,0,0.00,0,0,0.00,0,0.00,0.00184,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/meta.json b/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/meta.json new file mode 100644 index 0000000..819e37d --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/meta.json @@ -0,0 +1,16 @@ +{ + "title": "CG-ISMARKET session flags", + "slug": "cgim-flags-xauusd-60-dst-mar", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-25T21:56:01.968Z", + "chart": { + "symbol": "OANDA:XAUUSD", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14" + }, + "pine_sha256": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tv_trades_sha256": "308b250a01e1c2e77a74019d61f89e822305a9e76974bcd2b2e1b939a4cadb7e", + "tv_trades_rows": 420 +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/metrics.json b/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/metrics.json new file mode 100644 index 0000000..10a70be --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "cgim-flags-xauusd-60-dst-mar", + "symbol": "OANDA:XAUUSD", + "interval": "60", + "from": "2025-03-02", + "to": "2025-03-14", + "deepBacktesting": true, + "trades": 210, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tvTradesCsvHash": "308b250a01e1c2e77a74019d61f89e822305a9e76974bcd2b2e1b939a4cadb7e", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.74598", + "symbol": "OANDA:XAUUSD", + "interval": "60", + "requestedRange": { + "from": 1740873600000, + "to": 1741910400000 + }, + "returnedRange": { + "from": 1740956400000, + "to": 1741910400000 + }, + "rangeProof": "covered", + "rawFrameSha256": "6865e27275a70580acfa8d99f6be0104b6664d8e865be51ae4e58cbdcdcd7570", + "decodedReportSha256": "668167ff7879331b9c50e596d13da780f6557b1ec2bc0cd8bc017b10ff85d2ab", + "closedTrades": 210, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T21:56:01.967Z" +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/strategy.pine b/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/strategy.pine new file mode 100644 index 0000000..0740da1 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/strategy.pine @@ -0,0 +1,22 @@ +// CG-ISMARKET: which session.* flags does TradingView set on each chart bar? +// process_orders_on_close=true: every bar reverses the position at its own +// close, so every trade's ENTRY is one chart bar (TradingView dates a +// process_orders_on_close fill at the bar's open) and the entry's Signal (its +// comment) carries the flags TradingView evaluated on that bar, a letter and a +// digit each: M session.ismarket, P session.ispremarket, Q session.ispostmarket, +// F session.isfirstbar, L session.islastbar, f session.isfirstbar_regular, +// l session.islastbar_regular (1 true, 0 false). +//@version=6 +strategy("CG-ISMARKET session flags", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +bit(bool x) => x ? "1" : "0" +flag = "M" + bit(session.ismarket) + "P" + bit(session.ispremarket) + "Q" + bit(session.ispostmarket) + + "F" + bit(session.isfirstbar) + "L" + bit(session.islastbar) + + "f" + bit(session.isfirstbar_regular) + "l" + bit(session.islastbar_regular) +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/tv_trades.csv b/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/tv_trades.csv new file mode 100644 index 0000000..9b7834b --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-xauusd-60-dst-mar/tv_trades.csv @@ -0,0 +1,421 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-03 08:00,M1P0Q0F0L0f0l0,2865.95,1,2871.125,-5.175,-0.18,0,0.4,0.01,-5.79,-0.20,-5.175,0.00,1 +1,Entry long,2025-03-03 07:00,M1P0Q0F1L0f1l0,2871.125,1,2871.125,-5.175,-0.18,0,0.4,0.01,-5.79,-0.20,-5.175,0.00,1 +2,Exit short,2025-03-03 09:00,M1P0Q0F0L0f0l0,2870.97,1,2865.95,-5.02,-0.18,0,1.69,0.06,-6.2,-0.22,-10.195,0.00,1 +2,Entry short,2025-03-03 08:00,M1P0Q0F0L0f0l0,2865.95,1,2865.95,-5.02,-0.18,0,1.69,0.06,-6.2,-0.22,-10.195,0.00,1 +3,Exit long,2025-03-03 10:00,M1P0Q0F0L0f0l0,2868.15,1,2870.97,-2.82,-0.10,0,1.025,0.04,-3.22,-0.11,-13.015,0.00,1 +3,Entry long,2025-03-03 09:00,M1P0Q0F0L0f0l0,2870.97,1,2870.97,-2.82,-0.10,0,1.025,0.04,-3.22,-0.11,-13.015,0.00,1 +4,Exit short,2025-03-03 11:00,M1P0Q0F0L0f0l0,2864.87,1,2868.15,3.28,0.11,0,8.68,0.30,-0.02,0.00,-9.735,0.00,1 +4,Entry short,2025-03-03 10:00,M1P0Q0F0L0f0l0,2868.15,1,2868.15,3.28,0.11,0,8.68,0.30,-0.02,0.00,-9.735,0.00,1 +5,Exit long,2025-03-03 12:00,M1P0Q0F0L0f0l0,2867.42,1,2864.87,2.55,0.09,0,3.645,0.13,-1.675,-0.06,-7.185,0.00,1 +5,Entry long,2025-03-03 11:00,M1P0Q0F0L0f0l0,2864.87,1,2864.87,2.55,0.09,0,3.645,0.13,-1.675,-0.06,-7.185,0.00,1 +6,Exit short,2025-03-03 13:00,M1P0Q0F0L0f0l0,2863.995,1,2867.42,3.425,0.12,0,6.09,0.21,-0.03,0.00,-3.76,0.00,1 +6,Entry short,2025-03-03 12:00,M1P0Q0F0L0f0l0,2867.42,1,2867.42,3.425,0.12,0,6.09,0.21,-0.03,0.00,-3.76,0.00,1 +7,Exit long,2025-03-03 14:00,M1P0Q0F0L0f0l0,2865.595,1,2863.995,1.6,0.06,0,2.105,0.07,-2.18,-0.08,-2.16,0.00,1 +7,Entry long,2025-03-03 13:00,M1P0Q0F0L0f0l0,2863.995,1,2863.995,1.6,0.06,0,2.105,0.07,-2.18,-0.08,-2.16,0.00,1 +8,Exit short,2025-03-03 15:00,M1P0Q0F0L0f0l0,2863.325,1,2865.595,2.27,0.08,0,5.31,0.19,-0.815,-0.03,0.11,0.00,1 +8,Entry short,2025-03-03 14:00,M1P0Q0F0L0f0l0,2865.595,1,2865.595,2.27,0.08,0,5.31,0.19,-0.815,-0.03,0.11,0.00,1 +9,Exit long,2025-03-03 16:00,M1P0Q0F0L0f0l0,2868.69,1,2863.325,5.365,0.19,0,5.605,0.20,-4.325,-0.15,5.475,0.00,1 +9,Entry long,2025-03-03 15:00,M1P0Q0F0L0f0l0,2863.325,1,2863.325,5.365,0.19,0,5.605,0.20,-4.325,-0.15,5.475,0.00,1 +10,Exit short,2025-03-03 17:00,M1P0Q0F0L0f0l0,2867.495,1,2868.69,1.195,0.04,0,4.315,0.15,-2.875,-0.10,6.67,0.00,1 +10,Entry short,2025-03-03 16:00,M1P0Q0F0L0f0l0,2868.69,1,2868.69,1.195,0.04,0,4.315,0.15,-2.875,-0.10,6.67,0.00,1 +11,Exit long,2025-03-03 18:00,M1P0Q0F0L0f0l0,2871.935,1,2867.495,4.44,0.15,0,6.21,0.22,-0.22,-0.01,11.11,0.00,1 +11,Entry long,2025-03-03 17:00,M1P0Q0F0L0f0l0,2867.495,1,2867.495,4.44,0.15,0,6.21,0.22,-0.22,-0.01,11.11,0.00,1 +12,Exit short,2025-03-03 19:00,M1P0Q0F0L0f0l0,2874.49,1,2871.935,-2.555,-0.09,0,0.545,0.02,-3.64,-0.13,8.555,0.00,1 +12,Entry short,2025-03-03 18:00,M1P0Q0F0L0f0l0,2871.935,1,2871.935,-2.555,-0.09,0,0.545,0.02,-3.64,-0.13,8.555,0.00,1 +13,Exit long,2025-03-03 20:00,M1P0Q0F0L0f0l0,2875.685,1,2874.49,1.195,0.04,0,3.285,0.11,-0.39,-0.01,9.75,0.00,1 +13,Entry long,2025-03-03 19:00,M1P0Q0F0L0f0l0,2874.49,1,2874.49,1.195,0.04,0,3.285,0.11,-0.39,-0.01,9.75,0.00,1 +14,Exit short,2025-03-03 21:00,M1P0Q0F0L0f0l0,2872.72,1,2875.685,2.965,0.10,0,6.735,0.23,-0.64,-0.02,12.715,0.00,1 +14,Entry short,2025-03-03 20:00,M1P0Q0F0L0f0l0,2875.685,1,2875.685,2.965,0.10,0,6.735,0.23,-0.64,-0.02,12.715,0.00,1 +15,Exit long,2025-03-03 22:00,M1P0Q0F0L0f0l0,2877.725,1,2872.72,5.005,0.17,0,10.33,0.36,-1.355,-0.05,17.72,0.00,1 +15,Entry long,2025-03-03 21:00,M1P0Q0F0L0f0l0,2872.72,1,2872.72,5.005,0.17,0,10.33,0.36,-1.355,-0.05,17.72,0.00,1 +16,Exit short,2025-03-03 23:00,M1P0Q0F0L0f0l0,2887.925,1,2877.725,-10.2,-0.35,0,3.725,0.13,-12.805,-0.44,7.52,0.00,1 +16,Entry short,2025-03-03 22:00,M1P0Q0F0L0f0l0,2877.725,1,2877.725,-10.2,-0.35,0,3.725,0.13,-12.805,-0.44,7.52,0.00,1 +17,Exit long,2025-03-04 00:00,M1P0Q0F0L0f0l0,2891.64,1,2887.925,3.715,0.13,0,5.275,0.18,-1.81,-0.06,11.235,0.00,1 +17,Entry long,2025-03-03 23:00,M1P0Q0F0L0f0l0,2887.925,1,2887.925,3.715,0.13,0,5.275,0.18,-1.81,-0.06,11.235,0.00,1 +18,Exit short,2025-03-04 01:00,M1P0Q0F0L0f0l0,2890.91,1,2891.64,0.73,0.03,0,4.25,0.15,-1.375,-0.05,11.965,0.00,1 +18,Entry short,2025-03-04 00:00,M1P0Q0F0L0f0l0,2891.64,1,2891.64,0.73,0.03,0,4.25,0.15,-1.375,-0.05,11.965,0.00,1 +19,Exit long,2025-03-04 02:00,M1P0Q0F0L0f0l0,2890,1,2890.91,-0.91,-0.03,0,1.54,0.05,-4.25,-0.15,11.055,0.00,1 +19,Entry long,2025-03-04 01:00,M1P0Q0F0L0f0l0,2890.91,1,2890.91,-0.91,-0.03,0,1.54,0.05,-4.25,-0.15,11.055,0.00,1 +20,Exit short,2025-03-04 03:00,M1P0Q0F0L0f0l0,2881.67,1,2890,8.33,0.29,0,10.17,0.35,-1.28,-0.04,19.385,0.00,1 +20,Entry short,2025-03-04 02:00,M1P0Q0F0L0f0l0,2890,1,2890,8.33,0.29,0,10.17,0.35,-1.28,-0.04,19.385,0.00,1 +21,Exit long,2025-03-04 04:00,M1P0Q0F0L0f0l0,2890.675,1,2881.67,9.005,0.31,0,9.91,0.34,-3.235,-0.11,28.39,0.00,1 +21,Entry long,2025-03-04 03:00,M1P0Q0F0L0f0l0,2881.67,1,2881.67,9.005,0.31,0,9.91,0.34,-3.235,-0.11,28.39,0.00,1 +22,Exit short,2025-03-04 05:00,M1P0Q0F0L1f0l1,2892.985,1,2890.675,-2.31,-0.08,0,0.465,0.02,-4.535,-0.16,26.08,0.00,1 +22,Entry short,2025-03-04 04:00,M1P0Q0F0L0f0l0,2890.675,1,2890.675,-2.31,-0.08,0,0.465,0.02,-4.535,-0.16,26.08,0.00,1 +23,Exit long,2025-03-04 07:00,M1P0Q0F1L0f1l0,2890.895,1,2892.985,-2.09,-0.07,0,0.32,0.01,-2.35,-0.08,23.99,0.00,1 +23,Entry long,2025-03-04 05:00,M1P0Q0F0L1f0l1,2892.985,1,2892.985,-2.09,-0.07,0,0.32,0.01,-2.35,-0.08,23.99,0.00,1 +24,Exit short,2025-03-04 08:00,M1P0Q0F0L0f0l0,2891.945,1,2890.895,-1.05,-0.04,0,0.76,0.03,-2.955,-0.10,22.94,0.00,1 +24,Entry short,2025-03-04 07:00,M1P0Q0F1L0f1l0,2890.895,1,2890.895,-1.05,-0.04,0,0.76,0.03,-2.955,-0.10,22.94,0.00,1 +25,Exit long,2025-03-04 09:00,M1P0Q0F0L0f0l0,2888.41,1,2891.945,-3.535,-0.12,0,1.125,0.04,-9.965,-0.34,19.405,0.00,1 +25,Entry long,2025-03-04 08:00,M1P0Q0F0L0f0l0,2891.945,1,2891.945,-3.535,-0.12,0,1.125,0.04,-9.965,-0.34,19.405,0.00,1 +26,Exit short,2025-03-04 10:00,M1P0Q0F0L0f0l0,2885.535,1,2888.41,2.875,0.10,0,3.535,0.12,-0.96,-0.03,22.28,0.00,1 +26,Entry short,2025-03-04 09:00,M1P0Q0F0L0f0l0,2888.41,1,2888.41,2.875,0.10,0,3.535,0.12,-0.96,-0.03,22.28,0.00,1 +27,Exit long,2025-03-04 11:00,M1P0Q0F0L0f0l0,2888.655,1,2885.535,3.12,0.11,0,7.615,0.26,-0.475,-0.02,25.4,0.00,1 +27,Entry long,2025-03-04 10:00,M1P0Q0F0L0f0l0,2885.535,1,2885.535,3.12,0.11,0,7.615,0.26,-0.475,-0.02,25.4,0.00,1 +28,Exit short,2025-03-04 12:00,M1P0Q0F0L0f0l0,2891.37,1,2888.655,-2.715,-0.09,0,1.92,0.07,-4.045,-0.14,22.685,0.00,1 +28,Entry short,2025-03-04 11:00,M1P0Q0F0L0f0l0,2888.655,1,2888.655,-2.715,-0.09,0,1.92,0.07,-4.045,-0.14,22.685,0.00,1 +29,Exit long,2025-03-04 13:00,M1P0Q0F0L0f0l0,2889.76,1,2891.37,-1.61,-0.06,0,3.045,0.11,-2.855,-0.10,21.075,0.00,1 +29,Entry long,2025-03-04 12:00,M1P0Q0F0L0f0l0,2891.37,1,2891.37,-1.61,-0.06,0,3.045,0.11,-2.855,-0.10,21.075,0.00,1 +30,Exit short,2025-03-04 14:00,M1P0Q0F0L0f0l0,2887.445,1,2889.76,2.315,0.08,0,5.235,0.18,-0.11,0.00,23.39,0.00,1 +30,Entry short,2025-03-04 13:00,M1P0Q0F0L0f0l0,2889.76,1,2889.76,2.315,0.08,0,5.235,0.18,-0.11,0.00,23.39,0.00,1 +31,Exit long,2025-03-04 15:00,M1P0Q0F0L0f0l0,2900.03,1,2887.445,12.585,0.44,0,14.205,0.49,-0.33,-0.01,35.975,0.00,1 +31,Entry long,2025-03-04 14:00,M1P0Q0F0L0f0l0,2887.445,1,2887.445,12.585,0.44,0,14.205,0.49,-0.33,-0.01,35.975,0.00,1 +32,Exit short,2025-03-04 16:00,M1P0Q0F0L0f0l0,2914.22,1,2900.03,-14.19,-0.49,0,3.245,0.11,-18.705,-0.64,21.785,0.00,1 +32,Entry short,2025-03-04 15:00,M1P0Q0F0L0f0l0,2900.03,1,2900.03,-14.19,-0.49,0,3.245,0.11,-18.705,-0.64,21.785,0.00,1 +33,Exit long,2025-03-04 17:00,M1P0Q0F0L0f0l0,2918.105,1,2914.22,3.885,0.13,0,7.005,0.24,-1.59,-0.05,25.67,0.00,1 +33,Entry long,2025-03-04 16:00,M1P0Q0F0L0f0l0,2914.22,1,2914.22,3.885,0.13,0,7.005,0.24,-1.59,-0.05,25.67,0.00,1 +34,Exit short,2025-03-04 18:00,M1P0Q0F0L0f0l0,2914.725,1,2918.105,3.38,0.12,0,6.025,0.21,-0.07,0.00,29.05,0.00,1 +34,Entry short,2025-03-04 17:00,M1P0Q0F0L0f0l0,2918.105,1,2918.105,3.38,0.12,0,6.025,0.21,-0.07,0.00,29.05,0.00,1 +35,Exit long,2025-03-04 19:00,M1P0Q0F0L0f0l0,2920.08,1,2914.725,5.355,0.18,0,7.085,0.24,-1.705,-0.06,34.405,0.00,1 +35,Entry long,2025-03-04 18:00,M1P0Q0F0L0f0l0,2914.725,1,2914.725,5.355,0.18,0,7.085,0.24,-1.705,-0.06,34.405,0.00,1 +36,Exit short,2025-03-04 20:00,M1P0Q0F0L0f0l0,2924.935,1,2920.08,-4.855,-0.17,0,1.37,0.05,-5.545,-0.19,29.55,0.00,1 +36,Entry short,2025-03-04 19:00,M1P0Q0F0L0f0l0,2920.08,1,2920.08,-4.855,-0.17,0,1.37,0.05,-5.545,-0.19,29.55,0.00,1 +37,Exit long,2025-03-04 21:00,M1P0Q0F0L0f0l0,2922.615,1,2924.935,-2.32,-0.08,0,2.975,0.10,-5.125,-0.18,27.23,0.00,1 +37,Entry long,2025-03-04 20:00,M1P0Q0F0L0f0l0,2924.935,1,2924.935,-2.32,-0.08,0,2.975,0.10,-5.125,-0.18,27.23,0.00,1 +38,Exit short,2025-03-04 22:00,M1P0Q0F0L0f0l0,2903.365,1,2922.615,19.25,0.66,0,19.27,0.66,-0.465,-0.02,46.48,0.00,1 +38,Entry short,2025-03-04 21:00,M1P0Q0F0L0f0l0,2922.615,1,2922.615,19.25,0.66,0,19.27,0.66,-0.465,-0.02,46.48,0.00,1 +39,Exit long,2025-03-04 23:00,M1P0Q0F0L0f0l0,2906.145,1,2903.365,2.78,0.10,0,9.04,0.31,-2.975,-0.10,49.26,0.00,1 +39,Entry long,2025-03-04 22:00,M1P0Q0F0L0f0l0,2903.365,1,2903.365,2.78,0.10,0,9.04,0.31,-2.975,-0.10,49.26,0.00,1 +40,Exit short,2025-03-05 00:00,M1P0Q0F0L0f0l0,2915.18,1,2906.145,-9.035,-0.31,0,2.38,0.08,-9.965,-0.34,40.225,0.00,1 +40,Entry short,2025-03-04 23:00,M1P0Q0F0L0f0l0,2906.145,1,2906.145,-9.035,-0.31,0,2.38,0.08,-9.965,-0.34,40.225,0.00,1 +41,Exit long,2025-03-05 01:00,M1P0Q0F0L0f0l0,2911.67,1,2915.18,-3.51,-0.12,0,1.28,0.04,-4.075,-0.14,36.715,0.00,1 +41,Entry long,2025-03-05 00:00,M1P0Q0F0L0f0l0,2915.18,1,2915.18,-3.51,-0.12,0,1.28,0.04,-4.075,-0.14,36.715,0.00,1 +42,Exit short,2025-03-05 02:00,M1P0Q0F0L0f0l0,2911.375,1,2911.67,0.295,0.01,0,3.365,0.12,-3.605,-0.12,37.01,0.00,1 +42,Entry short,2025-03-05 01:00,M1P0Q0F0L0f0l0,2911.67,1,2911.67,0.295,0.01,0,3.365,0.12,-3.605,-0.12,37.01,0.00,1 +43,Exit long,2025-03-05 03:00,M1P0Q0F0L0f0l0,2916.25,1,2911.375,4.875,0.17,0,5.15,0.18,-0.115,0.00,41.885,0.00,1 +43,Entry long,2025-03-05 02:00,M1P0Q0F0L0f0l0,2911.375,1,2911.375,4.875,0.17,0,5.15,0.18,-0.115,0.00,41.885,0.00,1 +44,Exit short,2025-03-05 04:00,M1P0Q0F0L0f0l0,2917.285,1,2916.25,-1.035,-0.04,0,1.8,0.06,-4.36,-0.15,40.85,0.00,1 +44,Entry short,2025-03-05 03:00,M1P0Q0F0L0f0l0,2916.25,1,2916.25,-1.035,-0.04,0,1.8,0.06,-4.36,-0.15,40.85,0.00,1 +45,Exit long,2025-03-05 05:00,M1P0Q0F0L1f0l1,2917.85,1,2917.285,0.565,0.02,0,1.195,0.04,-3.85,-0.13,41.415,0.00,1 +45,Entry long,2025-03-05 04:00,M1P0Q0F0L0f0l0,2917.285,1,2917.285,0.565,0.02,0,1.195,0.04,-3.85,-0.13,41.415,0.00,1 +46,Exit short,2025-03-05 07:00,M1P0Q0F1L0f1l0,2914.39,1,2917.85,3.46,0.12,0,3.555,0.12,-0.035,0.00,44.875,0.00,1 +46,Entry short,2025-03-05 05:00,M1P0Q0F0L1f0l1,2917.85,1,2917.85,3.46,0.12,0,3.555,0.12,-0.035,0.00,44.875,0.00,1 +47,Exit long,2025-03-05 08:00,M1P0Q0F0L0f0l0,2914.08,1,2914.39,-0.31,-0.01,0,3.02,0.10,-2.12,-0.07,44.565,0.00,1 +47,Entry long,2025-03-05 07:00,M1P0Q0F1L0f1l0,2914.39,1,2914.39,-0.31,-0.01,0,3.02,0.10,-2.12,-0.07,44.565,0.00,1 +48,Exit short,2025-03-05 09:00,M1P0Q0F0L0f0l0,2907.24,1,2914.08,6.84,0.23,0,10.555,0.36,-1.15,-0.04,51.405,0.00,1 +48,Entry short,2025-03-05 08:00,M1P0Q0F0L0f0l0,2914.08,1,2914.08,6.84,0.23,0,10.555,0.36,-1.15,-0.04,51.405,0.00,1 +49,Exit long,2025-03-05 10:00,M1P0Q0F0L0f0l0,2904.51,1,2907.24,-2.73,-0.09,0,7.365,0.25,-5.2,-0.18,48.675,0.00,1 +49,Entry long,2025-03-05 09:00,M1P0Q0F0L0f0l0,2907.24,1,2907.24,-2.73,-0.09,0,7.365,0.25,-5.2,-0.18,48.675,0.00,1 +50,Exit short,2025-03-05 11:00,M1P0Q0F0L0f0l0,2908.76,1,2904.51,-4.25,-0.15,0,1.04,0.04,-9.09,-0.31,44.425,0.00,1 +50,Entry short,2025-03-05 10:00,M1P0Q0F0L0f0l0,2904.51,1,2904.51,-4.25,-0.15,0,1.04,0.04,-9.09,-0.31,44.425,0.00,1 +51,Exit long,2025-03-05 12:00,M1P0Q0F0L0f0l0,2910.605,1,2908.76,1.845,0.06,0,3.935,0.14,-0.14,0.00,46.27,0.00,1 +51,Entry long,2025-03-05 11:00,M1P0Q0F0L0f0l0,2908.76,1,2908.76,1.845,0.06,0,3.935,0.14,-0.14,0.00,46.27,0.00,1 +52,Exit short,2025-03-05 13:00,M1P0Q0F0L0f0l0,2918.905,1,2910.605,-8.3,-0.29,0,0.455,0.02,-8.37,-0.29,37.97,0.00,1 +52,Entry short,2025-03-05 12:00,M1P0Q0F0L0f0l0,2910.605,1,2910.605,-8.3,-0.29,0,0.455,0.02,-8.37,-0.29,37.97,0.00,1 +53,Exit long,2025-03-05 14:00,M1P0Q0F0L0f0l0,2917.2,1,2918.905,-1.705,-0.06,0,2.95,0.10,-5.31,-0.18,36.265,0.00,1 +53,Entry long,2025-03-05 13:00,M1P0Q0F0L0f0l0,2918.905,1,2918.905,-1.705,-0.06,0,2.95,0.10,-5.31,-0.18,36.265,0.00,1 +54,Exit short,2025-03-05 15:00,M1P0Q0F0L0f0l0,2918.15,1,2917.2,-0.95,-0.03,0,4.15,0.14,-2.625,-0.09,35.315,0.00,1 +54,Entry short,2025-03-05 14:00,M1P0Q0F0L0f0l0,2917.2,1,2917.2,-0.95,-0.03,0,4.15,0.14,-2.625,-0.09,35.315,0.00,1 +55,Exit long,2025-03-05 16:00,M1P0Q0F0L0f0l0,2920.085,1,2918.15,1.935,0.07,0,3.85,0.13,-1.285,-0.04,37.25,0.00,1 +55,Entry long,2025-03-05 15:00,M1P0Q0F0L0f0l0,2918.15,1,2918.15,1.935,0.07,0,3.85,0.13,-1.285,-0.04,37.25,0.00,1 +56,Exit short,2025-03-05 17:00,M1P0Q0F0L0f0l0,2919.02,1,2920.085,1.065,0.04,0,6.645,0.23,-2.59,-0.09,38.315,0.00,1 +56,Entry short,2025-03-05 16:00,M1P0Q0F0L0f0l0,2920.085,1,2920.085,1.065,0.04,0,6.645,0.23,-2.59,-0.09,38.315,0.00,1 +57,Exit long,2025-03-05 18:00,M1P0Q0F0L0f0l0,2913.29,1,2919.02,-5.73,-0.20,0,0.31,0.01,-9.92,-0.34,32.585,0.00,1 +57,Entry long,2025-03-05 17:00,M1P0Q0F0L0f0l0,2919.02,1,2919.02,-5.73,-0.20,0,0.31,0.01,-9.92,-0.34,32.585,0.00,1 +58,Exit short,2025-03-05 19:00,M1P0Q0F0L0f0l0,2913.265,1,2913.29,0.025,0.00,0,1.235,0.04,-4.06,-0.14,32.61,0.00,1 +58,Entry short,2025-03-05 18:00,M1P0Q0F0L0f0l0,2913.29,1,2913.29,0.025,0.00,0,1.235,0.04,-4.06,-0.14,32.61,0.00,1 +59,Exit long,2025-03-05 20:00,M1P0Q0F0L0f0l0,2916.29,1,2913.265,3.025,0.10,0,6.125,0.21,-0.875,-0.03,35.635,0.00,1 +59,Entry long,2025-03-05 19:00,M1P0Q0F0L0f0l0,2913.265,1,2913.265,3.025,0.10,0,6.125,0.21,-0.875,-0.03,35.635,0.00,1 +60,Exit short,2025-03-05 21:00,M1P0Q0F0L0f0l0,2900.04,1,2916.29,16.25,0.56,0,21.94,0.75,-0.39,-0.01,51.885,0.00,1 +60,Entry short,2025-03-05 20:00,M1P0Q0F0L0f0l0,2916.29,1,2916.29,16.25,0.56,0,21.94,0.75,-0.39,-0.01,51.885,0.00,1 +61,Exit long,2025-03-05 22:00,M1P0Q0F0L0f0l0,2912.005,1,2900.04,11.965,0.41,0,17.215,0.59,-2.245,-0.08,63.85,0.00,1 +61,Entry long,2025-03-05 21:00,M1P0Q0F0L0f0l0,2900.04,1,2900.04,11.965,0.41,0,17.215,0.59,-2.245,-0.08,63.85,0.00,1 +62,Exit short,2025-03-05 23:00,M1P0Q0F0L0f0l0,2917.26,1,2912.005,-5.255,-0.18,0,4.1,0.14,-11.98,-0.41,58.595,0.00,1 +62,Entry short,2025-03-05 22:00,M1P0Q0F0L0f0l0,2912.005,1,2912.005,-5.255,-0.18,0,4.1,0.14,-11.98,-0.41,58.595,0.00,1 +63,Exit long,2025-03-06 00:00,M1P0Q0F0L0f0l0,2923.87,1,2917.26,6.61,0.23,0,12.72,0.44,-1.965,-0.07,65.205,0.00,1 +63,Entry long,2025-03-05 23:00,M1P0Q0F0L0f0l0,2917.26,1,2917.26,6.61,0.23,0,12.72,0.44,-1.965,-0.07,65.205,0.00,1 +64,Exit short,2025-03-06 01:00,M1P0Q0F0L0f0l0,2916.055,1,2923.87,7.815,0.27,0,10.385,0.36,-1.48,-0.05,73.02,0.00,1 +64,Entry short,2025-03-06 00:00,M1P0Q0F0L0f0l0,2923.87,1,2923.87,7.815,0.27,0,10.385,0.36,-1.48,-0.05,73.02,0.00,1 +65,Exit long,2025-03-06 02:00,M1P0Q0F0L0f0l0,2917.505,1,2916.055,1.45,0.05,0,4.73,0.16,-4.175,-0.14,74.47,0.00,1 +65,Entry long,2025-03-06 01:00,M1P0Q0F0L0f0l0,2916.055,1,2916.055,1.45,0.05,0,4.73,0.16,-4.175,-0.14,74.47,0.00,1 +66,Exit short,2025-03-06 03:00,M1P0Q0F0L0f0l0,2920.545,1,2917.505,-3.04,-0.10,0,1.14,0.04,-3.925,-0.13,71.43,0.00,1 +66,Entry short,2025-03-06 02:00,M1P0Q0F0L0f0l0,2917.505,1,2917.505,-3.04,-0.10,0,1.14,0.04,-3.925,-0.13,71.43,0.00,1 +67,Exit long,2025-03-06 04:00,M1P0Q0F0L0f0l0,2922.22,1,2920.545,1.675,0.06,0,2.565,0.09,-0.995,-0.03,73.105,0.00,1 +67,Entry long,2025-03-06 03:00,M1P0Q0F0L0f0l0,2920.545,1,2920.545,1.675,0.06,0,2.565,0.09,-0.995,-0.03,73.105,0.00,1 +68,Exit short,2025-03-06 05:00,M1P0Q0F0L1f0l1,2919.265,1,2922.22,2.955,0.10,0,4.355,0.15,-0.24,-0.01,76.06,0.00,1 +68,Entry short,2025-03-06 04:00,M1P0Q0F0L0f0l0,2922.22,1,2922.22,2.955,0.10,0,4.355,0.15,-0.24,-0.01,76.06,0.00,1 +69,Exit long,2025-03-06 07:00,M1P0Q0F1L0f1l0,2918.315,1,2919.265,-0.95,-0.03,0,0,0.00,-2.43,-0.08,75.11,0.00,1 +69,Entry long,2025-03-06 05:00,M1P0Q0F0L1f0l1,2919.265,1,2919.265,-0.95,-0.03,0,0,0.00,-2.43,-0.08,75.11,0.00,1 +70,Exit short,2025-03-06 08:00,M1P0Q0F0L0f0l0,2916.745,1,2918.315,1.57,0.05,0,1.715,0.06,-2.09,-0.07,76.68,0.00,1 +70,Entry short,2025-03-06 07:00,M1P0Q0F1L0f1l0,2918.315,1,2918.315,1.57,0.05,0,1.715,0.06,-2.09,-0.07,76.68,0.00,1 +71,Exit long,2025-03-06 09:00,M1P0Q0F0L0f0l0,2924.74,1,2916.745,7.995,0.27,0,9.06,0.31,-0.735,-0.03,84.675,0.00,1 +71,Entry long,2025-03-06 08:00,M1P0Q0F0L0f0l0,2916.745,1,2916.745,7.995,0.27,0,9.06,0.31,-0.735,-0.03,84.675,0.00,1 +72,Exit short,2025-03-06 10:00,M1P0Q0F0L0f0l0,2925.71,1,2924.74,-0.97,-0.03,0,1.63,0.06,-1.98,-0.07,83.705,0.00,1 +72,Entry short,2025-03-06 09:00,M1P0Q0F0L0f0l0,2924.74,1,2924.74,-0.97,-0.03,0,1.63,0.06,-1.98,-0.07,83.705,0.00,1 +73,Exit long,2025-03-06 11:00,M1P0Q0F0L0f0l0,2921.27,1,2925.71,-4.44,-0.15,0,0.005,0.00,-5.58,-0.19,79.265,0.00,1 +73,Entry long,2025-03-06 10:00,M1P0Q0F0L0f0l0,2925.71,1,2925.71,-4.44,-0.15,0,0.005,0.00,-5.58,-0.19,79.265,0.00,1 +74,Exit short,2025-03-06 12:00,M1P0Q0F0L0f0l0,2917.54,1,2921.27,3.73,0.13,0,4.785,0.16,-0.315,-0.01,82.995,0.00,1 +74,Entry short,2025-03-06 11:00,M1P0Q0F0L0f0l0,2921.27,1,2921.27,3.73,0.13,0,4.785,0.16,-0.315,-0.01,82.995,0.00,1 +75,Exit long,2025-03-06 13:00,M1P0Q0F0L0f0l0,2919.975,1,2917.54,2.435,0.08,0,3.2,0.11,-2.91,-0.10,85.43,0.00,1 +75,Entry long,2025-03-06 12:00,M1P0Q0F0L0f0l0,2917.54,1,2917.54,2.435,0.08,0,3.2,0.11,-2.91,-0.10,85.43,0.00,1 +76,Exit short,2025-03-06 14:00,M1P0Q0F0L0f0l0,2920.705,1,2919.975,-0.73,-0.03,0,0.06,0.00,-3.135,-0.11,84.7,0.00,1 +76,Entry short,2025-03-06 13:00,M1P0Q0F0L0f0l0,2919.975,1,2919.975,-0.73,-0.03,0,0.06,0.00,-3.135,-0.11,84.7,0.00,1 +77,Exit long,2025-03-06 15:00,M1P0Q0F0L0f0l0,2910.135,1,2920.705,-10.57,-0.36,0,1.83,0.06,-10.895,-0.37,74.13,0.00,1 +77,Entry long,2025-03-06 14:00,M1P0Q0F0L0f0l0,2920.705,1,2920.705,-10.57,-0.36,0,1.83,0.06,-10.895,-0.37,74.13,0.00,1 +78,Exit short,2025-03-06 16:00,M1P0Q0F0L0f0l0,2904.845,1,2910.135,5.29,0.18,0,9.035,0.31,-1.46,-0.05,79.42,0.00,1 +78,Entry short,2025-03-06 15:00,M1P0Q0F0L0f0l0,2910.135,1,2910.135,5.29,0.18,0,9.035,0.31,-1.46,-0.05,79.42,0.00,1 +79,Exit long,2025-03-06 17:00,M1P0Q0F0L0f0l0,2894.225,1,2904.845,-10.62,-0.37,0,0.57,0.02,-13.695,-0.47,68.8,0.00,1 +79,Entry long,2025-03-06 16:00,M1P0Q0F0L0f0l0,2904.845,1,2904.845,-10.62,-0.37,0,0.57,0.02,-13.695,-0.47,68.8,0.00,1 +80,Exit short,2025-03-06 18:00,M1P0Q0F0L0f0l0,2899.39,1,2894.225,-5.165,-0.18,0,2.195,0.08,-11.115,-0.38,63.635,0.00,1 +80,Entry short,2025-03-06 17:00,M1P0Q0F0L0f0l0,2894.225,1,2894.225,-5.165,-0.18,0,2.195,0.08,-11.115,-0.38,63.635,0.00,1 +81,Exit long,2025-03-06 19:00,M1P0Q0F0L0f0l0,2905.89,1,2899.39,6.5,0.22,0,8.3,0.29,-0.705,-0.02,70.135,0.00,1 +81,Entry long,2025-03-06 18:00,M1P0Q0F0L0f0l0,2899.39,1,2899.39,6.5,0.22,0,8.3,0.29,-0.705,-0.02,70.135,0.00,1 +82,Exit short,2025-03-06 20:00,M1P0Q0F0L0f0l0,2903.345,1,2905.89,2.545,0.09,0,6.525,0.22,-1.27,-0.04,72.68,0.00,1 +82,Entry short,2025-03-06 19:00,M1P0Q0F0L0f0l0,2905.89,1,2905.89,2.545,0.09,0,6.525,0.22,-1.27,-0.04,72.68,0.00,1 +83,Exit long,2025-03-06 21:00,M1P0Q0F0L0f0l0,2904.595,1,2903.345,1.25,0.04,0,6.09,0.21,-2.48,-0.09,73.93,0.00,1 +83,Entry long,2025-03-06 20:00,M1P0Q0F0L0f0l0,2903.345,1,2903.345,1.25,0.04,0,6.09,0.21,-2.48,-0.09,73.93,0.00,1 +84,Exit short,2025-03-06 22:00,M1P0Q0F0L0f0l0,2915.215,1,2904.595,-10.62,-0.37,0,1.15,0.04,-12.075,-0.42,63.31,0.00,1 +84,Entry short,2025-03-06 21:00,M1P0Q0F0L0f0l0,2904.595,1,2904.595,-10.62,-0.37,0,1.15,0.04,-12.075,-0.42,63.31,0.00,1 +85,Exit long,2025-03-06 23:00,M1P0Q0F0L0f0l0,2914.55,1,2915.215,-0.665,-0.02,0,7.635,0.26,-6.005,-0.21,62.645,0.00,1 +85,Entry long,2025-03-06 22:00,M1P0Q0F0L0f0l0,2915.215,1,2915.215,-0.665,-0.02,0,7.635,0.26,-6.005,-0.21,62.645,0.00,1 +86,Exit short,2025-03-07 00:00,M1P0Q0F0L0f0l0,2917.235,1,2914.55,-2.685,-0.09,0,1.905,0.07,-3.965,-0.14,59.96,0.00,1 +86,Entry short,2025-03-06 23:00,M1P0Q0F0L0f0l0,2914.55,1,2914.55,-2.685,-0.09,0,1.905,0.07,-3.965,-0.14,59.96,0.00,1 +87,Exit long,2025-03-07 01:00,M1P0Q0F0L0f0l0,2915.57,1,2917.235,-1.665,-0.06,0,4.29,0.15,-2.775,-0.10,58.295,0.00,1 +87,Entry long,2025-03-07 00:00,M1P0Q0F0L0f0l0,2917.235,1,2917.235,-1.665,-0.06,0,4.29,0.15,-2.775,-0.10,58.295,0.00,1 +88,Exit short,2025-03-07 02:00,M1P0Q0F0L0f0l0,2916.235,1,2915.57,-0.665,-0.02,0,1.655,0.06,-5.2,-0.18,57.63,0.00,1 +88,Entry short,2025-03-07 01:00,M1P0Q0F0L0f0l0,2915.57,1,2915.57,-0.665,-0.02,0,1.655,0.06,-5.2,-0.18,57.63,0.00,1 +89,Exit long,2025-03-07 03:00,M1P0Q0F0L0f0l0,2914.03,1,2916.235,-2.205,-0.08,0,1.53,0.05,-3.88,-0.13,55.425,0.00,1 +89,Entry long,2025-03-07 02:00,M1P0Q0F0L0f0l0,2916.235,1,2916.235,-2.205,-0.08,0,1.53,0.05,-3.88,-0.13,55.425,0.00,1 +90,Exit short,2025-03-07 04:00,M1P0Q0F0L0f0l0,2908.895,1,2914.03,5.135,0.18,0,5.505,0.19,-2.57,-0.09,60.56,0.00,1 +90,Entry short,2025-03-07 03:00,M1P0Q0F0L0f0l0,2914.03,1,2914.03,5.135,0.18,0,5.505,0.19,-2.57,-0.09,60.56,0.00,1 +91,Exit long,2025-03-07 05:00,M1P0Q0F0L1f0l1,2911.1,1,2908.895,2.205,0.08,0,3.075,0.11,-0.445,-0.02,62.765,0.00,1 +91,Entry long,2025-03-07 04:00,M1P0Q0F0L0f0l0,2908.895,1,2908.895,2.205,0.08,0,3.075,0.11,-0.445,-0.02,62.765,0.00,1 +92,Exit short,2025-03-07 07:00,M1P0Q0F1L0f1l0,2910.395,1,2911.1,0.705,0.02,0,1.055,0.04,-2.38,-0.08,63.47,0.00,1 +92,Entry short,2025-03-07 05:00,M1P0Q0F0L1f0l1,2911.1,1,2911.1,0.705,0.02,0,1.055,0.04,-2.38,-0.08,63.47,0.00,1 +93,Exit long,2025-03-07 08:00,M1P0Q0F0L0f0l0,2904.78,1,2910.395,-5.615,-0.19,0,0.015,0.00,-13.485,-0.46,57.855,0.00,1 +93,Entry long,2025-03-07 07:00,M1P0Q0F1L0f1l0,2910.395,1,2910.395,-5.615,-0.19,0,0.015,0.00,-13.485,-0.46,57.855,0.00,1 +94,Exit short,2025-03-07 09:00,M1P0Q0F0L0f0l0,2906.965,1,2904.78,-2.185,-0.08,0,3.21,0.11,-5.59,-0.19,55.67,0.00,1 +94,Entry short,2025-03-07 08:00,M1P0Q0F0L0f0l0,2904.78,1,2904.78,-2.185,-0.08,0,3.21,0.11,-5.59,-0.19,55.67,0.00,1 +95,Exit long,2025-03-07 10:00,M1P0Q0F0L0f0l0,2908.2,1,2906.965,1.235,0.04,0,2.295,0.08,-5.62,-0.19,56.905,0.00,1 +95,Entry long,2025-03-07 09:00,M1P0Q0F0L0f0l0,2906.965,1,2906.965,1.235,0.04,0,2.295,0.08,-5.62,-0.19,56.905,0.00,1 +96,Exit short,2025-03-07 11:00,M1P0Q0F0L0f0l0,2905.465,1,2908.2,2.735,0.09,0,4.18,0.14,-0.935,-0.03,59.64,0.00,1 +96,Entry short,2025-03-07 10:00,M1P0Q0F0L0f0l0,2908.2,1,2908.2,2.735,0.09,0,4.18,0.14,-0.935,-0.03,59.64,0.00,1 +97,Exit long,2025-03-07 12:00,M1P0Q0F0L0f0l0,2906.645,1,2905.465,1.18,0.04,0,2.945,0.10,-0.64,-0.02,60.82,0.00,1 +97,Entry long,2025-03-07 11:00,M1P0Q0F0L0f0l0,2905.465,1,2905.465,1.18,0.04,0,2.945,0.10,-0.64,-0.02,60.82,0.00,1 +98,Exit short,2025-03-07 13:00,M1P0Q0F0L0f0l0,2909.66,1,2906.645,-3.015,-0.10,0,0.2,0.01,-5.895,-0.20,57.805,0.00,1 +98,Entry short,2025-03-07 12:00,M1P0Q0F0L0f0l0,2906.645,1,2906.645,-3.015,-0.10,0,0.2,0.01,-5.895,-0.20,57.805,0.00,1 +99,Exit long,2025-03-07 14:00,M1P0Q0F0L0f0l0,2913.57,1,2909.66,3.91,0.13,0,5.16,0.18,-1.84,-0.06,61.715,0.00,1 +99,Entry long,2025-03-07 13:00,M1P0Q0F0L0f0l0,2909.66,1,2909.66,3.91,0.13,0,5.16,0.18,-1.84,-0.06,61.715,0.00,1 +100,Exit short,2025-03-07 15:00,M1P0Q0F0L0f0l0,2917.2,1,2913.57,-3.63,-0.12,0,1.85,0.06,-3.84,-0.13,58.085,0.00,1 +100,Entry short,2025-03-07 14:00,M1P0Q0F0L0f0l0,2913.57,1,2913.57,-3.63,-0.12,0,1.85,0.06,-3.84,-0.13,58.085,0.00,1 +101,Exit long,2025-03-07 16:00,M1P0Q0F0L0f0l0,2922.48,1,2917.2,5.28,0.18,0,5.88,0.20,-1.89,-0.06,63.365,0.00,1 +101,Entry long,2025-03-07 15:00,M1P0Q0F0L0f0l0,2917.2,1,2917.2,5.28,0.18,0,5.88,0.20,-1.89,-0.06,63.365,0.00,1 +102,Exit short,2025-03-07 17:00,M1P0Q0F0L0f0l0,2921.62,1,2922.48,0.86,0.03,0,2.235,0.08,-0.7,-0.02,64.225,0.00,1 +102,Entry short,2025-03-07 16:00,M1P0Q0F0L0f0l0,2922.48,1,2922.48,0.86,0.03,0,2.235,0.08,-0.7,-0.02,64.225,0.00,1 +103,Exit long,2025-03-07 18:00,M1P0Q0F0L0f0l0,2917.935,1,2921.62,-3.685,-0.13,0,0.51,0.02,-4.465,-0.15,60.54,0.00,1 +103,Entry long,2025-03-07 17:00,M1P0Q0F0L0f0l0,2921.62,1,2921.62,-3.685,-0.13,0,0.51,0.02,-4.465,-0.15,60.54,0.00,1 +104,Exit short,2025-03-07 19:00,M1P0Q0F0L0f0l0,2918.85,1,2917.935,-0.915,-0.03,0,1.2,0.04,-4.17,-0.14,59.625,0.00,1 +104,Entry short,2025-03-07 18:00,M1P0Q0F0L0f0l0,2917.935,1,2917.935,-0.915,-0.03,0,1.2,0.04,-4.17,-0.14,59.625,0.00,1 +105,Exit long,2025-03-07 20:00,M1P0Q0F0L0f0l0,2918.77,1,2918.85,-0.08,0.00,0,3.985,0.14,-0.77,-0.03,59.545,0.00,1 +105,Entry long,2025-03-07 19:00,M1P0Q0F0L0f0l0,2918.85,1,2918.85,-0.08,0.00,0,3.985,0.14,-0.77,-0.03,59.545,0.00,1 +106,Exit short,2025-03-07 21:00,M1P0Q0F0L0f0l0,2913.835,1,2918.77,4.935,0.17,0,8.595,0.29,-7.655,-0.26,64.48,0.00,1 +106,Entry short,2025-03-07 20:00,M1P0Q0F0L0f0l0,2918.77,1,2918.77,4.935,0.17,0,8.595,0.29,-7.655,-0.26,64.48,0.00,1 +107,Exit long,2025-03-07 22:00,M1P0Q0F0L0f0l0,2926.815,1,2913.835,12.98,0.45,0,14.975,0.51,-10.005,-0.34,77.46,0.00,1 +107,Entry long,2025-03-07 21:00,M1P0Q0F0L0f0l0,2913.835,1,2913.835,12.98,0.45,0,14.975,0.51,-10.005,-0.34,77.46,0.00,1 +108,Exit short,2025-03-07 23:00,M1P0Q0F0L0f0l0,2915.875,1,2926.815,10.94,0.37,0,18.155,0.62,-3.725,-0.13,88.4,0.00,1 +108,Entry short,2025-03-07 22:00,M1P0Q0F0L0f0l0,2926.815,1,2926.815,10.94,0.37,0,18.155,0.62,-3.725,-0.13,88.4,0.00,1 +109,Exit long,2025-03-08 00:00,M1P0Q0F0L0f0l0,2914.17,1,2915.875,-1.705,-0.06,0,3.595,0.12,-4.19,-0.14,86.695,0.00,1 +109,Entry long,2025-03-07 23:00,M1P0Q0F0L0f0l0,2915.875,1,2915.875,-1.705,-0.06,0,3.595,0.12,-4.19,-0.14,86.695,0.00,1 +110,Exit short,2025-03-08 01:00,M1P0Q0F0L0f0l0,2908.325,1,2914.17,5.845,0.20,0,9.095,0.31,-2.18,-0.07,92.54,0.00,1 +110,Entry short,2025-03-08 00:00,M1P0Q0F0L0f0l0,2914.17,1,2914.17,5.845,0.20,0,9.095,0.31,-2.18,-0.07,92.54,0.00,1 +111,Exit long,2025-03-08 02:00,M1P0Q0F0L0f0l0,2906.625,1,2908.325,-1.7,-0.06,0,0.425,0.01,-6.26,-0.22,90.84,0.00,1 +111,Entry long,2025-03-08 01:00,M1P0Q0F0L0f0l0,2908.325,1,2908.325,-1.7,-0.06,0,0.425,0.01,-6.26,-0.22,90.84,0.00,1 +112,Exit short,2025-03-08 03:00,M1P0Q0F0L0f0l0,2905.305,1,2906.625,1.32,0.05,0,1.945,0.07,-2.955,-0.10,92.16,0.00,1 +112,Entry short,2025-03-08 02:00,M1P0Q0F0L0f0l0,2906.625,1,2906.625,1.32,0.05,0,1.945,0.07,-2.955,-0.10,92.16,0.00,1 +113,Exit long,2025-03-08 04:00,M1P0Q0F0L0f0l0,2909.765,1,2905.305,4.46,0.15,0,5.955,0.20,-0.44,-0.02,96.62,0.00,1 +113,Entry long,2025-03-08 03:00,M1P0Q0F0L0f0l0,2905.305,1,2905.305,4.46,0.15,0,5.955,0.20,-0.44,-0.02,96.62,0.00,1 +114,Exit short,2025-03-08 05:00,M1P0Q0F0L1f0l1,2909.55,1,2909.765,0.215,0.01,0,1.245,0.04,-2.93,-0.10,96.835,0.00,1 +114,Entry short,2025-03-08 04:00,M1P0Q0F0L0f0l0,2909.765,1,2909.765,0.215,0.01,0,1.245,0.04,-2.93,-0.10,96.835,0.00,1 +115,Exit long,2025-03-10 06:00,M1P0Q0F1L0f1l0,2911.98,1,2909.55,2.43,0.08,0,5.77,0.20,0,0.00,99.265,0.00,1 +115,Entry long,2025-03-08 05:00,M1P0Q0F0L1f0l1,2909.55,1,2909.55,2.43,0.08,0,5.77,0.20,0,0.00,99.265,0.00,1 +116,Exit short,2025-03-10 07:00,M1P0Q0F0L0f0l0,2916.34,1,2911.98,-4.36,-0.15,0,0.385,0.01,-5.1,-0.18,94.905,0.00,1 +116,Entry short,2025-03-10 06:00,M1P0Q0F1L0f1l0,2911.98,1,2911.98,-4.36,-0.15,0,0.385,0.01,-5.1,-0.18,94.905,0.00,1 +117,Exit long,2025-03-10 08:00,M1P0Q0F0L0f0l0,2913.865,1,2916.34,-2.475,-0.08,0,1.73,0.06,-3.305,-0.11,92.43,0.00,1 +117,Entry long,2025-03-10 07:00,M1P0Q0F0L0f0l0,2916.34,1,2916.34,-2.475,-0.08,0,1.73,0.06,-3.305,-0.11,92.43,0.00,1 +118,Exit short,2025-03-10 09:00,M1P0Q0F0L0f0l0,2912.155,1,2913.865,1.71,0.06,0,2.49,0.09,-4.52,-0.16,94.14,0.00,1 +118,Entry short,2025-03-10 08:00,M1P0Q0F0L0f0l0,2913.865,1,2913.865,1.71,0.06,0,2.49,0.09,-4.52,-0.16,94.14,0.00,1 +119,Exit long,2025-03-10 10:00,M1P0Q0F0L0f0l0,2911.535,1,2912.155,-0.62,-0.02,0,2.45,0.08,-2.625,-0.09,93.52,0.00,1 +119,Entry long,2025-03-10 09:00,M1P0Q0F0L0f0l0,2912.155,1,2912.155,-0.62,-0.02,0,2.45,0.08,-2.625,-0.09,93.52,0.00,1 +120,Exit short,2025-03-10 11:00,M1P0Q0F0L0f0l0,2911.045,1,2911.535,0.49,0.02,0,3.2,0.11,-2.05,-0.07,94.01,0.00,1 +120,Entry short,2025-03-10 10:00,M1P0Q0F0L0f0l0,2911.535,1,2911.535,0.49,0.02,0,3.2,0.11,-2.05,-0.07,94.01,0.00,1 +121,Exit long,2025-03-10 12:00,M1P0Q0F0L0f0l0,2910.98,1,2911.045,-0.065,0.00,0,1.63,0.06,-0.665,-0.02,93.945,0.00,1 +121,Entry long,2025-03-10 11:00,M1P0Q0F0L0f0l0,2911.045,1,2911.045,-0.065,0.00,0,1.63,0.06,-0.665,-0.02,93.945,0.00,1 +122,Exit short,2025-03-10 13:00,M1P0Q0F0L0f0l0,2909.985,1,2910.98,0.995,0.03,0,3.945,0.14,-0.995,-0.03,94.94,0.00,1 +122,Entry short,2025-03-10 12:00,M1P0Q0F0L0f0l0,2910.98,1,2910.98,0.995,0.03,0,3.945,0.14,-0.995,-0.03,94.94,0.00,1 +123,Exit long,2025-03-10 14:00,M1P0Q0F0L0f0l0,2914.44,1,2909.985,4.455,0.15,0,4.715,0.16,-0.575,-0.02,99.395,0.00,1 +123,Entry long,2025-03-10 13:00,M1P0Q0F0L0f0l0,2909.985,1,2909.985,4.455,0.15,0,4.715,0.16,-0.575,-0.02,99.395,0.00,1 +124,Exit short,2025-03-10 15:00,M1P0Q0F0L0f0l0,2908.52,1,2914.44,5.92,0.20,0,10.075,0.35,-1.15,-0.04,105.315,0.00,1 +124,Entry short,2025-03-10 14:00,M1P0Q0F0L0f0l0,2914.44,1,2914.44,5.92,0.20,0,10.075,0.35,-1.15,-0.04,105.315,0.00,1 +125,Exit long,2025-03-10 16:00,M1P0Q0F0L0f0l0,2897.935,1,2908.52,-10.585,-0.36,0,2.15,0.07,-10.895,-0.37,94.73,0.00,1 +125,Entry long,2025-03-10 15:00,M1P0Q0F0L0f0l0,2908.52,1,2908.52,-10.585,-0.36,0,2.15,0.07,-10.895,-0.37,94.73,0.00,1 +126,Exit short,2025-03-10 17:00,M1P0Q0F0L0f0l0,2911.215,1,2897.935,-13.28,-0.46,0,1.225,0.04,-17.66,-0.61,81.45,0.00,1 +126,Entry short,2025-03-10 16:00,M1P0Q0F0L0f0l0,2897.935,1,2897.935,-13.28,-0.46,0,1.225,0.04,-17.66,-0.61,81.45,0.00,1 +127,Exit long,2025-03-10 18:00,M1P0Q0F0L0f0l0,2903.055,1,2911.215,-8.16,-0.28,0,0.08,0.00,-12.79,-0.44,73.29,0.00,1 +127,Entry long,2025-03-10 17:00,M1P0Q0F0L0f0l0,2911.215,1,2911.215,-8.16,-0.28,0,0.08,0.00,-12.79,-0.44,73.29,0.00,1 +128,Exit short,2025-03-10 19:00,M1P0Q0F0L0f0l0,2904.22,1,2903.055,-1.165,-0.04,0,7.355,0.25,-1.75,-0.06,72.125,0.00,1 +128,Entry short,2025-03-10 18:00,M1P0Q0F0L0f0l0,2903.055,1,2903.055,-1.165,-0.04,0,7.355,0.25,-1.75,-0.06,72.125,0.00,1 +129,Exit long,2025-03-10 20:00,M1P0Q0F0L0f0l0,2906.8,1,2904.22,2.58,0.09,0,3.495,0.12,-3.815,-0.13,74.705,0.00,1 +129,Entry long,2025-03-10 19:00,M1P0Q0F0L0f0l0,2904.22,1,2904.22,2.58,0.09,0,3.495,0.12,-3.815,-0.13,74.705,0.00,1 +130,Exit short,2025-03-10 21:00,M1P0Q0F0L0f0l0,2903.79,1,2906.8,3.01,0.10,0,9.095,0.31,-1.875,-0.06,77.715,0.00,1 +130,Entry short,2025-03-10 20:00,M1P0Q0F0L0f0l0,2906.8,1,2906.8,3.01,0.10,0,9.095,0.31,-1.875,-0.06,77.715,0.00,1 +131,Exit long,2025-03-10 22:00,M1P0Q0F0L0f0l0,2908.115,1,2903.79,4.325,0.15,0,5.425,0.19,-2.795,-0.10,82.04,0.00,1 +131,Entry long,2025-03-10 21:00,M1P0Q0F0L0f0l0,2903.79,1,2903.79,4.325,0.15,0,5.425,0.19,-2.795,-0.10,82.04,0.00,1 +132,Exit short,2025-03-10 23:00,M1P0Q0F0L0f0l0,2904.57,1,2908.115,3.545,0.12,0,7.475,0.26,-2.52,-0.09,85.585,0.00,1 +132,Entry short,2025-03-10 22:00,M1P0Q0F0L0f0l0,2908.115,1,2908.115,3.545,0.12,0,7.475,0.26,-2.52,-0.09,85.585,0.00,1 +133,Exit long,2025-03-11 00:00,M1P0Q0F0L0f0l0,2895.975,1,2904.57,-8.595,-0.30,0,2.325,0.08,-8.67,-0.30,76.99,0.00,1 +133,Entry long,2025-03-10 23:00,M1P0Q0F0L0f0l0,2904.57,1,2904.57,-8.595,-0.30,0,2.325,0.08,-8.67,-0.30,76.99,0.00,1 +134,Exit short,2025-03-11 01:00,M1P0Q0F0L0f0l0,2886.135,1,2895.975,9.84,0.34,0,13.155,0.45,-0.2,-0.01,86.83,0.00,1 +134,Entry short,2025-03-11 00:00,M1P0Q0F0L0f0l0,2895.975,1,2895.975,9.84,0.34,0,13.155,0.45,-0.2,-0.01,86.83,0.00,1 +135,Exit long,2025-03-11 02:00,M1P0Q0F0L0f0l0,2885.665,1,2886.135,-0.47,-0.02,0,3.6,0.12,-5.825,-0.20,86.36,0.00,1 +135,Entry long,2025-03-11 01:00,M1P0Q0F0L0f0l0,2886.135,1,2886.135,-0.47,-0.02,0,3.6,0.12,-5.825,-0.20,86.36,0.00,1 +136,Exit short,2025-03-11 03:00,M1P0Q0F0L0f0l0,2885.59,1,2885.665,0.075,0.00,0,5.31,0.18,-5.4,-0.19,86.435,0.00,1 +136,Entry short,2025-03-11 02:00,M1P0Q0F0L0f0l0,2885.665,1,2885.665,0.075,0.00,0,5.31,0.18,-5.4,-0.19,86.435,0.00,1 +137,Exit long,2025-03-11 04:00,M1P0Q0F0L1f0l1,2889.5,1,2885.59,3.91,0.14,0,4.015,0.14,-1.14,-0.04,90.345,0.00,1 +137,Entry long,2025-03-11 03:00,M1P0Q0F0L0f0l0,2885.59,1,2885.59,3.91,0.14,0,4.015,0.14,-1.14,-0.04,90.345,0.00,1 +138,Exit short,2025-03-11 06:00,M1P0Q0F1L0f1l0,2884.655,1,2889.5,4.845,0.17,0,5.385,0.19,-0.46,-0.02,95.19,0.00,1 +138,Entry short,2025-03-11 04:00,M1P0Q0F0L1f0l1,2889.5,1,2889.5,4.845,0.17,0,5.385,0.19,-0.46,-0.02,95.19,0.00,1 +139,Exit long,2025-03-11 07:00,M1P0Q0F0L0f0l0,2884.79,1,2884.655,0.135,0.00,0,1.22,0.04,-2.225,-0.08,95.325,0.00,1 +139,Entry long,2025-03-11 06:00,M1P0Q0F1L0f1l0,2884.655,1,2884.655,0.135,0.00,0,1.22,0.04,-2.225,-0.08,95.325,0.00,1 +140,Exit short,2025-03-11 08:00,M1P0Q0F0L0f0l0,2887.415,1,2884.79,-2.625,-0.09,0,0.46,0.02,-3.99,-0.14,92.7,0.00,1 +140,Entry short,2025-03-11 07:00,M1P0Q0F0L0f0l0,2884.79,1,2884.79,-2.625,-0.09,0,0.46,0.02,-3.99,-0.14,92.7,0.00,1 +141,Exit long,2025-03-11 09:00,M1P0Q0F0L0f0l0,2890.65,1,2887.415,3.235,0.11,0,3.66,0.13,-7.165,-0.25,95.935,0.00,1 +141,Entry long,2025-03-11 08:00,M1P0Q0F0L0f0l0,2887.415,1,2887.415,3.235,0.11,0,3.66,0.13,-7.165,-0.25,95.935,0.00,1 +142,Exit short,2025-03-11 10:00,M1P0Q0F0L0f0l0,2899.175,1,2890.65,-8.525,-0.29,0,0.635,0.02,-9.865,-0.34,87.41,0.00,1 +142,Entry short,2025-03-11 09:00,M1P0Q0F0L0f0l0,2890.65,1,2890.65,-8.525,-0.29,0,0.635,0.02,-9.865,-0.34,87.41,0.00,1 +143,Exit long,2025-03-11 11:00,M1P0Q0F0L0f0l0,2896.915,1,2899.175,-2.26,-0.08,0,0.295,0.01,-3.965,-0.14,85.15,0.00,1 +143,Entry long,2025-03-11 10:00,M1P0Q0F0L0f0l0,2899.175,1,2899.175,-2.26,-0.08,0,0.295,0.01,-3.965,-0.14,85.15,0.00,1 +144,Exit short,2025-03-11 12:00,M1P0Q0F0L0f0l0,2897.77,1,2896.915,-0.855,-0.03,0,1.4,0.05,-1.77,-0.06,84.295,0.00,1 +144,Entry short,2025-03-11 11:00,M1P0Q0F0L0f0l0,2896.915,1,2896.915,-0.855,-0.03,0,1.4,0.05,-1.77,-0.06,84.295,0.00,1 +145,Exit long,2025-03-11 13:00,M1P0Q0F0L0f0l0,2895.93,1,2897.77,-1.84,-0.06,0,1.415,0.05,-4.955,-0.17,82.455,0.00,1 +145,Entry long,2025-03-11 12:00,M1P0Q0F0L0f0l0,2897.77,1,2897.77,-1.84,-0.06,0,1.415,0.05,-4.955,-0.17,82.455,0.00,1 +146,Exit short,2025-03-11 14:00,M1P0Q0F0L0f0l0,2902.35,1,2895.93,-6.42,-0.22,0,2.31,0.08,-6.96,-0.24,76.035,0.00,1 +146,Entry short,2025-03-11 13:00,M1P0Q0F0L0f0l0,2895.93,1,2895.93,-6.42,-0.22,0,2.31,0.08,-6.96,-0.24,76.035,0.00,1 +147,Exit long,2025-03-11 15:00,M1P0Q0F0L0f0l0,2901.11,1,2902.35,-1.24,-0.04,0,1.35,0.05,-4.765,-0.16,74.795,0.00,1 +147,Entry long,2025-03-11 14:00,M1P0Q0F0L0f0l0,2902.35,1,2902.35,-1.24,-0.04,0,1.35,0.05,-4.765,-0.16,74.795,0.00,1 +148,Exit short,2025-03-11 16:00,M1P0Q0F0L0f0l0,2910.01,1,2901.11,-8.9,-0.31,0,0.555,0.02,-9.565,-0.33,65.895,0.00,1 +148,Entry short,2025-03-11 15:00,M1P0Q0F0L0f0l0,2901.11,1,2901.11,-8.9,-0.31,0,0.555,0.02,-9.565,-0.33,65.895,0.00,1 +149,Exit long,2025-03-11 17:00,M1P0Q0F0L0f0l0,2911.825,1,2910.01,1.815,0.06,0,2.53,0.09,-1.075,-0.04,67.71,0.00,1 +149,Entry long,2025-03-11 16:00,M1P0Q0F0L0f0l0,2910.01,1,2910.01,1.815,0.06,0,2.53,0.09,-1.075,-0.04,67.71,0.00,1 +150,Exit short,2025-03-11 18:00,M1P0Q0F0L0f0l0,2912.105,1,2911.825,-0.28,-0.01,0,0.88,0.03,-2.77,-0.10,67.43,0.00,1 +150,Entry short,2025-03-11 17:00,M1P0Q0F0L0f0l0,2911.825,1,2911.825,-0.28,-0.01,0,0.88,0.03,-2.77,-0.10,67.43,0.00,1 +151,Exit long,2025-03-11 19:00,M1P0Q0F0L0f0l0,2913.615,1,2912.105,1.51,0.05,0,3.375,0.12,-1.295,-0.04,68.94,0.00,1 +151,Entry long,2025-03-11 18:00,M1P0Q0F0L0f0l0,2912.105,1,2912.105,1.51,0.05,0,3.375,0.12,-1.295,-0.04,68.94,0.00,1 +152,Exit short,2025-03-11 20:00,M1P0Q0F0L0f0l0,2913.11,1,2913.615,0.505,0.02,0,2.955,0.10,-2.495,-0.09,69.445,0.00,1 +152,Entry short,2025-03-11 19:00,M1P0Q0F0L0f0l0,2913.615,1,2913.615,0.505,0.02,0,2.955,0.10,-2.495,-0.09,69.445,0.00,1 +153,Exit long,2025-03-11 21:00,M1P0Q0F0L0f0l0,2918.2,1,2913.11,5.09,0.17,0,9.115,0.31,-6.22,-0.21,74.535,0.00,1 +153,Entry long,2025-03-11 20:00,M1P0Q0F0L0f0l0,2913.11,1,2913.11,5.09,0.17,0,9.115,0.31,-6.22,-0.21,74.535,0.00,1 +154,Exit short,2025-03-11 22:00,M1P0Q0F0L0f0l0,2914.195,1,2918.2,4.005,0.14,0,6.43,0.22,-2.705,-0.09,78.54,0.00,1 +154,Entry short,2025-03-11 21:00,M1P0Q0F0L0f0l0,2918.2,1,2918.2,4.005,0.14,0,6.43,0.22,-2.705,-0.09,78.54,0.00,1 +155,Exit long,2025-03-11 23:00,M1P0Q0F0L0f0l0,2916.85,1,2914.195,2.655,0.09,0,5.775,0.20,-0.095,0.00,81.195,0.00,1 +155,Entry long,2025-03-11 22:00,M1P0Q0F0L0f0l0,2914.195,1,2914.195,2.655,0.09,0,5.775,0.20,-0.095,0.00,81.195,0.00,1 +156,Exit short,2025-03-12 00:00,M1P0Q0F0L0f0l0,2917.2,1,2916.85,-0.35,-0.01,0,1.63,0.06,-1.295,-0.04,80.845,0.00,1 +156,Entry short,2025-03-11 23:00,M1P0Q0F0L0f0l0,2916.85,1,2916.85,-0.35,-0.01,0,1.63,0.06,-1.295,-0.04,80.845,0.00,1 +157,Exit long,2025-03-12 01:00,M1P0Q0F0L0f0l0,2917.83,1,2917.2,0.63,0.02,0,3.555,0.12,-2.99,-0.10,81.475,0.00,1 +157,Entry long,2025-03-12 00:00,M1P0Q0F0L0f0l0,2917.2,1,2917.2,0.63,0.02,0,3.555,0.12,-2.99,-0.10,81.475,0.00,1 +158,Exit short,2025-03-12 02:00,M1P0Q0F0L0f0l0,2918.355,1,2917.83,-0.525,-0.02,0,2.545,0.09,-1.76,-0.06,80.95,0.00,1 +158,Entry short,2025-03-12 01:00,M1P0Q0F0L0f0l0,2917.83,1,2917.83,-0.525,-0.02,0,2.545,0.09,-1.76,-0.06,80.95,0.00,1 +159,Exit long,2025-03-12 03:00,M1P0Q0F0L0f0l0,2918.395,1,2918.355,0.04,0.00,0,3.045,0.10,-0.845,-0.03,80.99,0.00,1 +159,Entry long,2025-03-12 02:00,M1P0Q0F0L0f0l0,2918.355,1,2918.355,0.04,0.00,0,3.045,0.10,-0.845,-0.03,80.99,0.00,1 +160,Exit short,2025-03-12 04:00,M1P0Q0F0L1f0l1,2915.695,1,2918.395,2.7,0.09,0,3.26,0.11,-0.7,-0.02,83.69,0.00,1 +160,Entry short,2025-03-12 03:00,M1P0Q0F0L0f0l0,2918.395,1,2918.395,2.7,0.09,0,3.26,0.11,-0.7,-0.02,83.69,0.00,1 +161,Exit long,2025-03-12 06:00,M1P0Q0F1L0f1l0,2917.72,1,2915.695,2.025,0.07,0,2.57,0.09,-1.26,-0.04,85.715,0.00,1 +161,Entry long,2025-03-12 04:00,M1P0Q0F0L1f0l1,2915.695,1,2915.695,2.025,0.07,0,2.57,0.09,-1.26,-0.04,85.715,0.00,1 +162,Exit short,2025-03-12 07:00,M1P0Q0F0L0f0l0,2915.555,1,2917.72,2.165,0.07,0,2.245,0.08,-2.035,-0.07,87.88,0.00,1 +162,Entry short,2025-03-12 06:00,M1P0Q0F1L0f1l0,2917.72,1,2917.72,2.165,0.07,0,2.245,0.08,-2.035,-0.07,87.88,0.00,1 +163,Exit long,2025-03-12 08:00,M1P0Q0F0L0f0l0,2914.25,1,2915.555,-1.305,-0.04,0,0.03,0.00,-3.325,-0.11,86.575,0.00,1 +163,Entry long,2025-03-12 07:00,M1P0Q0F0L0f0l0,2915.555,1,2915.555,-1.305,-0.04,0,0.03,0.00,-3.325,-0.11,86.575,0.00,1 +164,Exit short,2025-03-12 09:00,M1P0Q0F0L0f0l0,2915,1,2914.25,-0.75,-0.03,0,3.35,0.11,-3.23,-0.11,85.825,0.00,1 +164,Entry short,2025-03-12 08:00,M1P0Q0F0L0f0l0,2914.25,1,2914.25,-0.75,-0.03,0,3.35,0.11,-3.23,-0.11,85.825,0.00,1 +165,Exit long,2025-03-12 10:00,M1P0Q0F0L0f0l0,2916.36,1,2915,1.36,0.05,0,3.39,0.12,-0.945,-0.03,87.185,0.00,1 +165,Entry long,2025-03-12 09:00,M1P0Q0F0L0f0l0,2915,1,2915,1.36,0.05,0,3.39,0.12,-0.945,-0.03,87.185,0.00,1 +166,Exit short,2025-03-12 11:00,M1P0Q0F0L0f0l0,2915.035,1,2916.36,1.325,0.05,0,1.41,0.05,-3.75,-0.13,88.51,0.00,1 +166,Entry short,2025-03-12 10:00,M1P0Q0F0L0f0l0,2916.36,1,2916.36,1.325,0.05,0,1.41,0.05,-3.75,-0.13,88.51,0.00,1 +167,Exit long,2025-03-12 12:00,M1P0Q0F0L0f0l0,2914.985,1,2915.035,-0.05,0.00,0,1.055,0.04,-2.405,-0.08,88.46,0.00,1 +167,Entry long,2025-03-12 11:00,M1P0Q0F0L0f0l0,2915.035,1,2915.035,-0.05,0.00,0,1.055,0.04,-2.405,-0.08,88.46,0.00,1 +168,Exit short,2025-03-12 13:00,M1P0Q0F0L0f0l0,2916.035,1,2914.985,-1.05,-0.04,0,2.82,0.10,-1.585,-0.05,87.41,0.00,1 +168,Entry short,2025-03-12 12:00,M1P0Q0F0L0f0l0,2914.985,1,2914.985,-1.05,-0.04,0,2.82,0.10,-1.585,-0.05,87.41,0.00,1 +169,Exit long,2025-03-12 14:00,M1P0Q0F0L0f0l0,2911.95,1,2916.035,-4.085,-0.14,0,5.15,0.18,-4.6,-0.16,83.325,0.00,1 +169,Entry long,2025-03-12 13:00,M1P0Q0F0L0f0l0,2916.035,1,2916.035,-4.085,-0.14,0,5.15,0.18,-4.6,-0.16,83.325,0.00,1 +170,Exit short,2025-03-12 15:00,M1P0Q0F0L0f0l0,2914.655,1,2911.95,-2.705,-0.09,0,2.855,0.10,-3.805,-0.13,80.62,0.00,1 +170,Entry short,2025-03-12 14:00,M1P0Q0F0L0f0l0,2911.95,1,2911.95,-2.705,-0.09,0,2.855,0.10,-3.805,-0.13,80.62,0.00,1 +171,Exit long,2025-03-12 16:00,M1P0Q0F0L0f0l0,2922.27,1,2914.655,7.615,0.26,0,7.625,0.26,-0.48,-0.02,88.235,0.00,1 +171,Entry long,2025-03-12 15:00,M1P0Q0F0L0f0l0,2914.655,1,2914.655,7.615,0.26,0,7.625,0.26,-0.48,-0.02,88.235,0.00,1 +172,Exit short,2025-03-12 17:00,M1P0Q0F0L0f0l0,2914.73,1,2922.27,7.54,0.26,0,8.53,0.29,-3.12,-0.11,95.775,0.00,1 +172,Entry short,2025-03-12 16:00,M1P0Q0F0L0f0l0,2922.27,1,2922.27,7.54,0.26,0,8.53,0.29,-3.12,-0.11,95.775,0.00,1 +173,Exit long,2025-03-12 18:00,M1P0Q0F0L0f0l0,2914.41,1,2914.73,-0.32,-0.01,0,2.335,0.08,-1.87,-0.06,95.455,0.00,1 +173,Entry long,2025-03-12 17:00,M1P0Q0F0L0f0l0,2914.73,1,2914.73,-0.32,-0.01,0,2.335,0.08,-1.87,-0.06,95.455,0.00,1 +174,Exit short,2025-03-12 19:00,M1P0Q0F0L0f0l0,2915.39,1,2914.41,-0.98,-0.03,0,1.615,0.06,-2.445,-0.08,94.475,0.00,1 +174,Entry short,2025-03-12 18:00,M1P0Q0F0L0f0l0,2914.41,1,2914.41,-0.98,-0.03,0,1.615,0.06,-2.445,-0.08,94.475,0.00,1 +175,Exit long,2025-03-12 20:00,M1P0Q0F0L0f0l0,2917.56,1,2915.39,2.17,0.07,0,7.905,0.27,-3.24,-0.11,96.645,0.00,1 +175,Entry long,2025-03-12 19:00,M1P0Q0F0L0f0l0,2915.39,1,2915.39,2.17,0.07,0,7.905,0.27,-3.24,-0.11,96.645,0.00,1 +176,Exit short,2025-03-12 21:00,M1P0Q0F0L0f0l0,2915.595,1,2917.56,1.965,0.07,0,11.45,0.39,-1.295,-0.04,98.61,0.00,1 +176,Entry short,2025-03-12 20:00,M1P0Q0F0L0f0l0,2917.56,1,2917.56,1.965,0.07,0,11.45,0.39,-1.295,-0.04,98.61,0.00,1 +177,Exit long,2025-03-12 22:00,M1P0Q0F0L0f0l0,2921.985,1,2915.595,6.39,0.22,0,6.975,0.24,-1.235,-0.04,105,0.00,1 +177,Entry long,2025-03-12 21:00,M1P0Q0F0L0f0l0,2915.595,1,2915.595,6.39,0.22,0,6.975,0.24,-1.235,-0.04,105,0.00,1 +178,Exit short,2025-03-12 23:00,M1P0Q0F0L0f0l0,2928.46,1,2921.985,-6.475,-0.22,0,0.5,0.02,-7.505,-0.26,98.525,0.00,1 +178,Entry short,2025-03-12 22:00,M1P0Q0F0L0f0l0,2921.985,1,2921.985,-6.475,-0.22,0,0.5,0.02,-7.505,-0.26,98.525,0.00,1 +179,Exit long,2025-03-13 00:00,M1P0Q0F0L0f0l0,2936.235,1,2928.46,7.775,0.27,0,10.735,0.37,-0.46,-0.02,106.3,0.00,1 +179,Entry long,2025-03-12 23:00,M1P0Q0F0L0f0l0,2928.46,1,2928.46,7.775,0.27,0,10.735,0.37,-0.46,-0.02,106.3,0.00,1 +180,Exit short,2025-03-13 01:00,M1P0Q0F0L0f0l0,2936.21,1,2936.235,0.025,0.00,0,0.29,0.01,-4.455,-0.15,106.325,0.00,1 +180,Entry short,2025-03-13 00:00,M1P0Q0F0L0f0l0,2936.235,1,2936.235,0.025,0.00,0,0.29,0.01,-4.455,-0.15,106.325,0.00,1 +181,Exit long,2025-03-13 02:00,M1P0Q0F0L0f0l0,2935.21,1,2936.21,-1,-0.03,0,1.245,0.04,-2.33,-0.08,105.325,0.00,1 +181,Entry long,2025-03-13 01:00,M1P0Q0F0L0f0l0,2936.21,1,2936.21,-1,-0.03,0,1.245,0.04,-2.33,-0.08,105.325,0.00,1 +182,Exit short,2025-03-13 03:00,M1P0Q0F0L0f0l0,2931.405,1,2935.21,3.805,0.13,0,4.21,0.14,-0.485,-0.02,109.13,0.00,1 +182,Entry short,2025-03-13 02:00,M1P0Q0F0L0f0l0,2935.21,1,2935.21,3.805,0.13,0,4.21,0.14,-0.485,-0.02,109.13,0.00,1 +183,Exit long,2025-03-13 04:00,M1P0Q0F0L1f0l1,2933.61,1,2931.405,2.205,0.08,0,2.905,0.10,-0.44,-0.02,111.335,0.00,1 +183,Entry long,2025-03-13 03:00,M1P0Q0F0L0f0l0,2931.405,1,2931.405,2.205,0.08,0,2.905,0.10,-0.44,-0.02,111.335,0.00,1 +184,Exit short,2025-03-13 06:00,M1P0Q0F1L0f1l0,2938.205,1,2933.61,-4.595,-0.16,0,0,0.00,-5.465,-0.19,106.74,0.00,1 +184,Entry short,2025-03-13 04:00,M1P0Q0F0L1f0l1,2933.61,1,2933.61,-4.595,-0.16,0,0,0.00,-5.465,-0.19,106.74,0.00,1 +185,Exit long,2025-03-13 07:00,M1P0Q0F0L0f0l0,2938.195,1,2938.205,-0.01,0.00,0,1.29,0.04,-3.41,-0.12,106.73,0.00,1 +185,Entry long,2025-03-13 06:00,M1P0Q0F1L0f1l0,2938.205,1,2938.205,-0.01,0.00,0,1.29,0.04,-3.41,-0.12,106.73,0.00,1 +186,Exit short,2025-03-13 08:00,M1P0Q0F0L0f0l0,2938.71,1,2938.195,-0.515,-0.02,0,0.55,0.02,-1.295,-0.04,106.215,0.00,1 +186,Entry short,2025-03-13 07:00,M1P0Q0F0L0f0l0,2938.195,1,2938.195,-0.515,-0.02,0,0.55,0.02,-1.295,-0.04,106.215,0.00,1 +187,Exit long,2025-03-13 09:00,M1P0Q0F0L0f0l0,2937.92,1,2938.71,-0.79,-0.03,0,2.85,0.10,-2.07,-0.07,105.425,0.00,1 +187,Entry long,2025-03-13 08:00,M1P0Q0F0L0f0l0,2938.71,1,2938.71,-0.79,-0.03,0,2.85,0.10,-2.07,-0.07,105.425,0.00,1 +188,Exit short,2025-03-13 10:00,M1P0Q0F0L0f0l0,2944.38,1,2937.92,-6.46,-0.22,0,0.37,0.01,-8.225,-0.28,98.965,0.00,1 +188,Entry short,2025-03-13 09:00,M1P0Q0F0L0f0l0,2937.92,1,2937.92,-6.46,-0.22,0,0.37,0.01,-8.225,-0.28,98.965,0.00,1 +189,Exit long,2025-03-13 11:00,M1P0Q0F0L0f0l0,2945.755,1,2944.38,1.375,0.05,0,2.815,0.10,-1.25,-0.04,100.34,0.00,1 +189,Entry long,2025-03-13 10:00,M1P0Q0F0L0f0l0,2944.38,1,2944.38,1.375,0.05,0,2.815,0.10,-1.25,-0.04,100.34,0.00,1 +190,Exit short,2025-03-13 12:00,M1P0Q0F0L0f0l0,2944.76,1,2945.755,0.995,0.03,0,2.24,0.08,-0.555,-0.02,101.335,0.00,1 +190,Entry short,2025-03-13 11:00,M1P0Q0F0L0f0l0,2945.755,1,2945.755,0.995,0.03,0,2.24,0.08,-0.555,-0.02,101.335,0.00,1 +191,Exit long,2025-03-13 13:00,M1P0Q0F0L0f0l0,2940.14,1,2944.76,-4.62,-0.16,0,0.34,0.01,-6.45,-0.22,96.715,0.00,1 +191,Entry long,2025-03-13 12:00,M1P0Q0F0L0f0l0,2944.76,1,2944.76,-4.62,-0.16,0,0.34,0.01,-6.45,-0.22,96.715,0.00,1 +192,Exit short,2025-03-13 14:00,M1P0Q0F0L0f0l0,2936.955,1,2940.14,3.185,0.11,0,4.625,0.16,-0.215,-0.01,99.9,0.00,1 +192,Entry short,2025-03-13 13:00,M1P0Q0F0L0f0l0,2940.14,1,2940.14,3.185,0.11,0,4.625,0.16,-0.215,-0.01,99.9,0.00,1 +193,Exit long,2025-03-13 15:00,M1P0Q0F0L0f0l0,2935.32,1,2936.955,-1.635,-0.06,0,1.235,0.04,-3.975,-0.14,98.265,0.00,1 +193,Entry long,2025-03-13 14:00,M1P0Q0F0L0f0l0,2936.955,1,2936.955,-1.635,-0.06,0,1.235,0.04,-3.975,-0.14,98.265,0.00,1 +194,Exit short,2025-03-13 16:00,M1P0Q0F0L0f0l0,2941.54,1,2935.32,-6.22,-0.21,0,0.435,0.01,-9.69,-0.33,92.045,0.00,1 +194,Entry short,2025-03-13 15:00,M1P0Q0F0L0f0l0,2935.32,1,2935.32,-6.22,-0.21,0,0.435,0.01,-9.69,-0.33,92.045,0.00,1 +195,Exit long,2025-03-13 17:00,M1P0Q0F0L0f0l0,2947.835,1,2941.54,6.295,0.21,0,7.39,0.25,-0.42,-0.01,98.34,0.00,1 +195,Entry long,2025-03-13 16:00,M1P0Q0F0L0f0l0,2941.54,1,2941.54,6.295,0.21,0,7.39,0.25,-0.42,-0.01,98.34,0.00,1 +196,Exit short,2025-03-13 18:00,M1P0Q0F0L0f0l0,2944.15,1,2947.835,3.685,0.13,0,5.705,0.19,-0.86,-0.03,102.025,0.00,1 +196,Entry short,2025-03-13 17:00,M1P0Q0F0L0f0l0,2947.835,1,2947.835,3.685,0.13,0,5.705,0.19,-0.86,-0.03,102.025,0.00,1 +197,Exit long,2025-03-13 19:00,M1P0Q0F0L0f0l0,2946.395,1,2944.15,2.245,0.08,0,4.5,0.15,0,0.00,104.27,0.00,1 +197,Entry long,2025-03-13 18:00,M1P0Q0F0L0f0l0,2944.15,1,2944.15,2.245,0.08,0,4.5,0.15,0,0.00,104.27,0.00,1 +198,Exit short,2025-03-13 20:00,M1P0Q0F0L0f0l0,2942.575,1,2946.395,3.82,0.13,0,5.175,0.18,-2.905,-0.10,108.09,0.00,1 +198,Entry short,2025-03-13 19:00,M1P0Q0F0L0f0l0,2946.395,1,2946.395,3.82,0.13,0,5.175,0.18,-2.905,-0.10,108.09,0.00,1 +199,Exit long,2025-03-13 21:00,M1P0Q0F0L0f0l0,2950.49,1,2942.575,7.915,0.27,0,9.967,0.34,-3.485,-0.12,116.005,0.00,1 +199,Entry long,2025-03-13 20:00,M1P0Q0F0L0f0l0,2942.575,1,2942.575,7.915,0.27,0,9.967,0.34,-3.485,-0.12,116.005,0.00,1 +200,Exit short,2025-03-13 22:00,M1P0Q0F0L0f0l0,2970.05,1,2950.49,-19.56,-0.66,0,0.535,0.02,-20.77,-0.70,96.445,0.00,1 +200,Entry short,2025-03-13 21:00,M1P0Q0F0L0f0l0,2950.49,1,2950.49,-19.56,-0.66,0,0.535,0.02,-20.77,-0.70,96.445,0.00,1 +201,Exit long,2025-03-13 23:00,M1P0Q0F0L0f0l0,2977.9,1,2970.05,7.85,0.26,0,8.4,0.28,-3.505,-0.12,104.295,0.00,1 +201,Entry long,2025-03-13 22:00,M1P0Q0F0L0f0l0,2970.05,1,2970.05,7.85,0.26,0,8.4,0.28,-3.505,-0.12,104.295,0.00,1 +202,Exit short,2025-03-14 00:00,M1P0Q0F0L0f0l0,2980.16,1,2977.9,-2.26,-0.08,0,1.205,0.04,-7.39,-0.25,102.035,0.00,1 +202,Entry short,2025-03-13 23:00,M1P0Q0F0L0f0l0,2977.9,1,2977.9,-2.26,-0.08,0,1.205,0.04,-7.39,-0.25,102.035,0.00,1 +203,Exit long,2025-03-14 01:00,M1P0Q0F0L0f0l0,2979.555,1,2980.16,-0.605,-0.02,0,2.11,0.07,-3.635,-0.12,101.43,0.00,1 +203,Entry long,2025-03-14 00:00,M1P0Q0F0L0f0l0,2980.16,1,2980.16,-0.605,-0.02,0,2.11,0.07,-3.635,-0.12,101.43,0.00,1 +204,Exit short,2025-03-14 02:00,M1P0Q0F0L0f0l0,2983.325,1,2979.555,-3.77,-0.13,0,0.36,0.01,-4.87,-0.16,97.66,0.00,1 +204,Entry short,2025-03-14 01:00,M1P0Q0F0L0f0l0,2979.555,1,2979.555,-3.77,-0.13,0,0.36,0.01,-4.87,-0.16,97.66,0.00,1 +205,Exit long,2025-03-14 03:00,M1P0Q0F0L0f0l0,2982.94,1,2983.325,-0.385,-0.01,0,2.245,0.08,-2.72,-0.09,97.275,0.00,1 +205,Entry long,2025-03-14 02:00,M1P0Q0F0L0f0l0,2983.325,1,2983.325,-0.385,-0.01,0,2.245,0.08,-2.72,-0.09,97.275,0.00,1 +206,Exit short,2025-03-14 04:00,M1P0Q0F0L1f0l1,2988.695,1,2982.94,-5.755,-0.19,0,1.595,0.05,-6.36,-0.21,91.52,0.00,1 +206,Entry short,2025-03-14 03:00,M1P0Q0F0L0f0l0,2982.94,1,2982.94,-5.755,-0.19,0,1.595,0.05,-6.36,-0.21,91.52,0.00,1 +207,Exit long,2025-03-14 06:00,M1P0Q0F1L0f1l0,2987.31,1,2988.695,-1.385,-0.05,0,1.36,0.05,-5.35,-0.18,90.135,0.00,1 +207,Entry long,2025-03-14 04:00,M1P0Q0F0L1f0l1,2988.695,1,2988.695,-1.385,-0.05,0,1.36,0.05,-5.35,-0.18,90.135,0.00,1 +208,Exit short,2025-03-14 07:00,M1P0Q0F0L0f0l0,2986.465,1,2987.31,0.845,0.03,0,1.865,0.06,-2.055,-0.07,90.98,0.00,1 +208,Entry short,2025-03-14 06:00,M1P0Q0F1L0f1l0,2987.31,1,2987.31,0.845,0.03,0,1.865,0.06,-2.055,-0.07,90.98,0.00,1 +209,Exit long,2025-03-14 08:00,M1P0Q0F0L0f0l0,2986.76,1,2986.465,0.295,0.01,0,2.365,0.08,-1.755,-0.06,91.275,0.00,1 +209,Entry long,2025-03-14 07:00,M1P0Q0F0L0f0l0,2986.465,1,2986.465,0.295,0.01,0,2.365,0.08,-1.755,-0.06,91.275,0.00,1 +210,Exit short,2025-03-14 08:00,,2986.76,1,2986.76,0,0.00,0,0,0.00,0,0.00,91.275,0.00,0 +210,Entry short,2025-03-14 08:00,M1P0Q0F0L0f0l0,2986.76,1,2986.76,0,0.00,0,0,0.00,0,0.00,91.275,0.00,0 \ No newline at end of file From 0a0376dae389cee308884a2ed24ecb896a740a8e Mon Sep 17 00:00:00 2001 From: luisleo526 Date: Sat, 26 Sep 2026 06:17:49 +0800 Subject: [PATCH 4/8] Keep in-market bars out of session.ispremarket and ispostmarket session.ispremarket / ispostmarket were time-of-day windows only: 04:00 to the session's first open, and its close to 20:00. For an overnight session the "open" is the evening restart, so the windows covered in-market hours: on this lane's TradingView tapes of every session flag the predicates read 108/108/98 bars of ES1! ("1700-1600", America/Chicago) and 117 of XAUUSD ("1800-1700", America/New_York) as pre-market and 30/29/29 and 20 as post-market, where TradingView flags every bar in market and none in an extended session. A bar in market is in neither extended session: both flags now require the kernel's in-session fact to be false, as session.ismarket reads it, and bars out of market keep the windows. A request.security payload keeps the plain predicates at the security bar's time, as it does for ismarket. tests/test_e2e_session_ismarket.py now replays both tape sets and compares all seven flags (ismarket, ispremarket, ispostmarket, isfirstbar, islastbar and the _regular twins) on every bar; the pre-lane build misses exactly the pinned ismarket, ispremarket and ispostmarket bars, and the session-day flags were already TradingView's. Co-Authored-By: Claude Opus 5.5 (1M context) --- AGENTS.md | 2 +- CLAUDE.md | 2 +- pineforge_codegen/codegen/visit_expr.py | 37 ++++---- tests/test_e2e_session_ismarket.py | 107 +++++++++++++----------- 4 files changed, 81 insertions(+), 67 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index aab90aa..207ab81 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -264,7 +264,7 @@ taxonomy: | Color na conversions | Packed colors use `int64_t` storage, including typed scalar, array and matrix paths, so their `na()` sentinel survives. `color.new` preserves an `na` base; `na` transparency becomes 100; an `na` `color.rgb` channel becomes zero. The covered TradingView color probes are pinned by `tests/test_na_truthiness.py`. | | Collection history warning | `array`/`map` `id[k]` still lowers to current collection element access because the engine has no per-bar collection ID history. Codegen warns on every such read and keeps the existing lowering; a missing index is not represented faithfully. | | syminfo na-gap warning | `SUPPORTED_SYMINFO` = every `SYMINFO_MEMBER_MAP` key, but members whose emission is `na()` or a `get_syminfo_metadata(...)` lookup (root/pricescale/minmove/mincontract/current_contract/expiration_date/isin/sector/industry + fundamentals/recommendations/target_price_*) form `_SYMINFO_SILENT_GAP_FIELDS` (derived from the emission table, so new na-accept fields can't drift out): every read WARNS that the value is na until a data feed injects it. | -| Session flags | `session.ismarket` reads the kernel's in-session fact of the script bar (`NativeDecisionContext::in_session`, read off the session day the bar belongs to), which the host stores as `session_ismarket_` before every source callback; `session.isfirstbar` / `islastbar` (and `_regular`) read its session-day facts. The time-of-day predicate missed every Sunday-evening open under a `:23456` day mask and every `0000-2400` bar, where TradingView's tapes (`tests/fixtures/session_ismarket`) flag all 1,138 bars of six 60-minute charts in market. A `request.security` payload, whose bars carry no host fact, and a batch of fewer than two bars given no timeframe (the engine presents no facts) keep the predicate. `tests/test_e2e_session_ismarket.py` replays every tape. | +| Session flags | `session.ismarket` reads the kernel's in-session fact of the script bar (`NativeDecisionContext::in_session`, read off the session day the bar belongs to), which the host stores as `session_ismarket_` before every source callback, and a bar in market is in neither `session.ispremarket` nor `session.ispostmarket` (bars out of market keep the 04:00-to-open and close-to-20:00 windows); `session.isfirstbar` / `islastbar` (and `_regular`) read its session-day facts. The time-of-day predicates missed every Sunday-evening open under a `:23456` day mask and every `0000-2400` bar, and read in-market bars of an overnight session as pre- or post-market (98-117 bars of each ES1! / XAUUSD tape pre-market), where TradingView's tapes (`tests/fixtures/session_ismarket`) flag all 1,138 bars of six 60-minute charts in market and none in an extended session. A `request.security` payload, whose bars carry no host fact, and a batch of fewer than two bars given no timeframe (the engine presents no facts) keep the predicates. `tests/test_e2e_session_ismarket.py` replays every tape. | When extending codegen with a new Pine builtin: add to the corresponding diff --git a/CLAUDE.md b/CLAUDE.md index fadc89b..78aa782 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -264,7 +264,7 @@ taxonomy: | Color na conversions | Packed colors use `int64_t` storage, including typed scalar, array and matrix paths, so their `na()` sentinel survives. `color.new` preserves an `na` base; `na` transparency becomes 100; an `na` `color.rgb` channel becomes zero. The covered TradingView color probes are pinned by `tests/test_na_truthiness.py`. | | Collection history warning | `array`/`map` `id[k]` still lowers to current collection element access because the engine has no per-bar collection ID history. Codegen warns on every such read and keeps the existing lowering; a missing index is not represented faithfully. | | syminfo na-gap warning | `SUPPORTED_SYMINFO` = every `SYMINFO_MEMBER_MAP` key, but members whose emission is `na()` or a `get_syminfo_metadata(...)` lookup (root/pricescale/minmove/mincontract/current_contract/expiration_date/isin/sector/industry + fundamentals/recommendations/target_price_*) form `_SYMINFO_SILENT_GAP_FIELDS` (derived from the emission table, so new na-accept fields can't drift out): every read WARNS that the value is na until a data feed injects it. | -| Session flags | `session.ismarket` reads the kernel's in-session fact of the script bar (`NativeDecisionContext::in_session`, read off the session day the bar belongs to), which the host stores as `session_ismarket_` before every source callback; `session.isfirstbar` / `islastbar` (and `_regular`) read its session-day facts. The time-of-day predicate missed every Sunday-evening open under a `:23456` day mask and every `0000-2400` bar, where TradingView's tapes (`tests/fixtures/session_ismarket`) flag all 1,138 bars of six 60-minute charts in market. A `request.security` payload, whose bars carry no host fact, and a batch of fewer than two bars given no timeframe (the engine presents no facts) keep the predicate. `tests/test_e2e_session_ismarket.py` replays every tape. | +| Session flags | `session.ismarket` reads the kernel's in-session fact of the script bar (`NativeDecisionContext::in_session`, read off the session day the bar belongs to), which the host stores as `session_ismarket_` before every source callback, and a bar in market is in neither `session.ispremarket` nor `session.ispostmarket` (bars out of market keep the 04:00-to-open and close-to-20:00 windows); `session.isfirstbar` / `islastbar` (and `_regular`) read its session-day facts. The time-of-day predicates missed every Sunday-evening open under a `:23456` day mask and every `0000-2400` bar, and read in-market bars of an overnight session as pre- or post-market (98-117 bars of each ES1! / XAUUSD tape pre-market), where TradingView's tapes (`tests/fixtures/session_ismarket`) flag all 1,138 bars of six 60-minute charts in market and none in an extended session. A `request.security` payload, whose bars carry no host fact, and a batch of fewer than two bars given no timeframe (the engine presents no facts) keep the predicates. `tests/test_e2e_session_ismarket.py` replays every tape. | When extending codegen with a new Pine builtin: add to the corresponding diff --git a/pineforge_codegen/codegen/visit_expr.py b/pineforge_codegen/codegen/visit_expr.py index 7c71de5..be6df75 100644 --- a/pineforge_codegen/codegen/visit_expr.py +++ b/pineforge_codegen/codegen/visit_expr.py @@ -855,29 +855,32 @@ def _visit_member_access(self, node: MemberAccess) -> str: # session.isfirstbar_regular / islastbar_regular are aliased to # their non-_regular counterparts (engine has one session string; # see session_time.hpp limitation comment). - if node.member == "ismarket": - # The kernel's in-session fact of the script bar - # (NativeDecisionContext::in_session, read off the session - # day the bar belongs to), which the host stores as - # session_ismarket_ before every source callback. The - # time-of-day predicate tests each instant's own weekday: - # it missed the Sunday-evening open of a ":23456" session - # and every "0000-2400" bar, where TradingView's tapes flag - # every bar in market (tests/test_e2e_session_ismarket.py). + if node.member in ("ismarket", "ispremarket", "ispostmarket"): + # session.ismarket is the kernel's in-session fact of the + # script bar (NativeDecisionContext::in_session, read off + # the session day the bar belongs to), which the host + # stores as session_ismarket_ before every source + # callback. The time-of-day predicates test each instant's + # own weekday and window: ismarket missed the Sunday-evening + # open of a ":23456" session and every "0000-2400" bar, and + # ispremarket / ispostmarket held on in-market bars of an + # overnight session, where TradingView's tapes flag every + # bar in market and none in an extended session + # (tests/test_e2e_session_ismarket.py). A bar in market is + # in neither extended session; off it, the windows decide. # A request.security payload runs on its own bars, which - # carry no such fact, so it keeps the predicate at the + # carry no such fact, so it keeps the predicates at the # security bar's time. So does a batch of fewer than two # bars given no timeframe: the engine detects none # (script_tf_ stays empty) and presents no session facts. - predicate = ("pine_session_ismarket(syminfo_.session, " - "syminfo_.timezone, current_bar_.timestamp)") + bar = "(syminfo_.session, syminfo_.timezone, current_bar_.timestamp)" + predicate = f"pine_session_{node.member}{bar}" if self._security_payload_depth: return predicate - return f"(script_tf_.empty() ? {predicate} : session_ismarket_)" - if node.member == "ispremarket": - return "pine_session_ispremarket(syminfo_.session, syminfo_.timezone, current_bar_.timestamp)" - if node.member == "ispostmarket": - return "pine_session_ispostmarket(syminfo_.session, syminfo_.timezone, current_bar_.timestamp)" + ismarket = f"(script_tf_.empty() ? pine_session_ismarket{bar} : session_ismarket_)" + if node.member == "ismarket": + return ismarket + return f"(!{ismarket} && {predicate})" if node.member in ("isfirstbar", "isfirstbar_regular"): return "session_isfirstbar_" if node.member in ("islastbar", "islastbar_regular"): diff --git a/tests/test_e2e_session_ismarket.py b/tests/test_e2e_session_ismarket.py index 7b77c7d..da960ca 100644 --- a/tests/test_e2e_session_ismarket.py +++ b/tests/test_e2e_session_ismarket.py @@ -1,36 +1,41 @@ -"""session.ismarket is TradingView's flag, as its tapes prove. +"""The session.* flags are TradingView's, as its tapes prove. TradingView flags every one of the 1,138 bars of six 60-minute charts in market -(``fixtures/session_ismarket``: the engine lane H-MEASURE's tapes -``hm-g236-*`` of CME_MINI:ES1! across both 2025 US DST switches and the -Thanksgiving week, OANDA:EURUSD, OANDA:XAUUSD and BINANCE:ETHUSDT.P). Each -probe reverses its position at the close of every bar -(``process_orders_on_close``), so each Entry row is one chart bar, dated at its -open, and its Signal is the flag TradingView evaluated there: ``M1`` in -market, ``M0`` not (see the README). +and none in an extended session (``fixtures/session_ismarket``: CME_MINI:ES1! +across both 2025 US DST switches and the Thanksgiving week, OANDA:EURUSD, +OANDA:XAUUSD and BINANCE:ETHUSDT.P; the engine lane H-MEASURE's +session.ismarket tapes ``hm-g236-*`` and this lane's every-flag tapes +``cgim-flags-*`` of the same windows). Each probe reverses its position at the +close of every bar (``process_orders_on_close``), so each Entry row is one +chart bar, dated at its open, and its Signal carries the flags TradingView +evaluated there: ``M1`` in market, ``M0`` not, and so on (see the README). The engine's source host stores the kernel's in-session fact of the script bar (``NativeDecisionContext::in_session``, read off the session day the bar belongs to) as ``session_ismarket_`` before every source callback, and codegen -reads it. The pre-lane lowering, the time-of-day predicate +reads it; a bar in market is in neither extended session. The pre-lane +lowering, time-of-day predicates such as ``pine_session_ismarket(syminfo_.session, syminfo_.timezone, time)``, tests -each instant's own weekday: it read every Sunday-evening open of a ``:23456`` -session (the session day it opens is Monday's) and every bar of ``0000-2400`` -as out of market. +each instant's own weekday and window: it read every Sunday-evening open of a +``:23456`` session (the session day it opens is Monday's) and every bar of +``0000-2400`` as out of market, and the in-market bars of an overnight session +from 04:00 to its open as pre-market and from its close to 20:00 as +post-market. session.isfirstbar / islastbar (and their ``_regular`` twins) +already read the kernel's session-day facts. Each tape is replayed end to end -- ``transpile_json``, the built runtime, ``run_strategy.py`` with the session and timezone as runtime overrides -- on flat bars stamped at the tape's entry times, plus one bar an hour after the -last: the flag is a function of a bar's time and the symbol's session and +last: the flags are a function of a bar's time and the symbol's session and timezone only, and every tape's session day goes on past its window. The -tape's own probe runs with a ``@pf-trace`` of every session flag, under each -session spelling H-MEASURE measured: the campaign's lane facts, the same -sessions with TradingView's weekday mask, and a 24-hour day spelled -``0000-2400`` and ``0000-0000``. The pre-lane build (``LEGACY``) is replayed -beside it and misses exactly the pinned bars. +tape's own probe runs with a ``@pf-trace`` of every flag, under each session +spelling H-MEASURE measured: the campaign's lane facts, the same sessions with +TradingView's weekday mask, and a 24-hour day spelled ``0000-2400`` and +``0000-0000``. The pre-lane build (``LEGACY``) is replayed beside it and +misses exactly the pinned bars. A ``request.security`` payload is evaluated on its own bars, for which the -host holds no session fact: it keeps the time-of-day predicate at the +host holds no session fact: it keeps the time-of-day predicates at the security bar's time, so its values are the pre-lane build's. So does a batch of one bar given no timeframe, where the engine detects none and presents no facts. @@ -58,11 +63,11 @@ FIXTURES = Path(__file__).parent / "fixtures" / "session_ismarket" -# codegen main before this lane: session.ismarket was the time-of-day predicate. +# codegen main before this lane: the session.is* flags were time-of-day predicates. LEGACY = "b0ed4967b3b5ab7aea80fea3edc783b16b04b16e" CHARTS = ("es1-60-dst-mar", "es1-60-dst-nov", "es1-60-thanksgiving", "eurusd-60-dst-mar", "xauusd-60-dst-mar", "eth-60-24x7") -TAPES = tuple(f"hm-g236-{chart}" for chart in CHARTS) +TAPES = tuple(f"{kind}-{chart}" for kind in ("hm-g236", "cgim-flags") for chart in CHARTS) FLAGS = {"M": "ismarket", "P": "ispremarket", "Q": "ispostmarket", "F": "isfirstbar", "L": "islastbar", "f": "isfirstbar_regular", "l": "islastbar_regular"} @@ -85,35 +90,41 @@ def key(self) -> str: def _cases(chart: str, session: str, timezone: str, hm: dict[str, int], - sunday: int = 0) -> list[Case]: - return [Case(f"hm-g236-{chart}", session, timezone, hm, sunday)] + flags: dict[str, int], sunday: int = 0) -> list[Case]: + return [Case(f"hm-g236-{chart}", session, timezone, hm, sunday), + Case(f"cgim-flags-{chart}", session, timezone, flags, sunday)] CASES = tuple(case for cases in ( # The campaign's lane facts (pineforge-lab config/symbol-lanes-v1.json). - _cases("es1-60-dst-mar", "1700-1600", "America/Chicago", {}), - _cases("es1-60-dst-nov", "1700-1600", "America/Chicago", {}), - _cases("es1-60-thanksgiving", "1700-1600", "America/Chicago", {}), - _cases("eurusd-60-dst-mar", "1700-1700", "America/New_York", {}), - _cases("xauusd-60-dst-mar", "1800-1700", "America/New_York", {}), - _cases("eth-60-24x7", "24x7", "UTC", {}), + _cases("es1-60-dst-mar", "1700-1600", "America/Chicago", {}, {"P": 108, "Q": 30}), + _cases("es1-60-dst-nov", "1700-1600", "America/Chicago", {}, {"P": 108, "Q": 29}), + _cases("es1-60-thanksgiving", "1700-1600", "America/Chicago", {}, {"P": 98, "Q": 29}), + _cases("eurusd-60-dst-mar", "1700-1700", "America/New_York", {}, {}), + _cases("xauusd-60-dst-mar", "1800-1700", "America/New_York", {}, {"P": 117, "Q": 20}), + _cases("eth-60-24x7", "24x7", "UTC", {}, {}), # The same sessions with TradingView's weekday mask: the time-of-day # predicate missed every Sunday-evening open. - _cases("es1-60-dst-mar", "1700-1600:23456", "America/Chicago", {"M": 14}, 14), - _cases("es1-60-dst-nov", "1700-1600:23456", "America/Chicago", {"M": 14}, 14), - _cases("es1-60-thanksgiving", "1700-1600:23456", "America/Chicago", {"M": 14}, 14), - _cases("eurusd-60-dst-mar", "1700-1700:23456", "America/New_York", {"M": 14}, 14), - _cases("xauusd-60-dst-mar", "1800-1700:23456", "America/New_York", {"M": 12}, 12), + _cases("es1-60-dst-mar", "1700-1600:23456", "America/Chicago", + {"M": 14}, {"M": 14, "P": 108, "Q": 24}, 14), + _cases("es1-60-dst-nov", "1700-1600:23456", "America/Chicago", + {"M": 14}, {"M": 14, "P": 108, "Q": 23}, 14), + _cases("es1-60-thanksgiving", "1700-1600:23456", "America/Chicago", + {"M": 14}, {"M": 14, "P": 98, "Q": 23}, 14), + _cases("eurusd-60-dst-mar", "1700-1700:23456", "America/New_York", + {"M": 14}, {"M": 14}, 14), + _cases("xauusd-60-dst-mar", "1800-1700:23456", "America/New_York", + {"M": 12}, {"M": 12, "P": 117, "Q": 16}, 12), # A 24-hour day: "0000-2400" (the predicate: never in market) and # TradingView's spelling "0000-0000" (both: always). - _cases("eth-60-24x7", "0000-2400", "UTC", {"M": 97}, 24), - _cases("eth-60-24x7", "0000-0000", "UTC", {}), + _cases("eth-60-24x7", "0000-2400", "UTC", {"M": 97}, {"M": 97}, 24), + _cases("eth-60-24x7", "0000-0000", "UTC", {}, {}), ) for case in cases) -SECURITY_CASE = next(case for case in CASES if case.key == "hm-g236-es1-60-dst-mar@1700-1600:23456") +SECURITY_CASE = next(case for case in CASES if case.key == "cgim-flags-es1-60-dst-mar@1700-1600:23456") SECURITY_TRACE = "".join( f'\nsecurity_{name} = request.security(syminfo.tickerid, "60", session.{name})' f"\n// @pf-trace security_{name}=security_{name}" - for name in ("ismarket",)) + "\n" + for name in ("ismarket", "ispremarket", "ispostmarket")) + "\n" def _utc_ms(stamp: str, offset_hours: int) -> int: @@ -125,7 +136,7 @@ def _utc_ms(stamp: str, offset_hours: int) -> int: def read_tape(slug: str) -> list[tuple[int, dict[str, bool]]]: """(the chart bar's open in UTC ms, TradingView's flags by letter) per Entry row, in time order. ``lab tv`` renders times at UTC+8; a Signal is a - letter and a digit per flag (``M1``).""" + letter and a digit per flag (``M1``, ``M1P0Q0F1L0f1l0``).""" with (FIXTURES / slug / "tv_trades.csv").open(encoding="utf-8-sig") as fh: rows = [row for row in csv.DictReader(fh) if row["Type"].startswith("Entry")] tape = [] @@ -239,8 +250,8 @@ def _on_sunday(stamps: list[int], timezone: str) -> int: def test_tapes_are_the_recorded_exports() -> None: """Every fixture is its export byte for byte, and TradingView flagged every - one of the tapes' 1,138 bars in market.""" - bars = {"hm-g236": 0} + one of each tape set's 1,138 bars in market and none pre- or post-market.""" + bars = {"hm-g236": 0, "cgim-flags": 0} for slug in TAPES: metrics = json.loads((FIXTURES / slug / "metrics.json").read_text()) meta = json.loads((FIXTURES / slug / "meta.json").read_text()) @@ -253,8 +264,8 @@ def test_tapes_are_the_recorded_exports() -> None: assert len(tape) == metrics["trades"], slug assert all(flags["M"] and not flags.get("P") and not flags.get("Q") for _, flags in tape), slug - bars["hm-g236"] += len(tape) - assert bars == {"hm-g236": 1138} + bars["hm-g236" if slug.startswith("hm-g236-") else "cgim-flags"] += len(tape) + assert bars == {"hm-g236": 1138, "cgim-flags": 1138} @pytest.mark.parametrize("case", CASES, ids=lambda c: c.key) @@ -285,19 +296,19 @@ def test_legacy_predicates_missed_the_pinned_bars(case: Case, replays) -> None: def test_security_payload_keeps_its_own_bars_predicates(replays) -> None: - """A request.security payload reads the flag at the security bar's time, - exactly as the pre-lane build did; the chart read beside it is - TradingView's flag.""" + """A request.security payload reads the flags at the security bar's time, + exactly as the pre-lane build did; the chart reads beside it are + TradingView's flags.""" case = SECURITY_CASE current = replays[("security-current", case.slug)] - for name in ("ismarket",): + for name in ("ismarket", "ispremarket", "ispostmarket"): assert (f"pine_session_{name}(syminfo_.session, syminfo_.timezone, bar.timestamp)" in current.cpp), name assert not any(_misses(case, current).values()) if ("security-legacy", case.slug) not in replays: pytest.skip(f"the pre-lane codegen ({LEGACY[:12]}) is not in this checkout's history") legacy = replays[("security-legacy", case.slug)] - for name in ("ismarket",): + for name in ("ismarket", "ispremarket", "ispostmarket"): payload = traced(current.traces[case.key], f"security_{name}") assert payload and payload == traced(legacy.traces[case.key], f"security_{name}"), name print(f"request.security session flags {case.key}: " From 2bec6dac46cc2bc524cd0864316ed885958d34ad Mon Sep 17 00:00:00 2001 From: luisleo526 Date: Sat, 26 Sep 2026 07:19:19 +0800 Subject: [PATCH 5/8] Record TradingView tapes of NASDAQ:AAPL with and without extended hours The every-flag probe on NASDAQ:AAPL 60, 2025-03-03 .. 03-15, exported through the pinescript-scrapper WebSocket exporter (ws-report-v1, rangeProof covered). The exporter always asks for the regular session; the extended-hours tape ran a scratch copy that differs in one line, the symbol descriptor's session, with CGIM_TV_SESSION=extended. The README records both files' sha256 and the exporter's commit. The extended chart's bars open on the hour and TradingView flags each by its open time: the 09:00 bar, which holds the 09:30 open, is pre-market (M0P1) and the 16:00 bar post-market (M0Q1). isfirstbar / islastbar are the extended day's 04:00 and 19:00 bars, the _regular twins the regular day's 10:00 and 15:00 bars. The regular chart's 09:30..15:30 bars are all in market, first and last at 09:30 and 15:30. The README's header now covers exporters other than lab tv: every metrics.json carries the sha256 of strategy.pine as sourceArtifactHash. Co-Authored-By: Claude Opus 5.5 (1M context) --- tests/fixtures/session_ismarket/README.md | 46 ++- .../cgim-flags-aapl-60-ext/metrics.json | 40 +++ .../cgim-flags-aapl-60-ext/strategy.pine | 22 ++ .../cgim-flags-aapl-60-ext/tv_trades.csv | 321 ++++++++++++++++++ .../cgim-flags-aapl-60-reg/metrics.json | 40 +++ .../cgim-flags-aapl-60-reg/strategy.pine | 22 ++ .../cgim-flags-aapl-60-reg/tv_trades.csv | 141 ++++++++ 7 files changed, 624 insertions(+), 8 deletions(-) create mode 100644 tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/metrics.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/strategy.pine create mode 100644 tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/tv_trades.csv create mode 100644 tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/metrics.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/strategy.pine create mode 100644 tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/tv_trades.csv diff --git a/tests/fixtures/session_ismarket/README.md b/tests/fixtures/session_ismarket/README.md index aa9e867..3e372c7 100644 --- a/tests/fixtures/session_ismarket/README.md +++ b/tests/fixtures/session_ismarket/README.md @@ -1,19 +1,19 @@ # session.* TradingView tapes -TradingView's own session flags on every bar of six 60-minute charts. Each -directory is one `lab tv` export (channel `ws-report-v1`, `rangeProof` +TradingView's own session flags on every bar of eight 60-minute charts. Each +directory is one TradingView export (channel `ws-report-v1`, `rangeProof` covered), byte for byte: `strategy.pine`, `tv_trades.csv` (times at UTC+8, -the `lab tv` rendering), `meta.json`, `metrics.json`. `metrics.json` -`tvTradesCsvHash` is the sha256 of `tv_trades.csv`, and `meta.json` -`pine_sha256` that of `strategy.pine`. The probes are public; no closed or -scraped strategy is involved. +the exporters' rendering), `metrics.json`, and for a `lab tv` export +`meta.json`. `metrics.json` `tvTradesCsvHash` is the sha256 of +`tv_trades.csv`, and its `sourceArtifactHash` that of `strategy.pine`. The +probes are public; no closed or scraped strategy is involved. Each probe reverses its position at the close of every chart bar (`process_orders_on_close=true`), so every entry is one chart bar, dated at its open, and its Signal is the flags TradingView evaluated there. `tests/test_e2e_session_ismarket.py` replays every tape on flat bars stamped -at the tape's entry times: the flags are a function of a bar's time and the -symbol's session and timezone only. +at the tape's entry times: the flags are a function of the bars' times and +the symbol's session and timezone only. ## `hm-g236-*`: session.ismarket (engine lane H-MEASURE, row G2-36) @@ -59,3 +59,33 @@ Every bar is in market and none is in an extended session (`P0Q0`); each session day opens with an `F1` bar and closes with an `L1` bar, the `_regular` flags equal to the plain ones. Every tape's last bar is `L0`: its session day goes on past the window. + +## `cgim-flags-aapl-60-*`: NASDAQ:AAPL with and without extended hours (codegen lane CG-ISMARKET) + +The every-flag probe on NASDAQ:AAPL 60, 2025-03-03 .. 03-15 (US DST 03-09), +exported on 2026-09-25 (UTC) through the WebSocket exporter +`pinescript-scrapper/scripts/tv-ws-backtest.mjs` (sha256 +`f2dc0bb0e86b4a8685edaec7d11da1f7d89dd4c18c0aac0c9bb91c75ea79012b`, last +changed in `35fe8338b`). The exporter asks TradingView for the regular +session. The extended-hours tape ran a scratch copy that differs in one line, +the symbol descriptor's `session: process.env.CGIM_TV_SESSION || "regular"` +(sha256 `15d8afae63844c35481e94ba14000720a9e8f0f500d28c51bc2f8cb8189f4f06`), +with `CGIM_TV_SESSION=extended`; the regular tape ran the same copy without +it. Every other byte on the wire is the exporter's. These exports write +`metrics.json` but no `meta.json`; its `sourceArtifactHash` is the sha256 of +`strategy.pine`. + +```sh +node tv-ws-backtest-session.mjs --pine-dir --write-into-dir \ + --symbol NASDAQ:AAPL --interval 60 --from 2025-03-03 --to 2025-03-15 --concurrency 1 +``` + +| tape | session | bars | flags by bar open (America/New_York), every day | tv_trades.csv sha256 | exported (UTC) | +|---|---|---|---|---|---| +| `cgim-flags-aapl-60-ext` | extended | 160 | 04:00 `M0P1Q0F1L0f0l0`, 05:00-09:00 `M0P1Q0F0L0f0l0`, 10:00 `M1P0Q0F0L0f1l0`, 11:00-14:00 `M1P0Q0F0L0f0l0`, 15:00 `M1P0Q0F0L0f0l1`, 16:00-18:00 `M0P0Q1F0L0f0l0`, 19:00 `M0P0Q1F0L1f0l0` | `c61119c7077dcf01cf89b13c77931a52bff4c1078e63c0e58c3e687f93db0802` | 2026-09-25 23:04:04 | +| `cgim-flags-aapl-60-reg` | regular | 70 | 09:30 `M1P0Q0F1L0f1l0`, 10:30-14:30 `M1P0Q0F0L0f0l0`, 15:30 `M1P0Q0F0L1f0l1` | `163434a171c27026622b65d0777118120f7660a2a97b2e320091aaf1c9bc6a57` | 2026-09-25 23:04:06 | + +The extended chart's bars open on the hour, and TradingView flags each by its +open time: the 09:00 bar, which holds the 09:30 open, is pre-market, and the +16:00 bar is post-market. There isfirstbar / islastbar are the extended day's +first and last bars and the `_regular` twins the regular day's. diff --git a/tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/metrics.json b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/metrics.json new file mode 100644 index 0000000..c0617ae --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "cgim-flags-aapl-60-ext", + "symbol": "NASDAQ:AAPL", + "interval": "60", + "from": "2025-03-03", + "to": "2025-03-15", + "deepBacktesting": true, + "trades": 160, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tvTradesCsvHash": "c61119c7077dcf01cf89b13c77931a52bff4c1078e63c0e58c3e687f93db0802", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.75013", + "symbol": "NASDAQ:AAPL", + "interval": "60", + "requestedRange": { + "from": 1740960000000, + "to": 1741996800000 + }, + "returnedRange": { + "from": 1740992400000, + "to": 1741993200000 + }, + "rangeProof": "covered", + "rawFrameSha256": "55ee4da9971f54d1caaae026cd3b8bc059cfe91b404a4918a015016bc08639b8", + "decodedReportSha256": "5d9828426423bde547079e129fbf268d8cd09fa8ccb5a21b61715ced47a052f5", + "closedTrades": 160, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T23:04:04.258Z" +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/strategy.pine b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/strategy.pine new file mode 100644 index 0000000..0740da1 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/strategy.pine @@ -0,0 +1,22 @@ +// CG-ISMARKET: which session.* flags does TradingView set on each chart bar? +// process_orders_on_close=true: every bar reverses the position at its own +// close, so every trade's ENTRY is one chart bar (TradingView dates a +// process_orders_on_close fill at the bar's open) and the entry's Signal (its +// comment) carries the flags TradingView evaluated on that bar, a letter and a +// digit each: M session.ismarket, P session.ispremarket, Q session.ispostmarket, +// F session.isfirstbar, L session.islastbar, f session.isfirstbar_regular, +// l session.islastbar_regular (1 true, 0 false). +//@version=6 +strategy("CG-ISMARKET session flags", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +bit(bool x) => x ? "1" : "0" +flag = "M" + bit(session.ismarket) + "P" + bit(session.ispremarket) + "Q" + bit(session.ispostmarket) + + "F" + bit(session.isfirstbar) + "L" + bit(session.islastbar) + + "f" + bit(session.isfirstbar_regular) + "l" + bit(session.islastbar_regular) +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/tv_trades.csv b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/tv_trades.csv new file mode 100644 index 0000000..c1500fb --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-ext/tv_trades.csv @@ -0,0 +1,321 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-03 18:00,M0P1Q0F0L0f0l0,241.5,1,241.59,-0.09,-0.04,0,0.01,0.00,-0.2,-0.08,-0.09,0.00,1 +1,Entry long,2025-03-03 17:00,M0P1Q0F1L0f0l0,241.59,1,241.59,-0.09,-0.04,0,0.01,0.00,-0.2,-0.08,-0.09,0.00,1 +2,Exit short,2025-03-03 19:00,M0P1Q0F0L0f0l0,241.46,1,241.5,0.04,0.02,0,0.17,0.07,-0.1,-0.04,-0.05,0.00,1 +2,Entry short,2025-03-03 18:00,M0P1Q0F0L0f0l0,241.5,1,241.5,0.04,0.02,0,0.17,0.07,-0.1,-0.04,-0.05,0.00,1 +3,Exit long,2025-03-03 20:00,M0P1Q0F0L0f0l0,241.51,1,241.46,0.05,0.02,0,0.18,0.07,-0.29,-0.12,-2.842171e-14,0.00,1 +3,Entry long,2025-03-03 19:00,M0P1Q0F0L0f0l0,241.46,1,241.46,0.05,0.02,0,0.18,0.07,-0.29,-0.12,-2.842171e-14,0.00,1 +4,Exit short,2025-03-03 21:00,M0P1Q0F0L0f0l0,241.51,1,241.51,0,0.00,0,0.81,0.34,-0.06,-0.02,-2.842171e-14,0.00,1 +4,Entry short,2025-03-03 20:00,M0P1Q0F0L0f0l0,241.51,1,241.51,0,0.00,0,0.81,0.34,-0.06,-0.02,-2.842171e-14,0.00,1 +5,Exit long,2025-03-03 22:00,M0P1Q0F0L0f0l0,240.93,1,241.51,-0.58,-0.24,0,2.53,1.05,-1.03,-0.43,-0.58,0.00,1 +5,Entry long,2025-03-03 21:00,M0P1Q0F0L0f0l0,241.51,1,241.51,-0.58,-0.24,0,2.53,1.05,-1.03,-0.43,-0.58,0.00,1 +6,Exit short,2025-03-03 23:00,M1P0Q0F0L0f1l0,241.21,1,240.93,-0.28,-0.12,0,1.08,0.45,-1.54,-0.64,-0.86,0.00,1 +6,Entry short,2025-03-03 22:00,M0P1Q0F0L0f0l0,240.93,1,240.93,-0.28,-0.12,0,1.08,0.45,-1.54,-0.64,-0.86,0.00,1 +7,Exit long,2025-03-04 00:00,M1P0Q0F0L0f0l0,241.81,1,241.21,0.6,0.25,0,1.41,0.58,-0.53,-0.22,-0.26,0.00,1 +7,Entry long,2025-03-03 23:00,M1P0Q0F0L0f1l0,241.21,1,241.21,0.6,0.25,0,1.41,0.58,-0.53,-0.22,-0.26,0.00,1 +8,Exit short,2025-03-04 01:00,M1P0Q0F0L0f0l0,242.33,1,241.81,-0.52,-0.22,0,0.18,0.07,-1.17,-0.48,-0.78,0.00,1 +8,Entry short,2025-03-04 00:00,M1P0Q0F0L0f0l0,241.81,1,241.81,-0.52,-0.22,0,0.18,0.07,-1.17,-0.48,-0.78,0.00,1 +9,Exit long,2025-03-04 02:00,M1P0Q0F0L0f0l0,241.32,1,242.33,-1.01,-0.42,0,0.02,0.01,-1.87,-0.77,-1.79,0.00,1 +9,Entry long,2025-03-04 01:00,M1P0Q0F0L0f0l0,242.33,1,242.33,-1.01,-0.42,0,0.02,0.01,-1.87,-0.77,-1.79,0.00,1 +10,Exit short,2025-03-04 03:00,M1P0Q0F0L0f0l0,240.27,1,241.32,1.05,0.44,0,1.45,0.60,-0.69,-0.29,-0.74,0.00,1 +10,Entry short,2025-03-04 02:00,M1P0Q0F0L0f0l0,241.32,1,241.32,1.05,0.44,0,1.45,0.60,-0.69,-0.29,-0.74,0.00,1 +11,Exit long,2025-03-04 04:00,M1P0Q0F0L0f0l1,238.14,1,240.27,-2.13,-0.89,0,0.01,0.00,-4.16,-1.73,-2.87,0.00,1 +11,Entry long,2025-03-04 03:00,M1P0Q0F0L0f0l0,240.27,1,240.27,-2.13,-0.89,0,0.01,0.00,-4.16,-1.73,-2.87,0.00,1 +12,Exit short,2025-03-04 05:00,M0P0Q1F0L0f0l0,239.22,1,238.14,-1.08,-0.45,0,0.39,0.16,-1.21,-0.51,-3.95,0.00,1 +12,Entry short,2025-03-04 04:00,M1P0Q0F0L0f0l1,238.14,1,238.14,-1.08,-0.45,0,0.39,0.16,-1.21,-0.51,-3.95,0.00,1 +13,Exit long,2025-03-04 06:00,M0P0Q1F0L0f0l0,238.56,1,239.22,-0.66,-0.28,0,0,0.00,-0.66,-0.28,-4.61,0.00,1 +13,Entry long,2025-03-04 05:00,M0P0Q1F0L0f0l0,239.22,1,239.22,-0.66,-0.28,0,0,0.00,-0.66,-0.28,-4.61,0.00,1 +14,Exit short,2025-03-04 07:00,M0P0Q1F0L0f0l0,238.15,1,238.56,0.41,0.17,0,0.41,0.17,-0.69,-0.29,-4.2,0.00,1 +14,Entry short,2025-03-04 06:00,M0P0Q1F0L0f0l0,238.56,1,238.56,0.41,0.17,0,0.41,0.17,-0.69,-0.29,-4.2,0.00,1 +15,Exit long,2025-03-04 08:00,M0P0Q1F0L1f0l0,240.49,1,238.15,2.34,0.98,0,2.34,0.98,0,0.00,-1.86,0.00,1 +15,Entry long,2025-03-04 07:00,M0P0Q1F0L0f0l0,238.15,1,238.15,2.34,0.98,0,2.34,0.98,0,0.00,-1.86,0.00,1 +16,Exit short,2025-03-04 17:00,M0P1Q0F1L0f0l0,238.3,1,240.49,2.19,0.91,0,2.19,0.91,0,0.00,0.33,0.00,1 +16,Entry short,2025-03-04 08:00,M0P0Q1F0L1f0l0,240.49,1,240.49,2.19,0.91,0,2.19,0.91,0,0.00,0.33,0.00,1 +17,Exit long,2025-03-04 18:00,M0P1Q0F0L0f0l0,238.3,1,238.3,0,0.00,0,0.26,0.11,-0.46,-0.19,0.33,0.00,1 +17,Entry long,2025-03-04 17:00,M0P1Q0F1L0f0l0,238.3,1,238.3,0,0.00,0,0.26,0.11,-0.46,-0.19,0.33,0.00,1 +18,Exit short,2025-03-04 19:00,M0P1Q0F0L0f0l0,238.33,1,238.3,-0.03,-0.01,0,0.2,0.08,-0.55,-0.23,0.3,0.00,1 +18,Entry short,2025-03-04 18:00,M0P1Q0F0L0f0l0,238.3,1,238.3,-0.03,-0.01,0,0.2,0.08,-0.55,-0.23,0.3,0.00,1 +19,Exit long,2025-03-04 20:00,M0P1Q0F0L0f0l0,237.4,1,238.33,-0.93,-0.39,0,0.42,0.18,-1.05,-0.44,-0.63,0.00,1 +19,Entry long,2025-03-04 19:00,M0P1Q0F0L0f0l0,238.33,1,238.33,-0.93,-0.39,0,0.42,0.18,-1.05,-0.44,-0.63,0.00,1 +20,Exit short,2025-03-04 21:00,M0P1Q0F0L0f0l0,237.73,1,237.4,-0.33,-0.14,0,0.64,0.27,-1.4,-0.59,-0.96,0.00,1 +20,Entry short,2025-03-04 20:00,M0P1Q0F0L0f0l0,237.4,1,237.4,-0.33,-0.14,0,0.64,0.27,-1.4,-0.59,-0.96,0.00,1 +21,Exit long,2025-03-04 22:00,M0P1Q0F0L0f0l0,236.64,1,237.73,-1.09,-0.46,0,1.67,0.70,-1.73,-0.73,-2.05,0.00,1 +21,Entry long,2025-03-04 21:00,M0P1Q0F0L0f0l0,237.73,1,237.73,-1.09,-0.46,0,1.67,0.70,-1.73,-0.73,-2.05,0.00,1 +22,Exit short,2025-03-04 23:00,M1P0Q0F0L0f1l0,239.14,1,236.64,-2.5,-1.06,0,0.3,0.13,-3.18,-1.34,-4.55,0.00,1 +22,Entry short,2025-03-04 22:00,M0P1Q0F0L0f0l0,236.64,1,236.64,-2.5,-1.06,0,0.3,0.13,-3.18,-1.34,-4.55,0.00,1 +23,Exit long,2025-03-05 00:00,M1P0Q0F0L0f0l0,239.12,1,239.14,-0.02,-0.01,0,0.93,0.39,-1.47,-0.61,-4.57,0.00,1 +23,Entry long,2025-03-04 23:00,M1P0Q0F0L0f1l0,239.14,1,239.14,-0.02,-0.01,0,0.93,0.39,-1.47,-0.61,-4.57,0.00,1 +24,Exit short,2025-03-05 01:00,M1P0Q0F0L0f0l0,236.59,1,239.12,2.53,1.06,0,2.86,1.20,-0.13,-0.05,-2.04,0.00,1 +24,Entry short,2025-03-05 00:00,M1P0Q0F0L0f0l0,239.12,1,239.12,2.53,1.06,0,2.86,1.20,-0.13,-0.05,-2.04,0.00,1 +25,Exit long,2025-03-05 02:00,M1P0Q0F0L0f0l0,237.85,1,236.59,1.26,0.53,0,1.44,0.61,-0.43,-0.18,-0.78,0.00,1 +25,Entry long,2025-03-05 01:00,M1P0Q0F0L0f0l0,236.59,1,236.59,1.26,0.53,0,1.44,0.61,-0.43,-0.18,-0.78,0.00,1 +26,Exit short,2025-03-05 03:00,M1P0Q0F0L0f0l0,238.31,1,237.85,-0.46,-0.19,0,0.41,0.17,-0.91,-0.38,-1.24,0.00,1 +26,Entry short,2025-03-05 02:00,M1P0Q0F0L0f0l0,237.85,1,237.85,-0.46,-0.19,0,0.41,0.17,-0.91,-0.38,-1.24,0.00,1 +27,Exit long,2025-03-05 04:00,M1P0Q0F0L0f0l1,236.05,1,238.31,-2.26,-0.95,0,0.94,0.39,-3.63,-1.52,-3.5,0.00,1 +27,Entry long,2025-03-05 03:00,M1P0Q0F0L0f0l0,238.31,1,238.31,-2.26,-0.95,0,0.94,0.39,-3.63,-1.52,-3.5,0.00,1 +28,Exit short,2025-03-05 05:00,M0P0Q1F0L0f0l0,236.9,1,236.05,-0.85,-0.36,0,0.25,0.11,-1.55,-0.66,-4.35,0.00,1 +28,Entry short,2025-03-05 04:00,M1P0Q0F0L0f0l1,236.05,1,236.05,-0.85,-0.36,0,0.25,0.11,-1.55,-0.66,-4.35,0.00,1 +29,Exit long,2025-03-05 06:00,M0P0Q1F0L0f0l0,237.49,1,236.9,0.59,0.25,0,0.59,0.25,0,0.00,-3.76,0.00,1 +29,Entry long,2025-03-05 05:00,M0P0Q1F0L0f0l0,236.9,1,236.9,0.59,0.25,0,0.59,0.25,0,0.00,-3.76,0.00,1 +30,Exit short,2025-03-05 07:00,M0P0Q1F0L0f0l0,238.01,1,237.49,-0.52,-0.22,0,0.04,0.02,-0.92,-0.39,-4.28,0.00,1 +30,Entry short,2025-03-05 06:00,M0P0Q1F0L0f0l0,237.49,1,237.49,-0.52,-0.22,0,0.04,0.02,-0.92,-0.39,-4.28,0.00,1 +31,Exit long,2025-03-05 08:00,M0P0Q1F0L1f0l0,237.99,1,238.01,-0.02,-0.01,0,0.14,0.06,-0.79,-0.33,-4.3,0.00,1 +31,Entry long,2025-03-05 07:00,M0P0Q1F0L0f0l0,238.01,1,238.01,-0.02,-0.01,0,0.14,0.06,-0.79,-0.33,-4.3,0.00,1 +32,Exit short,2025-03-05 17:00,M0P1Q0F1L0f0l0,237.58,1,237.99,0.41,0.17,0,1.09,0.46,0,0.00,-3.89,0.00,1 +32,Entry short,2025-03-05 08:00,M0P0Q1F0L1f0l0,237.99,1,237.99,0.41,0.17,0,1.09,0.46,0,0.00,-3.89,0.00,1 +33,Exit long,2025-03-05 18:00,M0P1Q0F0L0f0l0,236.95,1,237.58,-0.63,-0.27,0,0.06,0.03,-0.68,-0.29,-4.52,0.00,1 +33,Entry long,2025-03-05 17:00,M0P1Q0F1L0f0l0,237.58,1,237.58,-0.63,-0.27,0,0.06,0.03,-0.68,-0.29,-4.52,0.00,1 +34,Exit short,2025-03-05 19:00,M0P1Q0F0L0f0l0,236.58,1,236.95,0.37,0.16,0,0.75,0.32,-0.12,-0.05,-4.15,0.00,1 +34,Entry short,2025-03-05 18:00,M0P1Q0F0L0f0l0,236.95,1,236.95,0.37,0.16,0,0.75,0.32,-0.12,-0.05,-4.15,0.00,1 +35,Exit long,2025-03-05 20:00,M0P1Q0F0L0f0l0,236.42,1,236.58,-0.16,-0.07,0,0.39,0.16,-0.3,-0.13,-4.31,0.00,1 +35,Entry long,2025-03-05 19:00,M0P1Q0F0L0f0l0,236.58,1,236.58,-0.16,-0.07,0,0.39,0.16,-0.3,-0.13,-4.31,0.00,1 +36,Exit short,2025-03-05 21:00,M0P1Q0F0L0f0l0,236.35,1,236.42,0.07,0.03,0,0.32,0.14,-0.47,-0.20,-4.24,0.00,1 +36,Entry short,2025-03-05 20:00,M0P1Q0F0L0f0l0,236.42,1,236.42,0.07,0.03,0,0.32,0.14,-0.47,-0.20,-4.24,0.00,1 +37,Exit long,2025-03-05 22:00,M0P1Q0F0L0f0l0,231.72,1,236.35,-4.63,-1.96,0,0.31,0.13,-5.31,-2.25,-8.87,0.00,1 +37,Entry long,2025-03-05 21:00,M0P1Q0F0L0f0l0,236.35,1,236.35,-4.63,-1.96,0,0.31,0.13,-5.31,-2.25,-8.87,0.00,1 +38,Exit short,2025-03-05 23:00,M1P0Q0F0L0f1l0,232.56,1,231.72,-0.84,-0.36,0,1.17,0.50,-1.53,-0.66,-9.71,0.00,1 +38,Entry short,2025-03-05 22:00,M0P1Q0F0L0f0l0,231.72,1,231.72,-0.84,-0.36,0,1.17,0.50,-1.53,-0.66,-9.71,0.00,1 +39,Exit long,2025-03-06 00:00,M1P0Q0F0L0f0l0,232.21,1,232.56,-0.35,-0.15,0,0.06,0.03,-3.33,-1.43,-10.06,0.00,1 +39,Entry long,2025-03-05 23:00,M1P0Q0F0L0f1l0,232.56,1,232.56,-0.35,-0.15,0,0.06,0.03,-3.33,-1.43,-10.06,0.00,1 +40,Exit short,2025-03-06 01:00,M1P0Q0F0L0f0l0,234.96,1,232.21,-2.75,-1.18,0,0.08,0.03,-3.18,-1.37,-12.81,0.00,1 +40,Entry short,2025-03-06 00:00,M1P0Q0F0L0f0l0,232.21,1,232.21,-2.75,-1.18,0,0.08,0.03,-3.18,-1.37,-12.81,0.00,1 +41,Exit long,2025-03-06 02:00,M1P0Q0F0L0f0l0,235.82,1,234.96,0.86,0.37,0,0.87,0.37,-0.94,-0.40,-11.95,0.00,1 +41,Entry long,2025-03-06 01:00,M1P0Q0F0L0f0l0,234.96,1,234.96,0.86,0.37,0,0.87,0.37,-0.94,-0.40,-11.95,0.00,1 +42,Exit short,2025-03-06 03:00,M1P0Q0F0L0f0l0,235.5,1,235.82,0.32,0.14,0,0.66,0.28,-0.73,-0.31,-11.63,0.00,1 +42,Entry short,2025-03-06 02:00,M1P0Q0F0L0f0l0,235.82,1,235.82,0.32,0.14,0,0.66,0.28,-0.73,-0.31,-11.63,0.00,1 +43,Exit long,2025-03-06 04:00,M1P0Q0F0L0f0l1,235.67,1,235.5,0.17,0.07,0,0.95,0.40,-0.44,-0.19,-11.46,0.00,1 +43,Entry long,2025-03-06 03:00,M1P0Q0F0L0f0l0,235.5,1,235.5,0.17,0.07,0,0.95,0.40,-0.44,-0.19,-11.46,0.00,1 +44,Exit short,2025-03-06 05:00,M0P0Q1F0L0f0l0,236.06,1,235.67,-0.39,-0.17,0,0.41,0.17,-0.5,-0.21,-11.85,0.00,1 +44,Entry short,2025-03-06 04:00,M1P0Q0F0L0f0l1,235.67,1,235.67,-0.39,-0.17,0,0.41,0.17,-0.5,-0.21,-11.85,0.00,1 +45,Exit long,2025-03-06 06:00,M0P0Q1F0L0f0l0,236.1,1,236.06,0.04,0.02,0,0.18,0.08,-0.06,-0.03,-11.81,0.00,1 +45,Entry long,2025-03-06 05:00,M0P0Q1F0L0f0l0,236.06,1,236.06,0.04,0.02,0,0.18,0.08,-0.06,-0.03,-11.81,0.00,1 +46,Exit short,2025-03-06 07:00,M0P0Q1F0L0f0l0,235.72,1,236.1,0.38,0.16,0,0.38,0.16,-0.28,-0.12,-11.43,0.00,1 +46,Entry short,2025-03-06 06:00,M0P0Q1F0L0f0l0,236.1,1,236.1,0.38,0.16,0,0.38,0.16,-0.28,-0.12,-11.43,0.00,1 +47,Exit long,2025-03-06 08:00,M0P0Q1F0L1f0l0,235.6,1,235.72,-0.12,-0.05,0,0.65,0.28,-0.12,-0.05,-11.55,0.00,1 +47,Entry long,2025-03-06 07:00,M0P0Q1F0L0f0l0,235.72,1,235.72,-0.12,-0.05,0,0.65,0.28,-0.12,-0.05,-11.55,0.00,1 +48,Exit short,2025-03-06 17:00,M0P1Q0F1L0f0l0,234.5,1,235.6,1.1,0.47,0,1.53,0.65,-0.25,-0.11,-10.45,0.00,1 +48,Entry short,2025-03-06 08:00,M0P0Q1F0L1f0l0,235.6,1,235.6,1.1,0.47,0,1.53,0.65,-0.25,-0.11,-10.45,0.00,1 +49,Exit long,2025-03-06 18:00,M0P1Q0F0L0f0l0,234.25,1,234.5,-0.25,-0.11,0,0.19,0.08,-0.25,-0.11,-10.7,0.00,1 +49,Entry long,2025-03-06 17:00,M0P1Q0F1L0f0l0,234.5,1,234.5,-0.25,-0.11,0,0.19,0.08,-0.25,-0.11,-10.7,0.00,1 +50,Exit short,2025-03-06 19:00,M0P1Q0F0L0f0l0,234.37,1,234.25,-0.12,-0.05,0,0.21,0.09,-0.27,-0.12,-10.82,0.00,1 +50,Entry short,2025-03-06 18:00,M0P1Q0F0L0f0l0,234.25,1,234.25,-0.12,-0.05,0,0.21,0.09,-0.27,-0.12,-10.82,0.00,1 +51,Exit long,2025-03-06 20:00,M0P1Q0F0L0f0l0,234.23,1,234.37,-0.14,-0.06,0,0.4,0.17,-0.46,-0.20,-10.96,0.00,1 +51,Entry long,2025-03-06 19:00,M0P1Q0F0L0f0l0,234.37,1,234.37,-0.14,-0.06,0,0.4,0.17,-0.46,-0.20,-10.96,0.00,1 +52,Exit short,2025-03-06 21:00,M0P1Q0F0L0f0l0,233.96,1,234.23,0.27,0.12,0,0.83,0.35,0,0.00,-10.69,0.00,1 +52,Entry short,2025-03-06 20:00,M0P1Q0F0L0f0l0,234.23,1,234.23,0.27,0.12,0,0.83,0.35,0,0.00,-10.69,0.00,1 +53,Exit long,2025-03-06 22:00,M0P1Q0F0L0f0l0,235.44,1,233.96,1.48,0.63,0,2.49,1.06,-0.56,-0.24,-9.21,0.00,1 +53,Entry long,2025-03-06 21:00,M0P1Q0F0L0f0l0,233.96,1,233.96,1.48,0.63,0,2.49,1.06,-0.56,-0.24,-9.21,0.00,1 +54,Exit short,2025-03-06 23:00,M1P0Q0F0L0f1l0,236.95,1,235.44,-1.51,-0.64,0,0.47,0.20,-2.41,-1.02,-10.72,0.00,1 +54,Entry short,2025-03-06 22:00,M0P1Q0F0L0f0l0,235.44,1,235.44,-1.51,-0.64,0,0.47,0.20,-2.41,-1.02,-10.72,0.00,1 +55,Exit long,2025-03-07 00:00,M1P0Q0F0L0f0l0,234.93,1,236.95,-2.02,-0.85,0,0.8,0.34,-2.12,-0.89,-12.74,0.00,1 +55,Entry long,2025-03-06 23:00,M1P0Q0F0L0f1l0,236.95,1,236.95,-2.02,-0.85,0,0.8,0.34,-2.12,-0.89,-12.74,0.00,1 +56,Exit short,2025-03-07 01:00,M1P0Q0F0L0f0l0,235.07,1,234.93,-0.14,-0.06,0,0.89,0.38,-0.37,-0.16,-12.88,0.00,1 +56,Entry short,2025-03-07 00:00,M1P0Q0F0L0f0l0,234.93,1,234.93,-0.14,-0.06,0,0.89,0.38,-0.37,-0.16,-12.88,0.00,1 +57,Exit long,2025-03-07 02:00,M1P0Q0F0L0f0l0,234.29,1,235.07,-0.78,-0.33,0,0.35,0.15,-1.11,-0.47,-13.66,0.00,1 +57,Entry long,2025-03-07 01:00,M1P0Q0F0L0f0l0,235.07,1,235.07,-0.78,-0.33,0,0.35,0.15,-1.11,-0.47,-13.66,0.00,1 +58,Exit short,2025-03-07 03:00,M1P0Q0F0L0f0l0,234.42,1,234.29,-0.13,-0.06,0,0.96,0.41,-1.72,-0.73,-13.79,0.00,1 +58,Entry short,2025-03-07 02:00,M1P0Q0F0L0f0l0,234.29,1,234.29,-0.13,-0.06,0,0.96,0.41,-1.72,-0.73,-13.79,0.00,1 +59,Exit long,2025-03-07 04:00,M1P0Q0F0L0f0l1,235.37,1,234.42,0.95,0.41,0,1.34,0.57,-0.22,-0.09,-12.84,0.00,1 +59,Entry long,2025-03-07 03:00,M1P0Q0F0L0f0l0,234.42,1,234.42,0.95,0.41,0,1.34,0.57,-0.22,-0.09,-12.84,0.00,1 +60,Exit short,2025-03-07 05:00,M0P0Q1F0L0f0l0,235.39,1,235.37,-0.02,-0.01,0,0.51,0.22,-0.41,-0.17,-12.86,0.00,1 +60,Entry short,2025-03-07 04:00,M1P0Q0F0L0f0l1,235.37,1,235.37,-0.02,-0.01,0,0.51,0.22,-0.41,-0.17,-12.86,0.00,1 +61,Exit long,2025-03-07 06:00,M0P0Q1F0L0f0l0,234.64,1,235.39,-0.75,-0.32,0,0.06,0.03,-0.89,-0.38,-13.61,0.00,1 +61,Entry long,2025-03-07 05:00,M0P0Q1F0L0f0l0,235.39,1,235.39,-0.75,-0.32,0,0.06,0.03,-0.89,-0.38,-13.61,0.00,1 +62,Exit short,2025-03-07 07:00,M0P0Q1F0L0f0l0,234.8,1,234.64,-0.16,-0.07,0,0,0.00,-0.24,-0.10,-13.77,0.00,1 +62,Entry short,2025-03-07 06:00,M0P0Q1F0L0f0l0,234.64,1,234.64,-0.16,-0.07,0,0,0.00,-0.24,-0.10,-13.77,0.00,1 +63,Exit long,2025-03-07 08:00,M0P0Q1F0L1f0l0,234.87,1,234.8,0.07,0.03,0,0.2,0.09,-0.16,-0.07,-13.7,0.00,1 +63,Entry long,2025-03-07 07:00,M0P0Q1F0L0f0l0,234.8,1,234.8,0.07,0.03,0,0.2,0.09,-0.16,-0.07,-13.7,0.00,1 +64,Exit short,2025-03-07 17:00,M0P1Q0F1L0f0l0,234.56,1,234.87,0.31,0.13,0,0.68,0.29,-0.13,-0.06,-13.39,0.00,1 +64,Entry short,2025-03-07 08:00,M0P0Q1F0L1f0l0,234.87,1,234.87,0.31,0.13,0,0.68,0.29,-0.13,-0.06,-13.39,0.00,1 +65,Exit long,2025-03-07 18:00,M0P1Q0F0L0f0l0,234.75,1,234.56,0.19,0.08,0,0.19,0.08,-0.2,-0.09,-13.2,0.00,1 +65,Entry long,2025-03-07 17:00,M0P1Q0F1L0f0l0,234.56,1,234.56,0.19,0.08,0,0.19,0.08,-0.2,-0.09,-13.2,0.00,1 +66,Exit short,2025-03-07 19:00,M0P1Q0F0L0f0l0,234.7,1,234.75,0.05,0.02,0,0.15,0.06,-0.03,-0.01,-13.15,0.00,1 +66,Entry short,2025-03-07 18:00,M0P1Q0F0L0f0l0,234.75,1,234.75,0.05,0.02,0,0.15,0.06,-0.03,-0.01,-13.15,0.00,1 +67,Exit long,2025-03-07 20:00,M0P1Q0F0L0f0l0,234.55,1,234.7,-0.15,-0.06,0,0.23,0.10,-0.34,-0.14,-13.3,0.00,1 +67,Entry long,2025-03-07 19:00,M0P1Q0F0L0f0l0,234.7,1,234.7,-0.15,-0.06,0,0.23,0.10,-0.34,-0.14,-13.3,0.00,1 +68,Exit short,2025-03-07 21:00,M0P1Q0F0L0f0l0,234.45,1,234.55,0.1,0.04,0,0.25,0.11,-1.55,-0.66,-13.2,0.00,1 +68,Entry short,2025-03-07 20:00,M0P1Q0F0L0f0l0,234.55,1,234.55,0.1,0.04,0,0.25,0.11,-1.55,-0.66,-13.2,0.00,1 +69,Exit long,2025-03-07 22:00,M0P1Q0F0L0f0l0,238.36,1,234.45,3.91,1.67,0,4.97,2.12,-0.5,-0.21,-9.29,0.00,1 +69,Entry long,2025-03-07 21:00,M0P1Q0F0L0f0l0,234.45,1,234.45,3.91,1.67,0,4.97,2.12,-0.5,-0.21,-9.29,0.00,1 +70,Exit short,2025-03-07 23:00,M1P0Q0F0L0f1l0,238.9,1,238.36,-0.54,-0.23,0,1.35,0.57,-1.79,-0.75,-9.83,0.00,1 +70,Entry short,2025-03-07 22:00,M0P1Q0F0L0f0l0,238.36,1,238.36,-0.54,-0.23,0,1.35,0.57,-1.79,-0.75,-9.83,0.00,1 +71,Exit long,2025-03-08 00:00,M1P0Q0F0L0f0l0,239.24,1,238.9,0.34,0.14,0,0.61,0.26,-1.02,-0.43,-9.49,0.00,1 +71,Entry long,2025-03-07 23:00,M1P0Q0F0L0f1l0,238.9,1,238.9,0.34,0.14,0,0.61,0.26,-1.02,-0.43,-9.49,0.00,1 +72,Exit short,2025-03-08 01:00,M1P0Q0F0L0f0l0,240.03,1,239.24,-0.79,-0.33,0,1.37,0.57,-1.59,-0.66,-10.28,0.00,1 +72,Entry short,2025-03-08 00:00,M1P0Q0F0L0f0l0,239.24,1,239.24,-0.79,-0.33,0,1.37,0.57,-1.59,-0.66,-10.28,0.00,1 +73,Exit long,2025-03-08 02:00,M1P0Q0F0L0f0l0,239.43,1,240.03,-0.6,-0.25,0,1.34,0.56,-0.65,-0.27,-10.88,0.00,1 +73,Entry long,2025-03-08 01:00,M1P0Q0F0L0f0l0,240.03,1,240.03,-0.6,-0.25,0,1.34,0.56,-0.65,-0.27,-10.88,0.00,1 +74,Exit short,2025-03-08 03:00,M1P0Q0F0L0f0l0,239.25,1,239.43,0.18,0.08,0,0.85,0.36,-0.48,-0.20,-10.7,0.00,1 +74,Entry short,2025-03-08 02:00,M1P0Q0F0L0f0l0,239.43,1,239.43,0.18,0.08,0,0.85,0.36,-0.48,-0.20,-10.7,0.00,1 +75,Exit long,2025-03-08 04:00,M1P0Q0F0L0f0l1,239.08,1,239.25,-0.17,-0.07,0,0.51,0.21,-1.31,-0.55,-10.87,0.00,1 +75,Entry long,2025-03-08 03:00,M1P0Q0F0L0f0l0,239.25,1,239.25,-0.17,-0.07,0,0.51,0.21,-1.31,-0.55,-10.87,0.00,1 +76,Exit short,2025-03-08 05:00,M0P0Q1F0L0f0l0,238.58,1,239.08,0.5,0.21,0,0.8,0.33,0,0.00,-10.37,0.00,1 +76,Entry short,2025-03-08 04:00,M1P0Q0F0L0f0l1,239.08,1,239.08,0.5,0.21,0,0.8,0.33,0,0.00,-10.37,0.00,1 +77,Exit long,2025-03-08 06:00,M0P0Q1F0L0f0l0,238.52,1,238.58,-0.06,-0.03,0,0.26,0.11,-0.18,-0.08,-10.43,0.00,1 +77,Entry long,2025-03-08 05:00,M0P0Q1F0L0f0l0,238.58,1,238.58,-0.06,-0.03,0,0.26,0.11,-0.18,-0.08,-10.43,0.00,1 +78,Exit short,2025-03-08 07:00,M0P0Q1F0L0f0l0,238.55,1,238.52,-0.03,-0.01,0,0.02,0.01,-0.18,-0.08,-10.46,0.00,1 +78,Entry short,2025-03-08 06:00,M0P0Q1F0L0f0l0,238.52,1,238.52,-0.03,-0.01,0,0.02,0.01,-0.18,-0.08,-10.46,0.00,1 +79,Exit long,2025-03-08 08:00,M0P0Q1F0L1f0l0,238.7,1,238.55,0.15,0.06,0,0.2,0.08,-0.02,-0.01,-10.31,0.00,1 +79,Entry long,2025-03-08 07:00,M0P0Q1F0L0f0l0,238.55,1,238.55,0.15,0.06,0,0.2,0.08,-0.02,-0.01,-10.31,0.00,1 +80,Exit short,2025-03-10 16:00,M0P1Q0F1L0f0l0,236.07,1,238.7,2.63,1.10,0,2.7,1.13,0,0.00,-7.68,0.00,1 +80,Entry short,2025-03-08 08:00,M0P0Q1F0L1f0l0,238.7,1,238.7,2.63,1.10,0,2.7,1.13,0,0.00,-7.68,0.00,1 +81,Exit long,2025-03-10 17:00,M0P1Q0F0L0f0l0,236.09,1,236.07,0.02,0.01,0,0.25,0.11,-0.55,-0.23,-7.66,0.00,1 +81,Entry long,2025-03-10 16:00,M0P1Q0F1L0f0l0,236.07,1,236.07,0.02,0.01,0,0.25,0.11,-0.55,-0.23,-7.66,0.00,1 +82,Exit short,2025-03-10 18:00,M0P1Q0F0L0f0l0,235.82,1,236.09,0.27,0.11,0,0.54,0.23,-0.2,-0.08,-7.39,0.00,1 +82,Entry short,2025-03-10 17:00,M0P1Q0F0L0f0l0,236.09,1,236.09,0.27,0.11,0,0.54,0.23,-0.2,-0.08,-7.39,0.00,1 +83,Exit long,2025-03-10 19:00,M0P1Q0F0L0f0l0,235.52,1,235.82,-0.3,-0.13,0,0.33,0.14,-0.57,-0.24,-7.69,0.00,1 +83,Entry long,2025-03-10 18:00,M0P1Q0F0L0f0l0,235.82,1,235.82,-0.3,-0.13,0,0.33,0.14,-0.57,-0.24,-7.69,0.00,1 +84,Exit short,2025-03-10 20:00,M0P1Q0F0L0f0l0,236.44,1,235.52,-0.92,-0.39,0,0.22,0.09,-1.26,-0.53,-8.61,0.00,1 +84,Entry short,2025-03-10 19:00,M0P1Q0F0L0f0l0,235.52,1,235.52,-0.92,-0.39,0,0.22,0.09,-1.26,-0.53,-8.61,0.00,1 +85,Exit long,2025-03-10 21:00,M0P1Q0F0L0f0l0,230.23,1,236.44,-6.21,-2.63,0,0.01,0.00,-7.28,-3.08,-14.82,0.00,1 +85,Entry long,2025-03-10 20:00,M0P1Q0F0L0f0l0,236.44,1,236.44,-6.21,-2.63,0,0.01,0.00,-7.28,-3.08,-14.82,0.00,1 +86,Exit short,2025-03-10 22:00,M1P0Q0F0L0f1l0,226.19,1,230.23,4.04,1.75,0,4.87,2.12,-0.18,-0.08,-10.78,0.00,1 +86,Entry short,2025-03-10 21:00,M0P1Q0F0L0f0l0,230.23,1,230.23,4.04,1.75,0,4.87,2.12,-0.18,-0.08,-10.78,0.00,1 +87,Exit long,2025-03-10 23:00,M1P0Q0F0L0f0l0,226.59,1,226.19,0.4,0.18,0,1.08,0.48,-0.9,-0.40,-10.38,0.00,1 +87,Entry long,2025-03-10 22:00,M1P0Q0F0L0f1l0,226.19,1,226.19,0.4,0.18,0,1.08,0.48,-0.9,-0.40,-10.38,0.00,1 +88,Exit short,2025-03-11 00:00,M1P0Q0F0L0f0l0,225.52,1,226.59,1.07,0.47,0,2.36,1.04,-0.38,-0.17,-9.31,0.00,1 +88,Entry short,2025-03-10 23:00,M1P0Q0F0L0f0l0,226.59,1,226.59,1.07,0.47,0,2.36,1.04,-0.38,-0.17,-9.31,0.00,1 +89,Exit long,2025-03-11 01:00,M1P0Q0F0L0f0l0,225.86,1,225.52,0.34,0.15,0,0.57,0.25,-1.19,-0.53,-8.97,0.00,1 +89,Entry long,2025-03-11 00:00,M1P0Q0F0L0f0l0,225.52,1,225.52,0.34,0.15,0,0.57,0.25,-1.19,-0.53,-8.97,0.00,1 +90,Exit short,2025-03-11 02:00,M1P0Q0F0L0f0l0,225.28,1,225.86,0.58,0.26,0,0.76,0.34,-1.13,-0.50,-8.39,0.00,1 +90,Entry short,2025-03-11 01:00,M1P0Q0F0L0f0l0,225.86,1,225.86,0.58,0.26,0,0.76,0.34,-1.13,-0.50,-8.39,0.00,1 +91,Exit long,2025-03-11 03:00,M1P0Q0F0L0f0l1,227.53,1,225.28,2.25,1.00,0,3.37,1.50,-0.86,-0.38,-6.14,0.00,1 +91,Entry long,2025-03-11 02:00,M1P0Q0F0L0f0l0,225.28,1,225.28,2.25,1.00,0,3.37,1.50,-0.86,-0.38,-6.14,0.00,1 +92,Exit short,2025-03-11 04:00,M0P0Q1F0L0f0l0,226.71,1,227.53,0.82,0.36,0,0.91,0.40,0,0.00,-5.32,0.00,1 +92,Entry short,2025-03-11 03:00,M1P0Q0F0L0f0l1,227.53,1,227.53,0.82,0.36,0,0.91,0.40,0,0.00,-5.32,0.00,1 +93,Exit long,2025-03-11 05:00,M0P0Q1F0L0f0l0,225.86,1,226.71,-0.85,-0.37,0,0.04,0.02,-1.03,-0.45,-6.17,0.00,1 +93,Entry long,2025-03-11 04:00,M0P0Q1F0L0f0l0,226.71,1,226.71,-0.85,-0.37,0,0.04,0.02,-1.03,-0.45,-6.17,0.00,1 +94,Exit short,2025-03-11 06:00,M0P0Q1F0L0f0l0,226,1,225.86,-0.14,-0.06,0,0.76,0.34,-0.82,-0.36,-6.31,0.00,1 +94,Entry short,2025-03-11 05:00,M0P0Q1F0L0f0l0,225.86,1,225.86,-0.14,-0.06,0,0.76,0.34,-0.82,-0.36,-6.31,0.00,1 +95,Exit long,2025-03-11 07:00,M0P0Q1F0L1f0l0,225.3,1,226,-0.7,-0.31,0,0.1,0.04,-1.5,-0.66,-7.01,0.00,1 +95,Entry long,2025-03-11 06:00,M0P0Q1F0L0f0l0,226,1,226,-0.7,-0.31,0,0.1,0.04,-1.5,-0.66,-7.01,0.00,1 +96,Exit short,2025-03-11 16:00,M0P1Q0F1L0f0l0,227.3,1,225.3,-2,-0.89,0,0.14,0.06,-2.91,-1.29,-9.01,0.00,1 +96,Entry short,2025-03-11 07:00,M0P0Q1F0L1f0l0,225.3,1,225.3,-2,-0.89,0,0.14,0.06,-2.91,-1.29,-9.01,0.00,1 +97,Exit long,2025-03-11 17:00,M0P1Q0F0L0f0l0,227.16,1,227.3,-0.14,-0.06,0,0.15,0.07,-0.55,-0.24,-9.15,0.00,1 +97,Entry long,2025-03-11 16:00,M0P1Q0F1L0f0l0,227.3,1,227.3,-0.14,-0.06,0,0.15,0.07,-0.55,-0.24,-9.15,0.00,1 +98,Exit short,2025-03-11 18:00,M0P1Q0F0L0f0l0,226.64,1,227.16,0.52,0.23,0,0.71,0.31,-0.04,-0.02,-8.63,0.00,1 +98,Entry short,2025-03-11 17:00,M0P1Q0F0L0f0l0,227.16,1,227.16,0.52,0.23,0,0.71,0.31,-0.04,-0.02,-8.63,0.00,1 +99,Exit long,2025-03-11 19:00,M0P1Q0F0L0f0l0,226.64,1,226.64,0,0.00,0,0.31,0.14,-0.36,-0.16,-8.63,0.00,1 +99,Entry long,2025-03-11 18:00,M0P1Q0F0L0f0l0,226.64,1,226.64,0,0.00,0,0.31,0.14,-0.36,-0.16,-8.63,0.00,1 +100,Exit short,2025-03-11 20:00,M0P1Q0F0L0f0l0,225.49,1,226.64,1.15,0.51,0,1.26,0.56,-0.02,-0.01,-7.48,0.00,1 +100,Entry short,2025-03-11 19:00,M0P1Q0F0L0f0l0,226.64,1,226.64,1.15,0.51,0,1.26,0.56,-0.02,-0.01,-7.48,0.00,1 +101,Exit long,2025-03-11 21:00,M0P1Q0F0L0f0l0,222.06,1,225.49,-3.43,-1.52,0,0.35,0.16,-3.73,-1.65,-10.91,0.00,1 +101,Entry long,2025-03-11 20:00,M0P1Q0F0L0f0l0,225.49,1,225.49,-3.43,-1.52,0,0.35,0.16,-3.73,-1.65,-10.91,0.00,1 +102,Exit short,2025-03-11 22:00,M1P0Q0F0L0f1l0,221.06,1,222.06,1,0.45,0,2.04,0.92,-1.44,-0.65,-9.91,0.00,1 +102,Entry short,2025-03-11 21:00,M0P1Q0F0L0f0l0,222.06,1,222.06,1,0.45,0,2.04,0.92,-1.44,-0.65,-9.91,0.00,1 +103,Exit long,2025-03-11 23:00,M1P0Q0F0L0f0l0,221.13,1,221.06,0.07,0.03,0,1.08,0.49,-0.8,-0.36,-9.84,0.00,1 +103,Entry long,2025-03-11 22:00,M1P0Q0F0L0f1l0,221.06,1,221.06,0.07,0.03,0,1.08,0.49,-0.8,-0.36,-9.84,0.00,1 +104,Exit short,2025-03-12 00:00,M1P0Q0F0L0f0l0,218.99,1,221.13,2.14,0.97,0,2.69,1.22,0,0.00,-7.7,0.00,1 +104,Entry short,2025-03-11 23:00,M1P0Q0F0L0f0l0,221.13,1,221.13,2.14,0.97,0,2.69,1.22,0,0.00,-7.7,0.00,1 +105,Exit long,2025-03-12 01:00,M1P0Q0F0L0f0l0,218.3,1,218.99,-0.69,-0.32,0,0.54,0.25,-1.58,-0.72,-8.39,0.00,1 +105,Entry long,2025-03-12 00:00,M1P0Q0F0L0f0l0,218.99,1,218.99,-0.69,-0.32,0,0.54,0.25,-1.58,-0.72,-8.39,0.00,1 +106,Exit short,2025-03-12 02:00,M1P0Q0F0L0f0l0,222.16,1,218.3,-3.86,-1.77,0,0.02,0.01,-4.4,-2.02,-12.25,0.00,1 +106,Entry short,2025-03-12 01:00,M1P0Q0F0L0f0l0,218.3,1,218.3,-3.86,-1.77,0,0.02,0.01,-4.4,-2.02,-12.25,0.00,1 +107,Exit long,2025-03-12 03:00,M1P0Q0F0L0f0l1,220.78,1,222.16,-1.38,-0.62,0,1.15,0.52,-1.56,-0.70,-13.63,0.00,1 +107,Entry long,2025-03-12 02:00,M1P0Q0F0L0f0l0,222.16,1,222.16,-1.38,-0.62,0,1.15,0.52,-1.56,-0.70,-13.63,0.00,1 +108,Exit short,2025-03-12 04:00,M0P0Q1F0L0f0l0,220.41,1,220.78,0.37,0.17,0,0.57,0.26,-0.08,-0.04,-13.26,0.00,1 +108,Entry short,2025-03-12 03:00,M1P0Q0F0L0f0l1,220.78,1,220.78,0.37,0.17,0,0.57,0.26,-0.08,-0.04,-13.26,0.00,1 +109,Exit long,2025-03-12 05:00,M0P0Q1F0L0f0l0,220.51,1,220.41,0.1,0.05,0,0.19,0.09,-0.11,-0.05,-13.16,0.00,1 +109,Entry long,2025-03-12 04:00,M0P0Q1F0L0f0l0,220.41,1,220.41,0.1,0.05,0,0.19,0.09,-0.11,-0.05,-13.16,0.00,1 +110,Exit short,2025-03-12 06:00,M0P0Q1F0L0f0l0,221.21,1,220.51,-0.7,-0.32,0,0,0.00,-0.77,-0.35,-13.86,0.00,1 +110,Entry short,2025-03-12 05:00,M0P0Q1F0L0f0l0,220.51,1,220.51,-0.7,-0.32,0,0,0.00,-0.77,-0.35,-13.86,0.00,1 +111,Exit long,2025-03-12 07:00,M0P0Q1F0L1f0l0,220.81,1,221.21,-0.4,-0.18,0,0,0.00,-0.71,-0.32,-14.26,0.00,1 +111,Entry long,2025-03-12 06:00,M0P0Q1F0L0f0l0,221.21,1,221.21,-0.4,-0.18,0,0,0.00,-0.71,-0.32,-14.26,0.00,1 +112,Exit short,2025-03-12 16:00,M0P1Q0F1L0f0l0,220.56,1,220.81,0.25,0.11,0,1.31,0.59,-0.1,-0.05,-14.01,0.00,1 +112,Entry short,2025-03-12 07:00,M0P0Q1F0L1f0l0,220.81,1,220.81,0.25,0.11,0,1.31,0.59,-0.1,-0.05,-14.01,0.00,1 +113,Exit long,2025-03-12 17:00,M0P1Q0F0L0f0l0,220.25,1,220.56,-0.31,-0.14,0,0.42,0.19,-0.39,-0.18,-14.32,0.00,1 +113,Entry long,2025-03-12 16:00,M0P1Q0F1L0f0l0,220.56,1,220.56,-0.31,-0.14,0,0.42,0.19,-0.39,-0.18,-14.32,0.00,1 +114,Exit short,2025-03-12 18:00,M0P1Q0F0L0f0l0,220.18,1,220.25,0.07,0.03,0,0.38,0.17,-0.11,-0.05,-14.25,0.00,1 +114,Entry short,2025-03-12 17:00,M0P1Q0F0L0f0l0,220.25,1,220.25,0.07,0.03,0,0.38,0.17,-0.11,-0.05,-14.25,0.00,1 +115,Exit long,2025-03-12 19:00,M0P1Q0F0L0f0l0,220.36,1,220.18,0.18,0.08,0,0.71,0.32,0,0.00,-14.07,0.00,1 +115,Entry long,2025-03-12 18:00,M0P1Q0F0L0f0l0,220.18,1,220.18,0.18,0.08,0,0.71,0.32,0,0.00,-14.07,0.00,1 +116,Exit short,2025-03-12 20:00,M0P1Q0F0L0f0l0,221.7,1,220.36,-1.34,-0.61,0,0.01,0.00,-1.94,-0.88,-15.41,0.00,1 +116,Entry short,2025-03-12 19:00,M0P1Q0F0L0f0l0,220.36,1,220.36,-1.34,-0.61,0,0.01,0.00,-1.94,-0.88,-15.41,0.00,1 +117,Exit long,2025-03-12 21:00,M0P1Q0F0L0f0l0,221.43,1,221.7,-0.27,-0.12,0,0.64,0.29,-2.44,-1.10,-15.68,0.00,1 +117,Entry long,2025-03-12 20:00,M0P1Q0F0L0f0l0,221.7,1,221.7,-0.27,-0.12,0,0.64,0.29,-2.44,-1.10,-15.68,0.00,1 +118,Exit short,2025-03-12 22:00,M1P0Q0F0L0f1l0,216.14,1,221.43,5.29,2.39,0,5.43,2.45,-0.31,-0.14,-10.39,0.00,1 +118,Entry short,2025-03-12 21:00,M0P1Q0F0L0f0l0,221.43,1,221.43,5.29,2.39,0,5.43,2.45,-0.31,-0.14,-10.39,0.00,1 +119,Exit long,2025-03-12 23:00,M1P0Q0F0L0f0l0,217.77,1,216.14,1.63,0.75,0,1.74,0.81,-1.23,-0.57,-8.76,0.00,1 +119,Entry long,2025-03-12 22:00,M1P0Q0F0L0f1l0,216.14,1,216.14,1.63,0.75,0,1.74,0.81,-1.23,-0.57,-8.76,0.00,1 +120,Exit short,2025-03-13 00:00,M1P0Q0F0L0f0l0,217.24,1,217.77,0.53,0.24,0,0.89,0.41,-0.84,-0.39,-8.23,0.00,1 +120,Entry short,2025-03-12 23:00,M1P0Q0F0L0f0l0,217.77,1,217.77,0.53,0.24,0,0.89,0.41,-0.84,-0.39,-8.23,0.00,1 +121,Exit long,2025-03-13 01:00,M1P0Q0F0L0f0l0,216.08,1,217.24,-1.16,-0.53,0,0.99,0.46,-1.17,-0.54,-9.39,0.00,1 +121,Entry long,2025-03-13 00:00,M1P0Q0F0L0f0l0,217.24,1,217.24,-1.16,-0.53,0,0.99,0.46,-1.17,-0.54,-9.39,0.00,1 +122,Exit short,2025-03-13 02:00,M1P0Q0F0L0f0l0,216.43,1,216.08,-0.35,-0.16,0,0.26,0.12,-1.01,-0.47,-9.74,0.00,1 +122,Entry short,2025-03-13 01:00,M1P0Q0F0L0f0l0,216.08,1,216.08,-0.35,-0.16,0,0.26,0.12,-1.01,-0.47,-9.74,0.00,1 +123,Exit long,2025-03-13 03:00,M1P0Q0F0L0f0l1,216.94,1,216.43,0.51,0.24,0,0.84,0.39,-1.38,-0.64,-9.23,0.00,1 +123,Entry long,2025-03-13 02:00,M1P0Q0F0L0f0l0,216.43,1,216.43,0.51,0.24,0,0.84,0.39,-1.38,-0.64,-9.23,0.00,1 +124,Exit short,2025-03-13 04:00,M0P0Q1F0L0f0l0,217.07,1,216.94,-0.13,-0.06,0,0.37,0.17,-0.5,-0.23,-9.36,0.00,1 +124,Entry short,2025-03-13 03:00,M1P0Q0F0L0f0l1,216.94,1,216.94,-0.13,-0.06,0,0.37,0.17,-0.5,-0.23,-9.36,0.00,1 +125,Exit long,2025-03-13 05:00,M0P0Q1F0L0f0l0,217.31,1,217.07,0.24,0.11,0,0.24,0.11,-0.09,-0.04,-9.12,0.00,1 +125,Entry long,2025-03-13 04:00,M0P0Q1F0L0f0l0,217.07,1,217.07,0.24,0.11,0,0.24,0.11,-0.09,-0.04,-9.12,0.00,1 +126,Exit short,2025-03-13 06:00,M0P0Q1F0L0f0l0,217.2,1,217.31,0.11,0.05,0,0.33,0.15,-0.02,-0.01,-9.01,0.00,1 +126,Entry short,2025-03-13 05:00,M0P0Q1F0L0f0l0,217.31,1,217.31,0.11,0.05,0,0.33,0.15,-0.02,-0.01,-9.01,0.00,1 +127,Exit long,2025-03-13 07:00,M0P0Q1F0L1f0l0,217.41,1,217.2,0.21,0.10,0,0.29,0.13,-0.05,-0.02,-8.8,0.00,1 +127,Entry long,2025-03-13 06:00,M0P0Q1F0L0f0l0,217.2,1,217.2,0.21,0.10,0,0.29,0.13,-0.05,-0.02,-8.8,0.00,1 +128,Exit short,2025-03-13 16:00,M0P1Q0F1L0f0l0,215.92,1,217.41,1.49,0.69,0,2.29,1.05,0,0.00,-7.31,0.00,1 +128,Entry short,2025-03-13 07:00,M0P0Q1F0L1f0l0,217.41,1,217.41,1.49,0.69,0,2.29,1.05,0,0.00,-7.31,0.00,1 +129,Exit long,2025-03-13 17:00,M0P1Q0F0L0f0l0,216.96,1,215.92,1.04,0.48,0,1.06,0.49,-0.01,0.00,-6.27,0.00,1 +129,Entry long,2025-03-13 16:00,M0P1Q0F1L0f0l0,215.92,1,215.92,1.04,0.48,0,1.06,0.49,-0.01,0.00,-6.27,0.00,1 +130,Exit short,2025-03-13 18:00,M0P1Q0F0L0f0l0,216.3,1,216.96,0.66,0.30,0,0.66,0.30,-0.02,-0.01,-5.61,0.00,1 +130,Entry short,2025-03-13 17:00,M0P1Q0F0L0f0l0,216.96,1,216.96,0.66,0.30,0,0.66,0.30,-0.02,-0.01,-5.61,0.00,1 +131,Exit long,2025-03-13 19:00,M0P1Q0F0L0f0l0,216.22,1,216.3,-0.08,-0.04,0,0.16,0.07,-0.65,-0.30,-5.69,0.00,1 +131,Entry long,2025-03-13 18:00,M0P1Q0F0L0f0l0,216.3,1,216.3,-0.08,-0.04,0,0.16,0.07,-0.65,-0.30,-5.69,0.00,1 +132,Exit short,2025-03-13 20:00,M0P1Q0F0L0f0l0,215.9,1,216.22,0.32,0.15,0,0.36,0.17,-0.48,-0.22,-5.37,0.00,1 +132,Entry short,2025-03-13 19:00,M0P1Q0F0L0f0l0,216.22,1,216.22,0.32,0.15,0,0.36,0.17,-0.48,-0.22,-5.37,0.00,1 +133,Exit long,2025-03-13 21:00,M0P1Q0F0L0f0l0,215.29,1,215.9,-0.61,-0.28,0,0.91,0.42,-1.53,-0.71,-5.98,0.00,1 +133,Entry long,2025-03-13 20:00,M0P1Q0F0L0f0l0,215.9,1,215.9,-0.61,-0.28,0,0.91,0.42,-1.53,-0.71,-5.98,0.00,1 +134,Exit short,2025-03-13 22:00,M1P0Q0F0L0f1l0,214.23,1,215.29,1.06,0.49,0,1.63,0.76,-0.64,-0.30,-4.92,0.00,1 +134,Entry short,2025-03-13 21:00,M0P1Q0F0L0f0l0,215.29,1,215.29,1.06,0.49,0,1.63,0.76,-0.64,-0.30,-4.92,0.00,1 +135,Exit long,2025-03-13 23:00,M1P0Q0F0L0f0l0,212.07,1,214.23,-2.16,-1.01,0,0.57,0.27,-2.23,-1.04,-7.08,0.00,1 +135,Entry long,2025-03-13 22:00,M1P0Q0F0L0f1l0,214.23,1,214.23,-2.16,-1.01,0,0.57,0.27,-2.23,-1.04,-7.08,0.00,1 +136,Exit short,2025-03-14 00:00,M1P0Q0F0L0f0l0,211.5,1,212.07,0.57,0.27,0,0.94,0.44,-0.86,-0.41,-6.51,0.00,1 +136,Entry short,2025-03-13 23:00,M1P0Q0F0L0f0l0,212.07,1,212.07,0.57,0.27,0,0.94,0.44,-0.86,-0.41,-6.51,0.00,1 +137,Exit long,2025-03-14 01:00,M1P0Q0F0L0f0l0,211.09,1,211.5,-0.41,-0.19,0,0.19,0.09,-1,-0.47,-6.92,0.00,1 +137,Entry long,2025-03-14 00:00,M1P0Q0F0L0f0l0,211.5,1,211.5,-0.41,-0.19,0,0.19,0.09,-1,-0.47,-6.92,0.00,1 +138,Exit short,2025-03-14 02:00,M1P0Q0F0L0f0l0,211.92,1,211.09,-0.83,-0.39,0,0.05,0.02,-1.35,-0.64,-7.75,0.00,1 +138,Entry short,2025-03-14 01:00,M1P0Q0F0L0f0l0,211.09,1,211.09,-0.83,-0.39,0,0.05,0.02,-1.35,-0.64,-7.75,0.00,1 +139,Exit long,2025-03-14 03:00,M1P0Q0F0L0f0l1,209.71,1,211.92,-2.21,-1.04,0,0.37,0.17,-3.49,-1.65,-9.96,0.00,1 +139,Entry long,2025-03-14 02:00,M1P0Q0F0L0f0l0,211.92,1,211.92,-2.21,-1.04,0,0.37,0.17,-3.49,-1.65,-9.96,0.00,1 +140,Exit short,2025-03-14 04:00,M0P0Q1F0L0f0l0,209.81,1,209.71,-0.1,-0.05,0,0.1,0.05,-0.35,-0.17,-10.06,0.00,1 +140,Entry short,2025-03-14 03:00,M1P0Q0F0L0f0l1,209.71,1,209.71,-0.1,-0.05,0,0.1,0.05,-0.35,-0.17,-10.06,0.00,1 +141,Exit long,2025-03-14 05:00,M0P0Q1F0L0f0l0,209.9,1,209.81,0.09,0.04,0,0.12,0.06,-0.11,-0.05,-9.97,0.00,1 +141,Entry long,2025-03-14 04:00,M0P0Q1F0L0f0l0,209.81,1,209.81,0.09,0.04,0,0.12,0.06,-0.11,-0.05,-9.97,0.00,1 +142,Exit short,2025-03-14 06:00,M0P0Q1F0L0f0l0,210.5,1,209.9,-0.6,-0.29,0,0,0.00,-0.85,-0.40,-10.57,0.00,1 +142,Entry short,2025-03-14 05:00,M0P0Q1F0L0f0l0,209.9,1,209.9,-0.6,-0.29,0,0,0.00,-0.85,-0.40,-10.57,0.00,1 +143,Exit long,2025-03-14 07:00,M0P0Q1F0L1f0l0,210.2,1,210.5,-0.3,-0.14,0,0.05,0.02,-0.4,-0.19,-10.87,0.00,1 +143,Entry long,2025-03-14 06:00,M0P0Q1F0L0f0l0,210.5,1,210.5,-0.3,-0.14,0,0.05,0.02,-0.4,-0.19,-10.87,0.00,1 +144,Exit short,2025-03-14 16:00,M0P1Q0F1L0f0l0,210.82,1,210.2,-0.62,-0.29,0,0,0.00,-1.04,-0.49,-11.49,0.00,1 +144,Entry short,2025-03-14 07:00,M0P0Q1F0L1f0l0,210.2,1,210.2,-0.62,-0.29,0,0,0.00,-1.04,-0.49,-11.49,0.00,1 +145,Exit long,2025-03-14 17:00,M0P1Q0F0L0f0l0,210.56,1,210.82,-0.26,-0.12,0,0.11,0.05,-0.59,-0.28,-11.75,0.00,1 +145,Entry long,2025-03-14 16:00,M0P1Q0F1L0f0l0,210.82,1,210.82,-0.26,-0.12,0,0.11,0.05,-0.59,-0.28,-11.75,0.00,1 +146,Exit short,2025-03-14 18:00,M0P1Q0F0L0f0l0,210.8,1,210.56,-0.24,-0.11,0,0.22,0.10,-0.32,-0.15,-11.99,0.00,1 +146,Entry short,2025-03-14 17:00,M0P1Q0F0L0f0l0,210.56,1,210.56,-0.24,-0.11,0,0.22,0.10,-0.32,-0.15,-11.99,0.00,1 +147,Exit long,2025-03-14 19:00,M0P1Q0F0L0f0l0,210.92,1,210.8,0.12,0.06,0,0.28,0.13,-0.27,-0.13,-11.87,0.00,1 +147,Entry long,2025-03-14 18:00,M0P1Q0F0L0f0l0,210.8,1,210.8,0.12,0.06,0,0.28,0.13,-0.27,-0.13,-11.87,0.00,1 +148,Exit short,2025-03-14 20:00,M0P1Q0F0L0f0l0,211.4,1,210.92,-0.48,-0.23,0,0.59,0.28,-0.48,-0.23,-12.35,0.00,1 +148,Entry short,2025-03-14 19:00,M0P1Q0F0L0f0l0,210.92,1,210.92,-0.48,-0.23,0,0.59,0.28,-0.48,-0.23,-12.35,0.00,1 +149,Exit long,2025-03-14 21:00,M0P1Q0F0L0f0l0,212.49,1,211.4,1.09,0.52,0,2.02,0.96,-0.8,-0.38,-11.26,0.00,1 +149,Entry long,2025-03-14 20:00,M0P1Q0F0L0f0l0,211.4,1,211.4,1.09,0.52,0,2.02,0.96,-0.8,-0.38,-11.26,0.00,1 +150,Exit short,2025-03-14 22:00,M1P0Q0F0L0f1l0,211.77,1,212.49,0.72,0.34,0,2.91,1.37,0,0.00,-10.54,0.00,1 +150,Entry short,2025-03-14 21:00,M0P1Q0F0L0f0l0,212.49,1,212.49,0.72,0.34,0,2.91,1.37,0,0.00,-10.54,0.00,1 +151,Exit long,2025-03-14 23:00,M1P0Q0F0L0f0l0,213.28,1,211.77,1.51,0.71,0,2.19,1.03,-0.57,-0.27,-9.03,0.00,1 +151,Entry long,2025-03-14 22:00,M1P0Q0F0L0f1l0,211.77,1,211.77,1.51,0.71,0,2.19,1.03,-0.57,-0.27,-9.03,0.00,1 +152,Exit short,2025-03-15 00:00,M1P0Q0F0L0f0l0,212.89,1,213.28,0.39,0.18,0,1.2,0.56,-0.01,0.00,-8.64,0.00,1 +152,Entry short,2025-03-14 23:00,M1P0Q0F0L0f0l0,213.28,1,213.28,0.39,0.18,0,1.2,0.56,-0.01,0.00,-8.64,0.00,1 +153,Exit long,2025-03-15 01:00,M1P0Q0F0L0f0l0,212.4,1,212.89,-0.49,-0.23,0,0.61,0.29,-0.93,-0.44,-9.13,0.00,1 +153,Entry long,2025-03-15 00:00,M1P0Q0F0L0f0l0,212.89,1,212.89,-0.49,-0.23,0,0.61,0.29,-0.93,-0.44,-9.13,0.00,1 +154,Exit short,2025-03-15 02:00,M1P0Q0F0L0f0l0,212.62,1,212.4,-0.22,-0.10,0,1.63,0.77,-0.29,-0.14,-9.35,0.00,1 +154,Entry short,2025-03-15 01:00,M1P0Q0F0L0f0l0,212.4,1,212.4,-0.22,-0.10,0,1.63,0.77,-0.29,-0.14,-9.35,0.00,1 +155,Exit long,2025-03-15 03:00,M1P0Q0F0L0f0l1,213.28,1,212.62,0.66,0.31,0,1.32,0.62,-0.13,-0.06,-8.69,0.00,1 +155,Entry long,2025-03-15 02:00,M1P0Q0F0L0f0l0,212.62,1,212.62,0.66,0.31,0,1.32,0.62,-0.13,-0.06,-8.69,0.00,1 +156,Exit short,2025-03-15 04:00,M0P0Q1F0L0f0l0,213.24,1,213.28,0.04,0.02,0,0.15,0.07,-0.21,-0.10,-8.65,0.00,1 +156,Entry short,2025-03-15 03:00,M1P0Q0F0L0f0l1,213.28,1,213.28,0.04,0.02,0,0.15,0.07,-0.21,-0.10,-8.65,0.00,1 +157,Exit long,2025-03-15 05:00,M0P0Q1F0L0f0l0,213.18,1,213.24,-0.06,-0.03,0,0.06,0.03,-0.06,-0.03,-8.71,0.00,1 +157,Entry long,2025-03-15 04:00,M0P0Q1F0L0f0l0,213.24,1,213.24,-0.06,-0.03,0,0.06,0.03,-0.06,-0.03,-8.71,0.00,1 +158,Exit short,2025-03-15 06:00,M0P0Q1F0L0f0l0,213.28,1,213.18,-0.1,-0.05,0,0.05,0.02,-0.1,-0.05,-8.81,0.00,1 +158,Entry short,2025-03-15 05:00,M0P0Q1F0L0f0l0,213.18,1,213.18,-0.1,-0.05,0,0.05,0.02,-0.1,-0.05,-8.81,0.00,1 +159,Exit long,2025-03-15 07:00,M0P0Q1F0L1f0l0,213.23,1,213.28,-0.05,-0.02,0,0.06,0.03,-0.08,-0.04,-8.86,0.00,1 +159,Entry long,2025-03-15 06:00,M0P0Q1F0L0f0l0,213.28,1,213.28,-0.05,-0.02,0,0.06,0.03,-0.08,-0.04,-8.86,0.00,1 +160,Exit short,2025-03-15 07:00,,213.23,1,213.23,0,0.00,0,0,0.00,0,0.00,-8.86,0.00,0 +160,Entry short,2025-03-15 07:00,M0P0Q1F0L1f0l0,213.23,1,213.23,0,0.00,0,0,0.00,0,0.00,-8.86,0.00,0 \ No newline at end of file diff --git a/tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/metrics.json b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/metrics.json new file mode 100644 index 0000000..2579e1e --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "cgim-flags-aapl-60-reg", + "symbol": "NASDAQ:AAPL", + "interval": "60", + "from": "2025-03-03", + "to": "2025-03-15", + "deepBacktesting": true, + "trades": 70, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tvTradesCsvHash": "163434a171c27026622b65d0777118120f7660a2a97b2e320091aaf1c9bc6a57", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.75013", + "symbol": "NASDAQ:AAPL", + "interval": "60", + "requestedRange": { + "from": 1740960000000, + "to": 1741996800000 + }, + "returnedRange": { + "from": 1741012200000, + "to": 1741980600000 + }, + "rangeProof": "covered", + "rawFrameSha256": "0d5a5b6f5f9ed0f4542476ebd85a549e746b9c324bd529bf51db77ab4ab664f4", + "decodedReportSha256": "e2eeb5bf37a891c6d6f09e0cc558a66a5350652ebf21b63db2aa1bafed6aeb7b", + "closedTrades": 70, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-25T23:04:06.782Z" +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/strategy.pine b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/strategy.pine new file mode 100644 index 0000000..0740da1 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/strategy.pine @@ -0,0 +1,22 @@ +// CG-ISMARKET: which session.* flags does TradingView set on each chart bar? +// process_orders_on_close=true: every bar reverses the position at its own +// close, so every trade's ENTRY is one chart bar (TradingView dates a +// process_orders_on_close fill at the bar's open) and the entry's Signal (its +// comment) carries the flags TradingView evaluated on that bar, a letter and a +// digit each: M session.ismarket, P session.ispremarket, Q session.ispostmarket, +// F session.isfirstbar, L session.islastbar, f session.isfirstbar_regular, +// l session.islastbar_regular (1 true, 0 false). +//@version=6 +strategy("CG-ISMARKET session flags", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +bit(bool x) => x ? "1" : "0" +flag = "M" + bit(session.ismarket) + "P" + bit(session.ispremarket) + "Q" + bit(session.ispostmarket) + + "F" + bit(session.isfirstbar) + "L" + bit(session.islastbar) + + "f" + bit(session.isfirstbar_regular) + "l" + bit(session.islastbar_regular) +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/tv_trades.csv b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/tv_trades.csv new file mode 100644 index 0000000..50c938a --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-aapl-60-reg/tv_trades.csv @@ -0,0 +1,141 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-03-03 23:30,M1P0Q0F0L0f0l0,241.2,1,241.51,-0.31,-0.13,0,1.11,0.46,-0.37,-0.15,-0.31,0.00,1 +1,Entry long,2025-03-03 22:30,M1P0Q0F1L0f1l0,241.51,1,241.51,-0.31,-0.13,0,1.11,0.46,-0.37,-0.15,-0.31,0.00,1 +2,Exit short,2025-03-04 00:30,M1P0Q0F0L0f0l0,242.55,1,241.2,-1.35,-0.56,0,0.52,0.22,-1.35,-0.56,-1.66,0.00,1 +2,Entry short,2025-03-03 23:30,M1P0Q0F0L0f0l0,241.2,1,241.2,-1.35,-0.56,0,0.52,0.22,-1.35,-0.56,-1.66,0.00,1 +3,Exit long,2025-03-04 01:30,M1P0Q0F0L0f0l0,240.98,1,242.55,-1.57,-0.65,0,0.43,0.18,-1.81,-0.75,-3.23,0.00,1 +3,Entry long,2025-03-04 00:30,M1P0Q0F0L0f0l0,242.55,1,242.55,-1.57,-0.65,0,0.43,0.18,-1.81,-0.75,-3.23,0.00,1 +4,Exit short,2025-03-04 02:30,M1P0Q0F0L0f0l0,241.15,1,240.98,-0.17,-0.07,0,0.52,0.22,-0.9,-0.37,-3.4,0.00,1 +4,Entry short,2025-03-04 01:30,M1P0Q0F0L0f0l0,240.98,1,240.98,-0.17,-0.07,0,0.52,0.22,-0.9,-0.37,-3.4,0.00,1 +5,Exit long,2025-03-04 03:30,M1P0Q0F0L0f0l0,236.87,1,241.15,-4.28,-1.77,0,0.86,0.36,-4.52,-1.87,-7.68,0.00,1 +5,Entry long,2025-03-04 02:30,M1P0Q0F0L0f0l0,241.15,1,241.15,-4.28,-1.77,0,0.86,0.36,-4.52,-1.87,-7.68,0.00,1 +6,Exit short,2025-03-04 04:30,M1P0Q0F0L1f0l1,238.14,1,236.87,-1.27,-0.54,0,0.76,0.32,-1.77,-0.75,-8.95,0.00,1 +6,Entry short,2025-03-04 03:30,M1P0Q0F0L0f0l0,236.87,1,236.87,-1.27,-0.54,0,0.76,0.32,-1.77,-0.75,-8.95,0.00,1 +7,Exit long,2025-03-04 22:30,M1P0Q0F1L0f1l0,238.41,1,238.14,0.27,0.11,0,1.26,0.53,-1.8,-0.76,-8.68,0.00,1 +7,Entry long,2025-03-04 04:30,M1P0Q0F0L1f0l1,238.14,1,238.14,0.27,0.11,0,1.26,0.53,-1.8,-0.76,-8.68,0.00,1 +8,Exit short,2025-03-04 23:30,M1P0Q0F0L0f0l0,238.63,1,238.41,-0.22,-0.09,0,0.74,0.31,-1.41,-0.59,-8.9,0.00,1 +8,Entry short,2025-03-04 22:30,M1P0Q0F1L0f1l0,238.41,1,238.41,-0.22,-0.09,0,0.74,0.31,-1.41,-0.59,-8.9,0.00,1 +9,Exit long,2025-03-05 00:30,M1P0Q0F0L0f0l0,238.17,1,238.63,-0.46,-0.19,0,1.44,0.60,-0.5,-0.21,-9.36,0.00,1 +9,Entry long,2025-03-04 23:30,M1P0Q0F0L0f0l0,238.63,1,238.63,-0.46,-0.19,0,1.44,0.60,-0.5,-0.21,-9.36,0.00,1 +10,Exit short,2025-03-05 01:30,M1P0Q0F0L0f0l0,236.74,1,238.17,1.43,0.60,0,2.01,0.84,0,0.00,-7.93,0.00,1 +10,Entry short,2025-03-05 00:30,M1P0Q0F0L0f0l0,238.17,1,238.17,1.43,0.60,0,2.01,0.84,0,0.00,-7.93,0.00,1 +11,Exit long,2025-03-05 02:30,M1P0Q0F0L0f0l0,238.28,1,236.74,1.54,0.65,0,1.83,0.77,-0.29,-0.12,-6.39,0.00,1 +11,Entry long,2025-03-05 01:30,M1P0Q0F0L0f0l0,236.74,1,236.74,1.54,0.65,0,1.83,0.77,-0.29,-0.12,-6.39,0.00,1 +12,Exit short,2025-03-05 03:30,M1P0Q0F0L0f0l0,238.7,1,238.28,-0.42,-0.18,0,0.29,0.12,-0.97,-0.41,-6.81,0.00,1 +12,Entry short,2025-03-05 02:30,M1P0Q0F0L0f0l0,238.28,1,238.28,-0.42,-0.18,0,0.29,0.12,-0.97,-0.41,-6.81,0.00,1 +13,Exit long,2025-03-05 04:30,M1P0Q0F0L1f0l1,236.05,1,238.7,-2.65,-1.11,0,0.02,0.01,-4.02,-1.68,-9.46,0.00,1 +13,Entry long,2025-03-05 03:30,M1P0Q0F0L0f0l0,238.7,1,238.7,-2.65,-1.11,0,0.02,0.01,-4.02,-1.68,-9.46,0.00,1 +14,Exit short,2025-03-05 22:30,M1P0Q0F1L0f1l0,230.93,1,236.05,5.12,2.17,0,5.5,2.33,0,0.00,-4.34,0.00,1 +14,Entry short,2025-03-05 04:30,M1P0Q0F0L1f0l1,236.05,1,236.05,5.12,2.17,0,5.5,2.33,0,0.00,-4.34,0.00,1 +15,Exit long,2025-03-05 23:30,M1P0Q0F0L0f0l0,230.64,1,230.93,-0.29,-0.13,0,2.27,0.98,-0.79,-0.34,-4.63,0.00,1 +15,Entry long,2025-03-05 22:30,M1P0Q0F1L0f1l0,230.93,1,230.93,-0.29,-0.13,0,2.27,0.98,-0.79,-0.34,-4.63,0.00,1 +16,Exit short,2025-03-06 00:30,M1P0Q0F0L0f0l0,234.51,1,230.64,-3.87,-1.68,0,1.41,0.61,-4.02,-1.74,-8.5,0.00,1 +16,Entry short,2025-03-05 23:30,M1P0Q0F0L0f0l0,230.64,1,230.64,-3.87,-1.68,0,1.41,0.61,-4.02,-1.74,-8.5,0.00,1 +17,Exit long,2025-03-06 01:30,M1P0Q0F0L0f0l0,234.68,1,234.51,0.17,0.07,0,1.03,0.44,-0.51,-0.22,-8.33,0.00,1 +17,Entry long,2025-03-06 00:30,M1P0Q0F0L0f0l0,234.51,1,234.51,0.17,0.07,0,1.03,0.44,-0.51,-0.22,-8.33,0.00,1 +18,Exit short,2025-03-06 02:30,M1P0Q0F0L0f0l0,235.74,1,234.68,-1.06,-0.45,0,0.58,0.25,-1.87,-0.80,-9.39,0.00,1 +18,Entry short,2025-03-06 01:30,M1P0Q0F0L0f0l0,234.68,1,234.68,-1.06,-0.45,0,0.58,0.25,-1.87,-0.80,-9.39,0.00,1 +19,Exit long,2025-03-06 03:30,M1P0Q0F0L0f0l0,236.06,1,235.74,0.32,0.14,0,0.71,0.30,-0.58,-0.25,-9.07,0.00,1 +19,Entry long,2025-03-06 02:30,M1P0Q0F0L0f0l0,235.74,1,235.74,0.32,0.14,0,0.71,0.30,-0.58,-0.25,-9.07,0.00,1 +20,Exit short,2025-03-06 04:30,M1P0Q0F0L1f0l1,235.67,1,236.06,0.39,0.17,0,1,0.42,-0.29,-0.12,-8.68,0.00,1 +20,Entry short,2025-03-06 03:30,M1P0Q0F0L0f0l0,236.06,1,236.06,0.39,0.17,0,1,0.42,-0.29,-0.12,-8.68,0.00,1 +21,Exit long,2025-03-06 22:30,M1P0Q0F1L0f1l0,236.47,1,235.67,0.8,0.34,0,1.5,0.64,-2.11,-0.90,-7.88,0.00,1 +21,Entry long,2025-03-06 04:30,M1P0Q0F0L1f0l1,235.67,1,235.67,0.8,0.34,0,1.5,0.64,-2.11,-0.90,-7.88,0.00,1 +22,Exit short,2025-03-06 23:30,M1P0Q0F0L0f0l0,236.81,1,236.47,-0.34,-0.14,0,0.24,0.10,-1.38,-0.58,-8.22,0.00,1 +22,Entry short,2025-03-06 22:30,M1P0Q0F1L0f1l0,236.47,1,236.47,-0.34,-0.14,0,0.24,0.10,-1.38,-0.58,-8.22,0.00,1 +23,Exit long,2025-03-07 00:30,M1P0Q0F0L0f0l0,234.4,1,236.81,-2.41,-1.02,0,0.54,0.23,-2.77,-1.17,-10.63,0.00,1 +23,Entry long,2025-03-06 23:30,M1P0Q0F0L0f0l0,236.81,1,236.81,-2.41,-1.02,0,0.54,0.23,-2.77,-1.17,-10.63,0.00,1 +24,Exit short,2025-03-07 01:30,M1P0Q0F0L0f0l0,234.29,1,234.4,0.11,0.05,0,0.34,0.15,-1.02,-0.44,-10.52,0.00,1 +24,Entry short,2025-03-07 00:30,M1P0Q0F0L0f0l0,234.4,1,234.4,0.11,0.05,0,0.34,0.15,-1.02,-0.44,-10.52,0.00,1 +25,Exit long,2025-03-07 02:30,M1P0Q0F0L0f0l0,233.7,1,234.29,-0.59,-0.25,0,0.89,0.38,-0.89,-0.38,-11.11,0.00,1 +25,Entry long,2025-03-07 01:30,M1P0Q0F0L0f0l0,234.29,1,234.29,-0.59,-0.25,0,0.89,0.38,-0.89,-0.38,-11.11,0.00,1 +26,Exit short,2025-03-07 03:30,M1P0Q0F0L0f0l0,235.18,1,233.7,-1.48,-0.63,0,0.37,0.16,-2.31,-0.99,-12.59,0.00,1 +26,Entry short,2025-03-07 02:30,M1P0Q0F0L0f0l0,233.7,1,233.7,-1.48,-0.63,0,0.37,0.16,-2.31,-0.99,-12.59,0.00,1 +27,Exit long,2025-03-07 04:30,M1P0Q0F0L1f0l1,235.37,1,235.18,0.19,0.08,0,0.58,0.25,-0.73,-0.31,-12.4,0.00,1 +27,Entry long,2025-03-07 03:30,M1P0Q0F0L0f0l0,235.18,1,235.18,0.19,0.08,0,0.58,0.25,-0.73,-0.31,-12.4,0.00,1 +28,Exit short,2025-03-07 22:30,M1P0Q0F1L0f1l0,238.3,1,235.37,-2.93,-1.24,0,0.6,0.25,-4.05,-1.72,-15.33,0.00,1 +28,Entry short,2025-03-07 04:30,M1P0Q0F0L1f0l1,235.37,1,235.37,-2.93,-1.24,0,0.6,0.25,-4.05,-1.72,-15.33,0.00,1 +29,Exit long,2025-03-07 23:30,M1P0Q0F0L0f0l0,239.02,1,238.3,0.72,0.30,0,1.85,0.78,-1.29,-0.54,-14.61,0.00,1 +29,Entry long,2025-03-07 22:30,M1P0Q0F1L0f1l0,238.3,1,238.3,0.72,0.30,0,1.85,0.78,-1.29,-0.54,-14.61,0.00,1 +30,Exit short,2025-03-08 00:30,M1P0Q0F0L0f0l0,239.29,1,239.02,-0.27,-0.11,0,1.15,0.48,-0.67,-0.28,-14.88,0.00,1 +30,Entry short,2025-03-07 23:30,M1P0Q0F0L0f0l0,239.02,1,239.02,-0.27,-0.11,0,1.15,0.48,-0.67,-0.28,-14.88,0.00,1 +31,Exit long,2025-03-08 01:30,M1P0Q0F0L0f0l0,240.43,1,239.29,1.14,0.48,0,2.08,0.87,-0.47,-0.20,-13.74,0.00,1 +31,Entry long,2025-03-08 00:30,M1P0Q0F0L0f0l0,239.29,1,239.29,1.14,0.48,0,2.08,0.87,-0.47,-0.20,-13.74,0.00,1 +32,Exit short,2025-03-08 02:30,M1P0Q0F0L0f0l0,239.66,1,240.43,0.77,0.32,0,1.85,0.77,-0.48,-0.20,-12.97,0.00,1 +32,Entry short,2025-03-08 01:30,M1P0Q0F0L0f0l0,240.43,1,240.43,0.77,0.32,0,1.85,0.77,-0.48,-0.20,-12.97,0.00,1 +33,Exit long,2025-03-08 03:30,M1P0Q0F0L0f0l0,238.81,1,239.66,-0.85,-0.35,0,0.2,0.08,-1.59,-0.66,-13.82,0.00,1 +33,Entry long,2025-03-08 02:30,M1P0Q0F0L0f0l0,239.66,1,239.66,-0.85,-0.35,0,0.2,0.08,-1.59,-0.66,-13.82,0.00,1 +34,Exit short,2025-03-08 04:30,M1P0Q0F0L1f0l1,239.08,1,238.81,-0.27,-0.11,0,0.87,0.36,-0.95,-0.40,-14.09,0.00,1 +34,Entry short,2025-03-08 03:30,M1P0Q0F0L0f0l0,238.81,1,238.81,-0.27,-0.11,0,0.87,0.36,-0.95,-0.40,-14.09,0.00,1 +35,Exit long,2025-03-10 21:30,M1P0Q0F1L0f1l0,228.57,1,239.08,-10.51,-4.40,0,0,0.00,-10.56,-4.42,-24.6,0.00,1 +35,Entry long,2025-03-08 04:30,M1P0Q0F0L1f0l1,239.08,1,239.08,-10.51,-4.40,0,0,0.00,-10.56,-4.42,-24.6,0.00,1 +36,Exit short,2025-03-10 22:30,M1P0Q0F0L0f0l0,226.52,1,228.57,2.05,0.90,0,3.28,1.44,-0.91,-0.40,-22.55,0.00,1 +36,Entry short,2025-03-10 21:30,M1P0Q0F1L0f1l0,228.57,1,228.57,2.05,0.90,0,3.28,1.44,-0.91,-0.40,-22.55,0.00,1 +37,Exit long,2025-03-10 23:30,M1P0Q0F0L0f0l0,225.4,1,226.52,-1.12,-0.49,0,0.75,0.33,-2.29,-1.01,-23.67,0.00,1 +37,Entry long,2025-03-10 22:30,M1P0Q0F0L0f0l0,226.52,1,226.52,-1.12,-0.49,0,0.75,0.33,-2.29,-1.01,-23.67,0.00,1 +38,Exit short,2025-03-11 00:30,M1P0Q0F0L0f0l0,225.19,1,225.4,0.21,0.09,0,1.07,0.47,-1.29,-0.57,-23.46,0.00,1 +38,Entry short,2025-03-10 23:30,M1P0Q0F0L0f0l0,225.4,1,225.4,0.21,0.09,0,1.07,0.47,-1.29,-0.57,-23.46,0.00,1 +39,Exit long,2025-03-11 01:30,M1P0Q0F0L0f0l0,226.59,1,225.19,1.4,0.62,0,1.76,0.78,-0.33,-0.15,-22.06,0.00,1 +39,Entry long,2025-03-11 00:30,M1P0Q0F0L0f0l0,225.19,1,225.19,1.4,0.62,0,1.76,0.78,-0.33,-0.15,-22.06,0.00,1 +40,Exit short,2025-03-11 02:30,M1P0Q0F0L0f0l0,226.98,1,226.59,-0.39,-0.17,0,2.17,0.96,-0.92,-0.41,-22.45,0.00,1 +40,Entry short,2025-03-11 01:30,M1P0Q0F0L0f0l0,226.59,1,226.59,-0.39,-0.17,0,2.17,0.96,-0.92,-0.41,-22.45,0.00,1 +41,Exit long,2025-03-11 03:30,M1P0Q0F0L1f0l1,227.53,1,226.98,0.55,0.24,0,1.67,0.74,-0.48,-0.21,-21.9,0.00,1 +41,Entry long,2025-03-11 02:30,M1P0Q0F0L0f0l0,226.98,1,226.98,0.55,0.24,0,1.67,0.74,-0.48,-0.21,-21.9,0.00,1 +42,Exit short,2025-03-11 21:30,M1P0Q0F1L0f1l0,222.52,1,227.53,5.01,2.20,0,7.51,3.30,0,0.00,-16.89,0.00,1 +42,Entry short,2025-03-11 03:30,M1P0Q0F0L1f0l1,227.53,1,227.53,5.01,2.20,0,7.51,3.30,0,0.00,-16.89,0.00,1 +43,Exit long,2025-03-11 22:30,M1P0Q0F0L0f0l0,221.01,1,222.52,-1.51,-0.68,0,0.37,0.17,-1.93,-0.87,-18.4,0.00,1 +43,Entry long,2025-03-11 21:30,M1P0Q0F1L0f1l0,222.52,1,222.52,-1.51,-0.68,0,0.37,0.17,-1.93,-0.87,-18.4,0.00,1 +44,Exit short,2025-03-11 23:30,M1P0Q0F0L0f0l0,218.51,1,221.01,2.5,1.13,0,2.51,1.14,-0.73,-0.33,-15.9,0.00,1 +44,Entry short,2025-03-11 22:30,M1P0Q0F0L0f0l0,221.01,1,221.01,2.5,1.13,0,2.51,1.14,-0.73,-0.33,-15.9,0.00,1 +45,Exit long,2025-03-12 00:30,M1P0Q0F0L0f0l0,217.73,1,218.51,-0.78,-0.36,0,1.37,0.63,-1.1,-0.50,-16.68,0.00,1 +45,Entry long,2025-03-11 23:30,M1P0Q0F0L0f0l0,218.51,1,218.51,-0.78,-0.36,0,1.37,0.63,-1.1,-0.50,-16.68,0.00,1 +46,Exit short,2025-03-12 01:30,M1P0Q0F0L0f0l0,220.54,1,217.73,-2.81,-1.29,0,0.04,0.02,-3.25,-1.49,-19.49,0.00,1 +46,Entry short,2025-03-12 00:30,M1P0Q0F0L0f0l0,217.73,1,217.73,-2.81,-1.29,0,0.04,0.02,-3.25,-1.49,-19.49,0.00,1 +47,Exit long,2025-03-12 02:30,M1P0Q0F0L0f0l0,221.79,1,220.54,1.25,0.57,0,2.77,1.26,-0.45,-0.20,-18.24,0.00,1 +47,Entry long,2025-03-12 01:30,M1P0Q0F0L0f0l0,220.54,1,220.54,1.25,0.57,0,2.77,1.26,-0.45,-0.20,-18.24,0.00,1 +48,Exit short,2025-03-12 03:30,M1P0Q0F0L1f0l1,220.78,1,221.79,1.01,0.46,0,1.19,0.54,-0.28,-0.13,-17.23,0.00,1 +48,Entry short,2025-03-12 02:30,M1P0Q0F0L0f0l0,221.79,1,221.79,1.01,0.46,0,1.19,0.54,-0.28,-0.13,-17.23,0.00,1 +49,Exit long,2025-03-12 21:30,M1P0Q0F1L0f1l0,218.99,1,220.78,-1.79,-0.81,0,0.97,0.44,-1.95,-0.88,-19.02,0.00,1 +49,Entry long,2025-03-12 03:30,M1P0Q0F0L1f0l1,220.78,1,220.78,-1.79,-0.81,0,0.97,0.44,-1.95,-0.88,-19.02,0.00,1 +50,Exit short,2025-03-12 22:30,M1P0Q0F0L0f0l0,216.41,1,218.99,2.58,1.18,0,4.08,1.86,-0.38,-0.17,-16.44,0.00,1 +50,Entry short,2025-03-12 21:30,M1P0Q0F1L0f1l0,218.99,1,218.99,2.58,1.18,0,4.08,1.86,-0.38,-0.17,-16.44,0.00,1 +51,Exit long,2025-03-12 23:30,M1P0Q0F0L0f0l0,218.39,1,216.41,1.98,0.91,0,2.2,1.02,-0.05,-0.02,-14.46,0.00,1 +51,Entry long,2025-03-12 22:30,M1P0Q0F0L0f0l0,216.41,1,216.41,1.98,0.91,0,2.2,1.02,-0.05,-0.02,-14.46,0.00,1 +52,Exit short,2025-03-13 00:30,M1P0Q0F0L0f0l0,218.18,1,218.39,0.21,0.10,0,1.51,0.69,-0.22,-0.10,-14.25,0.00,1 +52,Entry short,2025-03-12 23:30,M1P0Q0F0L0f0l0,218.39,1,218.39,0.21,0.10,0,1.51,0.69,-0.22,-0.10,-14.25,0.00,1 +53,Exit long,2025-03-13 01:30,M1P0Q0F0L0f0l0,216.1,1,218.18,-2.08,-0.95,0,0.04,0.02,-2.26,-1.04,-16.33,0.00,1 +53,Entry long,2025-03-13 00:30,M1P0Q0F0L0f0l0,218.18,1,218.18,-2.08,-0.95,0,0.04,0.02,-2.26,-1.04,-16.33,0.00,1 +54,Exit short,2025-03-13 02:30,M1P0Q0F0L0f0l0,215.64,1,216.1,0.46,0.21,0,1.05,0.49,-0.99,-0.46,-15.87,0.00,1 +54,Entry short,2025-03-13 01:30,M1P0Q0F0L0f0l0,216.1,1,216.1,0.46,0.21,0,1.05,0.49,-0.99,-0.46,-15.87,0.00,1 +55,Exit long,2025-03-13 03:30,M1P0Q0F0L1f0l1,216.94,1,215.64,1.3,0.60,0,1.63,0.76,-0.36,-0.17,-14.57,0.00,1 +55,Entry long,2025-03-13 02:30,M1P0Q0F0L0f0l0,215.64,1,215.64,1.3,0.60,0,1.63,0.76,-0.36,-0.17,-14.57,0.00,1 +56,Exit short,2025-03-13 21:30,M1P0Q0F1L0f1l0,214.29,1,216.94,2.65,1.22,0,2.69,1.24,0,0.00,-11.92,0.00,1 +56,Entry short,2025-03-13 03:30,M1P0Q0F0L1f0l1,216.94,1,216.94,2.65,1.22,0,2.69,1.24,0,0.00,-11.92,0.00,1 +57,Exit long,2025-03-13 22:30,M1P0Q0F0L0f0l0,214.06,1,214.29,-0.23,-0.11,0,0.52,0.24,-0.66,-0.31,-12.15,0.00,1 +57,Entry long,2025-03-13 21:30,M1P0Q0F1L0f1l0,214.29,1,214.29,-0.23,-0.11,0,0.52,0.24,-0.66,-0.31,-12.15,0.00,1 +58,Exit short,2025-03-13 23:30,M1P0Q0F0L0f0l0,211.93,1,214.06,2.13,1.00,0,2.51,1.17,-0.29,-0.14,-10.02,0.00,1 +58,Entry short,2025-03-13 22:30,M1P0Q0F0L0f0l0,214.06,1,214.06,2.13,1.00,0,2.51,1.17,-0.29,-0.14,-10.02,0.00,1 +59,Exit long,2025-03-14 00:30,M1P0Q0F0L0f0l0,211.16,1,211.93,-0.77,-0.36,0,1,0.47,-1.24,-0.59,-10.79,0.00,1 +59,Entry long,2025-03-13 23:30,M1P0Q0F0L0f0l0,211.93,1,211.93,-0.77,-0.36,0,1,0.47,-1.24,-0.59,-10.79,0.00,1 +60,Exit short,2025-03-14 01:30,M1P0Q0F0L0f0l0,212.3,1,211.16,-1.14,-0.54,0,0.66,0.31,-1.28,-0.61,-11.93,0.00,1 +60,Entry short,2025-03-14 00:30,M1P0Q0F0L0f0l0,211.16,1,211.16,-1.14,-0.54,0,0.66,0.31,-1.28,-0.61,-11.93,0.00,1 +61,Exit long,2025-03-14 02:30,M1P0Q0F0L0f0l0,210.59,1,212.3,-1.71,-0.81,0,0.14,0.07,-1.94,-0.91,-13.64,0.00,1 +61,Entry long,2025-03-14 01:30,M1P0Q0F0L0f0l0,212.3,1,212.3,-1.71,-0.81,0,0.14,0.07,-1.94,-0.91,-13.64,0.00,1 +62,Exit short,2025-03-14 03:30,M1P0Q0F0L1f0l1,209.71,1,210.59,0.88,0.42,0,2.16,1.03,-0.12,-0.06,-12.76,0.00,1 +62,Entry short,2025-03-14 02:30,M1P0Q0F0L0f0l0,210.59,1,210.59,0.88,0.42,0,2.16,1.03,-0.12,-0.06,-12.76,0.00,1 +63,Exit long,2025-03-14 21:30,M1P0Q0F1L0f1l0,210.4,1,209.71,0.69,0.33,0,3.71,1.77,-0.13,-0.06,-12.07,0.00,1 +63,Entry long,2025-03-14 03:30,M1P0Q0F0L1f0l1,209.71,1,209.71,0.69,0.33,0,3.71,1.77,-0.13,-0.06,-12.07,0.00,1 +64,Exit short,2025-03-14 22:30,M1P0Q0F0L0f0l0,211.95,1,210.4,-1.55,-0.74,0,0.41,0.19,-1.96,-0.93,-13.62,0.00,1 +64,Entry short,2025-03-14 21:30,M1P0Q0F1L0f1l0,210.4,1,210.4,-1.55,-0.74,0,0.41,0.19,-1.96,-0.93,-13.62,0.00,1 +65,Exit long,2025-03-14 23:30,M1P0Q0F0L0f0l0,212.25,1,211.95,0.3,0.14,0,2.01,0.95,-0.03,-0.01,-13.32,0.00,1 +65,Entry long,2025-03-14 22:30,M1P0Q0F0L0f0l0,211.95,1,211.95,0.3,0.14,0,2.01,0.95,-0.03,-0.01,-13.32,0.00,1 +66,Exit short,2025-03-15 00:30,M1P0Q0F0L0f0l0,212.31,1,212.25,-0.06,-0.03,0,0.17,0.08,-1.25,-0.59,-13.38,0.00,1 +66,Entry short,2025-03-14 23:30,M1P0Q0F0L0f0l0,212.25,1,212.25,-0.06,-0.03,0,0.17,0.08,-1.25,-0.59,-13.38,0.00,1 +67,Exit long,2025-03-15 01:30,M1P0Q0F0L0f0l0,211.25,1,212.31,-1.06,-0.50,0,0.37,0.17,-1.54,-0.73,-14.44,0.00,1 +67,Entry long,2025-03-15 00:30,M1P0Q0F0L0f0l0,212.31,1,212.31,-1.06,-0.50,0,0.37,0.17,-1.54,-0.73,-14.44,0.00,1 +68,Exit short,2025-03-15 02:30,M1P0Q0F0L0f0l0,212.91,1,211.25,-1.66,-0.79,0,0,0.00,-2.15,-1.02,-16.1,0.00,1 +68,Entry short,2025-03-15 01:30,M1P0Q0F0L0f0l0,211.25,1,211.25,-1.66,-0.79,0,0,0.00,-2.15,-1.02,-16.1,0.00,1 +69,Exit long,2025-03-15 03:30,M1P0Q0F0L1f0l1,213.28,1,212.91,0.37,0.17,0,1.03,0.48,-0.18,-0.08,-15.73,0.00,1 +69,Entry long,2025-03-15 02:30,M1P0Q0F0L0f0l0,212.91,1,212.91,0.37,0.17,0,1.03,0.48,-0.18,-0.08,-15.73,0.00,1 +70,Exit short,2025-03-15 03:30,,213.28,1,213.28,0,0.00,0,0,0.00,0,0.00,-15.73,0.00,0 +70,Entry short,2025-03-15 03:30,M1P0Q0F0L1f0l1,213.28,1,213.28,0,0.00,0,0,0.00,0,0.00,-15.73,0.00,0 \ No newline at end of file From ca7c3e3b5aaf41d3e8da83d179a6487687378560 Mon Sep 17 00:00:00 2001 From: luisleo526 Date: Sat, 26 Sep 2026 07:20:03 +0800 Subject: [PATCH 6/8] Ask the engine's session calendar for a chart bar's open time The previous step read the kernel's per-bar fact session_ismarket_. An independent review found, and this lane's extended-hours NASDAQ:AAPL tape proves, that the fact asks the bar's grid interval rather than the bar: after a 09:30-16:00 session the 16:00 bar shares the 15:30 interval, so the fact put it in market (and out of post-market) on all 10 days, where TradingView flags it post-market (M0Q1). TradingView flags a bar by its own open time: the extended chart's 09:00 bar, which holds the 09:30 open, is pre-market. A chart bar's session.ismarket now calls the emitted helper _pf_session_ismarket (codegen/session_market.py): a D/W/M bar is in market; otherwise the engine's native_calendar answers for the bar's open time, on the calendar the kernel builds for the run from the same session and timezone, resolved once per session day as the kernel does. That keeps the Sunday-evening opens under ":23456" and the "0000-2400" day in market, as on the six-chart tapes, and puts the 16:00 bar out of market, as on the AAPL tape; the time-of-day predicate was already right there. It needs no timeframe, so a one-bar run, which the engine gives no session facts, is answered too. ispremarket / ispostmarket keep "in market is in neither". A request.security payload still reads the time-of-day predicates at the security bar's open time, and now warns that they can differ from TradingView. The helper and script_tf_ are reserved emitter names. The public-corpus TUs that change are still the five that read session.*; each books byte-identical trades before and after on the corpus 15m feed (default and declared 0930-1600 America/New_York syminfo) and a 60m resample with the declared session. The per-session-day memo keeps their run time at the pre-lane build's. Co-Authored-By: Claude Opus 5.5 (1M context) --- AGENTS.md | 5 +- CLAUDE.md | 5 +- pineforge_codegen/codegen/base.py | 16 +- pineforge_codegen/codegen/helpers.py | 2 +- pineforge_codegen/codegen/security.py | 3 + pineforge_codegen/codegen/session_market.py | 58 +++++++ pineforge_codegen/codegen/visit_expr.py | 56 ++++--- tests/test_e2e_session_ismarket.py | 166 ++++++++++++-------- 8 files changed, 222 insertions(+), 89 deletions(-) create mode 100644 pineforge_codegen/codegen/session_market.py diff --git a/AGENTS.md b/AGENTS.md index 207ab81..f56f01a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -151,6 +151,9 @@ pineforge_codegen/ │ enum is too coarse for. ├── tv_number_format.py TU-local numeric formatter emitted for │ str.tostring / str.format / log.*. + ├── session_market.py TU-local session.ismarket helper: the + │ engine's session calendar asked at a + │ chart bar's open time. ├── input.py input.* / `input()` lowering. └── helpers.py CPP_RESERVED + small text helpers. tests/ @@ -264,7 +267,7 @@ taxonomy: | Color na conversions | Packed colors use `int64_t` storage, including typed scalar, array and matrix paths, so their `na()` sentinel survives. `color.new` preserves an `na` base; `na` transparency becomes 100; an `na` `color.rgb` channel becomes zero. The covered TradingView color probes are pinned by `tests/test_na_truthiness.py`. | | Collection history warning | `array`/`map` `id[k]` still lowers to current collection element access because the engine has no per-bar collection ID history. Codegen warns on every such read and keeps the existing lowering; a missing index is not represented faithfully. | | syminfo na-gap warning | `SUPPORTED_SYMINFO` = every `SYMINFO_MEMBER_MAP` key, but members whose emission is `na()` or a `get_syminfo_metadata(...)` lookup (root/pricescale/minmove/mincontract/current_contract/expiration_date/isin/sector/industry + fundamentals/recommendations/target_price_*) form `_SYMINFO_SILENT_GAP_FIELDS` (derived from the emission table, so new na-accept fields can't drift out): every read WARNS that the value is na until a data feed injects it. | -| Session flags | `session.ismarket` reads the kernel's in-session fact of the script bar (`NativeDecisionContext::in_session`, read off the session day the bar belongs to), which the host stores as `session_ismarket_` before every source callback, and a bar in market is in neither `session.ispremarket` nor `session.ispostmarket` (bars out of market keep the 04:00-to-open and close-to-20:00 windows); `session.isfirstbar` / `islastbar` (and `_regular`) read its session-day facts. The time-of-day predicates missed every Sunday-evening open under a `:23456` day mask and every `0000-2400` bar, and read in-market bars of an overnight session as pre- or post-market (98-117 bars of each ES1! / XAUUSD tape pre-market), where TradingView's tapes (`tests/fixtures/session_ismarket`) flag all 1,138 bars of six 60-minute charts in market and none in an extended session. A `request.security` payload, whose bars carry no host fact, and a batch of fewer than two bars given no timeframe (the engine presents no facts) keep the predicates. `tests/test_e2e_session_ismarket.py` replays every tape. | +| Session flags | A chart bar's `session.ismarket` asks the engine's session calendar (`native_calendar::session_day_at`, on the calendar the kernel builds from the same session and timezone) whether it holds the bar's open time; a D/W/M bar is in market. TradingView flags a bar by its open time (on extended-hours NASDAQ:AAPL 60 the 09:00 bar, which holds the 09:30 open, is pre-market and the 16:00 bar post-market) and reads a day mask per session day. The emitted `_pf_session_ismarket` helper (`codegen/session_market.py`) replaced the time-of-day predicate, which missed every Sunday-evening open under a `:23456` mask and every `0000-2400` bar; the kernel's per-bar `session_ismarket_` asks the bar's grid interval and puts that 16:00 bar in market. A bar in market is in neither `session.ispremarket` nor `session.ispostmarket`; off it, the 04:00-to-open and close-to-20:00 windows decide (the predicates read 98-117 in-market bars of each ES1! / XAUUSD tape as pre-market). Inside a `request.security` payload the three keep the predicates at the security bar's open time and WARN. `session.isfirstbar` / `islastbar` (and `_regular`) read the kernel's session-day facts, unchanged; on the extended-hours tape they differ from TradingView (one session string, the grid interval), as the test pins. `tests/test_e2e_session_ismarket.py` replays 14 TradingView tapes (`tests/fixtures/session_ismarket`). | When extending codegen with a new Pine builtin: add to the corresponding diff --git a/CLAUDE.md b/CLAUDE.md index 78aa782..b9eb54f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -151,6 +151,9 @@ pineforge_codegen/ │ enum is too coarse for. ├── tv_number_format.py TU-local numeric formatter emitted for │ str.tostring / str.format / log.*. + ├── session_market.py TU-local session.ismarket helper: the + │ engine's session calendar asked at a + │ chart bar's open time. ├── input.py input.* / `input()` lowering. └── helpers.py CPP_RESERVED + small text helpers. tests/ @@ -264,7 +267,7 @@ taxonomy: | Color na conversions | Packed colors use `int64_t` storage, including typed scalar, array and matrix paths, so their `na()` sentinel survives. `color.new` preserves an `na` base; `na` transparency becomes 100; an `na` `color.rgb` channel becomes zero. The covered TradingView color probes are pinned by `tests/test_na_truthiness.py`. | | Collection history warning | `array`/`map` `id[k]` still lowers to current collection element access because the engine has no per-bar collection ID history. Codegen warns on every such read and keeps the existing lowering; a missing index is not represented faithfully. | | syminfo na-gap warning | `SUPPORTED_SYMINFO` = every `SYMINFO_MEMBER_MAP` key, but members whose emission is `na()` or a `get_syminfo_metadata(...)` lookup (root/pricescale/minmove/mincontract/current_contract/expiration_date/isin/sector/industry + fundamentals/recommendations/target_price_*) form `_SYMINFO_SILENT_GAP_FIELDS` (derived from the emission table, so new na-accept fields can't drift out): every read WARNS that the value is na until a data feed injects it. | -| Session flags | `session.ismarket` reads the kernel's in-session fact of the script bar (`NativeDecisionContext::in_session`, read off the session day the bar belongs to), which the host stores as `session_ismarket_` before every source callback, and a bar in market is in neither `session.ispremarket` nor `session.ispostmarket` (bars out of market keep the 04:00-to-open and close-to-20:00 windows); `session.isfirstbar` / `islastbar` (and `_regular`) read its session-day facts. The time-of-day predicates missed every Sunday-evening open under a `:23456` day mask and every `0000-2400` bar, and read in-market bars of an overnight session as pre- or post-market (98-117 bars of each ES1! / XAUUSD tape pre-market), where TradingView's tapes (`tests/fixtures/session_ismarket`) flag all 1,138 bars of six 60-minute charts in market and none in an extended session. A `request.security` payload, whose bars carry no host fact, and a batch of fewer than two bars given no timeframe (the engine presents no facts) keep the predicates. `tests/test_e2e_session_ismarket.py` replays every tape. | +| Session flags | A chart bar's `session.ismarket` asks the engine's session calendar (`native_calendar::session_day_at`, on the calendar the kernel builds from the same session and timezone) whether it holds the bar's open time; a D/W/M bar is in market. TradingView flags a bar by its open time (on extended-hours NASDAQ:AAPL 60 the 09:00 bar, which holds the 09:30 open, is pre-market and the 16:00 bar post-market) and reads a day mask per session day. The emitted `_pf_session_ismarket` helper (`codegen/session_market.py`) replaced the time-of-day predicate, which missed every Sunday-evening open under a `:23456` mask and every `0000-2400` bar; the kernel's per-bar `session_ismarket_` asks the bar's grid interval and puts that 16:00 bar in market. A bar in market is in neither `session.ispremarket` nor `session.ispostmarket`; off it, the 04:00-to-open and close-to-20:00 windows decide (the predicates read 98-117 in-market bars of each ES1! / XAUUSD tape as pre-market). Inside a `request.security` payload the three keep the predicates at the security bar's open time and WARN. `session.isfirstbar` / `islastbar` (and `_regular`) read the kernel's session-day facts, unchanged; on the extended-hours tape they differ from TradingView (one session string, the grid interval), as the test pins. `tests/test_e2e_session_ismarket.py` replays 14 TradingView tapes (`tests/fixtures/session_ismarket`). | When extending codegen with a new Pine builtin: add to the corresponding diff --git a/pineforge_codegen/codegen/base.py b/pineforge_codegen/codegen/base.py index 51ddca8..0e60bb6 100644 --- a/pineforge_codegen/codegen/base.py +++ b/pineforge_codegen/codegen/base.py @@ -109,6 +109,7 @@ class _StableVarCtorLiteral: # small naming/walk utilities can be shared with future visitor mixins. from .helpers import CPP_RESERVED, NamingHelper, na_preserving_int_cast, pine_truth_cast from .constant_fold import fold_numeric_expression +from .session_market import SESSION_MARKET_CPP # TypeInferer mixin owns the ~15 type-spec / C++-type inference helpers # previously scattered across this module; see ``codegen/types.py``. @@ -320,9 +321,14 @@ def func_var_storage(owner: str, raw_name: str) -> str: self._func_var_members_set: set[str] = set() self._precalc_loop_active: bool = False # Nonzero while the expression visitor lowers a request.security - # payload (``_build_security_expr``): a chart-bar-only host fact such - # as ``session_ismarket_`` does not describe the security bar. + # payload (``_build_security_expr``): the session helper below reads + # the chart's timeframe, which does not describe the security bar. self._security_payload_depth: int = 0 + # Set when a chart expression calls ``_pf_session_ismarket``; the + # helper is emitted before the class once the whole TU is lowered. + self._uses_session_market: bool = False + # session.* reads inside a request.security payload already warned. + self._warned_security_session_sites: set[int] = set() # Top-level lazy-edge TA sites hoisted to every-bar evaluation for the # statement currently being lowered: FuncCall id -> local name, and # Subscript id -> ``_hist_call_*`` member (see ``ta.py``). @@ -4118,6 +4124,9 @@ def generate(self) -> str: # per-callsite instances are declared below inside GeneratedStrategy # and therefore join the automatic COOF checkpoint inventory. self._emit_lazy_source_clock_helper(lines) + # The chart-bar session helper, inserted here once the class is + # lowered and known to call it (codegen/session_market.py). + _session_market_at = len(lines) # 2. Open class lines.append("class GeneratedStrategy : public pineforge::source::PineStrategyHost {") @@ -4725,6 +4734,9 @@ def allocate_legacy_flag(base: str) -> str: # 13. extern "C" interface self._emit_extern_c(lines) + if self._uses_session_market: + lines[_session_market_at:_session_market_at] = [SESSION_MARKET_CPP] + return "\n".join(lines) # ------------------------------------------------------------------ diff --git a/pineforge_codegen/codegen/helpers.py b/pineforge_codegen/codegen/helpers.py index 8bd4ae4..83dfac0 100644 --- a/pineforge_codegen/codegen/helpers.py +++ b/pineforge_codegen/codegen/helpers.py @@ -195,7 +195,7 @@ def color_alpha_cast(value_cpp: str) -> str: live_position_size pending_order_count market_admission_journal pine_time pine_time_close pine_time_tradingday pine_random pine_runtime_error pine_enum_str_at pine_session_ismarket - pine_session_ispostmarket pine_session_ispremarket session_ismarket_ + pine_session_ispostmarket pine_session_ispremarket _pf_session_ismarket script_tf_ tf_change tf_is_daily tf_is_intraday tf_is_monthly tf_is_seconds tf_is_weekly tf_multiplier tf_to_seconds time_close timestamp main_period diff --git a/pineforge_codegen/codegen/security.py b/pineforge_codegen/codegen/security.py index b18e7c5..151a28f 100644 --- a/pineforge_codegen/codegen/security.py +++ b/pineforge_codegen/codegen/security.py @@ -31,6 +31,9 @@ identity → index in ``ctx.ta_call_sites``. - ``self._func_names`` (``set[str]``): user-defined function names. - ``self._func_info_map`` (``dict[str, FuncInfo]``): name -> FuncInfo. +- ``self._security_payload_depth`` (``int``): raised around the + ``_visit_expr`` fallback of ``_build_security_expr``; the expression + visitor keeps the session.* time-of-day predicates while it is nonzero. Sibling-mixin methods consumed via ``self``: diff --git a/pineforge_codegen/codegen/session_market.py b/pineforge_codegen/codegen/session_market.py new file mode 100644 index 0000000..650a92b --- /dev/null +++ b/pineforge_codegen/codegen/session_market.py @@ -0,0 +1,58 @@ +"""C++ helper emitted for a chart bar's session.ismarket. + +TradingView flags a bar by its own open time: on an extended-hours +NASDAQ:AAPL 60 chart the 09:00 bar, which holds the 09:30 open, is +pre-market and the 16:00 bar post-market. It reads a session's day mask per +session day, so an overnight session's Sunday-evening open belongs to +Monday's, and a ``0000-2400`` day is in market throughout; a D/W/M bar holds +whole session days (``tests/test_e2e_session_ismarket.py`` replays the tapes). + +The engine's session calendar answers that instant: ``native_calendar``'s +session day at the bar's open, on the calendar the kernel builds for the run +from the same session and timezone (the adapter reads an empty session as +``24x7`` and an empty timezone as ``UTC``), resolved once per session day as +the kernel resolves it. The time-of-day predicate ``pine_session_*`` tests the +instant's own weekday and does not parse ``2400``; the kernel's per-bar fact +``session_ismarket_`` asks the bar's grid interval, which a 16:00 bar after a +09:30-16:00 session shares with 15:30. The answer depends on the session, the +timezone and the instant only, so the parsed calendar and the last session day +are kept per thread. A session the calendar cannot parse, which the kernel +would not run, keeps the predicate. +""" + +SESSION_MARKET_CPP = r""" +static inline bool _pf_session_ismarket(const std::string& session, + const std::string& timezone, + const std::string& chart_tf, + int64_t bar_ms) { + if (tf_is_daily_or_higher(chart_tf)) return true; + struct Memo { + std::string session; + std::string timezone; + std::optional calendar; + std::optional day; + bool parsed = false; + }; + thread_local Memo memo; + if (!memo.parsed || memo.session != session || memo.timezone != timezone) { + memo.session = session; + memo.timezone = timezone; + memo.calendar = native_calendar::parse_session( + session.empty() ? std::string_view("24x7") : std::string_view(session), + timezone.empty() ? std::string_view("UTC") : std::string_view(timezone)); + memo.day.reset(); + memo.parsed = true; + } + if (!memo.calendar) return pine_session_ismarket(session, timezone, bar_ms); + if (memo.day && memo.day->holds(bar_ms)) return memo.day->in_session_at(bar_ms); + try { + auto day = native_calendar::session_day_at(*memo.calendar, bar_ms); + if (!day) return false; + const bool in_market = day->in_session_at(bar_ms); + if (day->holds(bar_ms)) memo.day = std::move(day); + return in_market; + } catch (...) { + return pine_session_ismarket(session, timezone, bar_ms); + } +} +""" diff --git a/pineforge_codegen/codegen/visit_expr.py b/pineforge_codegen/codegen/visit_expr.py index be6df75..138b76f 100644 --- a/pineforge_codegen/codegen/visit_expr.py +++ b/pineforge_codegen/codegen/visit_expr.py @@ -851,33 +851,45 @@ def _visit_member_access(self, node: MemberAccess) -> str: return 'std::string("regular")' if node.member == "extended": return 'std::string("extended")' - # session.is* predicates backed by engine session_ismarket_ etc. - # session.isfirstbar_regular / islastbar_regular are aliased to - # their non-_regular counterparts (engine has one session string; - # see session_time.hpp limitation comment). + # session.isfirstbar / islastbar read the kernel's session-day + # facts; session.isfirstbar_regular / islastbar_regular are + # aliased to their non-_regular counterparts (engine has one + # session string; see session_time.hpp limitation comment). if node.member in ("ismarket", "ispremarket", "ispostmarket"): - # session.ismarket is the kernel's in-session fact of the - # script bar (NativeDecisionContext::in_session, read off - # the session day the bar belongs to), which the host - # stores as session_ismarket_ before every source - # callback. The time-of-day predicates test each instant's - # own weekday and window: ismarket missed the Sunday-evening - # open of a ":23456" session and every "0000-2400" bar, and - # ispremarket / ispostmarket held on in-market bars of an - # overnight session, where TradingView's tapes flag every - # bar in market and none in an extended session + # A chart bar is in market when the engine's session + # calendar holds its open time (codegen/session_market.py). + # The time-of-day predicates test each instant's own + # weekday and window: ismarket missed the Sunday-evening + # open of a ":23456" session and every "0000-2400" bar, + # and ispremarket / ispostmarket held on in-market bars of + # an overnight session, where TradingView's tapes flag + # every bar in market and none in an extended session # (tests/test_e2e_session_ismarket.py). A bar in market is # in neither extended session; off it, the windows decide. - # A request.security payload runs on its own bars, which - # carry no such fact, so it keeps the predicates at the - # security bar's time. So does a batch of fewer than two - # bars given no timeframe: the engine detects none - # (script_tf_ stays empty) and presents no session facts. - bar = "(syminfo_.session, syminfo_.timezone, current_bar_.timestamp)" - predicate = f"pine_session_{node.member}{bar}" + # A request.security payload runs on its own bars, whose + # timeframe the helper does not know, so it keeps the + # predicates at the security bar's time, with a warning. + args = "(syminfo_.session, syminfo_.timezone, current_bar_.timestamp)" + predicate = f"pine_session_{node.member}{args}" if self._security_payload_depth: + if id(node) not in self._warned_security_session_sites: + self._warned_security_session_sites.add(id(node)) + extended = ("" if node.member == "ismarket" else + ", and an in-market bar of an overnight " + "session can read as pre- or post-market") + self._codegen_warning( + node, + f"session.{node.member} inside request.security is " + "the time-of-day predicate at the security bar's open " + "time, which can differ from TradingView: it tests a " + "session's day mask on that instant's own weekday and " + f"does not read \"2400\"{extended}. On the chart the " + "flag asks the engine's session calendar.", + ) return predicate - ismarket = f"(script_tf_.empty() ? pine_session_ismarket{bar} : session_ismarket_)" + self._uses_session_market = True + ismarket = ("_pf_session_ismarket(syminfo_.session, syminfo_.timezone, " + "script_tf_, current_bar_.timestamp)") if node.member == "ismarket": return ismarket return f"(!{ismarket} && {predicate})" diff --git a/tests/test_e2e_session_ismarket.py b/tests/test_e2e_session_ismarket.py index da960ca..fb1c2db 100644 --- a/tests/test_e2e_session_ismarket.py +++ b/tests/test_e2e_session_ismarket.py @@ -1,44 +1,45 @@ """The session.* flags are TradingView's, as its tapes prove. -TradingView flags every one of the 1,138 bars of six 60-minute charts in market -and none in an extended session (``fixtures/session_ismarket``: CME_MINI:ES1! -across both 2025 US DST switches and the Thanksgiving week, OANDA:EURUSD, -OANDA:XAUUSD and BINANCE:ETHUSDT.P; the engine lane H-MEASURE's -session.ismarket tapes ``hm-g236-*`` and this lane's every-flag tapes -``cgim-flags-*`` of the same windows). Each probe reverses its position at the -close of every bar (``process_orders_on_close``), so each Entry row is one -chart bar, dated at its open, and its Signal carries the flags TradingView +TradingView's own session flags on every bar of eight 60-minute charts +(``fixtures/session_ismarket``): CME_MINI:ES1! across both 2025 US DST +switches and the Thanksgiving week, OANDA:EURUSD, OANDA:XAUUSD and +BINANCE:ETHUSDT.P (the engine lane H-MEASURE's session.ismarket tapes +``hm-g236-*`` and this lane's every-flag tapes ``cgim-flags-*`` of the same +windows: all 1,138 bars in market, none in an extended session), and +NASDAQ:AAPL with and without extended hours. Each probe reverses its position +at the close of every bar (``process_orders_on_close``), so each Entry row is +one chart bar, dated at its open, and its Signal carries the flags TradingView evaluated there: ``M1`` in market, ``M0`` not, and so on (see the README). -The engine's source host stores the kernel's in-session fact of the script bar -(``NativeDecisionContext::in_session``, read off the session day the bar -belongs to) as ``session_ismarket_`` before every source callback, and codegen -reads it; a bar in market is in neither extended session. The pre-lane -lowering, time-of-day predicates such as +TradingView flags a bar by its own open time, asked of the session day the +instant belongs to: the extended-hours 09:00 bar, which holds the 09:30 open, +is pre-market and the 16:00 bar post-market, while a ``:23456`` day mask names +trading dates, so an overnight session's Sunday-evening open is Monday's. +Codegen asks the engine's session calendar for the bar's open +(``codegen/session_market.py``); a bar in market is in neither extended +session. The pre-lane lowering, time-of-day predicates such as ``pine_session_ismarket(syminfo_.session, syminfo_.timezone, time)``, tests each instant's own weekday and window: it read every Sunday-evening open of a -``:23456`` session (the session day it opens is Monday's) and every bar of -``0000-2400`` as out of market, and the in-market bars of an overnight session -from 04:00 to its open as pre-market and from its close to 20:00 as -post-market. session.isfirstbar / islastbar (and their ``_regular`` twins) -already read the kernel's session-day facts. +``:23456`` session and every bar of ``0000-2400`` as out of market, and the +in-market bars of an overnight session from 04:00 to its open as pre-market +and from its close to 20:00 as post-market. session.isfirstbar / islastbar +(and their ``_regular`` twins) read the kernel's session-day facts, which +this lane leaves as they are; the extended-hours tape pins where they differ. Each tape is replayed end to end -- ``transpile_json``, the built runtime, ``run_strategy.py`` with the session and timezone as runtime overrides -- on flat bars stamped at the tape's entry times, plus one bar an hour after the -last: the flags are a function of a bar's time and the symbol's session and -timezone only, and every tape's session day goes on past its window. The +last: the flags are a function of the bars' times and the symbol's session +and timezone only, and every tape's session day goes on past its window. The tape's own probe runs with a ``@pf-trace`` of every flag, under each session spelling H-MEASURE measured: the campaign's lane facts, the same sessions with TradingView's weekday mask, and a 24-hour day spelled ``0000-2400`` and ``0000-0000``. The pre-lane build (``LEGACY``) is replayed beside it and misses exactly the pinned bars. -A ``request.security`` payload is evaluated on its own bars, for which the -host holds no session fact: it keeps the time-of-day predicates at the -security bar's time, so its values are the pre-lane build's. So does a batch -of one bar given no timeframe, where the engine detects none and presents no -facts. +A ``request.security`` payload is evaluated on its own bars, whose timeframe +the chart's helper does not know: it keeps the time-of-day predicates at the +security bar's time, so its values are the pre-lane build's. """ from __future__ import annotations @@ -67,7 +68,8 @@ LEGACY = "b0ed4967b3b5ab7aea80fea3edc783b16b04b16e" CHARTS = ("es1-60-dst-mar", "es1-60-dst-nov", "es1-60-thanksgiving", "eurusd-60-dst-mar", "xauusd-60-dst-mar", "eth-60-24x7") -TAPES = tuple(f"{kind}-{chart}" for kind in ("hm-g236", "cgim-flags") for chart in CHARTS) +TAPES = tuple(f"{kind}-{chart}" for kind in ("hm-g236", "cgim-flags") for chart in CHARTS) + ( + "cgim-flags-aapl-60-ext", "cgim-flags-aapl-60-reg") FLAGS = {"M": "ismarket", "P": "ispremarket", "Q": "ispostmarket", "F": "isfirstbar", "L": "islastbar", "f": "isfirstbar_regular", "l": "islastbar_regular"} @@ -83,6 +85,9 @@ class Case: # flag letter -> bars where the pre-lane build was not TradingView's flag legacy: dict[str, int] = field(hash=False) legacy_sunday: int = 0 # of its session.ismarket misses, those on a local Sunday + # flag letter -> bars where the kernel's session-day facts are not + # TradingView's, in both builds (see EXTENDED) + engine: dict[str, int] = field(default_factory=dict, hash=False) @property def key(self) -> str: @@ -119,7 +124,21 @@ def _cases(chart: str, session: str, timezone: str, hm: dict[str, int], # TradingView's spelling "0000-0000" (both: always). _cases("eth-60-24x7", "0000-2400", "UTC", {"M": 97}, {"M": 97}, 24), _cases("eth-60-24x7", "0000-0000", "UTC", {}, {}), -) for case in cases) +) for case in cases) + ( + # NASDAQ:AAPL's regular session, whose extended hours TradingView reads as + # the 04:00-09:30 pre-market and 16:00-20:00 post-market windows. + Case("cgim-flags-aapl-60-reg", "0930-1600", "America/New_York", {}), + Case("cgim-flags-aapl-60-ext", "0930-1600", "America/New_York", {}, + engine={"F": 20, "L": 20, "l": 20}), +) +# On the extended-hours chart TradingView's isfirstbar / islastbar are the +# extended day's 04:00 and 19:00 bars and the _regular twins the regular +# day's 10:00 and 15:00 bars. The engine holds one session string, so +# isfirstbar is isfirstbar_regular (10:00: right for f, wrong for F on both +# bars), and its session-day facts ask a bar's grid interval, which the 16:00 +# bar shares with the 15:30 open of the regular day's last interval: islastbar +# and islastbar_regular both land on 16:00. +EXTENDED = "cgim-flags-aapl-60-ext" SECURITY_CASE = next(case for case in CASES if case.key == "cgim-flags-es1-60-dst-mar@1700-1600:23456") SECURITY_TRACE = "".join( f'\nsecurity_{name} = request.security(syminfo.tickerid, "60", session.{name})' @@ -178,6 +197,7 @@ def _overrides(case: Case) -> dict: @dataclass class Replay: cpp: str + diagnostics: list[dict] trades: dict[str, bytes] traces: dict[str, list[dict]] @@ -193,7 +213,8 @@ def _replay(engine: Path, work: Path, source: str, codegen: Path, raise RuntimeError("transpile_json refused it:\n" + json.dumps(transpiled.get("diagnostics"), indent=1)) build_strategy_library(transpiled["cpp"], work) - replay = Replay(cpp=transpiled["cpp"], trades={}, traces={}) + replay = Replay(cpp=transpiled["cpp"], diagnostics=transpiled.get("diagnostics", []), + trades={}, traces={}) for i, case in enumerate(cases): trades, records, _ = run_strategy(engine, work, feed, _overrides(case), f"case{i}", trace=True) @@ -249,36 +270,50 @@ def _on_sunday(stamps: list[int], timezone: str) -> int: def test_tapes_are_the_recorded_exports() -> None: - """Every fixture is its export byte for byte, and TradingView flagged every - one of each tape set's 1,138 bars in market and none pre- or post-market.""" + """Every fixture is its export byte for byte. TradingView flagged every one + of each six-chart set's 1,138 bars in market and none pre- or post-market, + and the extended-hours AAPL bars by their own open time.""" bars = {"hm-g236": 0, "cgim-flags": 0} for slug in TAPES: metrics = json.loads((FIXTURES / slug / "metrics.json").read_text()) - meta = json.loads((FIXTURES / slug / "meta.json").read_text()) tape_bytes = (FIXTURES / slug / "tv_trades.csv").read_bytes() pine_bytes = (FIXTURES / slug / "strategy.pine").read_bytes() assert hashlib.sha256(tape_bytes).hexdigest() == metrics["tvTradesCsvHash"], slug - assert hashlib.sha256(pine_bytes).hexdigest() == meta["pine_sha256"], slug + assert hashlib.sha256(pine_bytes).hexdigest() == metrics["sourceArtifactHash"], slug assert metrics["wsProvenance"]["rangeProof"] == "covered", slug tape = read_tape(slug) assert len(tape) == metrics["trades"], slug + if "-aapl-" in slug: + continue assert all(flags["M"] and not flags.get("P") and not flags.get("Q") for _, flags in tape), slug bars["hm-g236" if slug.startswith("hm-g236-") else "cgim-flags"] += len(tape) assert bars == {"hm-g236": 1138, "cgim-flags": 1138} + zone = ZoneInfo("America/New_York") + by_hour: dict[str, set[str]] = {} + for ts, flags in read_tape(EXTENDED): + hour = dt.datetime.fromtimestamp(ts / 1000, zone).strftime("%H:%M") + by_hour.setdefault(hour, set()).add("".join(f"{k}{int(v)}" for k, v in flags.items())) + assert by_hour["09:00"] == {"M0P1Q0F0L0f0l0"} # holds the 09:30 open + assert by_hour["10:00"] == {"M1P0Q0F0L0f1l0"} + assert by_hour["15:00"] == {"M1P0Q0F0L0f0l1"} + assert by_hour["16:00"] == {"M0P0Q1F0L0f0l0"} # shares the kernel's 15:30 interval @pytest.mark.parametrize("case", CASES, ids=lambda c: c.key) def test_session_flags_are_tradingviews(case: Case, replays) -> None: replay = replays[("current", case.slug)] misses = _misses(case, replay) - wrong = {FLAGS[letter]: len(bars) for letter, bars in misses.items() if bars} + wrong = {FLAGS[letter]: len(bars) for letter, bars in misses.items() + if len(bars) != case.engine.get(letter, 0)} assert not wrong, f"[{case.key}] bars where a flag is not TradingView's: {wrong}" # The probe entered on every bar TradingView held, at the same time. assert engine_entry_times(replay.trades[case.key]) == _replay_stamps(case.slug), case.key - assert "session_ismarket_" in replay.cpp - print(f"session flags {case.key}: {''.join(misses)} == TradingView on " - f"{len(read_tape(case.slug))} bars") + assert "_pf_session_ismarket(" in replay.cpp + exact = "".join(letter for letter in misses if letter not in case.engine) + pinned = {FLAGS[k]: v for k, v in case.engine.items()} + print(f"session flags {case.key}: {exact} == TradingView on {len(read_tape(case.slug))} bars" + + (f"; kernel session-day facts off as pinned: {pinned}" if pinned else "")) @pytest.mark.parametrize("case", CASES, ids=lambda c: c.key) @@ -286,24 +321,28 @@ def test_legacy_predicates_missed_the_pinned_bars(case: Case, replays) -> None: if ("legacy", case.slug) not in replays: pytest.skip(f"the pre-lane codegen ({LEGACY[:12]}) is not in this checkout's history") replay = replays[("legacy", case.slug)] - assert "session_ismarket_" not in replay.cpp + assert "_pf_session_ismarket(" not in replay.cpp misses = _misses(case, replay) - assert {letter: len(bars) for letter, bars in misses.items() if bars} == case.legacy, case.key + assert ({letter: len(bars) for letter, bars in misses.items() if bars} + == {**case.legacy, **case.engine}), case.key assert _on_sunday(misses["M"], case.timezone) == case.legacy_sunday, case.key - print(f"session flags {case.key}: pre-lane build missed " - f"{ {FLAGS[k]: v for k, v in case.legacy.items()} } of " + missed = {FLAGS[k]: v for k, v in {**case.legacy, **case.engine}.items()} + print(f"session flags {case.key}: pre-lane build missed {missed} of " f"{len(read_tape(case.slug))} bars ({case.legacy_sunday} ismarket on a local Sunday)") def test_security_payload_keeps_its_own_bars_predicates(replays) -> None: """A request.security payload reads the flags at the security bar's time, - exactly as the pre-lane build did; the chart reads beside it are - TradingView's flags.""" + exactly as the pre-lane build did, and each read warns that it can differ + from TradingView; the chart reads beside it are TradingView's flags.""" case = SECURITY_CASE current = replays[("security-current", case.slug)] for name in ("ismarket", "ispremarket", "ispostmarket"): assert (f"pine_session_{name}(syminfo_.session, syminfo_.timezone, bar.timestamp)" in current.cpp), name + warned = sorted(d["message"].split()[0] for d in current.diagnostics + if d["severity"] == "warning" and "inside request.security" in d["message"]) + assert warned == ["session.ismarket", "session.ispostmarket", "session.ispremarket"] assert not any(_misses(case, current).values()) if ("security-legacy", case.slug) not in replays: pytest.skip(f"the pre-lane codegen ({LEGACY[:12]}) is not in this checkout's history") @@ -318,12 +357,13 @@ def test_security_payload_keeps_its_own_bars_predicates(replays) -> None: ONE_BAR_PROBE = ('//@version=6\nstrategy("session.ismarket one bar", overlay=true, ' "process_orders_on_close=true)\n" 'if session.ismarket\n strategy.entry("L", strategy.long)\n' + TRACE) -MONDAY_OPEN = 1741017600000 # 2025-03-03 10:00 America/Chicago, inside 1700-1600 +SUNDAY_OPEN = 1740956400000 # 2025-03-02 17:00 America/Chicago: Monday's session day opens @pytest.fixture(scope="session") def one_bar(tmp_path_factory) -> dict[str, tuple[bytes, list[dict]]]: - """The probe on a single bar with no timeframe given, per build.""" + """The probe on a single bar given no timeframe, per build: the engine + detects none and presents no session-day facts for such a run.""" engine = skip_unless_e2e_env() base = tmp_path_factory.mktemp("session_ismarket_one_bar") builds = {"current": REPO_ROOT} @@ -334,43 +374,45 @@ def one_bar(tmp_path_factory) -> dict[str, tuple[bytes, list[dict]]]: for label, codegen in builds.items(): work = base / label work.mkdir() - feed = _write_feed([MONDAY_OPEN], work / "chart.csv") + feed = _write_feed([SUNDAY_OPEN], work / "chart.csv") pine = work / "strategy.pine" pine.write_text(ONE_BAR_PROBE, encoding="utf-8") transpiled = transpile_json(pine, codegen) assert transpiled.get("ok"), transpiled.get("diagnostics") build_strategy_library(transpiled["cpp"], work) - overrides = {"runtime_overrides": {"session": "1700-1600", "timezone": "America/Chicago"}} + overrides = {"runtime_overrides": {"session": "1700-1600:23456", + "timezone": "America/Chicago"}} trades, records, _ = run_strategy(engine, work, feed, overrides, "one", trace=True) runs[label] = (trades, records or []) return runs -def test_one_bar_without_timeframe_keeps_the_predicates(one_bar) -> None: +def test_one_bar_without_timeframe_reads_the_calendar(one_bar) -> None: + """The calendar needs no timeframe: the Sunday-evening open of a ":23456" + session is in market on a one-bar run too (the ES1! tapes' first bar).""" trades, records = one_bar["current"] - assert traced(records, "ismarket") == [(MONDAY_OPEN, True)] - assert engine_entry_times(trades) == [MONDAY_OPEN] + assert traced(records, "ismarket") == [(SUNDAY_OPEN, True)] + assert engine_entry_times(trades) == [SUNDAY_OPEN] if "legacy" not in one_bar: pytest.skip(f"the pre-lane codegen ({LEGACY[:12]}) is not in this checkout's history") legacy_trades, legacy_records = one_bar["legacy"] - assert trades == legacy_trades - assert traced(records, "ismarket") == traced(legacy_records, "ismarket") - print("session.ismarket on one bar without a timeframe: in market, == pre-lane build") + assert traced(legacy_records, "ismarket") == [(SUNDAY_OPEN, False)] + assert engine_entry_times(legacy_trades) == [] + print("session.ismarket on one Sunday-open bar without a timeframe: in market " + "(pre-lane build: out)") -def test_pine_names_of_the_host_members_read_stay_distinct(tmp_path: Path) -> None: - """A script may name its own variables after the host members the lowering - reads: they are renamed, so the TU still compiles, session.ismarket reads - the host's fact rather than the script's variable, and the input keeps its - Pine name as its key.""" +def test_pine_names_of_the_emitted_helpers_stay_distinct(tmp_path: Path) -> None: + """A script may name its own variables after the helper and the host + member the lowering calls: they are renamed, so the TU still compiles and + the input keeps its Pine name as its key.""" pine = tmp_path / "strategy.pine" - pine.write_text('//@version=6\nstrategy("host member names", overlay=true)\n' - "session_ismarket_ = close > open\n" + pine.write_text('//@version=6\nstrategy("emitted names", overlay=true)\n' + "_pf_session_ismarket = close > open\n" "script_tf_ = input.int(2)\n" - "if session.ismarket and session_ismarket_ and script_tf_ > 0\n" + "if session.ismarket and _pf_session_ismarket and script_tf_ > 0\n" ' strategy.entry("L", strategy.long)\n', encoding="utf-8") result = transpile_json(pine) assert result["ok"], result["diagnostics"] assert [entry["title"] for entry in result["inputs"]] == ["script_tf_"] - assert "bool session_ismarket_" not in result["cpp"] - compile_cpp(result["cpp"], label="host member names") + compile_cpp(result["cpp"], label="emitted names") From 011e489e197b4ecc99a235c99fe6aeb95bbcf1c1 Mon Sep 17 00:00:00 2001 From: luisleo526 Date: Sat, 26 Sep 2026 08:12:57 +0800 Subject: [PATCH 7/8] Record a TradingView tape of every session flag on OANDA:XAUUSD 1D The every-flag probe on OANDA:XAUUSD 1D, 2025-01-01 .. 04-01, exported with `lab tv` (ws-report-v1, rangeProof covered, --no-note). TradingView stamps each of the 64 daily bars at 17:00 America/New_York, the break of the 1800-1700 session, and flags every one M1P0Q0F1L1f1l1: in market, and the first and last bar of its session day. A daily bar holds whole session days. Co-Authored-By: Claude Opus 5.5 (1M context) --- tests/fixtures/session_ismarket/README.md | 22 ++- .../cgim-flags-xauusd-1d/meta.json | 16 +++ .../cgim-flags-xauusd-1d/metrics.json | 40 ++++++ .../cgim-flags-xauusd-1d/strategy.pine | 22 +++ .../cgim-flags-xauusd-1d/tv_trades.csv | 129 ++++++++++++++++++ 5 files changed, 228 insertions(+), 1 deletion(-) create mode 100644 tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/meta.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/metrics.json create mode 100644 tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/strategy.pine create mode 100644 tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/tv_trades.csv diff --git a/tests/fixtures/session_ismarket/README.md b/tests/fixtures/session_ismarket/README.md index 3e372c7..7d7adcd 100644 --- a/tests/fixtures/session_ismarket/README.md +++ b/tests/fixtures/session_ismarket/README.md @@ -1,6 +1,7 @@ # session.* TradingView tapes -TradingView's own session flags on every bar of eight 60-minute charts. Each +TradingView's own session flags on every bar of eight 60-minute charts and +one daily chart. Each directory is one TradingView export (channel `ws-report-v1`, `rangeProof` covered), byte for byte: `strategy.pine`, `tv_trades.csv` (times at UTC+8, the exporters' rendering), `metrics.json`, and for a `lab tv` export @@ -89,3 +90,22 @@ The extended chart's bars open on the hour, and TradingView flags each by its open time: the 09:00 bar, which holds the 09:30 open, is pre-market, and the 16:00 bar is post-market. There isfirstbar / islastbar are the extended day's first and last bars and the `_regular` twins the regular day's. + +## `cgim-flags-xauusd-1d`: a daily chart (codegen lane CG-ISMARKET) + +The every-flag probe on OANDA:XAUUSD 1D, 2025-01-01 .. 04-01, exported with +`lab tv` on 2026-09-26 00:09:26 (UTC), `--no-note`: + +```sh +lab tv --pine session_flags_probe.pine --slug cgim-flags-xauusd-1d \ + --symbol OANDA:XAUUSD --interval 1D --from 2025-01-01 --to 2025-04-01 \ + --out /cgim-flags-xauusd-1d --no-note --json +``` + +| tape | chart | window | bars | flags | tv_trades.csv sha256 | +|---|---|---|---|---|---| +| `cgim-flags-xauusd-1d` | OANDA:XAUUSD 1D | 2025-01-01 .. 04-01 | 64 | all `M1P0Q0F1L1f1l1` | `a7ce0e8eb771a27f9a0a1f9fc9edba042927556e91856d6207d0b2f9faebc410` | + +TradingView stamps each daily bar at 17:00 America/New_York, the break of the +`1800-1700` session, and flags it in market and as its session day's first and +last bar: a daily bar holds whole session days. diff --git a/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/meta.json b/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/meta.json new file mode 100644 index 0000000..81e26c6 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/meta.json @@ -0,0 +1,16 @@ +{ + "title": "CG-ISMARKET session flags", + "slug": "cgim-flags-xauusd-1d", + "source": "pineforge-workflow campaign lab tv", + "channel": "ws-report-v1", + "exportedAt": "2026-09-26T00:09:26.616Z", + "chart": { + "symbol": "OANDA:XAUUSD", + "interval": "1D", + "from": "2025-01-01", + "to": "2025-04-01" + }, + "pine_sha256": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tv_trades_sha256": "a7ce0e8eb771a27f9a0a1f9fc9edba042927556e91856d6207d0b2f9faebc410", + "tv_trades_rows": 128 +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/metrics.json b/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/metrics.json new file mode 100644 index 0000000..bb8f7c9 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/metrics.json @@ -0,0 +1,40 @@ +{ + "validationEligible": true, + "strategy": "cgim-flags-xauusd-1d", + "symbol": "OANDA:XAUUSD", + "interval": "1D", + "from": "2025-01-01", + "to": "2025-04-01", + "deepBacktesting": true, + "trades": 64, + "tvTradesCsv": "tv_trades.csv", + "tapeChannel": "ws-report-v1", + "sourceCanonicalization": "pine-facade-v1", + "sourceArtifactHash": "78898de72eeff09ef33a75e40f94da2b8ec9fbc301264183ba048e2e5f130225", + "tvTradesCsvHash": "a7ce0e8eb771a27f9a0a1f9fc9edba042927556e91856d6207d0b2f9faebc410", + "wsProvenance": { + "schemaVersion": 1, + "wsEndpoint": "wss://history-data.tradingview.com/socket.io/websocket?from=chart%2F&type=chart&auth=sessionid", + "authUser": "luisleo52655", + "accountType": "pro_premium_expert", + "pineId": "USER;3c3ee73838da415d9f6fb36ccd7cbe97", + "pineVersion": "0.75064", + "symbol": "OANDA:XAUUSD", + "interval": "1D", + "requestedRange": { + "from": 1735689600000, + "to": 1743465600000 + }, + "returnedRange": { + "from": 1735768800000, + "to": 1743454800000 + }, + "rangeProof": "covered", + "rawFrameSha256": "2c24c28dd9a16d1a7be29676e90e8d18519788c8747ea087b66c5c752b6da180", + "decodedReportSha256": "ccccf2fd194577fcbdf28841d1a944a14a48638378fa21940ca8c636a07ba2ea", + "closedTrades": 64, + "proves": "which compile bytecode and which from/to window were sent to TradingView, and the exact trades TradingView returned for it (re-derivable from rawFrameSha256)", + "doesNotProve": "chart activation or the displayed applied range (browser-only); CSV byte identity and priceExact are lab renderings, screen-only until a parity study" + }, + "backtestedAt": "2026-09-26T00:09:26.615Z" +} diff --git a/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/strategy.pine b/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/strategy.pine new file mode 100644 index 0000000..0740da1 --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/strategy.pine @@ -0,0 +1,22 @@ +// CG-ISMARKET: which session.* flags does TradingView set on each chart bar? +// process_orders_on_close=true: every bar reverses the position at its own +// close, so every trade's ENTRY is one chart bar (TradingView dates a +// process_orders_on_close fill at the bar's open) and the entry's Signal (its +// comment) carries the flags TradingView evaluated on that bar, a letter and a +// digit each: M session.ismarket, P session.ispremarket, Q session.ispostmarket, +// F session.isfirstbar, L session.islastbar, f session.isfirstbar_regular, +// l session.islastbar_regular (1 true, 0 false). +//@version=6 +strategy("CG-ISMARKET session flags", overlay=true, initial_capital=1000000000, + default_qty_type=strategy.fixed, default_qty_value=1, pyramiding=1, + commission_type=strategy.commission.percent, commission_value=0, slippage=0, + process_orders_on_close=true, margin_long=100, margin_short=100) + +bit(bool x) => x ? "1" : "0" +flag = "M" + bit(session.ismarket) + "P" + bit(session.ispremarket) + "Q" + bit(session.ispostmarket) + + "F" + bit(session.isfirstbar) + "L" + bit(session.islastbar) + + "f" + bit(session.isfirstbar_regular) + "l" + bit(session.islastbar_regular) +if bar_index % 2 == 0 + strategy.entry("L" + flag, strategy.long, comment=flag) +else + strategy.entry("S" + flag, strategy.short, comment=flag) diff --git a/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/tv_trades.csv b/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/tv_trades.csv new file mode 100644 index 0000000..4779a4a --- /dev/null +++ b/tests/fixtures/session_ismarket/cgim-flags-xauusd-1d/tv_trades.csv @@ -0,0 +1,129 @@ +Trade number,Type,Date and time,Signal,Price USD,Size (qty),Size (value),Net PnL USD,Return %,Commission USD,Favorable excursion USD,Favorable excursion %,Adverse excursion USD,Adverse excursion %,Cumulative PnL USD,Cumulative PnL %,Duration (bars) +1,Exit long,2025-01-03 06:00,M1P0Q0F1L1f1l1,2639.725,1,2658.23,-18.505,-0.70,0,7.175,0.27,-21.525,-0.81,-18.505,0.00,1 +1,Entry long,2025-01-02 06:00,M1P0Q0F1L1f1l1,2658.23,1,2658.23,-18.505,-0.70,0,7.175,0.27,-21.525,-0.81,-18.505,0.00,1 +2,Exit short,2025-01-06 06:00,M1P0Q0F1L1f1l1,2636.105,1,2639.725,3.62,0.14,0,25.09,0.95,-9.795,-0.37,-14.885,0.00,1 +2,Entry short,2025-01-03 06:00,M1P0Q0F1L1f1l1,2639.725,1,2639.725,3.62,0.14,0,25.09,0.95,-9.795,-0.37,-14.885,0.00,1 +3,Exit long,2025-01-07 06:00,M1P0Q0F1L1f1l1,2648.625,1,2636.105,12.52,0.47,0,28.225,1.07,-3.105,-0.12,-2.365,0.00,1 +3,Entry long,2025-01-06 06:00,M1P0Q0F1L1f1l1,2636.105,1,2636.105,12.52,0.47,0,28.225,1.07,-3.105,-0.12,-2.365,0.00,1 +4,Exit short,2025-01-08 06:00,M1P0Q0F1L1f1l1,2661.655,1,2648.625,-13.03,-0.49,0,3.255,0.12,-21.525,-0.81,-15.395,0.00,1 +4,Entry short,2025-01-07 06:00,M1P0Q0F1L1f1l1,2648.625,1,2648.625,-13.03,-0.49,0,3.255,0.12,-21.525,-0.81,-15.395,0.00,1 +5,Exit long,2025-01-09 06:00,M1P0Q0F1L1f1l1,2670.34,1,2661.655,8.685,0.33,0,16.75,0.63,-6.02,-0.23,-6.71,0.00,1 +5,Entry long,2025-01-08 06:00,M1P0Q0F1L1f1l1,2661.655,1,2661.655,8.685,0.33,0,16.75,0.63,-6.02,-0.23,-6.71,0.00,1 +6,Exit short,2025-01-10 06:00,M1P0Q0F1L1f1l1,2689.375,1,2670.34,-19.035,-0.71,0,6.265,0.23,-27.61,-1.03,-25.745,0.00,1 +6,Entry short,2025-01-09 06:00,M1P0Q0F1L1f1l1,2670.34,1,2670.34,-19.035,-0.71,0,6.265,0.23,-27.61,-1.03,-25.745,0.00,1 +7,Exit long,2025-01-13 06:00,M1P0Q0F1L1f1l1,2663.21,1,2689.375,-26.165,-0.97,0,4.18,0.16,-32.54,-1.21,-51.91,0.00,1 +7,Entry long,2025-01-10 06:00,M1P0Q0F1L1f1l1,2689.375,1,2689.375,-26.165,-0.97,0,4.18,0.16,-32.54,-1.21,-51.91,0.00,1 +8,Exit short,2025-01-14 06:00,M1P0Q0F1L1f1l1,2677.51,1,2663.21,-14.3,-0.54,0,3.32,0.12,-15.185,-0.57,-66.21,0.00,1 +8,Entry short,2025-01-13 06:00,M1P0Q0F1L1f1l1,2663.21,1,2663.21,-14.3,-0.54,0,3.32,0.12,-15.185,-0.57,-66.21,0.00,1 +9,Exit long,2025-01-15 06:00,M1P0Q0F1L1f1l1,2696.265,1,2677.51,18.755,0.70,0,19.91,0.74,-8.145,-0.30,-47.455,0.00,1 +9,Entry long,2025-01-14 06:00,M1P0Q0F1L1f1l1,2677.51,1,2677.51,18.755,0.70,0,19.91,0.74,-8.145,-0.30,-47.455,0.00,1 +10,Exit short,2025-01-16 06:00,M1P0Q0F1L1f1l1,2714.87,1,2696.265,-18.605,-0.69,0,6.215,0.23,-28.52,-1.06,-66.06,0.00,1 +10,Entry short,2025-01-15 06:00,M1P0Q0F1L1f1l1,2696.265,1,2696.265,-18.605,-0.69,0,6.215,0.23,-28.52,-1.06,-66.06,0.00,1 +11,Exit long,2025-01-17 06:00,M1P0Q0F1L1f1l1,2703.15,1,2714.87,-11.72,-0.43,0,2.56,0.09,-15.57,-0.57,-77.78,0.00,1 +11,Entry long,2025-01-16 06:00,M1P0Q0F1L1f1l1,2714.87,1,2714.87,-11.72,-0.43,0,2.56,0.09,-15.57,-0.57,-77.78,0.00,1 +12,Exit short,2025-01-20 06:00,M1P0Q0F1L1f1l1,2707.905,1,2703.15,-4.755,-0.18,0,13.775,0.51,-10.735,-0.40,-82.535,0.00,1 +12,Entry short,2025-01-17 06:00,M1P0Q0F1L1f1l1,2703.15,1,2703.15,-4.755,-0.18,0,13.775,0.51,-10.735,-0.40,-82.535,0.00,1 +13,Exit long,2025-01-21 06:00,M1P0Q0F1L1f1l1,2744.865,1,2707.905,36.96,1.36,0,38.15,1.41,-5.09,-0.19,-45.575,0.00,1 +13,Entry long,2025-01-20 06:00,M1P0Q0F1L1f1l1,2707.905,1,2707.905,36.96,1.36,0,38.15,1.41,-5.09,-0.19,-45.575,0.00,1 +14,Exit short,2025-01-22 06:00,M1P0Q0F1L1f1l1,2756.345,1,2744.865,-11.48,-0.42,0,2.9,0.11,-18.57,-0.68,-57.055,0.00,1 +14,Entry short,2025-01-21 06:00,M1P0Q0F1L1f1l1,2744.865,1,2744.865,-11.48,-0.42,0,2.9,0.11,-18.57,-0.68,-57.055,0.00,1 +15,Exit long,2025-01-23 06:00,M1P0Q0F1L1f1l1,2754.855,1,2756.345,-1.49,-0.05,0,2.625,0.10,-20.385,-0.74,-58.545,0.00,1 +15,Entry long,2025-01-22 06:00,M1P0Q0F1L1f1l1,2756.345,1,2756.345,-1.49,-0.05,0,2.625,0.10,-20.385,-0.74,-58.545,0.00,1 +16,Exit short,2025-01-24 06:00,M1P0Q0F1L1f1l1,2770.885,1,2754.855,-16.03,-0.58,0,1.215,0.04,-31.205,-1.13,-74.575,0.00,1 +16,Entry short,2025-01-23 06:00,M1P0Q0F1L1f1l1,2754.855,1,2754.855,-16.03,-0.58,0,1.215,0.04,-31.205,-1.13,-74.575,0.00,1 +17,Exit long,2025-01-27 06:00,M1P0Q0F1L1f1l1,2740.655,1,2770.885,-30.23,-1.09,0,1.86,0.07,-40.325,-1.46,-104.805,0.00,1 +17,Entry long,2025-01-24 06:00,M1P0Q0F1L1f1l1,2770.885,1,2770.885,-30.23,-1.09,0,1.86,0.07,-40.325,-1.46,-104.805,0.00,1 +18,Exit short,2025-01-28 06:00,M1P0Q0F1L1f1l1,2763.42,1,2740.655,-22.765,-0.83,0,5.84,0.21,-24.435,-0.89,-127.57,0.00,1 +18,Entry short,2025-01-27 06:00,M1P0Q0F1L1f1l1,2740.655,1,2740.655,-22.765,-0.83,0,5.84,0.21,-24.435,-0.89,-127.57,0.00,1 +19,Exit long,2025-01-29 06:00,M1P0Q0F1L1f1l1,2760.09,1,2763.42,-3.33,-0.12,0,2.845,0.10,-18.665,-0.68,-130.9,0.00,1 +19,Entry long,2025-01-28 06:00,M1P0Q0F1L1f1l1,2763.42,1,2763.42,-3.33,-0.12,0,2.845,0.10,-18.665,-0.68,-130.9,0.00,1 +20,Exit short,2025-01-30 06:00,M1P0Q0F1L1f1l1,2794.165,1,2760.09,-34.075,-1.23,0,1.7,0.06,-38.515,-1.40,-164.975,0.00,1 +20,Entry short,2025-01-29 06:00,M1P0Q0F1L1f1l1,2760.09,1,2760.09,-34.075,-1.23,0,1.7,0.06,-38.515,-1.40,-164.975,0.00,1 +21,Exit long,2025-01-31 06:00,M1P0Q0F1L1f1l1,2797.94,1,2794.165,3.775,0.14,0,23.05,0.82,-3.095,-0.11,-161.2,0.00,1 +21,Entry long,2025-01-30 06:00,M1P0Q0F1L1f1l1,2794.165,1,2794.165,3.775,0.14,0,23.05,0.82,-3.095,-0.11,-161.2,0.00,1 +22,Exit short,2025-02-03 06:00,M1P0Q0F1L1f1l1,2814.71,1,2797.94,-16.77,-0.60,0,25.725,0.92,-32.815,-1.17,-177.97,0.00,1 +22,Entry short,2025-01-31 06:00,M1P0Q0F1L1f1l1,2797.94,1,2797.94,-16.77,-0.60,0,25.725,0.92,-32.815,-1.17,-177.97,0.00,1 +23,Exit long,2025-02-04 06:00,M1P0Q0F1L1f1l1,2842.29,1,2814.71,27.58,0.98,0,30.76,1.09,-7.435,-0.26,-150.39,0.00,1 +23,Entry long,2025-02-03 06:00,M1P0Q0F1L1f1l1,2814.71,1,2814.71,27.58,0.98,0,30.76,1.09,-7.435,-0.26,-150.39,0.00,1 +24,Exit short,2025-02-05 06:00,M1P0Q0F1L1f1l1,2867.215,1,2842.29,-24.925,-0.88,0,2.55,0.09,-40.02,-1.41,-175.315,0.00,1 +24,Entry short,2025-02-04 06:00,M1P0Q0F1L1f1l1,2842.29,1,2842.29,-24.925,-0.88,0,2.55,0.09,-40.02,-1.41,-175.315,0.00,1 +25,Exit long,2025-02-06 06:00,M1P0Q0F1L1f1l1,2855.925,1,2867.215,-11.29,-0.39,0,6.125,0.21,-32.945,-1.15,-186.605,0.00,1 +25,Entry long,2025-02-05 06:00,M1P0Q0F1L1f1l1,2867.215,1,2867.215,-11.29,-0.39,0,6.125,0.21,-32.945,-1.15,-186.605,0.00,1 +26,Exit short,2025-02-07 06:00,M1P0Q0F1L1f1l1,2861.25,1,2855.925,-5.325,-0.19,0,3.33,0.12,-30.93,-1.08,-191.93,0.00,1 +26,Entry short,2025-02-06 06:00,M1P0Q0F1L1f1l1,2855.925,1,2855.925,-5.325,-0.19,0,3.33,0.12,-30.93,-1.08,-191.93,0.00,1 +27,Exit long,2025-02-10 06:00,M1P0Q0F1L1f1l1,2908.175,1,2861.25,46.925,1.64,0,50.715,1.77,-0.845,-0.03,-145.005,0.00,1 +27,Entry long,2025-02-07 06:00,M1P0Q0F1L1f1l1,2861.25,1,2861.25,46.925,1.64,0,50.715,1.77,-0.845,-0.03,-145.005,0.00,1 +28,Exit short,2025-02-11 06:00,M1P0Q0F1L1f1l1,2897.615,1,2908.175,10.56,0.36,0,26.615,0.92,-34.605,-1.19,-134.445,0.00,1 +28,Entry short,2025-02-10 06:00,M1P0Q0F1L1f1l1,2908.175,1,2908.175,10.56,0.36,0,26.615,0.92,-34.605,-1.19,-134.445,0.00,1 +29,Exit long,2025-02-12 06:00,M1P0Q0F1L1f1l1,2903.96,1,2897.615,6.345,0.22,0,11.65,0.40,-33.285,-1.15,-128.1,0.00,1 +29,Entry long,2025-02-11 06:00,M1P0Q0F1L1f1l1,2897.615,1,2897.615,6.345,0.22,0,11.65,0.40,-33.285,-1.15,-128.1,0.00,1 +30,Exit short,2025-02-13 06:00,M1P0Q0F1L1f1l1,2928.33,1,2903.96,-24.37,-0.84,0,3.415,0.12,-25.52,-0.88,-152.47,0.00,1 +30,Entry short,2025-02-12 06:00,M1P0Q0F1L1f1l1,2903.96,1,2903.96,-24.37,-0.84,0,3.415,0.12,-25.52,-0.88,-152.47,0.00,1 +31,Exit long,2025-02-14 06:00,M1P0Q0F1L1f1l1,2882.482,1,2928.33,-45.848,-1.57,0,11.65,0.40,-51.305,-1.75,-198.318,0.00,1 +31,Entry long,2025-02-13 06:00,M1P0Q0F1L1f1l1,2928.33,1,2928.33,-45.848,-1.57,0,11.65,0.40,-51.305,-1.75,-198.318,0.00,1 +32,Exit short,2025-02-17 06:00,M1P0Q0F1L1f1l1,2898.49,1,2882.482,-16.008,-0.56,0,3.697,0.13,-24.043,-0.83,-214.326,0.00,1 +32,Entry short,2025-02-14 06:00,M1P0Q0F1L1f1l1,2882.482,1,2882.482,-16.008,-0.56,0,3.697,0.13,-24.043,-0.83,-214.326,0.00,1 +33,Exit long,2025-02-18 06:00,M1P0Q0F1L1f1l1,2935.465,1,2898.49,36.975,1.28,0,38.465,1.33,-6.42,-0.22,-177.351,0.00,1 +33,Entry long,2025-02-17 06:00,M1P0Q0F1L1f1l1,2898.49,1,2898.49,36.975,1.28,0,38.465,1.33,-6.42,-0.22,-177.351,0.00,1 +34,Exit short,2025-02-19 06:00,M1P0Q0F1L1f1l1,2933.26,1,2935.465,2.205,0.08,0,16.825,0.57,-11.615,-0.40,-175.146,0.00,1 +34,Entry short,2025-02-18 06:00,M1P0Q0F1L1f1l1,2935.465,1,2935.465,2.205,0.08,0,16.825,0.57,-11.615,-0.40,-175.146,0.00,1 +35,Exit long,2025-02-20 06:00,M1P0Q0F1L1f1l1,2939.385,1,2933.26,6.125,0.21,0,21.695,0.74,-9.225,-0.31,-169.021,0.00,1 +35,Entry long,2025-02-19 06:00,M1P0Q0F1L1f1l1,2933.26,1,2933.26,6.125,0.21,0,21.695,0.74,-9.225,-0.31,-169.021,0.00,1 +36,Exit short,2025-02-21 06:00,M1P0Q0F1L1f1l1,2936.26,1,2939.385,3.125,0.11,0,22.565,0.77,-10.545,-0.36,-165.896,0.00,1 +36,Entry short,2025-02-20 06:00,M1P0Q0F1L1f1l1,2939.385,1,2939.385,3.125,0.11,0,22.565,0.77,-10.545,-0.36,-165.896,0.00,1 +37,Exit long,2025-02-24 06:00,M1P0Q0F1L1f1l1,2952.065,1,2936.26,15.805,0.54,0,20.05,0.68,-14.785,-0.50,-150.091,0.00,1 +37,Entry long,2025-02-21 06:00,M1P0Q0F1L1f1l1,2936.26,1,2936.26,15.805,0.54,0,20.05,0.68,-14.785,-0.50,-150.091,0.00,1 +38,Exit short,2025-02-25 06:00,M1P0Q0F1L1f1l1,2915.045,1,2952.065,37.02,1.25,0,63.885,2.16,-1.36,-0.05,-113.071,0.00,1 +38,Entry short,2025-02-24 06:00,M1P0Q0F1L1f1l1,2952.065,1,2952.065,37.02,1.25,0,63.885,2.16,-1.36,-0.05,-113.071,0.00,1 +39,Exit long,2025-02-26 06:00,M1P0Q0F1L1f1l1,2916.275,1,2915.045,1.23,0.04,0,15.135,0.52,-24.18,-0.83,-111.841,0.00,1 +39,Entry long,2025-02-25 06:00,M1P0Q0F1L1f1l1,2915.045,1,2915.045,1.23,0.04,0,15.135,0.52,-24.18,-0.83,-111.841,0.00,1 +40,Exit short,2025-02-27 06:00,M1P0Q0F1L1f1l1,2877.195,1,2916.275,39.08,1.34,0,48.48,1.66,-4.54,-0.16,-72.761,0.00,1 +40,Entry short,2025-02-26 06:00,M1P0Q0F1L1f1l1,2916.275,1,2916.275,39.08,1.34,0,48.48,1.66,-4.54,-0.16,-72.761,0.00,1 +41,Exit long,2025-02-28 06:00,M1P0Q0F1L1f1l1,2858.14,1,2877.195,-19.055,-0.66,0,8.045,0.28,-44.475,-1.55,-91.816,0.00,1 +41,Entry long,2025-02-27 06:00,M1P0Q0F1L1f1l1,2877.195,1,2877.195,-19.055,-0.66,0,8.045,0.28,-44.475,-1.55,-91.816,0.00,1 +42,Exit short,2025-03-03 06:00,M1P0Q0F1L1f1l1,2892.985,1,2858.14,-34.845,-1.22,0,0,0.00,-37.07,-1.30,-126.661,0.00,1 +42,Entry short,2025-02-28 06:00,M1P0Q0F1L1f1l1,2858.14,1,2858.14,-34.845,-1.22,0,0,0.00,-37.07,-1.30,-126.661,0.00,1 +43,Exit long,2025-03-04 06:00,M1P0Q0F1L1f1l1,2917.85,1,2892.985,24.865,0.86,0,34.925,1.21,-11.005,-0.38,-101.796,0.00,1 +43,Entry long,2025-03-03 06:00,M1P0Q0F1L1f1l1,2892.985,1,2892.985,24.865,0.86,0,34.925,1.21,-11.005,-0.38,-101.796,0.00,1 +44,Exit short,2025-03-05 06:00,M1P0Q0F1L1f1l1,2919.265,1,2917.85,-1.415,-0.05,0,23.5,0.81,-12.13,-0.42,-103.211,0.00,1 +44,Entry short,2025-03-04 06:00,M1P0Q0F1L1f1l1,2917.85,1,2917.85,-1.415,-0.05,0,23.5,0.81,-12.13,-0.42,-103.211,0.00,1 +45,Exit long,2025-03-06 06:00,M1P0Q0F1L1f1l1,2911.1,1,2919.265,-8.165,-0.28,0,7.455,0.26,-28.115,-0.96,-111.376,0.00,1 +45,Entry long,2025-03-05 06:00,M1P0Q0F1L1f1l1,2919.265,1,2919.265,-8.165,-0.28,0,7.455,0.26,-28.115,-0.96,-111.376,0.00,1 +46,Exit short,2025-03-07 06:00,M1P0Q0F1L1f1l1,2909.55,1,2911.1,1.55,0.05,0,14.19,0.49,-19.44,-0.67,-109.826,0.00,1 +46,Entry short,2025-03-06 06:00,M1P0Q0F1L1f1l1,2911.1,1,2911.1,1.55,0.05,0,14.19,0.49,-19.44,-0.67,-109.826,0.00,1 +47,Exit long,2025-03-10 05:00,M1P0Q0F1L1f1l1,2889.5,1,2909.55,-20.05,-0.69,0,8.835,0.30,-29.24,-1.00,-129.876,0.00,1 +47,Entry long,2025-03-07 06:00,M1P0Q0F1L1f1l1,2909.55,1,2909.55,-20.05,-0.69,0,8.835,0.30,-29.24,-1.00,-129.876,0.00,1 +48,Exit short,2025-03-11 05:00,M1P0Q0F1L1f1l1,2915.695,1,2889.5,-26.195,-0.91,0,9.25,0.32,-32.725,-1.13,-156.071,0.00,1 +48,Entry short,2025-03-10 05:00,M1P0Q0F1L1f1l1,2889.5,1,2889.5,-26.195,-0.91,0,9.25,0.32,-32.725,-1.13,-156.071,0.00,1 +49,Exit long,2025-03-12 05:00,M1P0Q0F1L1f1l1,2933.61,1,2915.695,17.915,0.61,0,24.995,0.86,-9.585,-0.33,-138.156,0.00,1 +49,Entry long,2025-03-11 05:00,M1P0Q0F1L1f1l1,2915.695,1,2915.695,17.915,0.61,0,24.995,0.86,-9.585,-0.33,-138.156,0.00,1 +50,Exit short,2025-03-13 05:00,M1P0Q0F1L1f1l1,2988.695,1,2933.61,-55.085,-1.88,0,0.63,0.02,-55.69,-1.90,-193.241,0.00,1 +50,Entry short,2025-03-12 05:00,M1P0Q0F1L1f1l1,2933.61,1,2933.61,-55.085,-1.88,0,0.63,0.02,-55.69,-1.90,-193.241,0.00,1 +51,Exit long,2025-03-14 05:00,M1P0Q0F1L1f1l1,2984.91,1,2988.695,-3.785,-0.13,0,16.345,0.55,-10.19,-0.34,-197.026,0.00,1 +51,Entry long,2025-03-13 05:00,M1P0Q0F1L1f1l1,2988.695,1,2988.695,-3.785,-0.13,0,16.345,0.55,-10.19,-0.34,-197.026,0.00,1 +52,Exit short,2025-03-17 05:00,M1P0Q0F1L1f1l1,3001.13,1,2984.91,-16.22,-0.54,0,2.57,0.09,-17.065,-0.57,-213.246,0.00,1 +52,Entry short,2025-03-14 05:00,M1P0Q0F1L1f1l1,2984.91,1,2984.91,-16.22,-0.54,0,2.57,0.09,-17.065,-0.57,-213.246,0.00,1 +53,Exit long,2025-03-18 05:00,M1P0Q0F1L1f1l1,3034.115,1,3001.13,32.985,1.10,0,37.22,1.24,-1.67,-0.06,-180.261,0.00,1 +53,Entry long,2025-03-17 05:00,M1P0Q0F1L1f1l1,3001.13,1,3001.13,32.985,1.10,0,37.22,1.24,-1.67,-0.06,-180.261,0.00,1 +54,Exit short,2025-03-19 05:00,M1P0Q0F1L1f1l1,3047.14,1,3034.115,-13.025,-0.43,0,11.23,0.37,-17.855,-0.59,-193.286,0.00,1 +54,Entry short,2025-03-18 05:00,M1P0Q0F1L1f1l1,3034.115,1,3034.115,-13.025,-0.43,0,11.23,0.37,-17.855,-0.59,-193.286,0.00,1 +55,Exit long,2025-03-20 05:00,M1P0Q0F1L1f1l1,3044.66,1,3047.14,-2.48,-0.08,0,10.45,0.34,-21.41,-0.70,-195.766,0.00,1 +55,Entry long,2025-03-19 05:00,M1P0Q0F1L1f1l1,3047.14,1,3047.14,-2.48,-0.08,0,10.45,0.34,-21.41,-0.70,-195.766,0.00,1 +56,Exit short,2025-03-21 05:00,M1P0Q0F1L1f1l1,3023.985,1,3044.66,20.675,0.68,0,45.195,1.48,-2.89,-0.09,-175.091,0.00,1 +56,Entry short,2025-03-20 05:00,M1P0Q0F1L1f1l1,3044.66,1,3044.66,20.675,0.68,0,45.195,1.48,-2.89,-0.09,-175.091,0.00,1 +57,Exit long,2025-03-24 05:00,M1P0Q0F1L1f1l1,3012.15,1,3023.985,-11.835,-0.39,0,9.355,0.31,-21.49,-0.71,-186.926,0.00,1 +57,Entry long,2025-03-21 05:00,M1P0Q0F1L1f1l1,3023.985,1,3023.985,-11.835,-0.39,0,9.355,0.31,-21.49,-0.71,-186.926,0.00,1 +58,Exit short,2025-03-25 05:00,M1P0Q0F1L1f1l1,3020.09,1,3012.15,-7.94,-0.26,0,4.61,0.15,-23.92,-0.79,-194.866,0.00,1 +58,Entry short,2025-03-24 05:00,M1P0Q0F1L1f1l1,3012.15,1,3012.15,-7.94,-0.26,0,4.61,0.15,-23.92,-0.79,-194.866,0.00,1 +59,Exit long,2025-03-26 05:00,M1P0Q0F1L1f1l1,3019.495,1,3020.09,-0.595,-0.02,0,12.075,0.40,-7.76,-0.26,-195.461,0.00,1 +59,Entry long,2025-03-25 05:00,M1P0Q0F1L1f1l1,3020.09,1,3020.09,-0.595,-0.02,0,12.075,0.40,-7.76,-0.26,-195.461,0.00,1 +60,Exit short,2025-03-27 05:00,M1P0Q0F1L1f1l1,3056.605,1,3019.495,-37.11,-1.23,0,1.84,0.06,-40.26,-1.33,-232.571,0.00,1 +60,Entry short,2025-03-26 05:00,M1P0Q0F1L1f1l1,3019.495,1,3019.495,-37.11,-1.23,0,1.84,0.06,-40.26,-1.33,-232.571,0.00,1 +61,Exit long,2025-03-28 05:00,M1P0Q0F1L1f1l1,3085.345,1,3056.605,28.74,0.94,0,30.36,0.99,-2.37,-0.08,-203.831,0.00,1 +61,Entry long,2025-03-27 05:00,M1P0Q0F1L1f1l1,3056.605,1,3056.605,28.74,0.94,0,30.36,0.99,-2.37,-0.08,-203.831,0.00,1 +62,Exit short,2025-03-31 05:00,M1P0Q0F1L1f1l1,3123.72,1,3085.345,-38.375,-1.24,0,8.54,0.28,-42.79,-1.39,-242.206,0.00,1 +62,Entry short,2025-03-28 05:00,M1P0Q0F1L1f1l1,3085.345,1,3085.345,-38.375,-1.24,0,8.54,0.28,-42.79,-1.39,-242.206,0.00,1 +63,Exit long,2025-04-01 05:00,M1P0Q0F1L1f1l1,3114.475,1,3123.72,-9.245,-0.30,0,25.37,0.81,-22.85,-0.73,-251.451,0.00,1 +63,Entry long,2025-03-31 05:00,M1P0Q0F1L1f1l1,3123.72,1,3123.72,-9.245,-0.30,0,25.37,0.81,-22.85,-0.73,-251.451,0.00,1 +64,Exit short,2025-04-01 05:00,,3114.475,1,3114.475,0,0.00,0,0,0.00,0,0.00,-251.451,0.00,0 +64,Entry short,2025-04-01 05:00,M1P0Q0F1L1f1l1,3114.475,1,3114.475,0,0.00,0,0,0.00,0,0.00,-251.451,0.00,0 \ No newline at end of file From abcdacd856de31e87d574355b947ed06df5cbe41 Mon Sep 17 00:00:00 2001 From: luisleo526 Date: Sat, 26 Sep 2026 08:12:57 +0800 Subject: [PATCH 8/8] Cache the session calendar per strategy and narrow the payload warning A second review of the calendar lowering found no blocker and asked for: - A per-strategy cache instead of a per-thread one. Strategies with different sessions taking turns on one thread re-parsed the calendar on every read, every read paid a thread-local lookup in the loaded strategy module, and a throwing parse left the old calendar under the new key. The emitted _PFSessionMarket type now precedes the class and each strategy holds one mutable _pf_session_market_, declared after the checkpointed script state; the key is written only after a successful parse. A day the calendar cannot resolve, or an exception while resolving it, is out of session, as the kernel reads it. - An accurate payload warning: on a D/W/M chart the kept predicate is a constant, not the security bar's time of day. The docs now say that a user function the security evaluator calls reads the chart bar, that the pre/post windows are the first window's, and that the calendar also puts a masked overnight session's bars after the weekly close out of market. A new TradingView tape covers the helper's D/W/M branch: every XAUUSD daily bar, stamped at the 17:00 ET break, is in market (without the branch the calendar reads all 64 out). Two engine-free tests pin the emission (one type before the class, one cache outside the checkpoint, nothing when no chart flag is read) and one warning per payload read site. Co-Authored-By: Claude Opus 5.5 (1M context) --- AGENTS.md | 8 +- CLAUDE.md | 8 +- pineforge_codegen/codegen/base.py | 15 +-- pineforge_codegen/codegen/helpers.py | 4 +- pineforge_codegen/codegen/session_market.py | 87 +++++++++-------- pineforge_codegen/codegen/visit_expr.py | 18 ++-- tests/test_e2e_session_ismarket.py | 100 ++++++++++++++++---- 7 files changed, 157 insertions(+), 83 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index f56f01a..f3c8f73 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -151,9 +151,9 @@ pineforge_codegen/ │ enum is too coarse for. ├── tv_number_format.py TU-local numeric formatter emitted for │ str.tostring / str.format / log.*. - ├── session_market.py TU-local session.ismarket helper: the - │ engine's session calendar asked at a - │ chart bar's open time. + ├── session_market.py session.ismarket of a chart bar: the + │ engine's session calendar asked at the + │ bar's open time, cached per strategy. ├── input.py input.* / `input()` lowering. └── helpers.py CPP_RESERVED + small text helpers. tests/ @@ -267,7 +267,7 @@ taxonomy: | Color na conversions | Packed colors use `int64_t` storage, including typed scalar, array and matrix paths, so their `na()` sentinel survives. `color.new` preserves an `na` base; `na` transparency becomes 100; an `na` `color.rgb` channel becomes zero. The covered TradingView color probes are pinned by `tests/test_na_truthiness.py`. | | Collection history warning | `array`/`map` `id[k]` still lowers to current collection element access because the engine has no per-bar collection ID history. Codegen warns on every such read and keeps the existing lowering; a missing index is not represented faithfully. | | syminfo na-gap warning | `SUPPORTED_SYMINFO` = every `SYMINFO_MEMBER_MAP` key, but members whose emission is `na()` or a `get_syminfo_metadata(...)` lookup (root/pricescale/minmove/mincontract/current_contract/expiration_date/isin/sector/industry + fundamentals/recommendations/target_price_*) form `_SYMINFO_SILENT_GAP_FIELDS` (derived from the emission table, so new na-accept fields can't drift out): every read WARNS that the value is na until a data feed injects it. | -| Session flags | A chart bar's `session.ismarket` asks the engine's session calendar (`native_calendar::session_day_at`, on the calendar the kernel builds from the same session and timezone) whether it holds the bar's open time; a D/W/M bar is in market. TradingView flags a bar by its open time (on extended-hours NASDAQ:AAPL 60 the 09:00 bar, which holds the 09:30 open, is pre-market and the 16:00 bar post-market) and reads a day mask per session day. The emitted `_pf_session_ismarket` helper (`codegen/session_market.py`) replaced the time-of-day predicate, which missed every Sunday-evening open under a `:23456` mask and every `0000-2400` bar; the kernel's per-bar `session_ismarket_` asks the bar's grid interval and puts that 16:00 bar in market. A bar in market is in neither `session.ispremarket` nor `session.ispostmarket`; off it, the 04:00-to-open and close-to-20:00 windows decide (the predicates read 98-117 in-market bars of each ES1! / XAUUSD tape as pre-market). Inside a `request.security` payload the three keep the predicates at the security bar's open time and WARN. `session.isfirstbar` / `islastbar` (and `_regular`) read the kernel's session-day facts, unchanged; on the extended-hours tape they differ from TradingView (one session string, the grid interval), as the test pins. `tests/test_e2e_session_ismarket.py` replays 14 TradingView tapes (`tests/fixtures/session_ismarket`). | +| Session flags | A chart bar's `session.ismarket` asks the engine's session calendar (`native_calendar::session_day_at`, on the calendar the kernel builds from the same session and timezone) whether it holds the bar's open time; a D/W/M bar is in market. TradingView flags a bar by its open time (on extended-hours NASDAQ:AAPL 60 the 09:00 bar, which holds the 09:30 open, is pre-market and the 16:00 bar post-market), reads a day mask per session day, and flags OANDA:XAUUSD's daily bars, stamped at the 17:00 ET break, in market. The emitted `_PFSessionMarket` type and its per-strategy `_pf_session_market_` cache (`codegen/session_market.py`, outside the checkpointed script state) replaced the time-of-day predicate, which missed every Sunday-evening open under a `:23456` mask and every `0000-2400` bar (the calendar also puts a masked overnight session's bars after the weekly close out of market); the kernel's per-bar `session_ismarket_` asks the bar's grid interval and puts that 16:00 bar in market. A bar in market is in neither `session.ispremarket` nor `session.ispostmarket`; off it, the windows from 04:00 to the first window's open and from its close to 20:00 decide (the predicates read 98-117 in-market bars of each ES1! / XAUUSD tape as pre-market). A `request.security` payload's own session reads keep the time-of-day predicates (the security bar's open time on an intraday chart, a constant on a D/W/M chart) and WARN; a user function the evaluator calls instead reads the chart bar. `session.isfirstbar` / `islastbar` (and `_regular`) read the kernel's session-day facts, unchanged; on the extended-hours tape they differ from TradingView (one session string, the grid interval), as the test pins. `tests/test_e2e_session_ismarket.py` replays 15 TradingView tapes (`tests/fixtures/session_ismarket`). | When extending codegen with a new Pine builtin: add to the corresponding diff --git a/CLAUDE.md b/CLAUDE.md index b9eb54f..1ad11dd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -151,9 +151,9 @@ pineforge_codegen/ │ enum is too coarse for. ├── tv_number_format.py TU-local numeric formatter emitted for │ str.tostring / str.format / log.*. - ├── session_market.py TU-local session.ismarket helper: the - │ engine's session calendar asked at a - │ chart bar's open time. + ├── session_market.py session.ismarket of a chart bar: the + │ engine's session calendar asked at the + │ bar's open time, cached per strategy. ├── input.py input.* / `input()` lowering. └── helpers.py CPP_RESERVED + small text helpers. tests/ @@ -267,7 +267,7 @@ taxonomy: | Color na conversions | Packed colors use `int64_t` storage, including typed scalar, array and matrix paths, so their `na()` sentinel survives. `color.new` preserves an `na` base; `na` transparency becomes 100; an `na` `color.rgb` channel becomes zero. The covered TradingView color probes are pinned by `tests/test_na_truthiness.py`. | | Collection history warning | `array`/`map` `id[k]` still lowers to current collection element access because the engine has no per-bar collection ID history. Codegen warns on every such read and keeps the existing lowering; a missing index is not represented faithfully. | | syminfo na-gap warning | `SUPPORTED_SYMINFO` = every `SYMINFO_MEMBER_MAP` key, but members whose emission is `na()` or a `get_syminfo_metadata(...)` lookup (root/pricescale/minmove/mincontract/current_contract/expiration_date/isin/sector/industry + fundamentals/recommendations/target_price_*) form `_SYMINFO_SILENT_GAP_FIELDS` (derived from the emission table, so new na-accept fields can't drift out): every read WARNS that the value is na until a data feed injects it. | -| Session flags | A chart bar's `session.ismarket` asks the engine's session calendar (`native_calendar::session_day_at`, on the calendar the kernel builds from the same session and timezone) whether it holds the bar's open time; a D/W/M bar is in market. TradingView flags a bar by its open time (on extended-hours NASDAQ:AAPL 60 the 09:00 bar, which holds the 09:30 open, is pre-market and the 16:00 bar post-market) and reads a day mask per session day. The emitted `_pf_session_ismarket` helper (`codegen/session_market.py`) replaced the time-of-day predicate, which missed every Sunday-evening open under a `:23456` mask and every `0000-2400` bar; the kernel's per-bar `session_ismarket_` asks the bar's grid interval and puts that 16:00 bar in market. A bar in market is in neither `session.ispremarket` nor `session.ispostmarket`; off it, the 04:00-to-open and close-to-20:00 windows decide (the predicates read 98-117 in-market bars of each ES1! / XAUUSD tape as pre-market). Inside a `request.security` payload the three keep the predicates at the security bar's open time and WARN. `session.isfirstbar` / `islastbar` (and `_regular`) read the kernel's session-day facts, unchanged; on the extended-hours tape they differ from TradingView (one session string, the grid interval), as the test pins. `tests/test_e2e_session_ismarket.py` replays 14 TradingView tapes (`tests/fixtures/session_ismarket`). | +| Session flags | A chart bar's `session.ismarket` asks the engine's session calendar (`native_calendar::session_day_at`, on the calendar the kernel builds from the same session and timezone) whether it holds the bar's open time; a D/W/M bar is in market. TradingView flags a bar by its open time (on extended-hours NASDAQ:AAPL 60 the 09:00 bar, which holds the 09:30 open, is pre-market and the 16:00 bar post-market), reads a day mask per session day, and flags OANDA:XAUUSD's daily bars, stamped at the 17:00 ET break, in market. The emitted `_PFSessionMarket` type and its per-strategy `_pf_session_market_` cache (`codegen/session_market.py`, outside the checkpointed script state) replaced the time-of-day predicate, which missed every Sunday-evening open under a `:23456` mask and every `0000-2400` bar (the calendar also puts a masked overnight session's bars after the weekly close out of market); the kernel's per-bar `session_ismarket_` asks the bar's grid interval and puts that 16:00 bar in market. A bar in market is in neither `session.ispremarket` nor `session.ispostmarket`; off it, the windows from 04:00 to the first window's open and from its close to 20:00 decide (the predicates read 98-117 in-market bars of each ES1! / XAUUSD tape as pre-market). A `request.security` payload's own session reads keep the time-of-day predicates (the security bar's open time on an intraday chart, a constant on a D/W/M chart) and WARN; a user function the evaluator calls instead reads the chart bar. `session.isfirstbar` / `islastbar` (and `_regular`) read the kernel's session-day facts, unchanged; on the extended-hours tape they differ from TradingView (one session string, the grid interval), as the test pins. `tests/test_e2e_session_ismarket.py` replays 15 TradingView tapes (`tests/fixtures/session_ismarket`). | When extending codegen with a new Pine builtin: add to the corresponding diff --git a/pineforge_codegen/codegen/base.py b/pineforge_codegen/codegen/base.py index 0e60bb6..01da9ac 100644 --- a/pineforge_codegen/codegen/base.py +++ b/pineforge_codegen/codegen/base.py @@ -109,7 +109,7 @@ class _StableVarCtorLiteral: # small naming/walk utilities can be shared with future visitor mixins. from .helpers import CPP_RESERVED, NamingHelper, na_preserving_int_cast, pine_truth_cast from .constant_fold import fold_numeric_expression -from .session_market import SESSION_MARKET_CPP +from .session_market import SESSION_MARKET_CPP, SESSION_MARKET_MEMBER # TypeInferer mixin owns the ~15 type-spec / C++-type inference helpers # previously scattered across this module; see ``codegen/types.py``. @@ -324,8 +324,8 @@ def func_var_storage(owner: str, raw_name: str) -> str: # payload (``_build_security_expr``): the session helper below reads # the chart's timeframe, which does not describe the security bar. self._security_payload_depth: int = 0 - # Set when a chart expression calls ``_pf_session_ismarket``; the - # helper is emitted before the class once the whole TU is lowered. + # Set when a chart expression calls ``_pf_session_market_``; its type + # and member are emitted once the whole TU is lowered. self._uses_session_market: bool = False # session.* reads inside a request.security payload already warned. self._warned_security_session_sites: set[int] = set() @@ -4124,8 +4124,8 @@ def generate(self) -> str: # per-callsite instances are declared below inside GeneratedStrategy # and therefore join the automatic COOF checkpoint inventory. self._emit_lazy_source_clock_helper(lines) - # The chart-bar session helper, inserted here once the class is - # lowered and known to call it (codegen/session_market.py). + # The chart-bar session type, inserted here once the class is lowered + # and known to call it (codegen/session_market.py). _session_market_at = len(lines) # 2. Open class @@ -4667,6 +4667,8 @@ def allocate_legacy_flag(base: str) -> str: ) self._emit_script_state_hooks(lines, _script_state_members) lines.append("") + # Its per-strategy cache, outside the checkpointed script state. + _session_market_member_at = len(lines) # 9. Constructor with TA initializer list self._emit_constructor(lines) @@ -4735,7 +4737,8 @@ def allocate_legacy_flag(base: str) -> str: self._emit_extern_c(lines) if self._uses_session_market: - lines[_session_market_at:_session_market_at] = [SESSION_MARKET_CPP] + lines.insert(_session_market_member_at, SESSION_MARKET_MEMBER) + lines.insert(_session_market_at, SESSION_MARKET_CPP) return "\n".join(lines) diff --git a/pineforge_codegen/codegen/helpers.py b/pineforge_codegen/codegen/helpers.py index 83dfac0..2a53e94 100644 --- a/pineforge_codegen/codegen/helpers.py +++ b/pineforge_codegen/codegen/helpers.py @@ -195,8 +195,8 @@ def color_alpha_cast(value_cpp: str) -> str: live_position_size pending_order_count market_admission_journal pine_time pine_time_close pine_time_tradingday pine_random pine_runtime_error pine_enum_str_at pine_session_ismarket - pine_session_ispostmarket pine_session_ispremarket _pf_session_ismarket - script_tf_ + pine_session_ispostmarket pine_session_ispremarket _PFSessionMarket + _pf_session_market_ script_tf_ tf_change tf_is_daily tf_is_intraday tf_is_monthly tf_is_seconds tf_is_weekly tf_multiplier tf_to_seconds time_close timestamp main_period round_to_mintick calc_qty diff --git a/pineforge_codegen/codegen/session_market.py b/pineforge_codegen/codegen/session_market.py index 650a92b..ae27b7b 100644 --- a/pineforge_codegen/codegen/session_market.py +++ b/pineforge_codegen/codegen/session_market.py @@ -1,4 +1,4 @@ -"""C++ helper emitted for a chart bar's session.ismarket. +"""C++ emitted for a chart bar's session.ismarket. TradingView flags a bar by its own open time: on an extended-hours NASDAQ:AAPL 60 chart the 09:00 bar, which holds the 09:30 open, is @@ -10,49 +10,54 @@ The engine's session calendar answers that instant: ``native_calendar``'s session day at the bar's open, on the calendar the kernel builds for the run from the same session and timezone (the adapter reads an empty session as -``24x7`` and an empty timezone as ``UTC``), resolved once per session day as -the kernel resolves it. The time-of-day predicate ``pine_session_*`` tests the -instant's own weekday and does not parse ``2400``; the kernel's per-bar fact +``24x7`` and an empty timezone as ``UTC``), resolved once per session day and +read as the kernel reads it (a day the calendar cannot resolve is out of +session). The time-of-day predicate ``pine_session_*`` tests the instant's own +weekday and does not parse ``2400``; the kernel's per-bar fact ``session_ismarket_`` asks the bar's grid interval, which a 16:00 bar after a -09:30-16:00 session shares with 15:30. The answer depends on the session, the -timezone and the instant only, so the parsed calendar and the last session day -are kept per thread. A session the calendar cannot parse, which the kernel -would not run, keeps the predicate. +09:30-16:00 session shares with 15:30. + +``SESSION_MARKET_CPP`` precedes the strategy class; each strategy holds one +``SESSION_MARKET_MEMBER`` after its checkpointed script state (a cache of an +answer that depends on the session, the timezone and the instant only). A +session the calendar cannot parse, which the kernel would not run, keeps the +time-of-day predicate. """ SESSION_MARKET_CPP = r""" -static inline bool _pf_session_ismarket(const std::string& session, - const std::string& timezone, - const std::string& chart_tf, - int64_t bar_ms) { - if (tf_is_daily_or_higher(chart_tf)) return true; - struct Memo { - std::string session; - std::string timezone; - std::optional calendar; - std::optional day; - bool parsed = false; - }; - thread_local Memo memo; - if (!memo.parsed || memo.session != session || memo.timezone != timezone) { - memo.session = session; - memo.timezone = timezone; - memo.calendar = native_calendar::parse_session( - session.empty() ? std::string_view("24x7") : std::string_view(session), - timezone.empty() ? std::string_view("UTC") : std::string_view(timezone)); - memo.day.reset(); - memo.parsed = true; - } - if (!memo.calendar) return pine_session_ismarket(session, timezone, bar_ms); - if (memo.day && memo.day->holds(bar_ms)) return memo.day->in_session_at(bar_ms); - try { - auto day = native_calendar::session_day_at(*memo.calendar, bar_ms); - if (!day) return false; - const bool in_market = day->in_session_at(bar_ms); - if (day->holds(bar_ms)) memo.day = std::move(day); - return in_market; - } catch (...) { - return pine_session_ismarket(session, timezone, bar_ms); +struct _PFSessionMarket { + std::string session_key; + std::string tz_key; + bool parsed = false; + std::optional calendar; + std::optional day; + + bool operator()(const std::string& session, const std::string& tz, + const std::string& chart_tf, int64_t bar_ms) { + if (tf_is_daily_or_higher(chart_tf)) return true; + if (!parsed || session_key != session || tz_key != tz) { + parsed = false; + day.reset(); + calendar = native_calendar::parse_session( + session.empty() ? std::string_view("24x7") : std::string_view(session), + tz.empty() ? std::string_view("UTC") : std::string_view(tz)); + session_key = session; + tz_key = tz; + parsed = true; + } + if (!calendar) return pine_session_ismarket(session, tz, bar_ms); + if (day && day->holds(bar_ms)) return day->in_session_at(bar_ms); + try { + auto found = native_calendar::session_day_at(*calendar, bar_ms); + if (!found) return false; + const bool in_market = found->in_session_at(bar_ms); + if (found->holds(bar_ms)) day = std::move(found); + return in_market; + } catch (...) { + return false; + } } -} +}; """ + +SESSION_MARKET_MEMBER = " mutable _PFSessionMarket _pf_session_market_;" diff --git a/pineforge_codegen/codegen/visit_expr.py b/pineforge_codegen/codegen/visit_expr.py index 138b76f..c77e2cc 100644 --- a/pineforge_codegen/codegen/visit_expr.py +++ b/pineforge_codegen/codegen/visit_expr.py @@ -877,18 +877,22 @@ def _visit_member_access(self, node: MemberAccess) -> str: extended = ("" if node.member == "ismarket" else ", and an in-market bar of an overnight " "session can read as pre- or post-market") + constant = ("always true" if node.member == "ismarket" + else "always false") self._codegen_warning( node, - f"session.{node.member} inside request.security is " - "the time-of-day predicate at the security bar's open " - "time, which can differ from TradingView: it tests a " - "session's day mask on that instant's own weekday and " - f"does not read \"2400\"{extended}. On the chart the " - "flag asks the engine's session calendar.", + f"session.{node.member} inside request.security keeps " + "the time-of-day predicate, which can differ from " + "TradingView: on an intraday chart it tests the " + "security bar's open time, a session's day mask on " + "that instant's own weekday, and does not read " + f"\"2400\"{extended}; on a D/W/M chart it is " + f"{constant}. The chart's own session flags ask the " + "engine's session calendar.", ) return predicate self._uses_session_market = True - ismarket = ("_pf_session_ismarket(syminfo_.session, syminfo_.timezone, " + ismarket = ("_pf_session_market_(syminfo_.session, syminfo_.timezone, " "script_tf_, current_bar_.timestamp)") if node.member == "ismarket": return ismarket diff --git a/tests/test_e2e_session_ismarket.py b/tests/test_e2e_session_ismarket.py index fb1c2db..1deea25 100644 --- a/tests/test_e2e_session_ismarket.py +++ b/tests/test_e2e_session_ismarket.py @@ -1,12 +1,14 @@ """The session.* flags are TradingView's, as its tapes prove. -TradingView's own session flags on every bar of eight 60-minute charts -(``fixtures/session_ismarket``): CME_MINI:ES1! across both 2025 US DST -switches and the Thanksgiving week, OANDA:EURUSD, OANDA:XAUUSD and +TradingView's own session flags on every bar of eight 60-minute charts and +one daily chart (``fixtures/session_ismarket``): CME_MINI:ES1! across both +2025 US DST switches and the Thanksgiving week, OANDA:EURUSD, OANDA:XAUUSD and BINANCE:ETHUSDT.P (the engine lane H-MEASURE's session.ismarket tapes ``hm-g236-*`` and this lane's every-flag tapes ``cgim-flags-*`` of the same -windows: all 1,138 bars in market, none in an extended session), and -NASDAQ:AAPL with and without extended hours. Each probe reverses its position +windows: all 1,138 bars in market, none in an extended session), NASDAQ:AAPL +with and without extended hours, and OANDA:XAUUSD 1D, whose bars TradingView +stamps at the 17:00 ET break and flags in market: a D/W/M bar holds whole +session days. Each probe reverses its position at the close of every bar (``process_orders_on_close``), so each Entry row is one chart bar, dated at its open, and its Signal carries the flags TradingView evaluated there: ``M1`` in market, ``M0`` not, and so on (see the README). @@ -28,9 +30,10 @@ Each tape is replayed end to end -- ``transpile_json``, the built runtime, ``run_strategy.py`` with the session and timezone as runtime overrides -- on -flat bars stamped at the tape's entry times, plus one bar an hour after the -last: the flags are a function of the bars' times and the symbol's session -and timezone only, and every tape's session day goes on past its window. The +flat bars stamped at the tape's entry times, plus one bar a chart interval +after the last: the flags are a function of the bars' times, the chart's +timeframe and the symbol's session and timezone only, and every intraday +tape's session day goes on past its window. The tape's own probe runs with a ``@pf-trace`` of every flag, under each session spelling H-MEASURE measured: the campaign's lane facts, the same sessions with TradingView's weekday mask, and a 24-hour day spelled ``0000-2400`` and @@ -69,12 +72,13 @@ CHARTS = ("es1-60-dst-mar", "es1-60-dst-nov", "es1-60-thanksgiving", "eurusd-60-dst-mar", "xauusd-60-dst-mar", "eth-60-24x7") TAPES = tuple(f"{kind}-{chart}" for kind in ("hm-g236", "cgim-flags") for chart in CHARTS) + ( - "cgim-flags-aapl-60-ext", "cgim-flags-aapl-60-reg") + "cgim-flags-aapl-60-ext", "cgim-flags-aapl-60-reg", "cgim-flags-xauusd-1d") FLAGS = {"M": "ismarket", "P": "ispremarket", "Q": "ispostmarket", "F": "isfirstbar", "L": "islastbar", "f": "isfirstbar_regular", "l": "islastbar_regular"} TRACE = "".join(f"\n// @pf-trace {name}=session.{name}" for name in FLAGS.values()) + "\n" HOUR = 3_600_000 +INTERVAL_MS = {"60": HOUR, "1D": 24 * HOUR} @dataclass(frozen=True) @@ -130,6 +134,9 @@ def _cases(chart: str, session: str, timezone: str, hm: dict[str, int], Case("cgim-flags-aapl-60-reg", "0930-1600", "America/New_York", {}), Case("cgim-flags-aapl-60-ext", "0930-1600", "America/New_York", {}, engine={"F": 20, "L": 20, "l": 20}), + # A daily bar stamped at the 17:00 ET break, with and without the mask. + Case("cgim-flags-xauusd-1d", "1800-1700", "America/New_York", {}), + Case("cgim-flags-xauusd-1d", "1800-1700:23456", "America/New_York", {}), ) # On the extended-hours chart TradingView's isfirstbar / islastbar are the # extended day's 04:00 and 19:00 bars and the _regular twins the regular @@ -184,13 +191,18 @@ def _write_feed(stamps: list[int], path: Path) -> Path: return path +def _interval(slug: str) -> str: + return json.loads((FIXTURES / slug / "metrics.json").read_text())["interval"] + + def _replay_stamps(slug: str) -> list[int]: stamps = [ts for ts, _ in read_tape(slug)] - return stamps + [stamps[-1] + HOUR] + return stamps + [stamps[-1] + INTERVAL_MS[_interval(slug)]] def _overrides(case: Case) -> dict: - return {"input_tf": "60", "script_tf": "60", + tf = _interval(case.slug) + return {"input_tf": tf, "script_tf": tf, "runtime_overrides": {"session": case.session, "timezone": case.timezone}} @@ -283,7 +295,7 @@ def test_tapes_are_the_recorded_exports() -> None: assert metrics["wsProvenance"]["rangeProof"] == "covered", slug tape = read_tape(slug) assert len(tape) == metrics["trades"], slug - if "-aapl-" in slug: + if "-aapl-" in slug or slug.endswith("-1d"): continue assert all(flags["M"] and not flags.get("P") and not flags.get("Q") for _, flags in tape), slug @@ -298,6 +310,10 @@ def test_tapes_are_the_recorded_exports() -> None: assert by_hour["10:00"] == {"M1P0Q0F0L0f1l0"} assert by_hour["15:00"] == {"M1P0Q0F0L0f0l1"} assert by_hour["16:00"] == {"M0P0Q1F0L0f0l0"} # shares the kernel's 15:30 interval + daily = read_tape("cgim-flags-xauusd-1d") + assert {dt.datetime.fromtimestamp(ts / 1000, zone).strftime("%H:%M") for ts, _ in daily} == {"17:00"} + assert all(all(flags[k] for k in "MFLfl") and not flags["P"] and not flags["Q"] + for _, flags in daily) @pytest.mark.parametrize("case", CASES, ids=lambda c: c.key) @@ -309,7 +325,7 @@ def test_session_flags_are_tradingviews(case: Case, replays) -> None: assert not wrong, f"[{case.key}] bars where a flag is not TradingView's: {wrong}" # The probe entered on every bar TradingView held, at the same time. assert engine_entry_times(replay.trades[case.key]) == _replay_stamps(case.slug), case.key - assert "_pf_session_ismarket(" in replay.cpp + assert "_pf_session_market_(" in replay.cpp exact = "".join(letter for letter in misses if letter not in case.engine) pinned = {FLAGS[k]: v for k, v in case.engine.items()} print(f"session flags {case.key}: {exact} == TradingView on {len(read_tape(case.slug))} bars" @@ -321,7 +337,7 @@ def test_legacy_predicates_missed_the_pinned_bars(case: Case, replays) -> None: if ("legacy", case.slug) not in replays: pytest.skip(f"the pre-lane codegen ({LEGACY[:12]}) is not in this checkout's history") replay = replays[("legacy", case.slug)] - assert "_pf_session_ismarket(" not in replay.cpp + assert "_pf_session_market_(" not in replay.cpp misses = _misses(case, replay) assert ({letter: len(bars) for letter, bars in misses.items() if bars} == {**case.legacy, **case.engine}), case.key @@ -403,16 +419,62 @@ def test_one_bar_without_timeframe_reads_the_calendar(one_bar) -> None: def test_pine_names_of_the_emitted_helpers_stay_distinct(tmp_path: Path) -> None: - """A script may name its own variables after the helper and the host - member the lowering calls: they are renamed, so the TU still compiles and - the input keeps its Pine name as its key.""" + """A script may name its own variables after the member the lowering calls + and the host member it reads: they are renamed, so the TU still compiles + and the input keeps its Pine name as its key.""" pine = tmp_path / "strategy.pine" pine.write_text('//@version=6\nstrategy("emitted names", overlay=true)\n' - "_pf_session_ismarket = close > open\n" + "_pf_session_market_ = close > open\n" "script_tf_ = input.int(2)\n" - "if session.ismarket and _pf_session_ismarket and script_tf_ > 0\n" + "if session.ismarket and _pf_session_market_ and script_tf_ > 0\n" ' strategy.entry("L", strategy.long)\n', encoding="utf-8") result = transpile_json(pine) assert result["ok"], result["diagnostics"] assert [entry["title"] for entry in result["inputs"]] == ["script_tf_"] compile_cpp(result["cpp"], label="emitted names") + + +def _transpiled(tmp_path: Path, body: str) -> dict: + pine = tmp_path / "strategy.pine" + pine.write_text('//@version=6\nstrategy("session emission", overlay=true)\n' + body, + encoding="utf-8") + result = transpile_json(pine) + assert result["ok"], result["diagnostics"] + return result + + +def test_session_market_is_emitted_once_when_read(tmp_path: Path) -> None: + """Needs no engine: the calendar type precedes the strategy class once, the + strategy holds one cache outside its checkpointed script state, and a + script that reads no chart session flag gets neither.""" + cpp = _transpiled(tmp_path, "f() => session.ispremarket\n" + "if session.ismarket or f()\n" + ' strategy.entry("L", strategy.long)\n')["cpp"] + assert cpp.count("struct _PFSessionMarket {") == 1 + assert cpp.index("struct _PFSessionMarket {") < cpp.index("class GeneratedStrategy") + assert cpp.count("mutable _PFSessionMarket _pf_session_market_;") == 1 + assert cpp.index("class GeneratedStrategy") < cpp.index("_pf_session_market_;") + assert not any("_pf_session_market_" in line and "_pf_script_state_checkpoint_" in line + for line in cpp.splitlines()) + assert cpp.count("_pf_session_market_(syminfo_.session, syminfo_.timezone, " + "script_tf_, current_bar_.timestamp)") == 2 + plain = _transpiled(tmp_path, 'if session.isfirstbar\n strategy.entry("L", strategy.long)\n') + assert "_PFSessionMarket" not in plain["cpp"] + + +def test_security_payload_session_read_warns_once_per_site(tmp_path: Path) -> None: + """Needs no engine: a payload keeps the time-of-day predicate at the + security bar's time and warns once for each session.* read, however many + payloads reach it.""" + result = _transpiled(tmp_path, + "f() => session.ismarket\n" + 'a = request.security(syminfo.tickerid, "240", f())\n' + 'b = request.security(syminfo.tickerid, "D", f())\n' + "if a and b\n" + ' strategy.entry("L", strategy.long)\n') + assert result["cpp"].count( + "pine_session_ismarket(syminfo_.session, syminfo_.timezone, bar.timestamp)") == 2 + warned = [(d["line"], d["col"]) for d in result["diagnostics"] + if "inside request.security" in d["message"]] + assert warned == [(3, 16)] # the `ismarket` of f's body, once for both payloads +