Upload 63 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +5 -0
- LICENSE +21 -0
- README.md +76 -0
- STRUCTURE.md +80 -0
- TECHSTACK.md +22 -0
- backend/[1]_main_watchdog.py +381 -0
- backend/[2]_Drop_xlsx_here/drop the xlsx sample here +0 -0
- backend/[2]_Drop_xlsx_here/test.xlsx +0 -0
- backend/[2]_Drop_xlsx_here/test_pipeline.xlsx +0 -0
- backend/[3]_Process/1_layer.py +111 -0
- backend/[3]_Process/2_layer.py +162 -0
- backend/[3]_Process/3_layer.py +51 -0
- backend/[3]_Process/4_layer.py +149 -0
- backend/[3]_Process/5_layer.py +149 -0
- backend/[3]_Process/6_layer.py +39 -0
- backend/[3]_Process/7_layer.py +257 -0
- backend/[3]_Process/8_layer.py +39 -0
- backend/[3]_Process/9_layer.py +39 -0
- backend/[3]_Process/ReportTester-263254895.xlsx +3 -0
- backend/[3]_Process/test.py +111 -0
- backend/[3]_Process/test_2.xlsx +0 -0
- backend/[4]_output_csv_files/Upload-1_ID/4_layer_output.csv +0 -0
- backend/[4]_output_csv_files/Upload-1_ID/5_layer_output.csv +0 -0
- backend/[4]_output_csv_files/Upload-1_ID/6_layer_output.csv +0 -0
- backend/[4]_output_csv_files/Upload-1_ID/7_layer_output.csv +0 -0
- backend/[4]_output_csv_files/Upload-1_ID/8_layer_output.csv +0 -0
- backend/[4]_output_csv_files/Upload-1_ID/9_layer_output.csv +0 -0
- backend/[4]_output_csv_files/Upload-1_ID/Sheet1.csv +0 -0
- backend/[4]_output_csv_files/Upload-1_ID/extracted_deals.csv +725 -0
- backend/[4]_output_csv_files/Upload-1_ID/extracted_orders.csv +724 -0
- backend/[4]_output_csv_files/Upload-1_ID/merged_extracted_orders_and_deals.csv +0 -0
- backend/[4]_output_csv_files/Upload-1_ID/visualize_results.py +107 -0
- backend/[4]_output_csv_files/outputs will go here +0 -0
- backend/server.py +95 -0
- backend/test_backend.py +41 -0
- backend/workflow.md +93 -0
- frontend/.gitignore +24 -0
- frontend/README.md +16 -0
- frontend/eslint.config.js +29 -0
- frontend/index.html +13 -0
- frontend/package-lock.json +0 -0
- frontend/package.json +36 -0
- frontend/postcss.config.js +6 -0
- frontend/public/vite.svg +1 -0
- frontend/src/App.css +42 -0
- frontend/src/App.jsx +44 -0
- frontend/src/assets/react.svg +1 -0
- frontend/src/components/DropZone.jsx +103 -0
- frontend/src/components/FileViewer.jsx +89 -0
- frontend/src/components/ResultList.jsx +94 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,8 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
backend/\[3\]_Process/ReportTester-263254895.xlsx filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
newplot.png filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
use[[:space:]]this[[:space:]]for[[:space:]]lineschart[[:space:]]&[[:space:]]y-distribution[[:space:]]graphs/Trade[[:space:]]Report_graphs.pdf filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
use[[:space:]]this[[:space:]]for[[:space:]]lineschart[[:space:]]&[[:space:]]y-distribution[[:space:]]graphs/Trade[[:space:]]Report_graphs.png filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
use[[:space:]]this[[:space:]]sample[[:space:]]file[[:space:]]and[[:space:]]drop[[:space:]]at[[:space:]]\[2\]/ReportTester-263254895.xlsx filter=lfs diff=lfs merge=lfs -text
|
LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2026 callmerem
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
README.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
# MT-Parsee
|
| 3 |
+
An `MT5-trade-report.xlsx` file parser constructs statistical graphs for clear visualization of the trading strategy performance. For demonstration, it handles 71,478 cells dataframe to generate 76 rolling trading metrics and graphs with [consideration](https://github.com/algorembrant/MTParsee/blob/main/metrics_consideration.pdf) of balance-based and equity-based calculations. Drop the xlsx file once — then let the bot do the rest.
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
## Demonstation
|
| 8 |
+
https://github.com/user-attachments/assets/92a9049a-1948-49ed-b96b-75366a9f5b74
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
## Project Structure
|
| 15 |
+
```
|
| 16 |
+
├── backend/
|
| 17 |
+
│ ├── [1]_main_watchdog.py # monitors and conduct automation
|
| 18 |
+
│ ├── [2]_Drop_xlsx_here/ # drog the xlsx file here
|
| 19 |
+
│ ├── [3]_Process/
|
| 20 |
+
│ │ ├── 1_layer.py # parsing the entire one xlxs
|
| 21 |
+
│ │ ├── 2_layer.py # extracts the order&deals tables
|
| 22 |
+
│ │ ├── 3_layer.py # from 2 csv, merge into one
|
| 23 |
+
│ │ ├── 4_layer.py # only all red-rolling_28-metrics (MT5)
|
| 24 |
+
│ │ ├── 5_layer.py # only all blue-rolling_13-metrics (non-MT5)
|
| 25 |
+
│ │ ├── 6_layer.py # from 2 csv, all balance-based_41-metrics
|
| 26 |
+
│ │ ├── 7_layer.py # only all orange (equity-based) rolling_metrics
|
| 27 |
+
│ │ ├── 8_layer.py # from 1 csv, all equity-based_35metrics
|
| 28 |
+
│ │ └── 9_layer.py # all balance & equity-based_76metrics
|
| 29 |
+
│ ├── [4]_output_csv_files/ # The "Result": Final processed data ends up here
|
| 30 |
+
│ │ ├── Upload-1_ID/ # This is where the parsed file for first uploaded file
|
| 31 |
+
│ │ | ├── 1_layer_output.csv # example file
|
| 32 |
+
│ │ | ├── 2_layer_output.csv # example file
|
| 33 |
+
│ │ | ├── 3_layer_output.csv # example file
|
| 34 |
+
│ │ | ├── 4_layer_output.csv # example file
|
| 35 |
+
│ │ | ├── 5_layer_output.csv # example file
|
| 36 |
+
│ │ | ├── 6_layer_output.csv # example file
|
| 37 |
+
│ │ | ├── 7_layer_output.csv # example file
|
| 38 |
+
│ │ | ├── 8_layer_output.csv # example file
|
| 39 |
+
│ │ | ├── 9_layer_output.csv # example file
|
| 40 |
+
│ │ | └── visualize_results.py # 76 plot maker in one tab
|
| 41 |
+
│ │ ├── Upload-2_ID/ # This is where the parsed file for second uploaded file
|
| 42 |
+
│ │ ├── Upload-3_ID/ # This is where the parsed file for third uploaded file
|
| 43 |
+
│ │ └── Upload-4_ID/ # and so on, the pattern goes infinite
|
| 44 |
+
|
| 45 |
+
```
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
## Straightforward steps
|
| 49 |
+
|
| 50 |
+
- install python requirements <br>
|
| 51 |
+
- run watchdog.py once<br>
|
| 52 |
+
- for demonstration, drag-n-drop MT5-trade-report xlsx file into [2] folder
|
| 53 |
+
- let the bot do the rest
|
| 54 |
+
|
| 55 |
+
## MT5 Trade Report
|
| 56 |
+
|
| 57 |
+
<img width="820" height="200" alt="ReportTester-263254895" src="https://github.com/user-attachments/assets/908ffd2a-2c1e-4a95-91b3-1483e1256cdd" />
|
| 58 |
+
|
| 59 |
+
The MT5 Trade Report only provides one rolling metric (as shown above), whereas my parser bot provides 76 rolling metrics. All metrics are listed [here](https://github.com/algorembrant/MTParsee/blob/main/metrics_consideration.pdf).
|
| 60 |
+
|
| 61 |
+
## All 76 Trading metrics
|
| 62 |
+
|
| 63 |
+

|
| 64 |
+
|
| 65 |
+
## Citation
|
| 66 |
+
|
| 67 |
+
```bibtex
|
| 68 |
+
@misc{MTParsee,
|
| 69 |
+
author = {Albeos, Rembrant},
|
| 70 |
+
title = {{MTParsee}},
|
| 71 |
+
year = {2026},
|
| 72 |
+
url = {https://github.com/algorembrant/MTParsee},
|
| 73 |
+
note = {GitHub repository}
|
| 74 |
+
}
|
| 75 |
+
```
|
| 76 |
+
|
STRUCTURE.md
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## Project Structure
|
| 2 |
+
|
| 3 |
+
```text
|
| 4 |
+
MT5report-parser/
|
| 5 |
+
├── backend/
|
| 6 |
+
│ ├── [2]_Drop_xlsx_here/
|
| 7 |
+
│ │ ├── drop the xlsx sample here
|
| 8 |
+
│ │ ├── test.xlsx
|
| 9 |
+
│ │ └── test_pipeline.xlsx
|
| 10 |
+
│ ├── [3]_Process/
|
| 11 |
+
│ │ ├── 1_layer.py
|
| 12 |
+
│ │ ├── 2_layer.py
|
| 13 |
+
│ │ ├── 3_layer.py
|
| 14 |
+
│ │ ├── 4_layer.py
|
| 15 |
+
│ │ ├── 5_layer.py
|
| 16 |
+
│ │ ├── 6_layer.py
|
| 17 |
+
│ │ ├── 7_layer.py
|
| 18 |
+
│ │ ├── 8_layer.py
|
| 19 |
+
│ │ ├── 9_layer.py
|
| 20 |
+
│ │ ├── ReportTester-263254895.xlsx
|
| 21 |
+
│ │ ├── test.py
|
| 22 |
+
│ │ └── test_2.xlsx
|
| 23 |
+
│ ├── [4]_output_csv_files/
|
| 24 |
+
│ │ ├── Upload-1_ID/
|
| 25 |
+
│ │ │ ├── 4_layer_output.csv
|
| 26 |
+
│ │ │ ├── 5_layer_output.csv
|
| 27 |
+
│ │ │ ├── 6_layer_output.csv
|
| 28 |
+
│ │ │ ├── 7_layer_output.csv
|
| 29 |
+
│ │ │ ├── 8_layer_output.csv
|
| 30 |
+
│ │ │ ├── 9_layer_output.csv
|
| 31 |
+
│ │ │ ├── extracted_deals.csv
|
| 32 |
+
│ │ │ ├── extracted_orders.csv
|
| 33 |
+
│ │ │ ├── merged_extracted_orders_and_deals.csv
|
| 34 |
+
│ │ │ ├── Sheet1.csv
|
| 35 |
+
│ │ │ └── visualize_results.py
|
| 36 |
+
│ │ └── outputs will go here
|
| 37 |
+
│ ├── .env
|
| 38 |
+
│ ├── [1]_main_watchdog.py
|
| 39 |
+
│ ├── server.py
|
| 40 |
+
│ ├── test_backend.py
|
| 41 |
+
│ └── workflow.md
|
| 42 |
+
├── frontend/
|
| 43 |
+
│ ├── public/
|
| 44 |
+
│ │ └── vite.svg
|
| 45 |
+
│ ├── src/
|
| 46 |
+
│ │ ├── assets/
|
| 47 |
+
│ │ │ └── react.svg
|
| 48 |
+
│ │ ├── components/
|
| 49 |
+
│ │ │ ├── DropZone.jsx
|
| 50 |
+
│ │ │ ├── FileViewer.jsx
|
| 51 |
+
│ │ │ └── ResultList.jsx
|
| 52 |
+
│ │ ├── App.css
|
| 53 |
+
│ │ ├── App.jsx
|
| 54 |
+
│ │ ├── index.css
|
| 55 |
+
│ │ └── main.jsx
|
| 56 |
+
│ ├── .gitignore
|
| 57 |
+
│ ├── eslint.config.js
|
| 58 |
+
│ ├── index.html
|
| 59 |
+
│ ├── package-lock.json
|
| 60 |
+
│ ├── package.json
|
| 61 |
+
│ ├── postcss.config.js
|
| 62 |
+
│ ├── README.md
|
| 63 |
+
│ ├── tailwind.config.js
|
| 64 |
+
│ └── vite.config.js
|
| 65 |
+
├── use this for lineschart & y-distribution graphs/
|
| 66 |
+
│ ├── Trade Report_graphs.pdf
|
| 67 |
+
│ ├── Trade Report_graphs.png
|
| 68 |
+
│ ├── visualize_results (plotlylocalhost).py
|
| 69 |
+
│ ├── visualize_results (plotlylocalhost, png, pdf ).py
|
| 70 |
+
│ ├── visualize_results (png, pdf ).py
|
| 71 |
+
│ └── you either change it in the watchdog.py or directly run this file
|
| 72 |
+
├── use this sample file and drop at [2]/
|
| 73 |
+
│ └── ReportTester-263254895.xlsx
|
| 74 |
+
├── LICENSE
|
| 75 |
+
├── metrics_consideration.pdf
|
| 76 |
+
├── newplot.png
|
| 77 |
+
├── README.md
|
| 78 |
+
├── requirements.txt
|
| 79 |
+
└── TECHSTACK.md
|
| 80 |
+
```
|
TECHSTACK.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
## Techstack
|
| 2 |
+
|
| 3 |
+
Audit of **MT5report-parser** project files (excluding environment and cache):
|
| 4 |
+
|
| 5 |
+
| File Type | Count | Size (KB) |
|
| 6 |
+
| :--- | :--- | :--- |
|
| 7 |
+
| Python (.py) | 17 | 75.4 |
|
| 8 |
+
| CSV (.csv) | 10 | 2,904.3 |
|
| 9 |
+
| (no extension) | 5 | 1.4 |
|
| 10 |
+
| JSX (React) (.jsx) | 5 | 14.3 |
|
| 11 |
+
| Microsoft Excel (OOXML) (.xlsx) | 5 | 390.9 |
|
| 12 |
+
| JavaScript (.js) | 4 | 1.3 |
|
| 13 |
+
| Markdown (.md) | 3 | 10.2 |
|
| 14 |
+
| CSS (.css) | 2 | 0.7 |
|
| 15 |
+
| JSON (.json) | 2 | 141.6 |
|
| 16 |
+
| PDF (.pdf) | 2 | 237.7 |
|
| 17 |
+
| PNG Image (.png) | 2 | 4,698.0 |
|
| 18 |
+
| SVG Image (.svg) | 2 | 5.5 |
|
| 19 |
+
| HTML (.html) | 1 | 0.3 |
|
| 20 |
+
| Plain Text (.txt) | 1 | 0.1 |
|
| 21 |
+
| PY OR DIRECTLY RUN THIS FILE (.py or directly run this file) | 1 | 0 |
|
| 22 |
+
| **Total** | **62** | **8,481.7** |
|
backend/[1]_main_watchdog.py
ADDED
|
@@ -0,0 +1,381 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
QuasarVaultage Watchdog - Automated Excel Processing Pipeline
|
| 3 |
+
Monitors [2]_Drop_xlsx_here folder and processes files through all 9 layers
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
import os
|
| 7 |
+
import time
|
| 8 |
+
import shutil
|
| 9 |
+
import subprocess
|
| 10 |
+
import sys
|
| 11 |
+
from pathlib import Path
|
| 12 |
+
from watchdog.observers import Observer
|
| 13 |
+
from watchdog.events import FileSystemEventHandler
|
| 14 |
+
|
| 15 |
+
# The content of the visualization script to be generated
|
| 16 |
+
VISUALIZATION_SCRIPT_CONTENT = r'''import pandas as pd
|
| 17 |
+
import plotly.graph_objects as go
|
| 18 |
+
from plotly.subplots import make_subplots
|
| 19 |
+
import os
|
| 20 |
+
|
| 21 |
+
def format_title(text):
|
| 22 |
+
"""
|
| 23 |
+
Formats the column name for the graph title:
|
| 24 |
+
1. Splits by '_'.
|
| 25 |
+
2. If 'rolling' exists, keep only words AFTER it.
|
| 26 |
+
3. Capitalize first letter (unless already all caps).
|
| 27 |
+
4. Remove duplicates.
|
| 28 |
+
"""
|
| 29 |
+
# Split by underscore
|
| 30 |
+
words = text.split('_')
|
| 31 |
+
|
| 32 |
+
# Handle 'rolling': Find the specific word and keep everything after it
|
| 33 |
+
lower_words = [w.lower() for w in words]
|
| 34 |
+
if 'rolling' in lower_words:
|
| 35 |
+
try:
|
| 36 |
+
# Find the index of the word 'rolling'
|
| 37 |
+
index = lower_words.index('rolling')
|
| 38 |
+
# Slice the list to keep only elements after 'rolling'
|
| 39 |
+
words = words[index + 1:]
|
| 40 |
+
except ValueError:
|
| 41 |
+
pass
|
| 42 |
+
|
| 43 |
+
# Deduplicate and Format
|
| 44 |
+
clean_words = []
|
| 45 |
+
seen = set()
|
| 46 |
+
|
| 47 |
+
for word in words:
|
| 48 |
+
# distinct check (case-insensitive) and skip empty strings or leftover 'rolling'
|
| 49 |
+
if word.lower() not in seen and word.strip() != "" and word.lower() != 'rolling':
|
| 50 |
+
seen.add(word.lower())
|
| 51 |
+
|
| 52 |
+
# Capitalization Logic
|
| 53 |
+
if word.isupper():
|
| 54 |
+
# If text is already capslock (abbreviation), do not change
|
| 55 |
+
clean_words.append(word)
|
| 56 |
+
else:
|
| 57 |
+
# Make first letter capslock
|
| 58 |
+
clean_words.append(word.capitalize())
|
| 59 |
+
|
| 60 |
+
return " ".join(clean_words)
|
| 61 |
+
|
| 62 |
+
def create_column_graphs(filename):
|
| 63 |
+
# Check if file exists
|
| 64 |
+
if not os.path.exists(filename):
|
| 65 |
+
print(f"Error: The file '{filename}' was not found in the current directory.")
|
| 66 |
+
return
|
| 67 |
+
|
| 68 |
+
# Load the data
|
| 69 |
+
try:
|
| 70 |
+
df = pd.read_csv(filename)
|
| 71 |
+
except Exception as e:
|
| 72 |
+
print(f"Error reading the CSV file: {e}")
|
| 73 |
+
return
|
| 74 |
+
|
| 75 |
+
# Select only numeric columns (assuming we want to plot numerical data)
|
| 76 |
+
cols_to_plot = df.select_dtypes(include=['number']).columns
|
| 77 |
+
|
| 78 |
+
if len(cols_to_plot) == 0:
|
| 79 |
+
print("No numeric columns found to plot.")
|
| 80 |
+
# Fallback to all columns if no numeric found
|
| 81 |
+
cols_to_plot = df.columns
|
| 82 |
+
|
| 83 |
+
# Process titles according to rules
|
| 84 |
+
formatted_titles = [format_title(col) for col in cols_to_plot]
|
| 85 |
+
|
| 86 |
+
num_plots = len(cols_to_plot)
|
| 87 |
+
print(f"Generating {num_plots} graphs...")
|
| 88 |
+
|
| 89 |
+
# Create subplots: one row for each column
|
| 90 |
+
fig = make_subplots(
|
| 91 |
+
rows=num_plots,
|
| 92 |
+
cols=1,
|
| 93 |
+
subplot_titles=formatted_titles, # Use the formatted titles here
|
| 94 |
+
vertical_spacing=0.05 / max(1, (num_plots / 2)) # Adjust spacing dynamically
|
| 95 |
+
)
|
| 96 |
+
|
| 97 |
+
# Add a line graph for each column
|
| 98 |
+
for i, col in enumerate(cols_to_plot):
|
| 99 |
+
fig.add_trace(
|
| 100 |
+
go.Scatter(
|
| 101 |
+
x=df.index,
|
| 102 |
+
y=df[col],
|
| 103 |
+
mode='lines',
|
| 104 |
+
name=formatted_titles[i] # Update trace name to match title
|
| 105 |
+
),
|
| 106 |
+
row=i + 1,
|
| 107 |
+
col=1
|
| 108 |
+
)
|
| 109 |
+
|
| 110 |
+
# Update the layout to use the white theme and ensure it's tall enough
|
| 111 |
+
fig.update_layout(
|
| 112 |
+
template='plotly_white',
|
| 113 |
+
height=300 * num_plots, # Set height: 300px per graph
|
| 114 |
+
title_text=f"Visualization of {filename}",
|
| 115 |
+
showlegend=False # Hide legend to reduce clutter
|
| 116 |
+
)
|
| 117 |
+
|
| 118 |
+
# Show the graph
|
| 119 |
+
fig.show()
|
| 120 |
+
|
| 121 |
+
if __name__ == "__main__":
|
| 122 |
+
create_column_graphs('9_layer_output.csv')
|
| 123 |
+
'''
|
| 124 |
+
|
| 125 |
+
class ExcelProcessorHandler(FileSystemEventHandler):
|
| 126 |
+
def __init__(self, watch_dir, process_dir, output_dir):
|
| 127 |
+
self.watch_dir = Path(watch_dir)
|
| 128 |
+
self.process_dir = Path(process_dir)
|
| 129 |
+
self.output_dir = Path(output_dir)
|
| 130 |
+
self.upload_counter = self._get_next_upload_id()
|
| 131 |
+
self.processing = False
|
| 132 |
+
|
| 133 |
+
def _get_next_upload_id(self):
|
| 134 |
+
"""Determine the next Upload-X_ID folder number"""
|
| 135 |
+
if not self.output_dir.exists():
|
| 136 |
+
return 1
|
| 137 |
+
|
| 138 |
+
existing = [d for d in self.output_dir.iterdir() if d.is_dir() and d.name.startswith('Upload-')]
|
| 139 |
+
if not existing:
|
| 140 |
+
return 1
|
| 141 |
+
|
| 142 |
+
numbers = []
|
| 143 |
+
for folder in existing:
|
| 144 |
+
try:
|
| 145 |
+
num = int(folder.name.split('-')[1].split('_')[0])
|
| 146 |
+
numbers.append(num)
|
| 147 |
+
except (IndexError, ValueError):
|
| 148 |
+
continue
|
| 149 |
+
|
| 150 |
+
return max(numbers) + 1 if numbers else 1
|
| 151 |
+
|
| 152 |
+
def on_created(self, event):
|
| 153 |
+
"""Triggered when a new file is detected"""
|
| 154 |
+
if event.is_directory:
|
| 155 |
+
return
|
| 156 |
+
|
| 157 |
+
file_path = Path(event.src_path)
|
| 158 |
+
|
| 159 |
+
# Only process Excel files
|
| 160 |
+
if file_path.suffix.lower() not in ['.xlsx', '.xls']:
|
| 161 |
+
return
|
| 162 |
+
|
| 163 |
+
# Avoid processing temporary Excel files
|
| 164 |
+
if file_path.name.startswith('~$'):
|
| 165 |
+
return
|
| 166 |
+
|
| 167 |
+
print(f"\n{'='*70}")
|
| 168 |
+
print(f" NEW FILE DETECTED: {file_path.name}")
|
| 169 |
+
print(f"{'='*70}")
|
| 170 |
+
|
| 171 |
+
# Wait for file to be completely written
|
| 172 |
+
self._wait_for_file_ready(file_path)
|
| 173 |
+
|
| 174 |
+
# Process the file
|
| 175 |
+
self.process_file(file_path)
|
| 176 |
+
|
| 177 |
+
def _wait_for_file_ready(self, file_path, timeout=30):
|
| 178 |
+
"""Wait until file is completely written and not locked"""
|
| 179 |
+
print(f" Waiting for file to be ready...")
|
| 180 |
+
start_time = time.time()
|
| 181 |
+
last_size = -1
|
| 182 |
+
|
| 183 |
+
while time.time() - start_time < timeout:
|
| 184 |
+
try:
|
| 185 |
+
current_size = file_path.stat().st_size
|
| 186 |
+
if current_size == last_size and current_size > 0:
|
| 187 |
+
# Try to open file to ensure it's not locked
|
| 188 |
+
with open(file_path, 'rb') as f:
|
| 189 |
+
f.read(1)
|
| 190 |
+
time.sleep(1) # Extra safety delay
|
| 191 |
+
print(f" File ready ({current_size} bytes)")
|
| 192 |
+
return True
|
| 193 |
+
last_size = current_size
|
| 194 |
+
time.sleep(0.5)
|
| 195 |
+
except (PermissionError, IOError):
|
| 196 |
+
time.sleep(0.5)
|
| 197 |
+
|
| 198 |
+
print(f" Warning: File may not be fully ready after {timeout}s")
|
| 199 |
+
return False
|
| 200 |
+
|
| 201 |
+
def process_file(self, file_path):
|
| 202 |
+
"""Main processing pipeline"""
|
| 203 |
+
if self.processing:
|
| 204 |
+
print(" Already processing a file. Skipping...")
|
| 205 |
+
return
|
| 206 |
+
|
| 207 |
+
self.processing = True
|
| 208 |
+
start_time = time.time()
|
| 209 |
+
|
| 210 |
+
try:
|
| 211 |
+
# Step 1: Move file to Process folder
|
| 212 |
+
dest_path = self.process_dir / file_path.name
|
| 213 |
+
print(f"\n Step 1: Moving file to Process folder...")
|
| 214 |
+
shutil.move(str(file_path), str(dest_path))
|
| 215 |
+
print(f" Moved to: {dest_path}")
|
| 216 |
+
|
| 217 |
+
# Step 2: Run all layer scripts sequentially
|
| 218 |
+
print(f"\n Step 2: Running processing layers...")
|
| 219 |
+
layer_scripts = [f"{i}_layer.py" for i in range(1, 10)]
|
| 220 |
+
|
| 221 |
+
for i, script in enumerate(layer_scripts, 1):
|
| 222 |
+
script_path = self.process_dir / script
|
| 223 |
+
if not script_path.exists():
|
| 224 |
+
print(f" Warning: {script} not found. Skipping...")
|
| 225 |
+
continue
|
| 226 |
+
|
| 227 |
+
print(f"\n Running Layer {i}: {script}")
|
| 228 |
+
result = self._run_layer_script(script_path, dest_path)
|
| 229 |
+
|
| 230 |
+
if result:
|
| 231 |
+
print(f" Layer {i} completed successfully")
|
| 232 |
+
else:
|
| 233 |
+
print(f" Layer {i} failed")
|
| 234 |
+
# Continue processing other layers even if one fails
|
| 235 |
+
|
| 236 |
+
# Step 3: Collect all CSV outputs from Process folder
|
| 237 |
+
print(f"\n Step 3: Collecting output CSV files...")
|
| 238 |
+
csv_files = list(self.process_dir.glob("*.csv"))
|
| 239 |
+
|
| 240 |
+
if not csv_files:
|
| 241 |
+
print(" No CSV files found in Process folder")
|
| 242 |
+
return
|
| 243 |
+
|
| 244 |
+
# Step 4: Create Upload-X_ID folder and move files
|
| 245 |
+
upload_folder = self.output_dir / f"Upload-{self.upload_counter}_ID"
|
| 246 |
+
upload_folder.mkdir(parents=True, exist_ok=True)
|
| 247 |
+
print(f"\n Step 4: Creating output folder: {upload_folder.name}")
|
| 248 |
+
|
| 249 |
+
moved_count = 0
|
| 250 |
+
for csv_file in csv_files:
|
| 251 |
+
dest = upload_folder / csv_file.name
|
| 252 |
+
shutil.move(str(csv_file), str(dest))
|
| 253 |
+
moved_count += 1
|
| 254 |
+
print(f" Moved: {csv_file.name}")
|
| 255 |
+
|
| 256 |
+
# Step 5: Generate Visualization Script
|
| 257 |
+
print(f"\n Step 5: Generating visualization script...")
|
| 258 |
+
viz_script_path = upload_folder / "visualize_results.py"
|
| 259 |
+
with open(viz_script_path, 'w', encoding='utf-8') as f:
|
| 260 |
+
f.write(VISUALIZATION_SCRIPT_CONTENT)
|
| 261 |
+
print(f" Created: {viz_script_path.name}")
|
| 262 |
+
|
| 263 |
+
# Step 6: Trigger Visualization Automatically
|
| 264 |
+
print(f"\n Step 6: Auto-launching visualization...")
|
| 265 |
+
try:
|
| 266 |
+
# We use Popen so it doesn't block the watchdog loop (optional: use run() if you want to block)
|
| 267 |
+
# Using sys.executable ensures we use the same python env
|
| 268 |
+
subprocess.Popen([sys.executable, str(viz_script_path)], cwd=str(upload_folder))
|
| 269 |
+
print(" Visualization triggered! Check your browser.")
|
| 270 |
+
except Exception as e:
|
| 271 |
+
print(f" Failed to launch visualization: {e}")
|
| 272 |
+
|
| 273 |
+
# Summary
|
| 274 |
+
elapsed_time = time.time() - start_time
|
| 275 |
+
print(f"\n{'='*70}")
|
| 276 |
+
print(f" PROCESSING COMPLETE!")
|
| 277 |
+
print(f"{'='*70}")
|
| 278 |
+
print(f" Input file: {file_path.name}")
|
| 279 |
+
print(f" Output folder: {upload_folder.name}")
|
| 280 |
+
print(f" CSV files generated: {moved_count}")
|
| 281 |
+
print(f" Visualization: Launched")
|
| 282 |
+
print(f" Time elapsed: {elapsed_time:.2f} seconds")
|
| 283 |
+
print(f"{'='*70}\n")
|
| 284 |
+
|
| 285 |
+
# Increment counter for next file
|
| 286 |
+
self.upload_counter += 1
|
| 287 |
+
|
| 288 |
+
except Exception as e:
|
| 289 |
+
print(f"\n ERROR during processing: {e}")
|
| 290 |
+
import traceback
|
| 291 |
+
traceback.print_exc()
|
| 292 |
+
finally:
|
| 293 |
+
self.processing = False
|
| 294 |
+
|
| 295 |
+
def _run_layer_script(self, script_path, input_file):
|
| 296 |
+
"""Execute a layer script and return success status"""
|
| 297 |
+
try:
|
| 298 |
+
# Run the script with Python interpreter
|
| 299 |
+
result = subprocess.run(
|
| 300 |
+
[sys.executable, str(script_path), str(input_file)],
|
| 301 |
+
cwd=str(self.process_dir),
|
| 302 |
+
capture_output=True,
|
| 303 |
+
text=True,
|
| 304 |
+
timeout=300 # 5 minute timeout per layer
|
| 305 |
+
)
|
| 306 |
+
|
| 307 |
+
# Print script output if there's any
|
| 308 |
+
if result.stdout:
|
| 309 |
+
for line in result.stdout.strip().split('\n'):
|
| 310 |
+
print(f" {line}")
|
| 311 |
+
|
| 312 |
+
if result.returncode != 0:
|
| 313 |
+
print(f" Script exited with code {result.returncode}")
|
| 314 |
+
if result.stderr:
|
| 315 |
+
print(f" Error: {result.stderr}")
|
| 316 |
+
return False
|
| 317 |
+
|
| 318 |
+
return True
|
| 319 |
+
|
| 320 |
+
except subprocess.TimeoutExpired:
|
| 321 |
+
print(f" Script timed out after 5 minutes")
|
| 322 |
+
return False
|
| 323 |
+
except Exception as e:
|
| 324 |
+
print(f" Error running script: {e}")
|
| 325 |
+
return False
|
| 326 |
+
|
| 327 |
+
|
| 328 |
+
def setup_directories(base_dir):
|
| 329 |
+
"""Create necessary directories if they don't exist"""
|
| 330 |
+
watch_dir = base_dir / "[2]_Drop_xlsx_here"
|
| 331 |
+
process_dir = base_dir / "[3]_Process"
|
| 332 |
+
output_dir = base_dir / "[4]_output_csv_files"
|
| 333 |
+
|
| 334 |
+
watch_dir.mkdir(exist_ok=True)
|
| 335 |
+
process_dir.mkdir(exist_ok=True)
|
| 336 |
+
output_dir.mkdir(exist_ok=True)
|
| 337 |
+
|
| 338 |
+
return watch_dir, process_dir, output_dir
|
| 339 |
+
|
| 340 |
+
|
| 341 |
+
def main():
|
| 342 |
+
"""Main watchdog loop"""
|
| 343 |
+
print("""
|
| 344 |
+
╔══════════════════════════════════════════════════════════════════╗
|
| 345 |
+
║ QuasarVaultage - Automated Processing System ║
|
| 346 |
+
╚══════════════════════════════════════════════════════════════════╝
|
| 347 |
+
""")
|
| 348 |
+
|
| 349 |
+
# Determine base directory (backend folder)
|
| 350 |
+
script_dir = Path(__file__).parent.absolute()
|
| 351 |
+
|
| 352 |
+
# Setup directories
|
| 353 |
+
watch_dir, process_dir, output_dir = setup_directories(script_dir)
|
| 354 |
+
|
| 355 |
+
print(f" Monitoring: {watch_dir}")
|
| 356 |
+
print(f" Processing: {process_dir}")
|
| 357 |
+
print(f" Output: {output_dir}")
|
| 358 |
+
print(f"\n{'='*70}")
|
| 359 |
+
print(" WATCHDOG ACTIVE - Waiting for Excel files...")
|
| 360 |
+
print(" Drop .xlsx files into [2]_Drop_xlsx_here folder")
|
| 361 |
+
print(" Press Ctrl+C to stop")
|
| 362 |
+
print(f"{'='*70}\n")
|
| 363 |
+
|
| 364 |
+
# Create event handler and observer
|
| 365 |
+
event_handler = ExcelProcessorHandler(watch_dir, process_dir, output_dir)
|
| 366 |
+
observer = Observer()
|
| 367 |
+
observer.schedule(event_handler, str(watch_dir), recursive=False)
|
| 368 |
+
observer.start()
|
| 369 |
+
|
| 370 |
+
try:
|
| 371 |
+
while True:
|
| 372 |
+
time.sleep(1)
|
| 373 |
+
except KeyboardInterrupt:
|
| 374 |
+
print("\n\n Stopping watchdog...")
|
| 375 |
+
observer.stop()
|
| 376 |
+
observer.join()
|
| 377 |
+
print(" Watchdog stopped gracefully")
|
| 378 |
+
|
| 379 |
+
|
| 380 |
+
if __name__ == "__main__":
|
| 381 |
+
main()
|
backend/[2]_Drop_xlsx_here/drop the xlsx sample here
ADDED
|
File without changes
|
backend/[2]_Drop_xlsx_here/test.xlsx
ADDED
|
Binary file (4.95 kB). View file
|
|
|
backend/[2]_Drop_xlsx_here/test_pipeline.xlsx
ADDED
|
Binary file (4.97 kB). View file
|
|
|
backend/[3]_Process/1_layer.py
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import openpyxl
|
| 2 |
+
import pandas as pd
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
|
| 5 |
+
def extract_excel_data(file_path):
|
| 6 |
+
"""
|
| 7 |
+
Extract all data from an Excel file (.xlsx)
|
| 8 |
+
|
| 9 |
+
Args:
|
| 10 |
+
file_path (str): Path to the .xlsx file
|
| 11 |
+
|
| 12 |
+
Returns:
|
| 13 |
+
dict: Dictionary containing data from all sheets
|
| 14 |
+
"""
|
| 15 |
+
try:
|
| 16 |
+
# Load the workbook
|
| 17 |
+
workbook = openpyxl.load_workbook(file_path)
|
| 18 |
+
|
| 19 |
+
# Dictionary to store all sheets' data
|
| 20 |
+
all_data = {}
|
| 21 |
+
|
| 22 |
+
print(f"Processing file: {file_path}")
|
| 23 |
+
print(f"Number of sheets: {len(workbook.sheetnames)}\n")
|
| 24 |
+
|
| 25 |
+
# Iterate through all sheets
|
| 26 |
+
for sheet_name in workbook.sheetnames:
|
| 27 |
+
sheet = workbook[sheet_name]
|
| 28 |
+
|
| 29 |
+
print(f"--- Sheet: {sheet_name} ---")
|
| 30 |
+
print(f"Dimensions: {sheet.dimensions}")
|
| 31 |
+
|
| 32 |
+
# Extract data from the sheet
|
| 33 |
+
sheet_data = []
|
| 34 |
+
for row in sheet.iter_rows(values_only=True):
|
| 35 |
+
sheet_data.append(row)
|
| 36 |
+
|
| 37 |
+
all_data[sheet_name] = sheet_data
|
| 38 |
+
|
| 39 |
+
# Display first few rows
|
| 40 |
+
print(f"First 5 rows:")
|
| 41 |
+
for i, row in enumerate(sheet_data[:5]):
|
| 42 |
+
print(f" Row {i+1}: {row}")
|
| 43 |
+
print()
|
| 44 |
+
|
| 45 |
+
return all_data
|
| 46 |
+
|
| 47 |
+
except FileNotFoundError:
|
| 48 |
+
print(f"Error: File '{file_path}' not found.")
|
| 49 |
+
return None
|
| 50 |
+
except Exception as e:
|
| 51 |
+
print(f"Error: {e}")
|
| 52 |
+
return None
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
def extract_excel_with_pandas(file_path):
|
| 56 |
+
"""
|
| 57 |
+
Alternative method using pandas to extract Excel data
|
| 58 |
+
|
| 59 |
+
Args:
|
| 60 |
+
file_path (str): Path to the .xlsx file
|
| 61 |
+
|
| 62 |
+
Returns:
|
| 63 |
+
dict: Dictionary of DataFrames, one per sheet
|
| 64 |
+
"""
|
| 65 |
+
try:
|
| 66 |
+
# Read all sheets into a dictionary of DataFrames
|
| 67 |
+
all_sheets = pd.read_excel(file_path, sheet_name=None)
|
| 68 |
+
|
| 69 |
+
print(f"Processing file: {file_path}")
|
| 70 |
+
print(f"Number of sheets: {len(all_sheets)}\n")
|
| 71 |
+
|
| 72 |
+
# Display info for each sheet
|
| 73 |
+
for sheet_name, df in all_sheets.items():
|
| 74 |
+
print(f"--- Sheet: {sheet_name} ---")
|
| 75 |
+
print(f"Shape: {df.shape} (rows, columns)")
|
| 76 |
+
print(f"Columns: {list(df.columns)}")
|
| 77 |
+
print("\nFirst 5 rows:")
|
| 78 |
+
print(df.head())
|
| 79 |
+
print("\n")
|
| 80 |
+
|
| 81 |
+
return all_sheets
|
| 82 |
+
|
| 83 |
+
except FileNotFoundError:
|
| 84 |
+
print(f"Error: File '{file_path}' not found.")
|
| 85 |
+
return None
|
| 86 |
+
except Exception as e:
|
| 87 |
+
print(f"Error: {e}")
|
| 88 |
+
return None
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
if __name__ == "__main__":
|
| 92 |
+
# Example usage
|
| 93 |
+
file_path = "ReportTester-263254895.xlsx" # Change this to your file path
|
| 94 |
+
|
| 95 |
+
print("=" * 60)
|
| 96 |
+
print("Method 1: Using openpyxl")
|
| 97 |
+
print("=" * 60)
|
| 98 |
+
data = extract_excel_data(file_path)
|
| 99 |
+
|
| 100 |
+
print("\n" + "=" * 60)
|
| 101 |
+
print("Method 2: Using pandas (recommended)")
|
| 102 |
+
print("=" * 60)
|
| 103 |
+
df_data = extract_excel_with_pandas(file_path)
|
| 104 |
+
|
| 105 |
+
# Optional: Save extracted data
|
| 106 |
+
if df_data:
|
| 107 |
+
# Export each sheet to CSV
|
| 108 |
+
for sheet_name, df in df_data.items():
|
| 109 |
+
output_file = f"{sheet_name}.csv"
|
| 110 |
+
df.to_csv(output_file, index=False)
|
| 111 |
+
print(f"Exported '{sheet_name}' to {output_file}")
|
backend/[3]_Process/2_layer.py
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
import numpy as np
|
| 3 |
+
|
| 4 |
+
def extract_tables_from_csv(file_path):
|
| 5 |
+
"""
|
| 6 |
+
Extract two separate tables from a CSV file and convert to clean DataFrames
|
| 7 |
+
|
| 8 |
+
Args:
|
| 9 |
+
file_path (str): Path to the CSV file
|
| 10 |
+
|
| 11 |
+
Returns:
|
| 12 |
+
tuple: (orders_df, deals_df) - Two pandas DataFrames
|
| 13 |
+
"""
|
| 14 |
+
# Read the entire CSV file
|
| 15 |
+
with open(file_path, 'r', encoding='utf-8') as f:
|
| 16 |
+
lines = f.readlines()
|
| 17 |
+
|
| 18 |
+
# Find the row indices where each table starts
|
| 19 |
+
orders_start = None
|
| 20 |
+
deals_start = None
|
| 21 |
+
|
| 22 |
+
for i, line in enumerate(lines):
|
| 23 |
+
# Check for first table header
|
| 24 |
+
if 'Open Time' in line and 'Order' in line and 'Symbol' in line:
|
| 25 |
+
orders_start = i
|
| 26 |
+
# Check for second table header
|
| 27 |
+
if 'Time' in line and 'Deal' in line and 'Direction' in line:
|
| 28 |
+
deals_start = i
|
| 29 |
+
|
| 30 |
+
print(f"Orders table starts at line: {orders_start}")
|
| 31 |
+
print(f"Deals table starts at line: {deals_start}\n")
|
| 32 |
+
|
| 33 |
+
# Extract Orders table
|
| 34 |
+
if orders_start is not None:
|
| 35 |
+
if deals_start is not None:
|
| 36 |
+
# Read from orders_start to deals_start
|
| 37 |
+
orders_df = pd.read_csv(
|
| 38 |
+
file_path,
|
| 39 |
+
skiprows=orders_start,
|
| 40 |
+
nrows=deals_start - orders_start - 1
|
| 41 |
+
)
|
| 42 |
+
else:
|
| 43 |
+
# Read from orders_start to end
|
| 44 |
+
orders_df = pd.read_csv(file_path, skiprows=orders_start)
|
| 45 |
+
|
| 46 |
+
# Clean the orders dataframe
|
| 47 |
+
orders_df = clean_dataframe(orders_df)
|
| 48 |
+
|
| 49 |
+
# Define expected columns for orders
|
| 50 |
+
orders_columns = ['Open Time', 'Order', 'Symbol', 'Type', 'Volume',
|
| 51 |
+
'Price', 'S / L', 'T / P', 'Time', 'State', 'Comment']
|
| 52 |
+
orders_df = orders_df.reindex(columns=orders_columns, fill_value=np.nan)
|
| 53 |
+
|
| 54 |
+
print("Orders Table:")
|
| 55 |
+
print(orders_df.head())
|
| 56 |
+
print(f"\nShape: {orders_df.shape}")
|
| 57 |
+
print(f"Columns: {list(orders_df.columns)}\n")
|
| 58 |
+
else:
|
| 59 |
+
orders_df = None
|
| 60 |
+
print("Orders table not found!\n")
|
| 61 |
+
|
| 62 |
+
# Extract Deals table
|
| 63 |
+
if deals_start is not None:
|
| 64 |
+
# Read from deals_start to end
|
| 65 |
+
deals_df = pd.read_csv(file_path, skiprows=deals_start)
|
| 66 |
+
|
| 67 |
+
# Clean the deals dataframe
|
| 68 |
+
deals_df = clean_dataframe(deals_df)
|
| 69 |
+
|
| 70 |
+
# Define expected columns for deals
|
| 71 |
+
deals_columns = ['Time', 'Deal', 'Symbol', 'Type', 'Direction',
|
| 72 |
+
'Volume', 'Price', 'Order', 'Commission', 'Swap',
|
| 73 |
+
'Profit', 'Balance', 'Comment']
|
| 74 |
+
deals_df = deals_df.reindex(columns=deals_columns, fill_value=np.nan)
|
| 75 |
+
|
| 76 |
+
print("Deals Table:")
|
| 77 |
+
print(deals_df.head())
|
| 78 |
+
print(f"\nShape: {deals_df.shape}")
|
| 79 |
+
print(f"Columns: {list(deals_df.columns)}\n")
|
| 80 |
+
else:
|
| 81 |
+
deals_df = None
|
| 82 |
+
print("Deals table not found!\n")
|
| 83 |
+
|
| 84 |
+
return orders_df, deals_df
|
| 85 |
+
|
| 86 |
+
|
| 87 |
+
def clean_dataframe(df):
|
| 88 |
+
"""
|
| 89 |
+
Clean the dataframe by removing empty rows and columns
|
| 90 |
+
|
| 91 |
+
Args:
|
| 92 |
+
df (DataFrame): Input dataframe
|
| 93 |
+
|
| 94 |
+
Returns:
|
| 95 |
+
DataFrame: Cleaned dataframe
|
| 96 |
+
"""
|
| 97 |
+
# Remove completely empty rows
|
| 98 |
+
df = df.dropna(how='all')
|
| 99 |
+
|
| 100 |
+
# Remove completely empty columns
|
| 101 |
+
df = df.dropna(axis=1, how='all')
|
| 102 |
+
|
| 103 |
+
# Remove columns with no name (Unnamed columns that are empty)
|
| 104 |
+
df = df.loc[:, ~df.columns.str.contains('^Unnamed')]
|
| 105 |
+
|
| 106 |
+
# Reset index
|
| 107 |
+
df = df.reset_index(drop=True)
|
| 108 |
+
|
| 109 |
+
# Strip whitespace from string columns
|
| 110 |
+
for col in df.columns:
|
| 111 |
+
if df[col].dtype == 'object':
|
| 112 |
+
df[col] = df[col].str.strip() if df[col].notna().any() else df[col]
|
| 113 |
+
|
| 114 |
+
return df
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
def save_tables(orders_df, deals_df, output_prefix='table'):
|
| 118 |
+
"""
|
| 119 |
+
Save the extracted tables to separate CSV files
|
| 120 |
+
|
| 121 |
+
Args:
|
| 122 |
+
orders_df (DataFrame): Orders table
|
| 123 |
+
deals_df (DataFrame): Deals table
|
| 124 |
+
output_prefix (str): Prefix for output files
|
| 125 |
+
"""
|
| 126 |
+
if orders_df is not None:
|
| 127 |
+
orders_file = f"{output_prefix}_orders.csv"
|
| 128 |
+
orders_df.to_csv(orders_file, index=False)
|
| 129 |
+
print(f"Orders table saved to: {orders_file}")
|
| 130 |
+
|
| 131 |
+
if deals_df is not None:
|
| 132 |
+
deals_file = f"{output_prefix}_deals.csv"
|
| 133 |
+
deals_df.to_csv(deals_file, index=False)
|
| 134 |
+
print(f"Deals table saved to: {deals_file}")
|
| 135 |
+
|
| 136 |
+
|
| 137 |
+
if __name__ == "__main__":
|
| 138 |
+
# File path
|
| 139 |
+
file_path = "Sheet1.csv"
|
| 140 |
+
|
| 141 |
+
# Extract tables
|
| 142 |
+
orders_df, deals_df = extract_tables_from_csv(file_path)
|
| 143 |
+
|
| 144 |
+
# Save to separate files
|
| 145 |
+
save_tables(orders_df, deals_df, output_prefix='extracted')
|
| 146 |
+
|
| 147 |
+
# Example: Access the dataframes
|
| 148 |
+
if orders_df is not None:
|
| 149 |
+
print("\n" + "="*60)
|
| 150 |
+
print("Orders Table Info:")
|
| 151 |
+
print("="*60)
|
| 152 |
+
print(orders_df.info())
|
| 153 |
+
print("\nSample data:")
|
| 154 |
+
print(orders_df.head(10))
|
| 155 |
+
|
| 156 |
+
if deals_df is not None:
|
| 157 |
+
print("\n" + "="*60)
|
| 158 |
+
print("Deals Table Info:")
|
| 159 |
+
print("="*60)
|
| 160 |
+
print(deals_df.info())
|
| 161 |
+
print("\nSample data:")
|
| 162 |
+
print(deals_df.head(10))
|
backend/[3]_Process/3_layer.py
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
import os
|
| 3 |
+
|
| 4 |
+
def merge_mt5_tables():
|
| 5 |
+
# File paths
|
| 6 |
+
orders_file = 'extracted_orders.csv'
|
| 7 |
+
deals_file = 'extracted_deals.csv'
|
| 8 |
+
output_file = 'merged_extracted_orders_and_deals.csv'
|
| 9 |
+
|
| 10 |
+
if not os.path.exists(orders_file) or not os.path.exists(deals_file):
|
| 11 |
+
print("Error: One or both input CSV files are missing.")
|
| 12 |
+
return
|
| 13 |
+
|
| 14 |
+
try:
|
| 15 |
+
print("Loading files...")
|
| 16 |
+
orders_df = pd.read_csv(orders_file)
|
| 17 |
+
deals_df = pd.read_csv(deals_file)
|
| 18 |
+
|
| 19 |
+
orders_df['Order'] = orders_df['Order'].astype(str)
|
| 20 |
+
deals_df['Order'] = deals_df['Order'].astype(str)
|
| 21 |
+
|
| 22 |
+
print("Merging tables on 'Order' ID...")
|
| 23 |
+
merged_df = pd.merge(
|
| 24 |
+
orders_df,
|
| 25 |
+
deals_df,
|
| 26 |
+
on='Order',
|
| 27 |
+
how='inner',
|
| 28 |
+
suffixes=('_order', '_deal')
|
| 29 |
+
)
|
| 30 |
+
|
| 31 |
+
# --- NEW CLEANING STEP ---
|
| 32 |
+
# We want to drop rows that have 6 or more NaN values.
|
| 33 |
+
# axis=1: total columns, minus 6 (the max allowed empty)
|
| 34 |
+
# gives us the minimum 'good' values required.
|
| 35 |
+
limit = 6
|
| 36 |
+
min_valid_values = len(merged_df.columns) - limit + 1
|
| 37 |
+
|
| 38 |
+
# This keeps rows ONLY if they have (Total Columns - 5) valid values.
|
| 39 |
+
# Effectively, it drops any row with 6 or more NaNs.
|
| 40 |
+
merged_df = merged_df.dropna(thresh=min_valid_values)
|
| 41 |
+
# -------------------------
|
| 42 |
+
|
| 43 |
+
merged_df.to_csv(output_file, index=False)
|
| 44 |
+
print(f"Success! Merged data saved to '{output_file}'")
|
| 45 |
+
print(f"Total rows remaining after cleaning: {len(merged_df)}")
|
| 46 |
+
|
| 47 |
+
except Exception as e:
|
| 48 |
+
print(f"An error occurred: {e}")
|
| 49 |
+
|
| 50 |
+
if __name__ == "__main__":
|
| 51 |
+
merge_mt5_tables()
|
backend/[3]_Process/4_layer.py
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
import numpy as np
|
| 3 |
+
import os
|
| 4 |
+
from scipy import stats
|
| 5 |
+
|
| 6 |
+
input_file = 'merged_extracted_orders_and_deals.csv'
|
| 7 |
+
output_file = '4_layer_output.csv'
|
| 8 |
+
|
| 9 |
+
if not os.path.exists(input_file):
|
| 10 |
+
print(f"Error: File {input_file} not found.")
|
| 11 |
+
else:
|
| 12 |
+
print("Loading data...")
|
| 13 |
+
df = pd.read_csv(input_file)
|
| 14 |
+
|
| 15 |
+
# Ensure numeric types
|
| 16 |
+
df['Profit'] = pd.to_numeric(df['Profit'], errors='coerce').fillna(0)
|
| 17 |
+
df['Balance'] = pd.to_numeric(df['Balance'], errors='coerce').fillna(0)
|
| 18 |
+
|
| 19 |
+
# ==========================================
|
| 20 |
+
# --- PREVIOUS COLUMNS CALCULATION ---
|
| 21 |
+
# ==========================================
|
| 22 |
+
df['Profitable Trade'] = np.where(df['Profit'] > 0, 1, 0)
|
| 23 |
+
df['Unprofitable Trade'] = np.where(df['Profit'] < 0, 1, 0)
|
| 24 |
+
|
| 25 |
+
# Cumulative Counts (Internal variables)
|
| 26 |
+
win_c = df['Profitable Trade'].cumsum()
|
| 27 |
+
loss_c = df['Unprofitable Trade'].cumsum()
|
| 28 |
+
|
| 29 |
+
# --- NEWLY REQUESTED COLUMNS ---
|
| 30 |
+
df['rolling_profitable_trade'] = win_c
|
| 31 |
+
df['rolling_unprofitable_trade'] = loss_c
|
| 32 |
+
# -------------------------------
|
| 33 |
+
|
| 34 |
+
# Basic Rolling Metrics
|
| 35 |
+
df['rolling_winrate'] = (win_c / (win_c + loss_c)).fillna(0)
|
| 36 |
+
df['rolling_gross_profit'] = df['Profit'].clip(lower=0).cumsum()
|
| 37 |
+
df['rolling_gross_loss'] = df['Profit'].clip(upper=0).cumsum()
|
| 38 |
+
df['rolling_net'] = df['Profit'].cumsum()
|
| 39 |
+
|
| 40 |
+
# Rolling Profit Factor
|
| 41 |
+
df['rolling_profit_factor'] = (df['rolling_gross_profit'] / df['rolling_gross_loss'].abs()).replace([np.inf, -np.inf], 0).fillna(0)
|
| 42 |
+
|
| 43 |
+
# Drawdowns
|
| 44 |
+
initial_bal = df['Balance'].iloc[0] - df['Profit'].iloc[0]
|
| 45 |
+
df['rolling_balance_drawdown_absolute'] = (initial_bal - df['Balance'].cummin()).clip(lower=0)
|
| 46 |
+
|
| 47 |
+
peaks = df['Balance'].cummax()
|
| 48 |
+
dd_vals = peaks - df['Balance']
|
| 49 |
+
df['rolling_balance_drawdown_maximal'] = dd_vals.cummax()
|
| 50 |
+
df['rolling_balance_drawdown_relative'] = ((dd_vals / peaks.replace(0, np.nan)) * 100).fillna(0).cummax()
|
| 51 |
+
|
| 52 |
+
df['rolling_total_deals'] = np.arange(1, len(df) + 1)
|
| 53 |
+
df['rolling_win_count'] = win_c
|
| 54 |
+
df['rolling_lose_count'] = loss_c
|
| 55 |
+
df['rolling_total_trades'] = win_c + loss_c
|
| 56 |
+
|
| 57 |
+
# Rolling Averages
|
| 58 |
+
df['rolling_average_profit'] = (df['rolling_gross_profit'] / win_c.replace(0, np.nan)).fillna(0)
|
| 59 |
+
df['rolling_average_loss'] = (df['rolling_gross_loss'] / loss_c.replace(0, np.nan)).fillna(0)
|
| 60 |
+
df['rolling_expected_payoff'] = (df['rolling_net'] / df['rolling_total_trades'].replace(0, np.nan)).fillna(0)
|
| 61 |
+
|
| 62 |
+
# Rolling LR Correlation
|
| 63 |
+
print("Calculating Linear Regression (Correlation)...")
|
| 64 |
+
corrs = []
|
| 65 |
+
y = df['Balance'].values
|
| 66 |
+
for i in range(1, len(df) + 1):
|
| 67 |
+
if i < 2:
|
| 68 |
+
corrs.append(0)
|
| 69 |
+
continue
|
| 70 |
+
xi = np.arange(i)
|
| 71 |
+
yi = y[:i]
|
| 72 |
+
slope, intercept, r_val, p_val, std_err = stats.linregress(xi, yi)
|
| 73 |
+
corrs.append(r_val)
|
| 74 |
+
df['rolling_LR_correlation'] = corrs
|
| 75 |
+
|
| 76 |
+
# ==========================================
|
| 77 |
+
# --- NEW 10 COLUMNS ADDITION ---
|
| 78 |
+
# ==========================================
|
| 79 |
+
print("Calculating new streak and trade type metrics...")
|
| 80 |
+
|
| 81 |
+
# 1. Short vs Long Wins
|
| 82 |
+
df['rolling_long_trades_won'] = np.where(
|
| 83 |
+
(df['Type_order'].str.contains('buy', case=False, na=False)) & (df['Profitable Trade'] == 1), 1, 0
|
| 84 |
+
).cumsum()
|
| 85 |
+
|
| 86 |
+
df['rolling_short_trades_won'] = np.where(
|
| 87 |
+
(df['Type_order'].str.contains('sell', case=False, na=False)) & (df['Profitable Trade'] == 1), 1, 0
|
| 88 |
+
).cumsum()
|
| 89 |
+
|
| 90 |
+
# 2. Largest Profit/Loss Trade
|
| 91 |
+
df['rolling_largest_profit_trade'] = df['Profit'].clip(lower=0).cummax()
|
| 92 |
+
df['rolling_largest_loss_trade'] = df['Profit'].clip(upper=0).cummin()
|
| 93 |
+
|
| 94 |
+
# 3. Consecutive Metrics
|
| 95 |
+
mask_trade = df['Profit'] != 0
|
| 96 |
+
df_trades = df[mask_trade].copy()
|
| 97 |
+
|
| 98 |
+
if not df_trades.empty:
|
| 99 |
+
is_win = df_trades['Profit'] > 0
|
| 100 |
+
is_loss = df_trades['Profit'] < 0
|
| 101 |
+
|
| 102 |
+
group_id = (is_win != is_win.shift()).cumsum()
|
| 103 |
+
df_trades['streak_counter'] = df_trades.groupby(group_id).cumcount() + 1
|
| 104 |
+
|
| 105 |
+
df_trades['curr_win_streak'] = np.where(is_win, df_trades['streak_counter'], 0)
|
| 106 |
+
df_trades['curr_loss_streak'] = np.where(is_loss, df_trades['streak_counter'], 0)
|
| 107 |
+
|
| 108 |
+
df_trades['rolling_maximum_consecutive_wins'] = df_trades['curr_win_streak'].cummax()
|
| 109 |
+
df_trades['rolling_maximum_consecutive_loses'] = df_trades['curr_loss_streak'].cummax()
|
| 110 |
+
|
| 111 |
+
df_trades['streak_sum'] = df_trades.groupby(group_id)['Profit'].cumsum()
|
| 112 |
+
df_trades['curr_win_streak_sum'] = np.where(is_win, df_trades['streak_sum'], 0)
|
| 113 |
+
df_trades['curr_loss_streak_sum'] = np.where(is_loss, df_trades['streak_sum'], 0)
|
| 114 |
+
|
| 115 |
+
df_trades['rolling_maximal_consecutive_profit'] = df_trades['curr_win_streak_sum'].cummax()
|
| 116 |
+
df_trades['rolling_maximal_consecutive_loss'] = df_trades['curr_loss_streak_sum'].cummin()
|
| 117 |
+
|
| 118 |
+
# Identify start of a streak
|
| 119 |
+
win_start = (is_win) & (~is_win.shift(1).fillna(False))
|
| 120 |
+
loss_start = (is_loss) & (~is_loss.shift(1).fillna(False))
|
| 121 |
+
|
| 122 |
+
total_wins = is_win.cumsum()
|
| 123 |
+
total_win_streaks = win_start.cumsum()
|
| 124 |
+
total_losses = is_loss.cumsum()
|
| 125 |
+
total_loss_streaks = loss_start.cumsum()
|
| 126 |
+
|
| 127 |
+
df_trades['rolling_average_consecutive_wins'] = (total_wins / total_win_streaks.replace(0, np.nan)).fillna(0)
|
| 128 |
+
df_trades['rolling_average_consecutive_loses'] = (total_losses / total_loss_streaks.replace(0, np.nan)).fillna(0)
|
| 129 |
+
|
| 130 |
+
new_cols = [
|
| 131 |
+
'rolling_maximum_consecutive_wins', 'rolling_maximum_consecutive_loses',
|
| 132 |
+
'rolling_maximal_consecutive_profit', 'rolling_maximal_consecutive_loss',
|
| 133 |
+
'rolling_average_consecutive_wins', 'rolling_average_consecutive_loses'
|
| 134 |
+
]
|
| 135 |
+
|
| 136 |
+
df = df.join(df_trades[new_cols])
|
| 137 |
+
df[new_cols] = df[new_cols].ffill().fillna(0)
|
| 138 |
+
else:
|
| 139 |
+
for col in ['rolling_maximum_consecutive_wins', 'rolling_maximum_consecutive_loses',
|
| 140 |
+
'rolling_maximal_consecutive_profit', 'rolling_maximal_consecutive_loss',
|
| 141 |
+
'rollling_average_consecutive_wins', 'rolling_average_consecutive_loses']:
|
| 142 |
+
df[col] = 0
|
| 143 |
+
|
| 144 |
+
# ==========================================
|
| 145 |
+
# --- SAVE OUTPUT ---
|
| 146 |
+
# ==========================================
|
| 147 |
+
df.to_csv(output_file, index=False)
|
| 148 |
+
print(f"Success! Processed {len(df)} rows.")
|
| 149 |
+
print(f"Saved to: {output_file}")
|
backend/[3]_Process/5_layer.py
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
import numpy as np
|
| 3 |
+
import scipy.stats as stats
|
| 4 |
+
|
| 5 |
+
def calculate_rolling_metrics(input_csv, output_csv):
|
| 6 |
+
print(f"Reading data from: {input_csv}")
|
| 7 |
+
|
| 8 |
+
try:
|
| 9 |
+
df = pd.read_csv(input_csv)
|
| 10 |
+
except FileNotFoundError:
|
| 11 |
+
print(f"Error: The file '{input_csv}' was not found.")
|
| 12 |
+
return
|
| 13 |
+
|
| 14 |
+
# ---------------------------------------------------------
|
| 15 |
+
# 1. Preprocessing & Cleaning
|
| 16 |
+
# ---------------------------------------------------------
|
| 17 |
+
# Convert time columns to datetime objects
|
| 18 |
+
df['Time_deal'] = pd.to_datetime(df['Time_deal'], errors='coerce')
|
| 19 |
+
|
| 20 |
+
# Sort by time to ensure rolling metrics are chronological
|
| 21 |
+
df = df.sort_values(by='Time_deal').reset_index(drop=True)
|
| 22 |
+
|
| 23 |
+
# Ensure numeric columns are floats and handle missing values
|
| 24 |
+
df['Profit'] = pd.to_numeric(df['Profit'], errors='coerce').fillna(0.0)
|
| 25 |
+
df['Balance'] = pd.to_numeric(df['Balance'], errors='coerce').ffill()
|
| 26 |
+
|
| 27 |
+
# Define helper series
|
| 28 |
+
equity = df['Balance']
|
| 29 |
+
profits = df['Profit']
|
| 30 |
+
|
| 31 |
+
# Determine Initial Balance (Start of the window)
|
| 32 |
+
# We assume the first record's balance is the starting point
|
| 33 |
+
initial_balance = equity.iloc[0]
|
| 34 |
+
|
| 35 |
+
# Calculate Time Elapsed in Years (for CAGR)
|
| 36 |
+
start_time = df['Time_deal'].iloc[0]
|
| 37 |
+
# Add small epsilon to prevent division by zero on the first row
|
| 38 |
+
years_elapsed = (df['Time_deal'] - start_time).dt.total_seconds() / (365.25 * 24 * 3600)
|
| 39 |
+
years_elapsed = years_elapsed.replace(0, 0.000001)
|
| 40 |
+
|
| 41 |
+
# ---------------------------------------------------------
|
| 42 |
+
# 2. Rolling (Expanding) Metric Calculations
|
| 43 |
+
# ---------------------------------------------------------
|
| 44 |
+
print("Calculating rolling metrics...")
|
| 45 |
+
|
| 46 |
+
# --- Helpers for Win/Loss Stats ---
|
| 47 |
+
# Create streams of just wins and just losses (positive)
|
| 48 |
+
wins = profits.clip(lower=0)
|
| 49 |
+
losses = profits.clip(upper=0).abs()
|
| 50 |
+
|
| 51 |
+
expand_wins_sum = wins.expanding().sum()
|
| 52 |
+
expand_losses_sum = losses.expanding().sum()
|
| 53 |
+
expand_max_win = wins.expanding().max()
|
| 54 |
+
expand_max_loss = losses.expanding().max()
|
| 55 |
+
|
| 56 |
+
# --- Helper for Drawdown Stats ---
|
| 57 |
+
hwm = equity.expanding().max() # High Water Mark
|
| 58 |
+
dd_dollar = hwm - equity # Drawdown in $
|
| 59 |
+
dd_pct = dd_dollar / hwm # Drawdown in %
|
| 60 |
+
|
| 61 |
+
dd_sq_mean = (dd_pct ** 2).expanding().mean() # For Ulcer Index
|
| 62 |
+
dd_sq_sum = (dd_pct ** 2).expanding().sum() # For Burke Ratio
|
| 63 |
+
max_dd_pct = dd_pct.expanding().max() # For Sterling Ratio
|
| 64 |
+
|
| 65 |
+
# --- Helper for Returns Distribution (Risk of Ruin / Sharpe) ---
|
| 66 |
+
pct_ret = equity.pct_change().fillna(0)
|
| 67 |
+
roll_mean_ret = pct_ret.expanding().mean()
|
| 68 |
+
roll_var_ret = pct_ret.expanding().var()
|
| 69 |
+
roll_std_ret = pct_ret.expanding().std()
|
| 70 |
+
roll_skew = pct_ret.expanding().skew().fillna(0)
|
| 71 |
+
roll_kurt = pct_ret.expanding().kurt().fillna(0) # Excess kurtosis
|
| 72 |
+
n_trades = profits.expanding().count()
|
| 73 |
+
|
| 74 |
+
# ==========================================
|
| 75 |
+
# Requested Metrics
|
| 76 |
+
# ==========================================
|
| 77 |
+
|
| 78 |
+
# 1. Expectancy (Average Profit)
|
| 79 |
+
df['rolling_Expectancy_Expectancy'] = profits.expanding().mean()
|
| 80 |
+
|
| 81 |
+
# 2. Gain-to-Pain Ratio (GPR) -> Sum(Wins) / Abs(Sum(Losses))
|
| 82 |
+
df['rolling_GPR_GainToPainRatio'] = expand_wins_sum / expand_losses_sum.replace(0, np.nan)
|
| 83 |
+
|
| 84 |
+
# 3. CAGR (Compound Annual Growth Rate)
|
| 85 |
+
# Formula: (End_Equity / Start_Equity)^(1/years) - 1
|
| 86 |
+
# We use abs() to handle negative equity scenarios safely
|
| 87 |
+
df['rolling_CAGR_CompoundAnnualGrowthRate'] = (
|
| 88 |
+
(equity / initial_balance).abs().pow(1 / years_elapsed) - 1
|
| 89 |
+
)
|
| 90 |
+
|
| 91 |
+
# 4. Martin Ratio -> CAGR / Ulcer Index
|
| 92 |
+
ulcer_index = np.sqrt(dd_sq_mean)
|
| 93 |
+
df['rolling_Martin_MartinRatio'] = df['rolling_CAGR_CompoundAnnualGrowthRate'] / ulcer_index.replace(0, np.nan)
|
| 94 |
+
|
| 95 |
+
# 5. Sterling Ratio -> CAGR / Max Drawdown
|
| 96 |
+
df['rolling_Sterling_SterlingRatio'] = df['rolling_CAGR_CompoundAnnualGrowthRate'] / max_dd_pct.replace(0, np.nan)
|
| 97 |
+
|
| 98 |
+
# 6. Burke Ratio -> CAGR / Sqrt(Sum(Drawdown^2))
|
| 99 |
+
burke_denom = np.sqrt(dd_sq_sum)
|
| 100 |
+
df['rolling_Burke_BurkeRatio'] = df['rolling_CAGR_CompoundAnnualGrowthRate'] / burke_denom.replace(0, np.nan)
|
| 101 |
+
|
| 102 |
+
# 7. Risk of Ruin -> exp(-2 * mean_ret / var_ret)
|
| 103 |
+
# If mean return is negative, Ruin is 100% (1.0).
|
| 104 |
+
ror = np.exp(-2 * roll_mean_ret / roll_var_ret)
|
| 105 |
+
ror = np.where(roll_mean_ret < 0, 1.0, ror)
|
| 106 |
+
df['rolling_RoR_RiskOfRuin'] = ror.clip(0, 1)
|
| 107 |
+
|
| 108 |
+
# 8. Deflated Sharpe Ratio (DSR)
|
| 109 |
+
# Using Probabilistic Sharpe Ratio (PSR) logic on the expanding window
|
| 110 |
+
sr = roll_mean_ret / roll_std_ret
|
| 111 |
+
# DSR Denominator term: 1 - skew*SR + ((kurt+2)/4)*SR^2
|
| 112 |
+
dsr_denom_term = 1 - roll_skew * sr + ((roll_kurt + 2) / 4) * (sr**2)
|
| 113 |
+
dsr_denom = np.sqrt(dsr_denom_term.abs())
|
| 114 |
+
|
| 115 |
+
dsr_stat = (sr * np.sqrt(n_trades - 1)) / dsr_denom.replace(0, np.nan)
|
| 116 |
+
df['rolling_DSR_DeflatedSharpeRatio'] = stats.norm.cdf(dsr_stat)
|
| 117 |
+
|
| 118 |
+
# 9. Pain Index -> Mean Drawdown Depth
|
| 119 |
+
df['rolling_PainIndex_PainIndex'] = dd_pct.expanding().mean()
|
| 120 |
+
|
| 121 |
+
# 10. Pain Ratio -> CAGR / Pain Index
|
| 122 |
+
df['rolling_PainRatio_PainRatio'] = df['rolling_CAGR_CompoundAnnualGrowthRate'] / df['rolling_PainIndex_PainIndex'].replace(0, np.nan)
|
| 123 |
+
|
| 124 |
+
# 11. Lake Ratio -> Sum(Drawdown_Peaks) / Total Profit
|
| 125 |
+
# Approximated here as Area Under Water / Total Profit
|
| 126 |
+
df['rolling_Lake_LakeRatio'] = dd_dollar.expanding().sum() / profits.cumsum().replace(0, np.nan)
|
| 127 |
+
|
| 128 |
+
# 12. Outlier Win/Loss Ratio (OWLR) -> Max Win / Max Loss
|
| 129 |
+
df['rolling_OWLR_OutlierWinLossRatio'] = expand_max_win / expand_max_loss.replace(0, np.nan)
|
| 130 |
+
|
| 131 |
+
# 13. Profitability Index -> Profit Factor (Gross Wins / Gross Losses)
|
| 132 |
+
df['rolling_PI_ProfitabilityIndex'] = expand_wins_sum / expand_losses_sum.replace(0, np.nan)
|
| 133 |
+
|
| 134 |
+
# ---------------------------------------------------------
|
| 135 |
+
# 3. Export
|
| 136 |
+
# ---------------------------------------------------------
|
| 137 |
+
# Clean up Infinite values (divide by zero artifacts)
|
| 138 |
+
metric_cols = [c for c in df.columns if 'rolling_' in c]
|
| 139 |
+
df[metric_cols] = df[metric_cols].replace([np.inf, -np.inf], np.nan)
|
| 140 |
+
|
| 141 |
+
df.to_csv(output_csv, index=False)
|
| 142 |
+
print(f"Success! Processed data saved to: {output_csv}")
|
| 143 |
+
|
| 144 |
+
# --- Execution ---
|
| 145 |
+
if __name__ == "__main__":
|
| 146 |
+
input_filename = 'merged_extracted_orders_and_deals.csv'
|
| 147 |
+
output_filename = '5_layer_output.csv'
|
| 148 |
+
|
| 149 |
+
calculate_rolling_metrics(input_filename, output_filename)
|
backend/[3]_Process/6_layer.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
|
| 3 |
+
# List of the files to process
|
| 4 |
+
file_names = ['4_layer_output.csv', '5_layer_output.csv']
|
| 5 |
+
output_file = '6_layer_output.csv'
|
| 6 |
+
|
| 7 |
+
# List to hold the extracted dataframes
|
| 8 |
+
extracted_data = []
|
| 9 |
+
|
| 10 |
+
for file in file_names:
|
| 11 |
+
try:
|
| 12 |
+
# usecols=lambda x: 'rolling' in x
|
| 13 |
+
# This checks the header (first row) and extracts only columns with 'rolling' in the name
|
| 14 |
+
df = pd.read_csv(file, usecols=lambda x: 'rolling' in x)
|
| 15 |
+
|
| 16 |
+
# Add the filename as a prefix to the columns to keep them distinct
|
| 17 |
+
# e.g., 'column_name' becomes '4_layer_output_column_name'
|
| 18 |
+
prefix = file.replace('.csv', '') + '_'
|
| 19 |
+
df = df.add_prefix(prefix)
|
| 20 |
+
|
| 21 |
+
extracted_data.append(df)
|
| 22 |
+
print(f"Processed {file}: Extracted {df.shape[1]} columns.")
|
| 23 |
+
|
| 24 |
+
except FileNotFoundError:
|
| 25 |
+
print(f"Error: The file '{file}' was not found.")
|
| 26 |
+
except Exception as e:
|
| 27 |
+
print(f"An error occurred while reading '{file}': {e}")
|
| 28 |
+
|
| 29 |
+
# Check if we have data to combine
|
| 30 |
+
if extracted_data:
|
| 31 |
+
# Concatenate the dataframes side-by-side (axis=1)
|
| 32 |
+
# This assumes the rows in both files correspond to the same samples/timestamps
|
| 33 |
+
combined_df = pd.concat(extracted_data, axis=1)
|
| 34 |
+
|
| 35 |
+
# Save the result to a new CSV file
|
| 36 |
+
combined_df.to_csv(output_file, index=False)
|
| 37 |
+
print(f"\nSuccess! Combined data saved to '{output_file}'")
|
| 38 |
+
else:
|
| 39 |
+
print("\nNo columns were extracted.")
|
backend/[3]_Process/7_layer.py
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
import numpy as np
|
| 3 |
+
from scipy import stats
|
| 4 |
+
import sys
|
| 5 |
+
|
| 6 |
+
def calculate_rolling_metrics(input_file, output_file):
|
| 7 |
+
try:
|
| 8 |
+
print(f"Reading {input_file}...")
|
| 9 |
+
df = pd.read_csv(input_file)
|
| 10 |
+
|
| 11 |
+
# 1. Data Preprocessing
|
| 12 |
+
# Ensure Time_deal is datetime
|
| 13 |
+
df['Time_deal'] = pd.to_datetime(df['Time_deal'])
|
| 14 |
+
|
| 15 |
+
# Sort by time to ensure rolling calculations are correct
|
| 16 |
+
df = df.sort_values('Time_deal').reset_index(drop=True)
|
| 17 |
+
|
| 18 |
+
# Calculate 'Trade Return' for each row
|
| 19 |
+
# Balance in the CSV is usually the balance *after* the deal.
|
| 20 |
+
# Previous Balance = Current Balance - Profit
|
| 21 |
+
df['Prev_Balance'] = df['Balance'] - df['Profit']
|
| 22 |
+
|
| 23 |
+
# Avoid division by zero
|
| 24 |
+
df['Trade_Return'] = np.where(
|
| 25 |
+
df['Prev_Balance'] > 0,
|
| 26 |
+
df['Profit'] / df['Prev_Balance'],
|
| 27 |
+
0.0
|
| 28 |
+
)
|
| 29 |
+
|
| 30 |
+
# 2. Define Metric Columns (using requested format)
|
| 31 |
+
metric_map = {
|
| 32 |
+
'Sharpe': 'rolling_Sharpe_Ratio',
|
| 33 |
+
'Sortino': 'rolling_Sortino_Ratio',
|
| 34 |
+
'Calmar': 'rolling_Calmar_Ratio',
|
| 35 |
+
'Stability': 'rolling_Stability',
|
| 36 |
+
'Recovery Factor': 'rolling_Recovery_Factor',
|
| 37 |
+
'omega ratio': 'rolling_Omega_Ratio',
|
| 38 |
+
'skew': 'rolling_Skewness',
|
| 39 |
+
'kurtosis': 'rolling_Kurtosis',
|
| 40 |
+
'tail ratio': 'rolling_Tail_Ratio',
|
| 41 |
+
'alpha': 'rolling_Alpha',
|
| 42 |
+
'beta': 'rolling_Beta',
|
| 43 |
+
'Common Sense Ratio': 'rolling_Common_Sense_Ratio',
|
| 44 |
+
'volatility': 'rolling_Volatility',
|
| 45 |
+
'Kelly Criterion': 'rolling_Kelly_Criterion',
|
| 46 |
+
'System Quality Number (SQN)': 'rolling_SQN_System_Quality_Number',
|
| 47 |
+
'K-Ratio': 'rolling_K_Ratio',
|
| 48 |
+
'R-Squared': 'rolling_R_Squared',
|
| 49 |
+
'CPC Index': 'rolling_CPC_Index',
|
| 50 |
+
'VaR': 'rolling_VaR_Value_at_Risk',
|
| 51 |
+
'CVaR': 'rolling_CVaR_Conditional_Value_at_Risk',
|
| 52 |
+
'return standard deviation': 'rolling_Return_Standard_Deviation',
|
| 53 |
+
'AHPR': 'rolling_AHPR_Average_Holding_Period_Return',
|
| 54 |
+
'GHPR': 'rolling_GHPR_Geometric_Holding_Period_Return',
|
| 55 |
+
'Drawdown duration': 'rolling_Drawdown_Duration',
|
| 56 |
+
'Maximum drawdown duration': 'rolling_Max_Drawdown_Duration',
|
| 57 |
+
'Time-weighted return (TWR)': 'rolling_TWR_Time_Weighted_Return',
|
| 58 |
+
'Money-weighted return (MWR / IRR)': 'rolling_MWR_Money_Weighted_Return',
|
| 59 |
+
'Ulcer Index': 'rolling_Ulcer_Index',
|
| 60 |
+
'MAE': 'rolling_MAE_Max_Adverse_Excursion',
|
| 61 |
+
'MFE': 'rolling_MFE_Max_Favorable_Excursion',
|
| 62 |
+
'MAR Ratio': 'rolling_MAR_Ratio',
|
| 63 |
+
'Information Ratio': 'rolling_Information_Ratio',
|
| 64 |
+
'Treynor Ratio': 'rolling_Treynor_Ratio',
|
| 65 |
+
'Tracking Error': 'rolling_Tracking_Error',
|
| 66 |
+
'Active Share': 'rolling_Active_Share'
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
# Initialize new columns with NaN
|
| 70 |
+
for col in metric_map.values():
|
| 71 |
+
df[col] = np.nan
|
| 72 |
+
|
| 73 |
+
# 3. Expanding Window Calculation
|
| 74 |
+
print("Calculating metrics (this may take a moment)...")
|
| 75 |
+
|
| 76 |
+
# Pre-convert columns to numpy arrays for speed in loop
|
| 77 |
+
returns = df['Trade_Return'].values
|
| 78 |
+
profits = df['Profit'].values
|
| 79 |
+
balances = df['Balance'].values
|
| 80 |
+
times = df['Time_deal'].values
|
| 81 |
+
|
| 82 |
+
n = len(df)
|
| 83 |
+
|
| 84 |
+
# State variables for expensive tracking
|
| 85 |
+
max_dd_duration_sec = 0.0
|
| 86 |
+
|
| 87 |
+
for i in range(n):
|
| 88 |
+
# Slices for expanding window (0 to i)
|
| 89 |
+
hist_rets = returns[:i+1]
|
| 90 |
+
hist_profits = profits[:i+1]
|
| 91 |
+
hist_bal = balances[:i+1]
|
| 92 |
+
current_time = times[i]
|
| 93 |
+
|
| 94 |
+
# --- Basic Return Stats ---
|
| 95 |
+
if len(hist_rets) > 1:
|
| 96 |
+
mean_ret = np.mean(hist_rets)
|
| 97 |
+
std_ret = np.std(hist_rets, ddof=1)
|
| 98 |
+
else:
|
| 99 |
+
mean_ret = hist_rets[0]
|
| 100 |
+
std_ret = 0.0
|
| 101 |
+
|
| 102 |
+
# Volatility
|
| 103 |
+
df.at[i, metric_map['volatility']] = std_ret
|
| 104 |
+
df.at[i, metric_map['return standard deviation']] = std_ret
|
| 105 |
+
|
| 106 |
+
# Sharpe (Assuming Risk Free = 0, Simple Trade Sharpe)
|
| 107 |
+
if std_ret > 1e-9:
|
| 108 |
+
df.at[i, metric_map['Sharpe']] = mean_ret / std_ret
|
| 109 |
+
else:
|
| 110 |
+
df.at[i, metric_map['Sharpe']] = 0.0
|
| 111 |
+
|
| 112 |
+
# Sortino
|
| 113 |
+
neg_rets = hist_rets[hist_rets < 0]
|
| 114 |
+
if len(neg_rets) > 1:
|
| 115 |
+
down_std = np.std(neg_rets, ddof=1)
|
| 116 |
+
if down_std > 1e-9:
|
| 117 |
+
df.at[i, metric_map['Sortino']] = mean_ret / down_std
|
| 118 |
+
|
| 119 |
+
# Skew / Kurtosis
|
| 120 |
+
if len(hist_rets) > 2:
|
| 121 |
+
df.at[i, metric_map['skew']] = stats.skew(hist_rets)
|
| 122 |
+
df.at[i, metric_map['kurtosis']] = stats.kurtosis(hist_rets)
|
| 123 |
+
|
| 124 |
+
# --- Equity Curve Stats (Drawdown) ---
|
| 125 |
+
cum_max = np.maximum.accumulate(hist_bal)
|
| 126 |
+
drawdowns = (cum_max - hist_bal) / cum_max
|
| 127 |
+
max_dd = np.max(drawdowns)
|
| 128 |
+
|
| 129 |
+
# Ulcer Index
|
| 130 |
+
if len(drawdowns) > 0:
|
| 131 |
+
df.at[i, metric_map['Ulcer Index']] = np.sqrt(np.mean(drawdowns**2))
|
| 132 |
+
|
| 133 |
+
# Calmar / MAR Ratio (Approximated with simple CAGR)
|
| 134 |
+
# Calculate years elapsed
|
| 135 |
+
elapsed_seconds = (current_time - times[0]).astype('timedelta64[s]').astype(float)
|
| 136 |
+
years = elapsed_seconds / (365 * 24 * 3600)
|
| 137 |
+
|
| 138 |
+
total_return = (hist_bal[-1] / (hist_bal[0] - hist_profits[0])) - 1 if (hist_bal[0] - hist_profits[0]) > 0 else 0
|
| 139 |
+
|
| 140 |
+
cagr = 0
|
| 141 |
+
if years > 0:
|
| 142 |
+
# Handle negative base for power
|
| 143 |
+
if total_return > -1:
|
| 144 |
+
cagr = (1 + total_return) ** (1 / years) - 1
|
| 145 |
+
|
| 146 |
+
if max_dd > 0:
|
| 147 |
+
df.at[i, metric_map['Calmar']] = cagr / max_dd
|
| 148 |
+
df.at[i, metric_map['MAR Ratio']] = cagr / max_dd
|
| 149 |
+
|
| 150 |
+
# Recovery Factor (Net Profit / Max Drawdown Amount)
|
| 151 |
+
net_profit = np.sum(hist_profits)
|
| 152 |
+
dd_amounts = cum_max - hist_bal
|
| 153 |
+
max_dd_amt = np.max(dd_amounts)
|
| 154 |
+
|
| 155 |
+
if max_dd_amt > 0:
|
| 156 |
+
df.at[i, metric_map['Recovery Factor']] = net_profit / max_dd_amt
|
| 157 |
+
|
| 158 |
+
# Drawdown Duration
|
| 159 |
+
# Current DD duration: Time since last High Water Mark
|
| 160 |
+
hwm_idx = np.argmax(hist_bal)
|
| 161 |
+
current_dd_duration = (current_time - times[hwm_idx]).astype('timedelta64[s]').astype(float)
|
| 162 |
+
df.at[i, metric_map['Drawdown duration']] = current_dd_duration
|
| 163 |
+
|
| 164 |
+
# Update Max Drawdown Duration
|
| 165 |
+
max_dd_duration_sec = max(max_dd_duration_sec, current_dd_duration)
|
| 166 |
+
df.at[i, metric_map['Maximum drawdown duration']] = max_dd_duration_sec
|
| 167 |
+
|
| 168 |
+
# Stability (R-Squared of Equity Log Linearity)
|
| 169 |
+
if len(hist_bal) > 2:
|
| 170 |
+
try:
|
| 171 |
+
# Log of equity (handle negatives/zeros)
|
| 172 |
+
y = np.log(np.abs(hist_bal) + 1e-9)
|
| 173 |
+
x = np.arange(len(y))
|
| 174 |
+
slope, intercept, r_val, p_val, std_err = stats.linregress(x, y)
|
| 175 |
+
df.at[i, metric_map['Stability']] = r_val ** 2
|
| 176 |
+
|
| 177 |
+
# K-Ratio (Slope / StdErr of equity curve)
|
| 178 |
+
slope_k, _, _, _, std_err_k = stats.linregress(x, hist_bal)
|
| 179 |
+
if std_err_k > 0:
|
| 180 |
+
df.at[i, metric_map['K-Ratio']] = slope_k / std_err_k
|
| 181 |
+
except:
|
| 182 |
+
pass
|
| 183 |
+
|
| 184 |
+
# --- Trade Stats ---
|
| 185 |
+
wins = hist_profits[hist_profits > 0]
|
| 186 |
+
losses = np.abs(hist_profits[hist_profits < 0])
|
| 187 |
+
|
| 188 |
+
# Omega Ratio
|
| 189 |
+
if np.sum(losses) > 0:
|
| 190 |
+
df.at[i, metric_map['omega ratio']] = np.sum(wins) / np.sum(losses)
|
| 191 |
+
|
| 192 |
+
# Kelly & CPC
|
| 193 |
+
if len(wins) > 0 and len(losses) > 0:
|
| 194 |
+
win_rate = len(wins) / len(hist_profits)
|
| 195 |
+
avg_win = np.mean(wins)
|
| 196 |
+
avg_loss = np.mean(losses)
|
| 197 |
+
if avg_loss > 0:
|
| 198 |
+
b_ratio = avg_win / avg_loss
|
| 199 |
+
# Kelly = p - q/b
|
| 200 |
+
df.at[i, metric_map['Kelly Criterion']] = win_rate - (1 - win_rate) / b_ratio
|
| 201 |
+
|
| 202 |
+
# CPC Index = ProfitFactor * WinRate * PayoffRatio
|
| 203 |
+
pf = np.sum(wins) / np.sum(losses)
|
| 204 |
+
df.at[i, metric_map['CPC Index']] = pf * win_rate * b_ratio
|
| 205 |
+
|
| 206 |
+
# SQN
|
| 207 |
+
if len(hist_profits) > 1:
|
| 208 |
+
std_profit = np.std(hist_profits, ddof=1)
|
| 209 |
+
if std_profit > 0:
|
| 210 |
+
sqn = np.sqrt(len(hist_profits)) * np.mean(hist_profits) / std_profit
|
| 211 |
+
df.at[i, metric_map['System Quality Number (SQN)']] = sqn
|
| 212 |
+
|
| 213 |
+
# Tail Ratio & VaR
|
| 214 |
+
if len(hist_rets) > 10:
|
| 215 |
+
t_95 = np.percentile(hist_rets, 95)
|
| 216 |
+
t_05 = np.abs(np.percentile(hist_rets, 5))
|
| 217 |
+
if t_05 > 0:
|
| 218 |
+
df.at[i, metric_map['tail ratio']] = t_95 / t_05
|
| 219 |
+
|
| 220 |
+
# Common Sense Ratio = Profit Factor * Tail Ratio
|
| 221 |
+
pf = np.sum(wins)/np.sum(losses) if np.sum(losses) > 0 else 0
|
| 222 |
+
df.at[i, metric_map['Common Sense Ratio']] = pf * (t_95 / t_05)
|
| 223 |
+
|
| 224 |
+
# VaR (5%)
|
| 225 |
+
var_val = np.percentile(hist_rets, 5)
|
| 226 |
+
df.at[i, metric_map['VaR']] = var_val
|
| 227 |
+
|
| 228 |
+
# CVaR (Mean of returns <= VaR)
|
| 229 |
+
cvar_vals = hist_rets[hist_rets <= var_val]
|
| 230 |
+
if len(cvar_vals) > 0:
|
| 231 |
+
df.at[i, metric_map['CVaR']] = np.mean(cvar_vals)
|
| 232 |
+
|
| 233 |
+
# AHPR / GHPR / TWR
|
| 234 |
+
df.at[i, metric_map['AHPR']] = np.mean(1 + hist_rets)
|
| 235 |
+
if np.all((1 + hist_rets) > 0):
|
| 236 |
+
df.at[i, metric_map['GHPR']] = stats.gmean(1 + hist_rets)
|
| 237 |
+
|
| 238 |
+
df.at[i, metric_map['Time-weighted return (TWR)']] = np.prod(1 + hist_rets) - 1
|
| 239 |
+
|
| 240 |
+
# 4. Cleanup & Save
|
| 241 |
+
# Drop temporary calculation columns
|
| 242 |
+
df = df.drop(columns=['Prev_Balance', 'Trade_Return'])
|
| 243 |
+
|
| 244 |
+
print(f"Saving to {output_file}...")
|
| 245 |
+
df.to_csv(output_file, index=False)
|
| 246 |
+
print("Done.")
|
| 247 |
+
|
| 248 |
+
except FileNotFoundError:
|
| 249 |
+
print(f"Error: The file '{input_file}' was not found.")
|
| 250 |
+
except Exception as e:
|
| 251 |
+
print(f"An error occurred: {e}")
|
| 252 |
+
|
| 253 |
+
if __name__ == "__main__":
|
| 254 |
+
calculate_rolling_metrics(
|
| 255 |
+
'merged_extracted_orders_and_deals.csv',
|
| 256 |
+
'7_layer_output.csv'
|
| 257 |
+
)
|
backend/[3]_Process/8_layer.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
|
| 3 |
+
# List of the files to process
|
| 4 |
+
file_names = ['7_layer_output.csv']
|
| 5 |
+
output_file = '8_layer_output.csv'
|
| 6 |
+
|
| 7 |
+
# List to hold the extracted dataframes
|
| 8 |
+
extracted_data = []
|
| 9 |
+
|
| 10 |
+
for file in file_names:
|
| 11 |
+
try:
|
| 12 |
+
# usecols=lambda x: 'rolling' in x
|
| 13 |
+
# This checks the header (first row) and extracts only columns with 'rolling' in the name
|
| 14 |
+
df = pd.read_csv(file, usecols=lambda x: 'rolling' in x)
|
| 15 |
+
|
| 16 |
+
# Add the filename as a prefix to the columns to keep them distinct
|
| 17 |
+
# e.g., 'column_name' becomes '4_layer_output_column_name'
|
| 18 |
+
prefix = file.replace('.csv', '') + '_'
|
| 19 |
+
df = df.add_prefix(prefix)
|
| 20 |
+
|
| 21 |
+
extracted_data.append(df)
|
| 22 |
+
print(f"Processed {file}: Extracted {df.shape[1]} columns.")
|
| 23 |
+
|
| 24 |
+
except FileNotFoundError:
|
| 25 |
+
print(f"Error: The file '{file}' was not found.")
|
| 26 |
+
except Exception as e:
|
| 27 |
+
print(f"An error occurred while reading '{file}': {e}")
|
| 28 |
+
|
| 29 |
+
# Check if we have data to combine
|
| 30 |
+
if extracted_data:
|
| 31 |
+
# Concatenate the dataframes side-by-side (axis=1)
|
| 32 |
+
# This assumes the rows in both files correspond to the same samples/timestamps
|
| 33 |
+
combined_df = pd.concat(extracted_data, axis=1)
|
| 34 |
+
|
| 35 |
+
# Save the result to a new CSV file
|
| 36 |
+
combined_df.to_csv(output_file, index=False)
|
| 37 |
+
print(f"\nSuccess! Combined data saved to '{output_file}'")
|
| 38 |
+
else:
|
| 39 |
+
print("\nNo columns were extracted.")
|
backend/[3]_Process/9_layer.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
|
| 3 |
+
# List of the files to process
|
| 4 |
+
file_names = ['6_layer_output.csv', '8_layer_output.csv']
|
| 5 |
+
output_file = '9_layer_output.csv'
|
| 6 |
+
|
| 7 |
+
# List to hold the extracted dataframes
|
| 8 |
+
extracted_data = []
|
| 9 |
+
|
| 10 |
+
for file in file_names:
|
| 11 |
+
try:
|
| 12 |
+
# usecols=lambda x: 'rolling' in x
|
| 13 |
+
# This checks the header (first row) and extracts only columns with 'rolling' in the name
|
| 14 |
+
df = pd.read_csv(file, usecols=lambda x: 'rolling' in x)
|
| 15 |
+
|
| 16 |
+
# Add the filename as a prefix to the columns to keep them distinct
|
| 17 |
+
# e.g., 'column_name' becomes '4_layer_output_column_name'
|
| 18 |
+
prefix = file.replace('.csv', '') + '_'
|
| 19 |
+
df = df.add_prefix(prefix)
|
| 20 |
+
|
| 21 |
+
extracted_data.append(df)
|
| 22 |
+
print(f"Processed {file}: Extracted {df.shape[1]} columns.")
|
| 23 |
+
|
| 24 |
+
except FileNotFoundError:
|
| 25 |
+
print(f"Error: The file '{file}' was not found.")
|
| 26 |
+
except Exception as e:
|
| 27 |
+
print(f"An error occurred while reading '{file}': {e}")
|
| 28 |
+
|
| 29 |
+
# Check if we have data to combine
|
| 30 |
+
if extracted_data:
|
| 31 |
+
# Concatenate the dataframes side-by-side (axis=1)
|
| 32 |
+
# This assumes the rows in both files correspond to the same samples/timestamps
|
| 33 |
+
combined_df = pd.concat(extracted_data, axis=1)
|
| 34 |
+
|
| 35 |
+
# Save the result to a new CSV file
|
| 36 |
+
combined_df.to_csv(output_file, index=False)
|
| 37 |
+
print(f"\nSuccess! Combined data saved to '{output_file}'")
|
| 38 |
+
else:
|
| 39 |
+
print("\nNo columns were extracted.")
|
backend/[3]_Process/ReportTester-263254895.xlsx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:8296fb5a8bd05942b08503751919dc3e33fb64f50bf1db28b5062e6c3b20c9e5
|
| 3 |
+
size 192690
|
backend/[3]_Process/test.py
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import openpyxl
|
| 2 |
+
import pandas as pd
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
|
| 5 |
+
def extract_excel_data(file_path):
|
| 6 |
+
"""
|
| 7 |
+
Extract all data from an Excel file (.xlsx)
|
| 8 |
+
|
| 9 |
+
Args:
|
| 10 |
+
file_path (str): Path to the .xlsx file
|
| 11 |
+
|
| 12 |
+
Returns:
|
| 13 |
+
dict: Dictionary containing data from all sheets
|
| 14 |
+
"""
|
| 15 |
+
try:
|
| 16 |
+
# Load the workbook
|
| 17 |
+
workbook = openpyxl.load_workbook(file_path)
|
| 18 |
+
|
| 19 |
+
# Dictionary to store all sheets' data
|
| 20 |
+
all_data = {}
|
| 21 |
+
|
| 22 |
+
print(f"Processing file: {file_path}")
|
| 23 |
+
print(f"Number of sheets: {len(workbook.sheetnames)}\n")
|
| 24 |
+
|
| 25 |
+
# Iterate through all sheets
|
| 26 |
+
for sheet_name in workbook.sheetnames:
|
| 27 |
+
sheet = workbook[sheet_name]
|
| 28 |
+
|
| 29 |
+
print(f"--- Sheet: {sheet_name} ---")
|
| 30 |
+
print(f"Dimensions: {sheet.dimensions}")
|
| 31 |
+
|
| 32 |
+
# Extract data from the sheet
|
| 33 |
+
sheet_data = []
|
| 34 |
+
for row in sheet.iter_rows(values_only=True):
|
| 35 |
+
sheet_data.append(row)
|
| 36 |
+
|
| 37 |
+
all_data[sheet_name] = sheet_data
|
| 38 |
+
|
| 39 |
+
# Display first few rows
|
| 40 |
+
print(f"First 5 rows:")
|
| 41 |
+
for i, row in enumerate(sheet_data[:5]):
|
| 42 |
+
print(f" Row {i+1}: {row}")
|
| 43 |
+
print()
|
| 44 |
+
|
| 45 |
+
return all_data
|
| 46 |
+
|
| 47 |
+
except FileNotFoundError:
|
| 48 |
+
print(f"Error: File '{file_path}' not found.")
|
| 49 |
+
return None
|
| 50 |
+
except Exception as e:
|
| 51 |
+
print(f"Error: {e}")
|
| 52 |
+
return None
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
def extract_excel_with_pandas(file_path):
|
| 56 |
+
"""
|
| 57 |
+
Alternative method using pandas to extract Excel data
|
| 58 |
+
|
| 59 |
+
Args:
|
| 60 |
+
file_path (str): Path to the .xlsx file
|
| 61 |
+
|
| 62 |
+
Returns:
|
| 63 |
+
dict: Dictionary of DataFrames, one per sheet
|
| 64 |
+
"""
|
| 65 |
+
try:
|
| 66 |
+
# Read all sheets into a dictionary of DataFrames
|
| 67 |
+
all_sheets = pd.read_excel(file_path, sheet_name=None)
|
| 68 |
+
|
| 69 |
+
print(f"Processing file: {file_path}")
|
| 70 |
+
print(f"Number of sheets: {len(all_sheets)}\n")
|
| 71 |
+
|
| 72 |
+
# Display info for each sheet
|
| 73 |
+
for sheet_name, df in all_sheets.items():
|
| 74 |
+
print(f"--- Sheet: {sheet_name} ---")
|
| 75 |
+
print(f"Shape: {df.shape} (rows, columns)")
|
| 76 |
+
print(f"Columns: {list(df.columns)}")
|
| 77 |
+
print("\nFirst 5 rows:")
|
| 78 |
+
print(df.head())
|
| 79 |
+
print("\n")
|
| 80 |
+
|
| 81 |
+
return all_sheets
|
| 82 |
+
|
| 83 |
+
except FileNotFoundError:
|
| 84 |
+
print(f"Error: File '{file_path}' not found.")
|
| 85 |
+
return None
|
| 86 |
+
except Exception as e:
|
| 87 |
+
print(f"Error: {e}")
|
| 88 |
+
return None
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
if __name__ == "__main__":
|
| 92 |
+
# Example usage
|
| 93 |
+
file_path = "ReportTester-263254895.xlsx" # Change this to your file path
|
| 94 |
+
|
| 95 |
+
print("=" * 60)
|
| 96 |
+
print("Method 1: Using openpyxl")
|
| 97 |
+
print("=" * 60)
|
| 98 |
+
data = extract_excel_data(file_path)
|
| 99 |
+
|
| 100 |
+
print("\n" + "=" * 60)
|
| 101 |
+
print("Method 2: Using pandas (recommended)")
|
| 102 |
+
print("=" * 60)
|
| 103 |
+
df_data = extract_excel_with_pandas(file_path)
|
| 104 |
+
|
| 105 |
+
# Optional: Save extracted data
|
| 106 |
+
if df_data:
|
| 107 |
+
# Export each sheet to CSV
|
| 108 |
+
for sheet_name, df in df_data.items():
|
| 109 |
+
output_file = f"{sheet_name}.csv"
|
| 110 |
+
df.to_csv(output_file, index=False)
|
| 111 |
+
print(f"Exported '{sheet_name}' to {output_file}")
|
backend/[3]_Process/test_2.xlsx
ADDED
|
Binary file (4.95 kB). View file
|
|
|
backend/[4]_output_csv_files/Upload-1_ID/4_layer_output.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
backend/[4]_output_csv_files/Upload-1_ID/5_layer_output.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
backend/[4]_output_csv_files/Upload-1_ID/6_layer_output.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
backend/[4]_output_csv_files/Upload-1_ID/7_layer_output.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
backend/[4]_output_csv_files/Upload-1_ID/8_layer_output.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
backend/[4]_output_csv_files/Upload-1_ID/9_layer_output.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
backend/[4]_output_csv_files/Upload-1_ID/Sheet1.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
backend/[4]_output_csv_files/Upload-1_ID/extracted_deals.csv
ADDED
|
@@ -0,0 +1,725 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Time,Deal,Symbol,Type,Direction,Volume,Price,Order,Commission,Swap,Profit,Balance,Comment
|
| 2 |
+
2024.01.01 00:00:00,1.0,,balance,,,,,0,0.0,100.0,100.0,
|
| 3 |
+
2024.01.02 01:03:34,2.0,XAUUSDc,buy,in,2.03,2066.368,2.0,0,0.0,0.0,100.0,Range Breakout Buy
|
| 4 |
+
2024.01.02 02:07:30,3.0,XAUUSDc,sell,out,2.03,2064.418,3.0,0,0.0,-3.96,96.04,sl 2065.053
|
| 5 |
+
2024.01.03 00:12:34,4.0,XAUUSDc,buy,in,7.42,2060.626,4.0,0,0.0,0.0,96.04,Range Breakout Buy
|
| 6 |
+
2024.01.03 01:16:30,5.0,XAUUSDc,sell,out,7.42,2059.897,5.0,0,0.0,-5.41,90.63,sl 2059.922
|
| 7 |
+
2024.01.04 00:54:34,6.0,XAUUSDc,sell,in,7.95,2041.821,6.0,0,0.0,0.0,90.63,Range Breakout Sell
|
| 8 |
+
2024.01.04 00:55:30,7.0,XAUUSDc,buy,out,7.95,2042.352,7.0,0,0.0,-4.22,86.41,sl 2042.059
|
| 9 |
+
2024.01.05 00:48:32,8.0,XAUUSDc,buy,in,17.51,2044.807,8.0,0,0.0,0.0,86.41,Range Breakout Buy
|
| 10 |
+
2024.01.05 00:51:30,9.0,XAUUSDc,sell,out,17.51,2044.308,9.0,0,0.0,-8.74,77.67,sl 2044.323
|
| 11 |
+
2024.01.09 00:03:31,10.0,XAUUSDc,buy,in,7.37,2031.796,10.0,0,0.0,0.0,77.67,Range Breakout Buy
|
| 12 |
+
2024.01.09 00:19:30,11.0,XAUUSDc,sell,out,7.37,2033.971,11.0,0,0.0,16.03,93.7,tp 2033.939
|
| 13 |
+
2024.01.10 01:15:31,12.0,XAUUSDc,sell,in,4.1,2027.327,12.0,0,0.0,0.0,93.7,Range Breakout Sell
|
| 14 |
+
2024.01.10 01:21:30,13.0,XAUUSDc,buy,out,4.1,2029.097,13.0,0,0.0,-7.26,86.44,sl 2028.842
|
| 15 |
+
2024.01.11 00:06:32,14.0,XAUUSDc,buy,in,10.45,2027.719,14.0,0,0.0,0.0,86.44,Range Breakout Buy
|
| 16 |
+
2024.01.11 00:09:30,15.0,XAUUSDc,sell,out,10.45,2027.047,15.0,0,0.0,-7.02,79.42,sl 2027.239
|
| 17 |
+
2024.01.16 00:27:33,16.0,XAUUSDc,sell,in,4.23,2052.819,17.0,0,0.0,0.0,79.42,Range Breakout Sell
|
| 18 |
+
2024.01.16 05:22:30,17.0,XAUUSDc,buy,out,4.23,2048.564,18.0,0,0.0,18.0,97.42,tp 2048.581
|
| 19 |
+
2024.01.17 00:12:31,18.0,XAUUSDc,sell,in,6.58,2025.938,19.0,0,0.0,0.0,97.42,Range Breakout Sell
|
| 20 |
+
2024.01.17 00:20:30,19.0,XAUUSDc,buy,out,6.58,2026.751,20.0,0,0.0,-5.35,92.07,sl 2026.439
|
| 21 |
+
2024.01.19 00:21:31,20.0,XAUUSDc,buy,in,3.5,2024.023,22.0,0,0.0,0.0,92.07,Range Breakout Buy
|
| 22 |
+
2024.01.19 00:36:30,21.0,XAUUSDc,sell,out,3.5,2023.446,23.0,0,0.0,-2.02,90.05,sl 2023.458
|
| 23 |
+
2024.01.24 07:45:33,22.0,XAUUSDc,buy,in,1.15,2030.615,25.0,0,0.0,0.0,90.05,Range Breakout Buy
|
| 24 |
+
2024.01.24 08:18:30,23.0,XAUUSDc,sell,out,1.15,2028.57,26.0,0,0.0,-2.35,87.7,sl 2028.856
|
| 25 |
+
2024.01.25 07:33:36,24.0,XAUUSDc,buy,in,13.28,2017.565,27.0,0,0.0,0.0,87.7,Range Breakout Buy
|
| 26 |
+
2024.01.25 07:34:30,25.0,XAUUSDc,sell,out,13.28,2017.134,28.0,0,0.0,-5.72,81.98,sl 2017.272
|
| 27 |
+
2024.01.26 00:42:38,26.0,XAUUSDc,buy,in,2.95,2021.31,29.0,0,0.0,0.0,81.98,Range Breakout Buy
|
| 28 |
+
2024.01.26 07:16:30,27.0,XAUUSDc,sell,out,2.95,2020.001,30.0,0,0.0,-3.86,78.12,sl 2020.320
|
| 29 |
+
2024.01.30 00:39:34,28.0,XAUUSDc,buy,in,9.01,2033.073,31.0,0,0.0,0.0,78.12,Range Breakout Buy
|
| 30 |
+
2024.01.30 01:04:30,29.0,XAUUSDc,sell,out,9.01,2032.56,32.0,0,0.0,-4.62,73.5,sl 2032.772
|
| 31 |
+
2024.01.31 00:03:32,30.0,XAUUSDc,buy,in,3.24,2037.467,33.0,0,0.0,0.0,73.5,Range Breakout Buy
|
| 32 |
+
2024.01.31 00:42:30,31.0,XAUUSDc,sell,out,3.24,2036.249,34.0,0,0.0,-3.95,69.55,sl 2036.658
|
| 33 |
+
2024.02.01 00:33:33,32.0,XAUUSDc,buy,in,3.03,2041.856,35.0,0,0.0,0.0,69.55,Range Breakout Buy
|
| 34 |
+
2024.02.01 00:50:30,33.0,XAUUSDc,sell,out,3.03,2041.135,36.0,0,0.0,-2.19,67.36,sl 2041.173
|
| 35 |
+
2024.02.02 00:30:36,34.0,XAUUSDc,buy,in,4.78,2055.985,37.0,0,0.0,0.0,67.36,Range Breakout Buy
|
| 36 |
+
2024.02.02 00:53:30,35.0,XAUUSDc,sell,out,4.78,2055.411,38.0,0,0.0,-2.74,64.62,sl 2055.700
|
| 37 |
+
2024.02.05 00:03:33,36.0,XAUUSDc,sell,in,4.25,2037.951,39.0,0,0.0,0.0,64.62,Range Breakout Sell
|
| 38 |
+
2024.02.05 00:04:30,37.0,XAUUSDc,buy,out,4.25,2038.469,40.0,0,0.0,-2.2,62.42,sl 2038.379
|
| 39 |
+
2024.02.06 00:06:34,38.0,XAUUSDc,buy,in,8.14,2025.648,41.0,0,0.0,0.0,62.42,Range Breakout Buy
|
| 40 |
+
2024.02.06 00:10:30,39.0,XAUUSDc,sell,out,8.14,2024.977,42.0,0,0.0,-5.46,56.96,sl 2025.284
|
| 41 |
+
2024.02.08 00:03:43,40.0,XAUUSDc,buy,in,12.94,2037.015,43.0,0,0.0,0.0,56.96,Range Breakout Buy
|
| 42 |
+
2024.02.08 01:02:30,41.0,XAUUSDc,sell,out,12.94,2037.771,44.0,0,0.0,9.78,66.74,tp 2037.649
|
| 43 |
+
2024.02.09 00:36:34,42.0,XAUUSDc,sell,in,4.09,2033.489,45.0,0,0.0,0.0,66.74,Range Breakout Sell
|
| 44 |
+
2024.02.09 00:37:30,43.0,XAUUSDc,buy,out,4.09,2033.75,46.0,0,0.0,-1.07,65.67,sl 2033.744
|
| 45 |
+
2024.02.12 08:21:42,44.0,XAUUSDc,buy,in,3.39,2026.974,47.0,0,0.0,0.0,65.67,Range Breakout Buy
|
| 46 |
+
2024.02.12 08:35:30,45.0,XAUUSDc,sell,out,3.39,2025.767,48.0,0,0.0,-4.09,61.58,sl 2025.941
|
| 47 |
+
2024.02.14 00:27:41,46.0,XAUUSDc,buy,in,3.7,1992.597,50.0,0,0.0,0.0,61.58,Range Breakout Buy
|
| 48 |
+
2024.02.14 00:51:30,47.0,XAUUSDc,sell,out,3.7,1992.255,51.0,0,0.0,-1.27,60.31,sl 1992.270
|
| 49 |
+
2024.02.16 01:36:35,48.0,XAUUSDc,buy,in,3.36,2004.198,52.0,0,0.0,0.0,60.31,Range Breakout Buy
|
| 50 |
+
2024.02.16 01:40:30,49.0,XAUUSDc,sell,out,3.36,2003.639,53.0,0,0.0,-1.88,58.43,sl 2003.979
|
| 51 |
+
2024.02.19 00:27:37,50.0,XAUUSDc,buy,in,1.42,2018.086,54.0,0,0.0,0.0,58.43,Range Breakout Buy
|
| 52 |
+
2024.02.19 00:38:30,51.0,XAUUSDc,sell,out,1.42,2016.635,55.0,0,0.0,-2.06,56.37,sl 2016.745
|
| 53 |
+
2024.02.20 00:12:38,52.0,XAUUSDc,sell,in,5.99,2015.378,56.0,0,0.0,0.0,56.37,Range Breakout Sell
|
| 54 |
+
2024.02.20 00:17:30,53.0,XAUUSDc,buy,out,5.99,2015.925,57.0,0,0.0,-3.28,53.09,sl 2015.796
|
| 55 |
+
2024.02.21 00:03:33,54.0,XAUUSDc,sell,in,2.48,2023.38,58.0,0,0.0,0.0,53.09,Range Breakout Sell
|
| 56 |
+
2024.02.21 00:05:30,55.0,XAUUSDc,buy,out,2.48,2023.663,59.0,0,0.0,-0.7,52.39,sl 2023.600
|
| 57 |
+
2024.02.23 00:27:30,56.0,XAUUSDc,buy,in,9.13,2026.09,60.0,0,0.0,0.0,52.39,Range Breakout Buy
|
| 58 |
+
2024.02.23 00:34:30,57.0,XAUUSDc,sell,out,9.13,2025.543,61.0,0,0.0,-4.99,47.4,sl 2025.604
|
| 59 |
+
2024.02.26 00:03:33,58.0,XAUUSDc,sell,in,2.51,2032.972,62.0,0,0.0,0.0,47.4,Range Breakout Sell
|
| 60 |
+
2024.02.26 00:06:30,59.0,XAUUSDc,buy,out,2.51,2033.604,63.0,0,0.0,-1.59,45.81,sl 2033.596
|
| 61 |
+
2024.02.27 00:03:40,60.0,XAUUSDc,buy,in,3.86,2032.193,64.0,0,0.0,0.0,45.81,Range Breakout Buy
|
| 62 |
+
2024.02.27 00:05:30,61.0,XAUUSDc,sell,out,3.86,2031.774,65.0,0,0.0,-1.62,44.19,sl 2031.823
|
| 63 |
+
2024.03.04 07:45:38,62.0,XAUUSDc,buy,in,1.31,2087.211,67.0,0,0.0,0.0,44.19,Range Breakout Buy
|
| 64 |
+
2024.03.04 08:18:30,63.0,XAUUSDc,sell,out,1.31,2085.628,68.0,0,0.0,-2.07,42.12,sl 2085.692
|
| 65 |
+
2024.03.05 01:18:36,64.0,XAUUSDc,sell,in,1.39,2113.248,69.0,0,0.0,0.0,42.12,Range Breakout Sell
|
| 66 |
+
2024.03.05 04:10:30,65.0,XAUUSDc,buy,out,1.39,2114.629,70.0,0,0.0,-1.92,40.2,sl 2114.143
|
| 67 |
+
2024.03.06 07:06:35,66.0,XAUUSDc,buy,in,1.29,2129.288,71.0,0,0.0,0.0,40.2,Range Breakout Buy
|
| 68 |
+
2024.03.06 08:00:30,67.0,XAUUSDc,sell,out,1.29,2127.633,72.0,0,0.0,-2.14,38.06,sl 2127.835
|
| 69 |
+
2024.03.07 01:15:34,68.0,XAUUSDc,sell,in,1.23,2146.48,73.0,0,0.0,0.0,38.06,Range Breakout Sell
|
| 70 |
+
2024.03.07 01:38:30,69.0,XAUUSDc,buy,out,1.23,2146.971,74.0,0,0.0,-0.6,37.46,sl 2146.742
|
| 71 |
+
2024.03.08 00:03:39,70.0,XAUUSDc,buy,in,5.59,2161.849,75.0,0,0.0,0.0,37.46,Range Breakout Buy
|
| 72 |
+
2024.03.08 00:04:30,71.0,XAUUSDc,sell,out,5.59,2160.903,76.0,0,0.0,-5.29,32.17,sl 2161.267
|
| 73 |
+
2024.03.11 00:39:47,72.0,XAUUSDc,buy,in,1.64,2184.669,77.0,0,0.0,0.0,32.17,Range Breakout Buy
|
| 74 |
+
2024.03.11 01:04:30,73.0,XAUUSDc,sell,out,1.64,2183.416,78.0,0,0.0,-2.06,30.11,sl 2183.876
|
| 75 |
+
2024.03.12 00:57:38,74.0,XAUUSDc,sell,in,2.23,2180.547,79.0,0,0.0,0.0,30.11,Range Breakout Sell
|
| 76 |
+
2024.03.12 00:58:30,75.0,XAUUSDc,buy,out,2.23,2180.924,80.0,0,0.0,-0.84,29.27,sl 2180.771
|
| 77 |
+
2024.03.13 02:48:32,76.0,XAUUSDc,buy,in,1.79,2161.477,81.0,0,0.0,0.0,29.27,Range Breakout Buy
|
| 78 |
+
2024.03.13 02:55:30,77.0,XAUUSDc,sell,out,1.79,2160.476,82.0,0,0.0,-1.79,27.48,sl 2160.743
|
| 79 |
+
2024.03.14 00:57:30,78.0,XAUUSDc,buy,in,1.43,2176.643,83.0,0,0.0,0.0,27.48,Range Breakout Buy
|
| 80 |
+
2024.03.14 01:11:30,79.0,XAUUSDc,sell,out,1.43,2175.21,84.0,0,0.0,-2.05,25.43,sl 2175.898
|
| 81 |
+
2024.03.15 00:42:34,80.0,XAUUSDc,buy,in,1.36,2162.258,85.0,0,0.0,0.0,25.43,Range Breakout Buy
|
| 82 |
+
2024.03.15 05:43:30,81.0,XAUUSDc,sell,out,1.36,2166.89,86.0,0,0.0,6.3,31.73,tp 2166.719
|
| 83 |
+
2024.03.18 01:09:38,82.0,XAUUSDc,sell,in,1.9,2153.584,87.0,0,0.0,0.0,31.73,Range Breakout Sell
|
| 84 |
+
2024.03.18 02:45:30,83.0,XAUUSDc,buy,out,1.9,2148.709,88.0,0,0.0,9.26,40.99,tp 2149.876
|
| 85 |
+
2024.03.19 00:03:31,84.0,XAUUSDc,buy,in,1.33,2162.49,89.0,0,0.0,0.0,40.99,Range Breakout Buy
|
| 86 |
+
2024.03.19 00:10:30,85.0,XAUUSDc,sell,out,1.33,2161.723,90.0,0,0.0,-1.02,39.97,sl 2161.781
|
| 87 |
+
2024.03.20 01:24:36,86.0,XAUUSDc,buy,in,1.47,2159.864,91.0,0,0.0,0.0,39.97,Range Breakout Buy
|
| 88 |
+
2024.03.20 01:33:30,87.0,XAUUSDc,sell,out,1.47,2158.426,92.0,0,0.0,-2.11,37.86,sl 2158.904
|
| 89 |
+
2024.03.21 14:06:35,88.0,XAUUSDc,sell,in,0.43,2183.554,93.0,0,0.0,0.0,37.86,Range Breakout Sell
|
| 90 |
+
2024.03.22 00:15:37,89.0,XAUUSDc,buy,in,4.41,2183.248,94.0,0,0.0,0.0,37.86,Range Breakout Buy
|
| 91 |
+
2024.03.22 00:34:30,90.0,XAUUSDc,sell,out,4.41,2184.909,95.0,0,0.0,7.33,45.19,tp 2184.621
|
| 92 |
+
2024.03.22 07:21:30,91.0,XAUUSDc,buy,out,0.43,2164.437,96.0,0,0.0,8.22,53.41,tp 2164.451
|
| 93 |
+
2024.03.25 00:03:33,92.0,XAUUSDc,buy,in,2.46,2168.908,97.0,0,0.0,0.0,53.41,Range Breakout Buy
|
| 94 |
+
2024.03.25 00:09:30,93.0,XAUUSDc,sell,out,2.46,2168.032,98.0,0,0.0,-2.16,51.25,sl 2168.473
|
| 95 |
+
2024.03.26 00:03:35,94.0,XAUUSDc,buy,in,2.84,2173.194,99.0,0,0.0,0.0,51.25,Range Breakout Buy
|
| 96 |
+
2024.03.26 00:07:30,95.0,XAUUSDc,sell,out,2.84,2172.606,100.0,0,0.0,-1.67,49.58,sl 2172.704
|
| 97 |
+
2024.03.28 00:03:32,96.0,XAUUSDc,sell,in,0.88,2187.914,101.0,0,0.0,0.0,49.58,Range Breakout Sell
|
| 98 |
+
2024.03.28 00:32:30,97.0,XAUUSDc,buy,out,0.88,2190.464,102.0,0,0.0,-2.24,47.34,sl 2190.297
|
| 99 |
+
2024.04.01 00:09:37,98.0,XAUUSDc,buy,in,0.64,2248.717,103.0,0,0.0,0.0,47.34,Range Breakout Buy
|
| 100 |
+
2024.04.01 12:05:30,99.0,XAUUSDc,sell,out,0.64,2245.593,104.0,0,0.0,-2.0,45.34,sl 2245.926
|
| 101 |
+
2024.04.02 04:45:32,100.0,XAUUSDc,buy,in,0.88,2257.451,105.0,0,0.0,0.0,45.34,Range Breakout Buy
|
| 102 |
+
2024.04.02 05:16:30,101.0,XAUUSDc,sell,out,0.88,2254.844,106.0,0,0.0,-2.29,43.05,sl 2255.036
|
| 103 |
+
2024.04.03 01:12:35,102.0,XAUUSDc,sell,in,1.47,2277.669,107.0,0,0.0,0.0,43.05,Range Breakout Sell
|
| 104 |
+
2024.04.03 01:16:30,103.0,XAUUSDc,buy,out,1.47,2278.956,108.0,0,0.0,-1.89,41.16,sl 2278.850
|
| 105 |
+
2024.04.04 00:57:35,104.0,XAUUSDc,buy,in,0.62,2302.363,109.0,0,0.0,0.0,41.16,Range Breakout Buy
|
| 106 |
+
2024.04.04 01:05:30,105.0,XAUUSDc,sell,out,0.62,2300.278,110.0,0,0.0,-1.29,39.87,sl 2300.351
|
| 107 |
+
2024.04.05 00:15:38,106.0,XAUUSDc,sell,in,1.44,2288.317,111.0,0,0.0,0.0,39.87,Range Breakout Sell
|
| 108 |
+
2024.04.05 00:16:30,107.0,XAUUSDc,buy,out,1.44,2288.916,112.0,0,0.0,-0.86,39.01,sl 2288.853
|
| 109 |
+
2024.04.08 01:03:33,108.0,XAUUSDc,sell,in,0.45,2302.891,113.0,0,0.0,0.0,39.01,Range Breakout Sell
|
| 110 |
+
2024.04.08 01:07:30,109.0,XAUUSDc,buy,out,0.45,2306.63,114.0,0,0.0,-1.68,37.33,sl 2306.230
|
| 111 |
+
2024.04.10 01:03:35,110.0,XAUUSDc,sell,in,0.49,2349.85,115.0,0,0.0,0.0,37.33,Range Breakout Sell
|
| 112 |
+
2024.04.10 02:31:30,111.0,XAUUSDc,buy,out,0.49,2351.084,116.0,0,0.0,-0.6,36.73,sl 2350.958
|
| 113 |
+
2024.04.11 01:09:32,112.0,XAUUSDc,buy,in,1.41,2339.778,117.0,0,0.0,0.0,36.73,Range Breakout Buy
|
| 114 |
+
2024.04.11 02:49:30,113.0,XAUUSDc,sell,out,1.41,2344.667,118.0,0,0.0,6.89,43.62,tp 2344.504
|
| 115 |
+
2024.04.12 01:03:05,114.0,XAUUSDc,buy,in,0.24,2384.541,119.0,0,0.0,0.0,43.62,Range Breakout Buy
|
| 116 |
+
2024.04.12 14:58:27,115.0,XAUUSDc,sell,out,0.24,2426.804,120.0,0,0.0,10.14,53.76,tp 2426.799
|
| 117 |
+
2024.04.16 15:09:04,116.0,XAUUSDc,buy,in,0.31,2392.944,121.0,0,0.0,0.0,53.76,Range Breakout Buy
|
| 118 |
+
2024.04.16 15:12:36,117.0,XAUUSDc,sell,out,0.31,2387.493,122.0,0,0.0,-1.69,52.07,sl 2387.495
|
| 119 |
+
2024.04.17 00:03:02,118.0,XAUUSDc,sell,in,0.71,2381.164,123.0,0,0.0,0.0,52.07,Range Breakout Sell
|
| 120 |
+
2024.04.17 00:19:38,119.0,XAUUSDc,buy,out,0.71,2383.421,124.0,0,0.0,-1.6,50.47,sl 2383.399
|
| 121 |
+
2024.04.18 00:03:05,120.0,XAUUSDc,buy,in,0.84,2369.61,125.0,0,0.0,0.0,50.47,Range Breakout Buy
|
| 122 |
+
2024.04.18 00:09:30,121.0,XAUUSDc,sell,out,0.84,2367.829,126.0,0,0.0,-1.5,48.97,sl 2367.837
|
| 123 |
+
2024.04.19 00:06:07,122.0,XAUUSDc,sell,in,0.79,2377.041,127.0,0,0.0,0.0,48.97,Range Breakout Sell
|
| 124 |
+
2024.04.19 00:58:30,123.0,XAUUSDc,buy,out,0.79,2379.051,128.0,0,0.0,-1.59,47.38,sl 2379.029
|
| 125 |
+
2024.04.23 01:09:02,124.0,XAUUSDc,buy,in,1.11,2334.201,129.0,0,0.0,0.0,47.38,Range Breakout Buy
|
| 126 |
+
2024.04.23 01:21:41,125.0,XAUUSDc,sell,out,1.11,2332.653,130.0,0,0.0,-1.72,45.66,sl 2332.673
|
| 127 |
+
2024.04.24 03:21:00,126.0,XAUUSDc,buy,in,0.82,2325.336,131.0,0,0.0,0.0,45.66,Range Breakout Buy
|
| 128 |
+
2024.04.24 07:05:03,127.0,XAUUSDc,sell,out,0.82,2323.503,132.0,0,0.0,-1.5,44.16,sl 2323.504
|
| 129 |
+
2024.04.25 03:12:01,128.0,XAUUSDc,sell,in,0.23,2313.219,133.0,0,0.0,0.0,44.16,Range Breakout Sell
|
| 130 |
+
2024.04.25 05:36:37,129.0,XAUUSDc,buy,out,0.23,2318.714,134.0,0,0.0,-1.26,42.9,sl 2318.705
|
| 131 |
+
2024.04.26 00:18:03,130.0,XAUUSDc,sell,in,1.28,2329.799,135.0,0,0.0,0.0,42.9,Range Breakout Sell
|
| 132 |
+
2024.04.26 01:32:14,131.0,XAUUSDc,buy,out,1.28,2330.833,136.0,0,0.0,-1.32,41.58,sl 2330.814
|
| 133 |
+
2024.04.29 00:45:04,132.0,XAUUSDc,sell,in,1.55,2332.049,137.0,0,0.0,0.0,41.58,Range Breakout Sell
|
| 134 |
+
2024.04.29 01:00:37,133.0,XAUUSDc,buy,out,1.55,2325.767,138.0,0,0.0,9.74,51.32,tp 2325.767
|
| 135 |
+
2024.04.30 00:03:00,134.0,XAUUSDc,sell,in,1.15,2331.882,139.0,0,0.0,0.0,51.32,Range Breakout Sell
|
| 136 |
+
2024.04.30 00:06:36,135.0,XAUUSDc,buy,out,1.15,2333.243,140.0,0,0.0,-1.57,49.75,sl 2333.218
|
| 137 |
+
2024.05.01 00:51:16,136.0,XAUUSDc,sell,in,1.15,2285.76,141.0,0,0.0,0.0,49.75,Range Breakout Sell
|
| 138 |
+
2024.05.01 00:52:29,137.0,XAUUSDc,buy,out,1.15,2288.225,142.0,0,0.0,-2.84,46.91,sl 2288.222
|
| 139 |
+
2024.05.02 00:06:02,138.0,XAUUSDc,buy,in,1.3,2325.636,143.0,0,0.0,0.0,46.91,Range Breakout Buy
|
| 140 |
+
2024.05.02 00:06:35,139.0,XAUUSDc,sell,out,1.3,2324.272,144.0,0,0.0,-1.77,45.14,sl 2324.289
|
| 141 |
+
2024.05.03 01:06:00,140.0,XAUUSDc,buy,in,1.02,2305.69,145.0,0,0.0,0.0,45.14,Range Breakout Buy
|
| 142 |
+
2024.05.03 01:12:25,141.0,XAUUSDc,sell,out,1.02,2304.206,146.0,0,0.0,-1.51,43.63,sl 2304.217
|
| 143 |
+
2024.05.06 00:18:02,142.0,XAUUSDc,sell,in,0.52,2292.315,147.0,0,0.0,0.0,43.63,Range Breakout Sell
|
| 144 |
+
2024.05.06 00:38:34,143.0,XAUUSDc,buy,out,0.52,2294.986,148.0,0,0.0,-1.39,42.24,sl 2294.960
|
| 145 |
+
2024.05.07 02:12:05,144.0,XAUUSDc,sell,in,0.9,2322.061,149.0,0,0.0,0.0,42.24,Range Breakout Sell
|
| 146 |
+
2024.05.07 02:29:25,145.0,XAUUSDc,buy,out,0.9,2323.354,150.0,0,0.0,-1.16,41.08,sl 2323.354
|
| 147 |
+
2024.05.08 00:45:00,146.0,XAUUSDc,sell,in,2.39,2313.812,151.0,0,0.0,0.0,41.08,Range Breakout Sell
|
| 148 |
+
2024.05.08 00:45:29,147.0,XAUUSDc,buy,out,2.39,2314.355,152.0,0,0.0,-1.3,39.78,sl 2314.326
|
| 149 |
+
2024.05.10 00:30:07,148.0,XAUUSDc,buy,in,1.04,2348.664,153.0,0,0.0,0.0,39.78,Range Breakout Buy
|
| 150 |
+
2024.05.10 00:36:37,149.0,XAUUSDc,sell,out,1.04,2347.407,154.0,0,0.0,-1.31,38.47,sl 2347.421
|
| 151 |
+
2024.05.13 01:15:04,150.0,XAUUSDc,sell,in,0.51,2359.597,155.0,0,0.0,0.0,38.47,Range Breakout Sell
|
| 152 |
+
2024.05.13 09:26:04,151.0,XAUUSDc,buy,out,0.51,2341.479,156.0,0,0.0,9.24,47.71,tp 2341.483
|
| 153 |
+
2024.05.14 00:18:00,152.0,XAUUSDc,buy,in,1.75,2339.738,157.0,0,0.0,0.0,47.71,Range Breakout Buy
|
| 154 |
+
2024.05.14 00:25:13,153.0,XAUUSDc,sell,out,1.75,2338.71,158.0,0,0.0,-1.8,45.91,sl 2338.715
|
| 155 |
+
2024.05.15 01:33:02,154.0,XAUUSDc,buy,in,0.86,2358.067,159.0,0,0.0,0.0,45.91,Range Breakout Buy
|
| 156 |
+
2024.05.15 04:53:37,155.0,XAUUSDc,sell,out,0.86,2356.248,160.0,0,0.0,-1.57,44.34,sl 2356.274
|
| 157 |
+
2024.05.16 00:12:06,156.0,XAUUSDc,buy,in,0.78,2392.107,161.0,0,0.0,0.0,44.34,Range Breakout Buy
|
| 158 |
+
2024.05.16 01:55:40,157.0,XAUUSDc,sell,out,0.78,2390.367,162.0,0,0.0,-1.36,42.98,sl 2390.394
|
| 159 |
+
2024.05.20 00:42:06,158.0,XAUUSDc,buy,in,0.56,2425.14,163.0,0,0.0,0.0,42.98,Range Breakout Buy
|
| 160 |
+
2024.05.20 05:34:19,159.0,XAUUSDc,sell,out,0.56,2443.634,164.0,0,0.0,10.36,53.34,tp 2443.630
|
| 161 |
+
2024.05.22 00:06:01,160.0,XAUUSDc,buy,in,3.25,2422.526,165.0,0,0.0,0.0,53.34,Range Breakout Buy
|
| 162 |
+
2024.05.22 00:14:33,161.0,XAUUSDc,sell,out,3.25,2421.857,166.0,0,0.0,-2.18,51.16,sl 2421.866
|
| 163 |
+
2024.05.23 01:12:04,162.0,XAUUSDc,sell,in,0.31,2376.266,167.0,0,0.0,0.0,51.16,Range Breakout Sell
|
| 164 |
+
2024.05.23 17:28:27,163.0,XAUUSDc,buy,out,0.31,2337.596,168.0,0,0.0,11.99,63.15,tp 2337.603
|
| 165 |
+
2024.05.27 02:27:04,164.0,XAUUSDc,buy,in,1.37,2341.011,169.0,0,0.0,0.0,63.15,Range Breakout Buy
|
| 166 |
+
2024.05.27 02:30:36,165.0,XAUUSDc,sell,out,1.37,2339.455,170.0,0,0.0,-2.13,61.02,sl 2339.473
|
| 167 |
+
2024.05.28 01:36:00,166.0,XAUUSDc,buy,in,1.4,2354.255,171.0,0,0.0,0.0,61.02,Range Breakout Buy
|
| 168 |
+
2024.05.28 02:32:24,167.0,XAUUSDc,sell,out,1.4,2352.702,172.0,0,0.0,-2.17,58.85,sl 2352.721
|
| 169 |
+
2024.05.29 00:45:14,168.0,XAUUSDc,sell,in,2.72,2357.446,173.0,0,0.0,0.0,58.85,Range Breakout Sell
|
| 170 |
+
2024.05.29 00:48:04,169.0,XAUUSDc,buy,out,2.72,2358.248,174.0,0,0.0,-2.18,56.67,sl 2358.248
|
| 171 |
+
2024.05.30 00:03:03,170.0,XAUUSDc,sell,in,0.77,2336.265,175.0,0,0.0,0.0,56.67,Range Breakout Sell
|
| 172 |
+
2024.05.30 01:12:15,171.0,XAUUSDc,buy,out,0.77,2338.391,176.0,0,0.0,-1.64,55.03,sl 2338.378
|
| 173 |
+
2024.05.31 00:48:02,172.0,XAUUSDc,buy,in,1.03,2346.794,177.0,0,0.0,0.0,55.03,Range Breakout Buy
|
| 174 |
+
2024.05.31 01:09:36,173.0,XAUUSDc,sell,out,1.03,2344.936,178.0,0,0.0,-1.91,53.12,sl 2344.944
|
| 175 |
+
2024.06.04 01:09:05,174.0,XAUUSDc,sell,in,1.61,2349.661,179.0,0,0.0,0.0,53.12,Range Breakout Sell
|
| 176 |
+
2024.06.04 06:04:30,175.0,XAUUSDc,buy,out,1.61,2350.595,180.0,0,0.0,-1.5,51.62,sl 2350.571
|
| 177 |
+
2024.06.05 01:03:04,176.0,XAUUSDc,sell,in,0.98,2326.996,181.0,0,0.0,0.0,51.62,Range Breakout Sell
|
| 178 |
+
2024.06.05 01:32:37,177.0,XAUUSDc,buy,out,0.98,2328.724,182.0,0,0.0,-1.69,49.93,sl 2328.704
|
| 179 |
+
2024.06.06 01:03:02,178.0,XAUUSDc,buy,in,0.8,2357.498,183.0,0,0.0,0.0,49.93,Range Breakout Buy
|
| 180 |
+
2024.06.06 01:31:36,179.0,XAUUSDc,sell,out,0.8,2372.274,184.0,0,0.0,11.82,61.75,tp 2372.268
|
| 181 |
+
2024.06.07 01:12:06,180.0,XAUUSDc,sell,in,0.78,2374.97,185.0,0,0.0,0.0,61.75,Range Breakout Sell
|
| 182 |
+
2024.06.07 02:51:38,181.0,XAUUSDc,buy,out,0.78,2377.268,186.0,0,0.0,-1.79,59.96,sl 2377.237
|
| 183 |
+
2024.06.11 01:03:07,182.0,XAUUSDc,sell,in,0.26,2303.927,187.0,0,0.0,0.0,59.96,Range Breakout Sell
|
| 184 |
+
2024.06.11 12:12:02,183.0,XAUUSDc,buy,out,0.26,2310.821,188.0,0,0.0,-1.79,58.17,sl 2310.812
|
| 185 |
+
2024.06.12 00:54:01,184.0,XAUUSDc,sell,in,1.41,2313.492,189.0,0,0.0,0.0,58.17,Range Breakout Sell
|
| 186 |
+
2024.06.12 01:54:38,185.0,XAUUSDc,buy,out,1.41,2314.804,190.0,0,0.0,-1.85,56.32,sl 2314.782
|
| 187 |
+
2024.06.13 00:03:05,186.0,XAUUSDc,sell,in,1.38,2319.371,191.0,0,0.0,0.0,56.32,Range Breakout Sell
|
| 188 |
+
2024.06.13 00:24:31,187.0,XAUUSDc,buy,out,1.38,2320.778,192.0,0,0.0,-1.94,54.38,sl 2320.774
|
| 189 |
+
2024.06.14 00:15:02,188.0,XAUUSDc,sell,in,1.87,2301.623,193.0,0,0.0,0.0,54.38,Range Breakout Sell
|
| 190 |
+
2024.06.14 00:19:25,189.0,XAUUSDc,buy,out,1.87,2302.559,194.0,0,0.0,-1.75,52.63,sl 2302.526
|
| 191 |
+
2024.06.17 00:03:01,190.0,XAUUSDc,sell,in,0.68,2326.607,195.0,0,0.0,0.0,52.63,Range Breakout Sell
|
| 192 |
+
2024.06.17 01:20:39,191.0,XAUUSDc,buy,out,0.68,2328.932,196.0,0,0.0,-1.58,51.05,sl 2328.918
|
| 193 |
+
2024.06.18 00:03:08,192.0,XAUUSDc,buy,in,1.03,2322.547,197.0,0,0.0,0.0,51.05,Range Breakout Buy
|
| 194 |
+
2024.06.18 01:17:59,193.0,XAUUSDc,sell,out,1.03,2320.629,198.0,0,0.0,-1.98,49.07,sl 2320.634
|
| 195 |
+
2024.06.19 01:48:07,194.0,XAUUSDc,buy,in,1.91,2330.493,199.0,0,0.0,0.0,49.07,Range Breakout Buy
|
| 196 |
+
2024.06.19 02:06:22,195.0,XAUUSDc,sell,out,1.91,2329.468,200.0,0,0.0,-1.96,47.11,sl 2329.483
|
| 197 |
+
2024.06.20 01:03:05,196.0,XAUUSDc,buy,in,0.91,2331.385,201.0,0,0.0,0.0,47.11,Range Breakout Buy
|
| 198 |
+
2024.06.20 05:36:23,197.0,XAUUSDc,sell,out,0.91,2343.524,202.0,0,0.0,11.05,58.16,tp 2343.518
|
| 199 |
+
2024.06.21 00:03:09,198.0,XAUUSDc,buy,in,2.48,2361.585,203.0,0,0.0,0.0,58.16,Range Breakout Buy
|
| 200 |
+
2024.06.21 01:15:27,199.0,XAUUSDc,sell,out,2.48,2360.753,204.0,0,0.0,-2.06,56.1,sl 2360.764
|
| 201 |
+
2024.06.24 01:09:06,200.0,XAUUSDc,buy,in,0.8,2323.221,205.0,0,0.0,0.0,56.1,Range Breakout Buy
|
| 202 |
+
2024.06.24 02:11:39,201.0,XAUUSDc,sell,out,0.8,2321.135,206.0,0,0.0,-1.67,54.43,sl 2321.142
|
| 203 |
+
2024.06.25 10:09:06,202.0,XAUUSDc,buy,in,1.14,2334.689,207.0,0,0.0,0.0,54.43,Range Breakout Buy
|
| 204 |
+
2024.06.25 11:08:36,203.0,XAUUSDc,sell,out,1.14,2333.186,208.0,0,0.0,-1.71,52.72,sl 2333.200
|
| 205 |
+
2024.06.26 00:15:00,204.0,XAUUSDc,buy,in,0.54,2321.804,209.0,0,0.0,0.0,52.72,Range Breakout Buy
|
| 206 |
+
2024.06.26 00:36:03,205.0,XAUUSDc,sell,out,0.54,2318.675,210.0,0,0.0,-1.69,51.03,sl 2318.718
|
| 207 |
+
2024.06.27 00:15:02,206.0,XAUUSDc,buy,in,1.56,2299.893,211.0,0,0.0,0.0,51.03,Range Breakout Buy
|
| 208 |
+
2024.06.27 00:15:40,207.0,XAUUSDc,sell,out,1.56,2298.638,212.0,0,0.0,-1.96,49.07,sl 2298.656
|
| 209 |
+
2024.06.28 00:09:04,208.0,XAUUSDc,buy,in,2.1,2328.333,213.0,0,0.0,0.0,49.07,Range Breakout Buy
|
| 210 |
+
2024.06.28 00:09:36,209.0,XAUUSDc,sell,out,2.1,2327.317,214.0,0,0.0,-2.13,46.94,sl 2327.321
|
| 211 |
+
2024.07.02 00:03:06,210.0,XAUUSDc,buy,in,0.9,2333.858,215.0,0,0.0,0.0,46.94,Range Breakout Buy
|
| 212 |
+
2024.07.02 00:23:37,211.0,XAUUSDc,sell,out,0.9,2332.072,216.0,0,0.0,-1.61,45.33,sl 2332.087
|
| 213 |
+
2024.07.03 00:12:01,212.0,XAUUSDc,buy,in,3.04,2331.776,217.0,0,0.0,0.0,45.33,Range Breakout Buy
|
| 214 |
+
2024.07.03 00:17:23,213.0,XAUUSDc,sell,out,3.04,2331.111,218.0,0,0.0,-2.02,43.31,sl 2331.122
|
| 215 |
+
2024.07.04 01:06:07,214.0,XAUUSDc,buy,in,1.56,2359.858,219.0,0,0.0,0.0,43.31,Range Breakout Buy
|
| 216 |
+
2024.07.04 01:14:40,215.0,XAUUSDc,sell,out,1.56,2358.838,220.0,0,0.0,-1.59,41.72,sl 2358.852
|
| 217 |
+
2024.07.05 00:33:08,216.0,XAUUSDc,buy,in,0.98,2358.21,221.0,0,0.0,0.0,41.72,Range Breakout Buy
|
| 218 |
+
2024.07.05 12:16:35,217.0,XAUUSDc,sell,out,0.98,2368.346,222.0,0,0.0,9.93,51.65,tp 2368.323
|
| 219 |
+
2024.07.09 00:03:05,218.0,XAUUSDc,buy,in,1.97,2362.746,223.0,0,0.0,0.0,51.65,Range Breakout Buy
|
| 220 |
+
2024.07.09 00:08:00,219.0,XAUUSDc,sell,out,1.97,2361.724,224.0,0,0.0,-2.01,49.64,sl 2361.740
|
| 221 |
+
2024.07.15 01:15:07,220.0,XAUUSDc,sell,in,1.02,2405.164,225.0,0,0.0,0.0,49.64,Range Breakout Sell
|
| 222 |
+
2024.07.15 01:18:14,221.0,XAUUSDc,buy,out,1.02,2406.667,226.0,0,0.0,-1.53,48.11,sl 2406.651
|
| 223 |
+
2024.07.17 00:42:04,222.0,XAUUSDc,buy,in,0.45,2472.014,227.0,0,0.0,0.0,48.11,Range Breakout Buy
|
| 224 |
+
2024.07.17 00:59:40,223.0,XAUUSDc,sell,out,0.45,2468.533,228.0,0,0.0,-1.57,46.54,sl 2468.561
|
| 225 |
+
2024.07.18 00:09:01,224.0,XAUUSDc,sell,in,1.46,2457.943,229.0,0,0.0,0.0,46.54,Range Breakout Sell
|
| 226 |
+
2024.07.18 00:11:17,225.0,XAUUSDc,buy,out,1.46,2458.879,230.0,0,0.0,-1.37,45.17,sl 2458.864
|
| 227 |
+
2024.07.19 00:03:00,226.0,XAUUSDc,sell,in,0.31,2437.059,231.0,0,0.0,0.0,45.17,Range Breakout Sell
|
| 228 |
+
2024.07.19 12:47:39,227.0,XAUUSDc,buy,out,0.31,2402.549,232.0,0,0.0,10.7,55.87,tp 2402.553
|
| 229 |
+
2024.07.23 00:33:04,228.0,XAUUSDc,buy,in,2.09,2398.213,233.0,0,0.0,0.0,55.87,Range Breakout Buy
|
| 230 |
+
2024.07.23 03:06:28,229.0,XAUUSDc,sell,out,2.09,2397.247,234.0,0,0.0,-2.02,53.85,sl 2397.253
|
| 231 |
+
2024.07.26 01:03:00,230.0,XAUUSDc,sell,in,0.72,2360.378,235.0,0,0.0,0.0,53.85,Range Breakout Sell
|
| 232 |
+
2024.07.26 01:17:14,231.0,XAUUSDc,buy,out,0.72,2362.735,236.0,0,0.0,-1.7,52.15,sl 2362.726
|
| 233 |
+
2024.07.29 08:30:00,232.0,XAUUSDc,sell,in,1.17,2387.796,237.0,0,0.0,0.0,52.15,Range Breakout Sell
|
| 234 |
+
2024.07.29 08:39:37,233.0,XAUUSDc,buy,out,1.17,2389.147,238.0,0,0.0,-1.58,50.57,sl 2389.127
|
| 235 |
+
2024.07.30 03:51:06,234.0,XAUUSDc,buy,in,4.26,2385.196,239.0,0,0.0,0.0,50.57,Range Breakout Buy
|
| 236 |
+
2024.07.30 04:31:26,235.0,XAUUSDc,sell,out,4.26,2387.888,240.0,0,0.0,11.47,62.04,tp 2387.880
|
| 237 |
+
2024.08.01 02:45:07,236.0,XAUUSDc,sell,in,0.93,2444.073,241.0,0,0.0,0.0,62.04,Range Breakout Sell
|
| 238 |
+
2024.08.01 04:29:57,237.0,XAUUSDc,buy,out,0.93,2445.957,242.0,0,0.0,-1.75,60.29,sl 2445.957
|
| 239 |
+
2024.08.02 01:15:08,238.0,XAUUSDc,sell,in,0.2,2437.64,243.0,0,0.0,0.0,60.29,Range Breakout Sell
|
| 240 |
+
2024.08.02 01:59:04,239.0,XAUUSDc,buy,out,0.2,2446.845,244.0,0,0.0,-1.84,58.45,sl 2446.837
|
| 241 |
+
2024.08.05 00:03:05,240.0,XAUUSDc,sell,in,0.53,2437.523,245.0,0,0.0,0.0,58.45,Range Breakout Sell
|
| 242 |
+
2024.08.05 01:42:02,241.0,XAUUSDc,buy,out,0.53,2440.984,246.0,0,0.0,-1.84,56.61,sl 2440.984
|
| 243 |
+
2024.08.06 05:48:08,242.0,XAUUSDc,sell,in,0.81,2403.92,247.0,0,0.0,0.0,56.61,Range Breakout Sell
|
| 244 |
+
2024.08.06 06:26:04,243.0,XAUUSDc,buy,out,0.81,2405.924,248.0,0,0.0,-1.62,54.99,sl 2405.912
|
| 245 |
+
2024.08.07 00:09:12,244.0,XAUUSDc,sell,in,0.54,2381.476,249.0,0,0.0,0.0,54.99,Range Breakout Sell
|
| 246 |
+
2024.08.07 00:30:34,245.0,XAUUSDc,buy,out,0.54,2384.808,250.0,0,0.0,-1.8,53.19,sl 2384.795
|
| 247 |
+
2024.08.15 00:03:01,246.0,XAUUSDc,buy,in,8.35,2449.699,251.0,0,0.0,0.0,53.19,Range Breakout Buy
|
| 248 |
+
2024.08.15 00:05:17,247.0,XAUUSDc,sell,out,8.35,2449.353,252.0,0,0.0,-2.89,50.3,sl 2449.377
|
| 249 |
+
2024.08.21 01:12:10,248.0,XAUUSDc,buy,in,1.93,2516.561,253.0,0,0.0,0.0,50.3,Range Breakout Buy
|
| 250 |
+
2024.08.21 01:12:29,249.0,XAUUSDc,sell,out,1.93,2515.555,254.0,0,0.0,-1.94,48.36,sl 2515.567
|
| 251 |
+
2024.08.26 01:42:02,250.0,XAUUSDc,sell,in,0.95,2510.72,255.0,0,0.0,0.0,48.36,Range Breakout Sell
|
| 252 |
+
2024.08.26 01:46:28,251.0,XAUUSDc,buy,out,0.95,2512.318,256.0,0,0.0,-1.52,46.84,sl 2512.301
|
| 253 |
+
2024.08.29 00:03:18,252.0,XAUUSDc,buy,in,1.15,2509.263,257.0,0,0.0,0.0,46.84,Range Breakout Buy
|
| 254 |
+
2024.08.29 05:53:39,253.0,XAUUSDc,sell,out,1.15,2518.9,258.0,0,0.0,11.08,57.92,tp 2518.875
|
| 255 |
+
2024.08.30 00:03:08,254.0,XAUUSDc,sell,in,1.36,2518.607,259.0,0,0.0,0.0,57.92,Range Breakout Sell
|
| 256 |
+
2024.08.30 01:31:03,255.0,XAUUSDc,buy,out,1.36,2519.7,260.0,0,0.0,-1.49,56.43,sl 2519.687
|
| 257 |
+
2024.09.02 00:45:02,256.0,XAUUSDc,buy,in,1.6,2505.095,261.0,0,0.0,0.0,56.43,Range Breakout Buy
|
| 258 |
+
2024.09.02 00:49:36,257.0,XAUUSDc,sell,out,1.6,2503.916,262.0,0,0.0,-1.89,54.54,sl 2503.918
|
| 259 |
+
2024.09.03 07:21:06,258.0,XAUUSDc,buy,in,1.88,2500.106,263.0,0,0.0,0.0,54.54,Range Breakout Buy
|
| 260 |
+
2024.09.03 10:07:36,259.0,XAUUSDc,sell,out,1.88,2498.952,264.0,0,0.0,-2.17,52.37,sl 2498.966
|
| 261 |
+
2024.09.05 04:03:02,260.0,XAUUSDc,sell,in,2.64,2494.283,265.0,0,0.0,0.0,52.37,Range Breakout Sell
|
| 262 |
+
2024.09.05 04:06:03,261.0,XAUUSDc,buy,out,2.64,2494.935,266.0,0,0.0,-1.72,50.65,sl 2494.897
|
| 263 |
+
2024.09.12 01:09:05,262.0,XAUUSDc,buy,in,1.38,2514.304,267.0,0,0.0,0.0,50.65,Range Breakout Buy
|
| 264 |
+
2024.09.12 01:59:01,263.0,XAUUSDc,sell,out,1.38,2512.825,268.0,0,0.0,-2.04,48.61,sl 2512.843
|
| 265 |
+
2024.09.13 00:33:02,264.0,XAUUSDc,buy,in,1.97,2559.839,269.0,0,0.0,0.0,48.61,Range Breakout Buy
|
| 266 |
+
2024.09.13 00:49:28,265.0,XAUUSDc,sell,out,1.97,2558.906,270.0,0,0.0,-1.84,46.77,sl 2558.906
|
| 267 |
+
2024.09.16 00:09:07,266.0,XAUUSDc,buy,in,2.77,2580.86,271.0,0,0.0,0.0,46.77,Range Breakout Buy
|
| 268 |
+
2024.09.16 01:11:59,267.0,XAUUSDc,sell,out,2.77,2580.222,272.0,0,0.0,-1.77,45.0,sl 2580.235
|
| 269 |
+
2024.09.18 00:03:08,268.0,XAUUSDc,buy,in,1.81,2574.923,273.0,0,0.0,0.0,45.0,Range Breakout Buy
|
| 270 |
+
2024.09.18 00:05:25,269.0,XAUUSDc,sell,out,1.81,2574.01,274.0,0,0.0,-1.65,43.35,sl 2574.012
|
| 271 |
+
2024.09.19 01:03:04,270.0,XAUUSDc,sell,in,0.35,2555.49,275.0,0,0.0,0.0,43.35,Range Breakout Sell
|
| 272 |
+
2024.09.19 02:07:38,271.0,XAUUSDc,buy,out,0.35,2558.765,276.0,0,0.0,-1.15,42.2,sl 2558.754
|
| 273 |
+
2024.09.23 00:03:17,272.0,XAUUSDc,sell,in,1.91,2619.843,277.0,0,0.0,0.0,42.2,Range Breakout Sell
|
| 274 |
+
2024.09.23 00:28:35,273.0,XAUUSDc,buy,out,1.91,2620.28,278.0,0,0.0,-0.84,41.36,sl 2620.272
|
| 275 |
+
2024.09.24 00:03:02,274.0,XAUUSDc,sell,in,1.5,2625.484,279.0,0,0.0,0.0,41.36,Range Breakout Sell
|
| 276 |
+
2024.09.24 00:14:33,275.0,XAUUSDc,buy,out,1.5,2626.35,280.0,0,0.0,-1.3,40.06,sl 2626.345
|
| 277 |
+
2024.09.27 00:03:00,276.0,XAUUSDc,sell,in,0.87,2671.336,281.0,0,0.0,0.0,40.06,Range Breakout Sell
|
| 278 |
+
2024.09.27 01:27:38,277.0,XAUUSDc,buy,out,0.87,2672.728,282.0,0,0.0,-1.21,38.85,sl 2672.708
|
| 279 |
+
2024.09.30 00:03:08,278.0,XAUUSDc,buy,in,0.52,2665.263,283.0,0,0.0,0.0,38.85,Range Breakout Buy
|
| 280 |
+
2024.09.30 00:21:35,279.0,XAUUSDc,sell,out,0.52,2662.959,284.0,0,0.0,-1.2,37.65,sl 2662.981
|
| 281 |
+
2024.10.02 00:03:03,280.0,XAUUSDc,sell,in,1.0,2659.48,285.0,0,0.0,0.0,37.65,Range Breakout Sell
|
| 282 |
+
2024.10.02 01:48:36,281.0,XAUUSDc,buy,out,1.0,2660.664,286.0,0,0.0,-1.18,36.47,sl 2660.652
|
| 283 |
+
2024.10.03 00:09:08,282.0,XAUUSDc,buy,in,0.59,2661.791,287.0,0,0.0,0.0,36.47,Range Breakout Buy
|
| 284 |
+
2024.10.03 00:12:36,283.0,XAUUSDc,sell,out,0.59,2660.29,288.0,0,0.0,-0.89,35.58,sl 2660.299
|
| 285 |
+
2024.10.04 12:33:06,284.0,XAUUSDc,sell,in,0.05,2639.563,289.0,0,0.0,0.0,35.58,Range Breakout Sell
|
| 286 |
+
2024.10.04 14:52:30,285.0,XAUUSDc,buy,out,0.05,2657.625,290.0,0,0.0,-0.9,34.68,sl 2657.610
|
| 287 |
+
2024.10.07 00:03:02,286.0,XAUUSDc,sell,in,0.87,2649.394,291.0,0,0.0,0.0,34.68,Range Breakout Sell
|
| 288 |
+
2024.10.07 00:11:05,287.0,XAUUSDc,buy,out,0.87,2650.591,292.0,0,0.0,-1.04,33.64,sl 2650.584
|
| 289 |
+
2024.10.10 00:03:04,288.0,XAUUSDc,sell,in,0.54,2606.799,293.0,0,0.0,0.0,33.64,Range Breakout Sell
|
| 290 |
+
2024.10.10 00:29:27,289.0,XAUUSDc,buy,out,0.54,2608.765,294.0,0,0.0,-1.06,32.58,sl 2608.757
|
| 291 |
+
2024.10.14 00:03:06,290.0,XAUUSDc,sell,in,0.51,2646.246,295.0,0,0.0,0.0,32.58,Range Breakout Sell
|
| 292 |
+
2024.10.14 00:31:37,291.0,XAUUSDc,buy,out,0.51,2648.158,296.0,0,0.0,-0.98,31.6,sl 2648.131
|
| 293 |
+
2024.10.16 00:03:03,292.0,XAUUSDc,sell,in,0.94,2659.511,297.0,0,0.0,0.0,31.6,Range Breakout Sell
|
| 294 |
+
2024.10.16 00:21:36,293.0,XAUUSDc,buy,out,0.94,2660.52,298.0,0,0.0,-0.95,30.65,sl 2660.498
|
| 295 |
+
2024.10.21 00:36:04,294.0,XAUUSDc,buy,in,0.95,2725.35,299.0,0,0.0,0.0,30.65,Range Breakout Buy
|
| 296 |
+
2024.10.21 00:38:38,295.0,XAUUSDc,sell,out,0.95,2724.243,300.0,0,0.0,-1.05,29.6,sl 2724.248
|
| 297 |
+
2024.10.22 00:06:06,296.0,XAUUSDc,buy,in,0.93,2723.133,301.0,0,0.0,0.0,29.6,Range Breakout Buy
|
| 298 |
+
2024.10.22 02:08:40,297.0,XAUUSDc,sell,out,0.93,2730.445,302.0,0,0.0,6.8,36.4,tp 2730.431
|
| 299 |
+
2024.10.23 00:30:03,298.0,XAUUSDc,sell,in,1.1,2745.166,303.0,0,0.0,0.0,36.4,Range Breakout Sell
|
| 300 |
+
2024.10.23 00:31:35,299.0,XAUUSDc,buy,out,1.1,2746.07,304.0,0,0.0,-0.99,35.41,sl 2746.068
|
| 301 |
+
2024.10.25 14:15:08,300.0,XAUUSDc,buy,in,0.42,2738.06,305.0,0,0.0,0.0,35.41,Range Breakout Buy
|
| 302 |
+
2024.10.25 14:18:41,301.0,XAUUSDc,sell,out,0.42,2735.118,306.0,0,0.0,-1.24,34.17,sl 2735.133
|
| 303 |
+
2024.10.28 06:12:04,302.0,XAUUSDc,buy,in,0.71,2740.602,307.0,0,0.0,0.0,34.17,Range Breakout Buy
|
| 304 |
+
2024.10.28 07:24:05,303.0,XAUUSDc,sell,out,0.71,2738.982,308.0,0,0.0,-1.15,33.02,sl 2738.985
|
| 305 |
+
2024.10.29 00:03:14,304.0,XAUUSDc,buy,in,1.27,2744.669,309.0,0,0.0,0.0,33.02,Range Breakout Buy
|
| 306 |
+
2024.10.29 00:21:50,305.0,XAUUSDc,sell,out,1.27,2743.788,310.0,0,0.0,-1.12,31.9,sl 2743.799
|
| 307 |
+
2024.10.30 00:03:03,306.0,XAUUSDc,buy,in,1.35,2775.735,311.0,0,0.0,0.0,31.9,Range Breakout Buy
|
| 308 |
+
2024.10.30 01:41:39,307.0,XAUUSDc,sell,out,1.35,2781.127,312.0,0,0.0,7.28,39.18,tp 2781.123
|
| 309 |
+
2024.10.31 00:03:04,308.0,XAUUSDc,sell,in,1.52,2784.914,313.0,0,0.0,0.0,39.18,Range Breakout Sell
|
| 310 |
+
2024.10.31 00:09:56,309.0,XAUUSDc,buy,out,1.52,2785.753,314.0,0,0.0,-1.28,37.9,sl 2785.746
|
| 311 |
+
2024.11.01 01:33:00,310.0,XAUUSDc,buy,in,0.67,2748.099,315.0,0,0.0,0.0,37.9,Range Breakout Buy
|
| 312 |
+
2024.11.01 01:39:29,311.0,XAUUSDc,sell,out,0.67,2746.228,316.0,0,0.0,-1.25,36.65,sl 2746.229
|
| 313 |
+
2024.11.04 01:00:05,312.0,XAUUSDc,buy,in,1.18,2740.261,317.0,0,0.0,0.0,36.65,Range Breakout Buy
|
| 314 |
+
2024.11.04 01:02:36,313.0,XAUUSDc,sell,out,1.18,2739.446,318.0,0,0.0,-0.96,35.69,sl 2739.467
|
| 315 |
+
2024.11.05 00:03:06,314.0,XAUUSDc,sell,in,1.17,2735.363,319.0,0,0.0,0.0,35.69,Range Breakout Sell
|
| 316 |
+
2024.11.05 00:25:30,315.0,XAUUSDc,buy,out,1.17,2736.288,320.0,0,0.0,-1.08,34.61,sl 2736.270
|
| 317 |
+
2024.11.06 01:45:03,316.0,XAUUSDc,buy,in,0.29,2748.18,321.0,0,0.0,0.0,34.61,Range Breakout Buy
|
| 318 |
+
2024.11.06 02:08:36,317.0,XAUUSDc,sell,out,0.29,2744.226,322.0,0,0.0,-1.15,33.46,sl 2744.237
|
| 319 |
+
2024.11.07 01:12:00,318.0,XAUUSDc,sell,in,0.39,2659.571,323.0,0,0.0,0.0,33.46,Range Breakout Sell
|
| 320 |
+
2024.11.07 07:17:20,319.0,XAUUSDc,buy,out,0.39,2662.208,324.0,0,0.0,-1.03,32.43,sl 2662.193
|
| 321 |
+
2024.11.08 01:03:00,320.0,XAUUSDc,sell,in,0.24,2703.635,325.0,0,0.0,0.0,32.43,Range Breakout Sell
|
| 322 |
+
2024.11.11 01:03:07,321.0,XAUUSDc,sell,in,0.23,2680.665,326.0,0,0.0,0.0,32.43,Range Breakout Sell
|
| 323 |
+
2024.11.11 01:58:38,322.0,XAUUSDc,buy,out,0.24,2672.348,327.0,0,0.0,7.51,39.94,tp 2672.373
|
| 324 |
+
2024.11.11 13:33:01,323.0,XAUUSDc,buy,out,0.23,2647.705,328.0,0,0.0,7.58,47.52,tp 2647.711
|
| 325 |
+
2024.11.12 01:30:04,324.0,XAUUSDc,sell,in,1.09,2619.322,329.0,0,0.0,0.0,47.52,Range Breakout Sell
|
| 326 |
+
2024.11.12 01:30:39,325.0,XAUUSDc,buy,out,1.09,2620.642,330.0,0,0.0,-1.44,46.08,sl 2620.640
|
| 327 |
+
2024.11.13 15:06:07,326.0,XAUUSDc,sell,in,0.41,2596.857,331.0,0,0.0,0.0,46.08,Range Breakout Sell
|
| 328 |
+
2024.11.13 15:11:15,327.0,XAUUSDc,buy,out,0.41,2600.725,332.0,0,0.0,-1.59,44.49,sl 2600.722
|
| 329 |
+
2024.11.14 01:03:06,328.0,XAUUSDc,sell,in,0.22,2567.513,333.0,0,0.0,0.0,44.49,Range Breakout Sell
|
| 330 |
+
2024.11.14 15:34:40,329.0,XAUUSDc,buy,out,0.22,2572.986,334.0,0,0.0,-1.2,43.29,sl 2572.975
|
| 331 |
+
2024.11.15 01:45:08,330.0,XAUUSDc,sell,in,0.57,2564.594,335.0,0,0.0,0.0,43.29,Range Breakout Sell
|
| 332 |
+
2024.11.15 02:02:41,331.0,XAUUSDc,buy,out,0.57,2567.069,336.0,0,0.0,-1.41,41.88,sl 2567.046
|
| 333 |
+
2024.11.18 00:54:07,332.0,XAUUSDc,buy,in,0.43,2577.24,337.0,0,0.0,0.0,41.88,Range Breakout Buy
|
| 334 |
+
2024.11.18 13:30:37,333.0,XAUUSDc,sell,out,0.43,2600.075,338.0,0,0.0,9.82,51.7,tp 2600.057
|
| 335 |
+
2024.11.20 00:09:06,334.0,XAUUSDc,buy,in,2.37,2635.904,339.0,0,0.0,0.0,51.7,Range Breakout Buy
|
| 336 |
+
2024.11.20 01:01:39,335.0,XAUUSDc,sell,out,2.37,2640.911,340.0,0,0.0,11.87,63.57,tp 2640.909
|
| 337 |
+
2024.11.22 00:06:06,336.0,XAUUSDc,buy,in,2.9,2670.121,341.0,0,0.0,0.0,63.57,Range Breakout Buy
|
| 338 |
+
2024.11.22 01:00:29,337.0,XAUUSDc,sell,out,2.9,2675.312,342.0,0,0.0,15.05,78.62,tp 2675.310
|
| 339 |
+
2024.11.25 01:00:03,338.0,XAUUSDc,sell,in,2.86,2710.868,343.0,0,0.0,0.0,78.62,Range Breakout Sell
|
| 340 |
+
2024.11.25 01:03:42,339.0,XAUUSDc,buy,out,2.86,2704.044,344.0,0,0.0,19.52,98.14,tp 2704.052
|
| 341 |
+
2024.11.27 00:18:06,340.0,XAUUSDc,sell,in,2.96,2630.273,345.0,0,0.0,0.0,98.14,Range Breakout Sell
|
| 342 |
+
2024.11.27 01:21:35,341.0,XAUUSDc,buy,out,2.96,2631.108,346.0,0,0.0,-2.47,95.67,sl 2631.105
|
| 343 |
+
2024.11.28 00:15:10,342.0,XAUUSDc,sell,in,6.75,2636.189,347.0,0,0.0,0.0,95.67,Range Breakout Sell
|
| 344 |
+
2024.11.28 00:15:26,343.0,XAUUSDc,buy,out,6.75,2636.539,348.0,0,0.0,-2.36,93.31,sl 2636.526
|
| 345 |
+
2024.11.29 00:09:08,344.0,XAUUSDc,sell,in,2.91,2636.803,349.0,0,0.0,0.0,93.31,Range Breakout Sell
|
| 346 |
+
2024.11.29 00:30:30,345.0,XAUUSDc,buy,out,2.91,2637.985,350.0,0,0.0,-3.44,89.87,sl 2637.978
|
| 347 |
+
2024.12.02 00:36:01,346.0,XAUUSDc,sell,in,0.67,2640.379,351.0,0,0.0,0.0,89.87,Range Breakout Sell
|
| 348 |
+
2024.12.02 11:35:21,347.0,XAUUSDc,buy,out,0.67,2644.437,352.0,0,0.0,-2.72,87.15,sl 2644.436
|
| 349 |
+
2024.12.03 01:30:04,348.0,XAUUSDc,sell,in,1.14,2638.072,353.0,0,0.0,0.0,87.15,Range Breakout Sell
|
| 350 |
+
2024.12.03 01:34:16,349.0,XAUUSDc,buy,out,1.14,2640.287,354.0,0,0.0,-2.53,84.62,sl 2640.279
|
| 351 |
+
2024.12.04 00:06:04,350.0,XAUUSDc,buy,in,5.51,2643.547,355.0,0,0.0,0.0,84.62,Range Breakout Buy
|
| 352 |
+
2024.12.04 00:12:28,351.0,XAUUSDc,sell,out,5.51,2642.82,356.0,0,0.0,-4.01,80.61,sl 2642.827
|
| 353 |
+
2024.12.05 05:36:04,352.0,XAUUSDc,buy,in,1.38,2652.108,357.0,0,0.0,0.0,80.61,Range Breakout Buy
|
| 354 |
+
2024.12.05 06:23:52,353.0,XAUUSDc,sell,out,1.38,2650.003,358.0,0,0.0,-2.91,77.7,sl 2650.007
|
| 355 |
+
2024.12.10 00:03:18,354.0,XAUUSDc,sell,in,1.46,2659.246,359.0,0,0.0,0.0,77.7,Range Breakout Sell
|
| 356 |
+
2024.12.10 00:30:26,355.0,XAUUSDc,buy,out,1.46,2660.754,360.0,0,0.0,-2.2,75.5,sl 2660.744
|
| 357 |
+
2024.12.12 01:18:15,356.0,XAUUSDc,sell,in,0.85,2714.971,361.0,0,0.0,0.0,75.5,Range Breakout Sell
|
| 358 |
+
2024.12.12 06:58:29,357.0,XAUUSDc,buy,out,0.85,2718.245,362.0,0,0.0,-2.78,72.72,sl 2718.237
|
| 359 |
+
2024.12.13 00:03:06,358.0,XAUUSDc,sell,in,2.15,2679.629,363.0,0,0.0,0.0,72.72,Range Breakout Sell
|
| 360 |
+
2024.12.13 00:13:24,359.0,XAUUSDc,buy,out,2.15,2680.71,364.0,0,0.0,-2.33,70.39,sl 2680.661
|
| 361 |
+
2024.12.17 00:15:14,360.0,XAUUSDc,sell,in,2.62,2651.328,365.0,0,0.0,0.0,70.39,Range Breakout Sell
|
| 362 |
+
2024.12.17 00:21:42,361.0,XAUUSDc,buy,out,2.62,2652.185,366.0,0,0.0,-2.25,68.14,sl 2652.181
|
| 363 |
+
2024.12.18 00:09:07,362.0,XAUUSDc,buy,in,2.1,2648.471,367.0,0,0.0,0.0,68.14,Range Breakout Buy
|
| 364 |
+
2024.12.18 00:19:35,363.0,XAUUSDc,sell,out,2.1,2647.151,368.0,0,0.0,-2.77,65.37,sl 2647.162
|
| 365 |
+
2024.12.19 00:30:06,364.0,XAUUSDc,buy,in,0.88,2593.427,369.0,0,0.0,0.0,65.37,Range Breakout Buy
|
| 366 |
+
2024.12.19 01:38:43,365.0,XAUUSDc,sell,out,0.88,2611.045,370.0,0,0.0,15.5,80.87,tp 2611.044
|
| 367 |
+
2024.12.20 01:09:04,366.0,XAUUSDc,buy,in,0.61,2596.076,371.0,0,0.0,0.0,80.87,Range Breakout Buy
|
| 368 |
+
2024.12.20 15:31:40,367.0,XAUUSDc,sell,out,0.61,2627.533,372.0,0,0.0,19.19,100.06,tp 2627.525
|
| 369 |
+
2024.12.23 00:36:04,368.0,XAUUSDc,sell,in,2.07,2620.688,373.0,0,0.0,0.0,100.06,Range Breakout Sell
|
| 370 |
+
2024.12.23 00:46:39,369.0,XAUUSDc,buy,out,2.07,2622.157,374.0,0,0.0,-3.04,97.02,sl 2622.061
|
| 371 |
+
2024.12.27 03:36:11,370.0,XAUUSDc,buy,in,2.27,2635.51,375.0,0,0.0,0.0,97.02,Range Breakout Buy
|
| 372 |
+
2024.12.27 03:40:27,371.0,XAUUSDc,sell,out,2.27,2633.932,376.0,0,0.0,-3.58,93.44,sl 2633.937
|
| 373 |
+
2025.01.03 00:03:08,372.0,XAUUSDc,buy,in,2.0,2660.036,377.0,0,0.0,0.0,93.44,Range Breakout Buy
|
| 374 |
+
2025.01.03 01:24:13,373.0,XAUUSDc,sell,out,2.0,2658.368,378.0,0,0.0,-3.34,90.1,sl 2658.368
|
| 375 |
+
2025.01.06 00:15:02,374.0,XAUUSDc,sell,in,3.45,2639.145,379.0,0,0.0,0.0,90.1,Range Breakout Sell
|
| 376 |
+
2025.01.06 00:16:28,375.0,XAUUSDc,buy,out,3.45,2639.97,380.0,0,0.0,-2.85,87.25,sl 2639.970
|
| 377 |
+
2025.01.07 01:03:04,376.0,XAUUSDc,buy,in,1.1,2637.278,381.0,0,0.0,0.0,87.25,Range Breakout Buy
|
| 378 |
+
2025.01.07 13:17:04,377.0,XAUUSDc,sell,out,1.1,2656.077,382.0,0,0.0,20.68,107.93,tp 2656.058
|
| 379 |
+
2025.01.08 00:21:08,378.0,XAUUSDc,buy,in,7.42,2650.677,383.0,0,0.0,0.0,107.93,Range Breakout Buy
|
| 380 |
+
2025.01.08 01:00:30,379.0,XAUUSDc,sell,out,7.42,2649.985,384.0,0,0.0,-5.13,102.8,sl 2650.003
|
| 381 |
+
2025.01.09 00:06:18,380.0,XAUUSDc,sell,in,3.44,2661.485,385.0,0,0.0,0.0,102.8,Range Breakout Sell
|
| 382 |
+
2025.01.09 06:36:27,381.0,XAUUSDc,buy,out,3.44,2662.487,386.0,0,0.0,-3.45,99.35,sl 2662.473
|
| 383 |
+
2025.01.10 13:33:08,382.0,XAUUSDc,sell,in,0.29,2666.405,387.0,0,0.0,0.0,99.35,Range Breakout Sell
|
| 384 |
+
2025.01.10 13:45:42,383.0,XAUUSDc,buy,out,0.29,2677.453,388.0,0,0.0,-3.2,96.15,sl 2677.453
|
| 385 |
+
2025.01.13 00:03:07,384.0,XAUUSDc,buy,in,3.86,2691.494,389.0,0,0.0,0.0,96.15,Range Breakout Buy
|
| 386 |
+
2025.01.13 00:20:31,385.0,XAUUSDc,sell,out,3.86,2690.617,390.0,0,0.0,-3.39,92.76,sl 2690.619
|
| 387 |
+
2025.01.14 13:39:01,386.0,XAUUSDc,sell,in,0.4,2661.664,391.0,0,0.0,0.0,92.76,Range Breakout Sell
|
| 388 |
+
2025.01.14 13:47:36,387.0,XAUUSDc,buy,out,0.4,2668.261,392.0,0,0.0,-2.64,90.12,sl 2668.256
|
| 389 |
+
2025.01.16 00:03:01,388.0,XAUUSDc,sell,in,1.56,2693.96,393.0,0,0.0,0.0,90.12,Range Breakout Sell
|
| 390 |
+
2025.01.16 00:16:28,389.0,XAUUSDc,buy,out,1.56,2695.65,394.0,0,0.0,-2.64,87.48,sl 2695.621
|
| 391 |
+
2025.01.17 01:03:02,390.0,XAUUSDc,sell,in,0.78,2711.648,395.0,0,0.0,0.0,87.48,Range Breakout Sell
|
| 392 |
+
2025.01.17 01:54:14,391.0,XAUUSDc,buy,out,0.78,2714.855,396.0,0,0.0,-2.5,84.98,sl 2714.855
|
| 393 |
+
2025.01.20 01:03:03,392.0,XAUUSDc,sell,in,0.83,2691.657,397.0,0,0.0,0.0,84.98,Range Breakout Sell
|
| 394 |
+
2025.01.20 01:32:20,393.0,XAUUSDc,buy,out,0.83,2694.446,398.0,0,0.0,-2.32,82.66,sl 2694.441
|
| 395 |
+
2025.01.21 00:09:07,394.0,XAUUSDc,buy,in,2.89,2711.268,399.0,0,0.0,0.0,82.66,Range Breakout Buy
|
| 396 |
+
2025.01.21 00:15:36,395.0,XAUUSDc,sell,out,2.89,2710.223,400.0,0,0.0,-3.02,79.64,sl 2710.246
|
| 397 |
+
2025.01.27 01:00:08,396.0,XAUUSDc,buy,in,2.61,2769.526,401.0,0,0.0,0.0,79.64,Range Breakout Buy
|
| 398 |
+
2025.01.27 01:25:36,397.0,XAUUSDc,sell,out,2.61,2768.796,402.0,0,0.0,-1.91,77.73,sl 2768.807
|
| 399 |
+
2025.01.28 13:00:03,398.0,XAUUSDc,buy,in,2.03,2745.909,403.0,0,0.0,0.0,77.73,Range Breakout Buy
|
| 400 |
+
2025.01.28 14:30:32,399.0,XAUUSDc,sell,out,2.03,2754.706,404.0,0,0.0,17.86,95.59,tp 2754.698
|
| 401 |
+
2025.01.29 00:03:04,400.0,XAUUSDc,sell,in,10.66,2762.385,405.0,0,0.0,0.0,95.59,Range Breakout Sell
|
| 402 |
+
2025.01.29 00:03:23,401.0,XAUUSDc,buy,out,10.66,2762.728,406.0,0,0.0,-3.66,91.93,sl 2762.707
|
| 403 |
+
2025.01.30 00:30:02,402.0,XAUUSDc,buy,in,2.84,2761.311,407.0,0,0.0,0.0,91.93,Range Breakout Buy
|
| 404 |
+
2025.01.30 01:04:41,403.0,XAUUSDc,sell,out,2.84,2760.168,408.0,0,0.0,-3.25,88.68,sl 2760.171
|
| 405 |
+
2025.01.31 00:06:08,404.0,XAUUSDc,buy,in,1.02,2798.379,409.0,0,0.0,0.0,88.68,Range Breakout Buy
|
| 406 |
+
2025.01.31 00:34:40,405.0,XAUUSDc,sell,out,1.02,2795.933,410.0,0,0.0,-2.5,86.18,sl 2795.936
|
| 407 |
+
2025.02.03 01:12:07,406.0,XAUUSDc,sell,in,0.87,2783.124,411.0,0,0.0,0.0,86.18,Range Breakout Sell
|
| 408 |
+
2025.02.03 01:13:41,407.0,XAUUSDc,buy,out,0.87,2786.057,412.0,0,0.0,-2.55,83.63,sl 2786.037
|
| 409 |
+
2025.02.04 00:33:07,408.0,XAUUSDc,buy,in,2.55,2815.679,413.0,0,0.0,0.0,83.63,Range Breakout Buy
|
| 410 |
+
2025.02.04 01:45:59,409.0,XAUUSDc,sell,out,2.55,2823.53,414.0,0,0.0,20.02,103.65,tp 2823.523
|
| 411 |
+
2025.02.05 00:30:05,410.0,XAUUSDc,buy,in,2.86,2842.961,415.0,0,0.0,0.0,103.65,Range Breakout Buy
|
| 412 |
+
2025.02.05 01:31:42,411.0,XAUUSDc,sell,out,2.86,2841.765,416.0,0,0.0,-3.42,100.23,sl 2841.766
|
| 413 |
+
2025.02.06 01:09:03,412.0,XAUUSDc,sell,in,1.41,2865.396,417.0,0,0.0,0.0,100.23,Range Breakout Sell
|
| 414 |
+
2025.02.06 01:19:39,413.0,XAUUSDc,buy,out,1.41,2867.402,418.0,0,0.0,-2.83,97.4,sl 2867.386
|
| 415 |
+
2025.02.07 00:03:01,414.0,XAUUSDc,buy,in,2.95,2859.07,419.0,0,0.0,0.0,97.4,Range Breakout Buy
|
| 416 |
+
2025.02.07 01:00:04,415.0,XAUUSDc,sell,out,2.95,2857.989,420.0,0,0.0,-3.19,94.21,sl 2857.990
|
| 417 |
+
2025.02.10 01:03:06,416.0,XAUUSDc,buy,in,0.69,2871.708,421.0,0,0.0,0.0,94.21,Range Breakout Buy
|
| 418 |
+
2025.02.10 01:30:30,417.0,XAUUSDc,sell,out,0.69,2867.786,422.0,0,0.0,-2.71,91.5,sl 2867.786
|
| 419 |
+
2025.02.11 00:51:03,418.0,XAUUSDc,buy,in,1.71,2921.801,423.0,0,0.0,0.0,91.5,Range Breakout Buy
|
| 420 |
+
2025.02.11 01:05:04,419.0,XAUUSDc,sell,out,1.71,2920.18,424.0,0,0.0,-2.77,88.73,sl 2920.189
|
| 421 |
+
2025.02.12 00:06:04,420.0,XAUUSDc,sell,in,1.25,2895.976,425.0,0,0.0,0.0,88.73,Range Breakout Sell
|
| 422 |
+
2025.02.12 00:14:14,421.0,XAUUSDc,buy,out,1.25,2898.108,426.0,0,0.0,-2.67,86.06,sl 2898.075
|
| 423 |
+
2025.02.13 00:06:06,422.0,XAUUSDc,buy,in,2.59,2907.017,427.0,0,0.0,0.0,86.06,Range Breakout Buy
|
| 424 |
+
2025.02.13 00:21:48,423.0,XAUUSDc,sell,out,2.59,2905.878,428.0,0,0.0,-2.95,83.11,sl 2905.878
|
| 425 |
+
2025.02.14 01:12:00,424.0,XAUUSDc,buy,in,1.74,2933.159,429.0,0,0.0,0.0,83.11,Range Breakout Buy
|
| 426 |
+
2025.02.14 01:14:40,425.0,XAUUSDc,sell,out,1.74,2931.6,430.0,0,0.0,-2.71,80.4,sl 2931.603
|
| 427 |
+
2025.02.18 01:09:07,426.0,XAUUSDc,sell,in,2.51,2897.007,431.0,0,0.0,0.0,80.4,Range Breakout Sell
|
| 428 |
+
2025.02.18 01:15:22,427.0,XAUUSDc,buy,out,2.51,2897.777,432.0,0,0.0,-1.93,78.47,sl 2897.752
|
| 429 |
+
2025.02.19 00:03:02,428.0,XAUUSDc,sell,in,2.39,2933.145,433.0,0,0.0,0.0,78.47,Range Breakout Sell
|
| 430 |
+
2025.02.19 00:05:30,429.0,XAUUSDc,buy,out,2.39,2934.104,434.0,0,0.0,-2.29,76.18,sl 2934.059
|
| 431 |
+
2025.02.20 00:03:05,430.0,XAUUSDc,buy,in,1.22,2937.684,435.0,0,0.0,0.0,76.18,Range Breakout Buy
|
| 432 |
+
2025.02.20 01:35:37,431.0,XAUUSDc,sell,out,1.22,2935.362,436.0,0,0.0,-2.83,73.35,sl 2935.386
|
| 433 |
+
2025.02.21 00:27:05,432.0,XAUUSDc,sell,in,1.18,2938.632,437.0,0,0.0,0.0,73.35,Range Breakout Sell
|
| 434 |
+
2025.02.21 00:49:38,433.0,XAUUSDc,buy,out,1.18,2940.331,438.0,0,0.0,-2.01,71.34,sl 2940.311
|
| 435 |
+
2025.02.26 00:03:00,434.0,XAUUSDc,buy,in,1.29,2920.433,439.0,0,0.0,0.0,71.34,Range Breakout Buy
|
| 436 |
+
2025.02.26 01:56:38,435.0,XAUUSDc,sell,out,1.29,2918.613,440.0,0,0.0,-2.35,68.99,sl 2918.631
|
| 437 |
+
2025.02.27 01:09:13,436.0,XAUUSDc,sell,in,1.78,2915.255,441.0,0,0.0,0.0,68.99,Range Breakout Sell
|
| 438 |
+
2025.02.27 01:34:58,437.0,XAUUSDc,buy,out,1.78,2916.272,442.0,0,0.0,-1.81,67.18,sl 2916.264
|
| 439 |
+
2025.02.28 01:57:15,438.0,XAUUSDc,sell,in,0.79,2873.938,443.0,0,0.0,0.0,67.18,Range Breakout Sell
|
| 440 |
+
2025.02.28 02:22:13,439.0,XAUUSDc,buy,out,0.79,2876.523,444.0,0,0.0,-2.04,65.14,sl 2876.518
|
| 441 |
+
2025.03.03 03:12:05,440.0,XAUUSDc,sell,in,1.0,2862.586,445.0,0,0.0,0.0,65.14,Range Breakout Sell
|
| 442 |
+
2025.03.03 03:36:03,441.0,XAUUSDc,buy,out,1.0,2864.749,446.0,0,0.0,-2.16,62.98,sl 2864.737
|
| 443 |
+
2025.03.05 00:03:03,442.0,XAUUSDc,sell,in,0.86,2912.597,447.0,0,0.0,0.0,62.98,Range Breakout Sell
|
| 444 |
+
2025.03.05 00:10:19,443.0,XAUUSDc,buy,out,0.86,2914.527,448.0,0,0.0,-1.66,61.32,sl 2914.505
|
| 445 |
+
2025.03.06 00:06:07,444.0,XAUUSDc,buy,in,7.35,2919.321,449.0,0,0.0,0.0,61.32,Range Breakout Buy
|
| 446 |
+
2025.03.06 00:06:38,445.0,XAUUSDc,sell,out,7.35,2918.799,450.0,0,0.0,-3.84,57.48,sl 2918.806
|
| 447 |
+
2025.03.10 00:09:08,446.0,XAUUSDc,buy,in,2.04,2917.396,451.0,0,0.0,0.0,57.48,Range Breakout Buy
|
| 448 |
+
2025.03.10 00:13:39,447.0,XAUUSDc,sell,out,2.04,2916.448,452.0,0,0.0,-1.93,55.55,sl 2916.461
|
| 449 |
+
2025.03.17 09:39:06,448.0,XAUUSDc,buy,in,1.29,2994.391,453.0,0,0.0,0.0,55.55,Range Breakout Buy
|
| 450 |
+
2025.03.17 12:08:31,449.0,XAUUSDc,sell,out,1.29,2992.914,454.0,0,0.0,-1.91,53.64,sl 2992.937
|
| 451 |
+
2025.03.19 00:03:01,450.0,XAUUSDc,sell,in,5.27,3031.473,455.0,0,0.0,0.0,53.64,Range Breakout Sell
|
| 452 |
+
2025.03.19 00:03:35,451.0,XAUUSDc,buy,out,5.27,3031.819,456.0,0,0.0,-1.82,51.82,sl 3031.808
|
| 453 |
+
2025.03.20 00:03:01,452.0,XAUUSDc,buy,in,1.1,3051.577,457.0,0,0.0,0.0,51.82,Range Breakout Buy
|
| 454 |
+
2025.03.20 01:59:29,453.0,XAUUSDc,sell,out,1.1,3050.016,458.0,0,0.0,-1.72,50.1,sl 3050.023
|
| 455 |
+
2025.03.21 00:03:06,454.0,XAUUSDc,buy,in,3.19,3046.892,459.0,0,0.0,0.0,50.1,Range Breakout Buy
|
| 456 |
+
2025.03.21 00:05:16,455.0,XAUUSDc,sell,out,3.19,3046.315,460.0,0,0.0,-1.84,48.26,sl 3046.335
|
| 457 |
+
2025.03.25 00:51:01,456.0,XAUUSDc,buy,in,1.16,3012.798,461.0,0,0.0,0.0,48.26,Range Breakout Buy
|
| 458 |
+
2025.03.25 01:20:38,457.0,XAUUSDc,sell,out,1.16,3011.344,462.0,0,0.0,-1.69,46.57,sl 3011.375
|
| 459 |
+
2025.03.26 00:36:06,458.0,XAUUSDc,sell,in,1.09,3019.53,463.0,0,0.0,0.0,46.57,Range Breakout Sell
|
| 460 |
+
2025.03.26 01:35:39,459.0,XAUUSDc,buy,out,1.09,3020.927,464.0,0,0.0,-1.52,45.05,sl 3020.912
|
| 461 |
+
2025.03.27 00:03:16,460.0,XAUUSDc,buy,in,1.27,3022.694,465.0,0,0.0,0.0,45.05,Range Breakout Buy
|
| 462 |
+
2025.03.27 02:42:45,461.0,XAUUSDc,sell,out,1.27,3031.05,466.0,0,0.0,10.61,55.66,tp 3031.044
|
| 463 |
+
2025.03.28 00:06:00,462.0,XAUUSDc,buy,in,0.95,3058.306,467.0,0,0.0,0.0,55.66,Range Breakout Buy
|
| 464 |
+
2025.03.28 01:48:41,463.0,XAUUSDc,sell,out,0.95,3072.169,468.0,0,0.0,13.17,68.83,tp 3072.164
|
| 465 |
+
2025.03.31 00:03:08,464.0,XAUUSDc,sell,in,0.84,3087.353,469.0,0,0.0,0.0,68.83,Range Breakout Sell
|
| 466 |
+
2025.03.31 01:26:20,465.0,XAUUSDc,buy,out,0.84,3089.739,470.0,0,0.0,-2.0,66.83,sl 3089.729
|
| 467 |
+
2025.04.01 00:45:06,466.0,XAUUSDc,buy,in,1.58,3126.743,471.0,0,0.0,0.0,66.83,Range Breakout Buy
|
| 468 |
+
2025.04.01 01:46:00,467.0,XAUUSDc,sell,out,1.58,3136.565,472.0,0,0.0,15.52,82.35,tp 3136.563
|
| 469 |
+
2025.04.02 00:24:08,468.0,XAUUSDc,buy,in,0.49,3120.856,473.0,0,0.0,0.0,82.35,Range Breakout Buy
|
| 470 |
+
2025.04.02 05:00:37,469.0,XAUUSDc,sell,out,0.49,3115.405,474.0,0,0.0,-2.67,79.68,sl 3115.411
|
| 471 |
+
2025.04.03 06:30:04,470.0,XAUUSDc,sell,in,0.4,3121.451,475.0,0,0.0,0.0,79.68,Range Breakout Sell
|
| 472 |
+
2025.04.03 06:48:30,471.0,XAUUSDc,buy,out,0.4,3128.364,476.0,0,0.0,-2.77,76.91,sl 3128.357
|
| 473 |
+
2025.04.04 00:30:03,472.0,XAUUSDc,sell,in,0.94,3108.955,477.0,0,0.0,0.0,76.91,Range Breakout Sell
|
| 474 |
+
2025.04.04 00:52:37,473.0,XAUUSDc,buy,out,0.94,3111.669,478.0,0,0.0,-2.55,74.36,sl 3111.653
|
| 475 |
+
2025.04.08 00:27:05,474.0,XAUUSDc,buy,in,1.7,2988.965,479.0,0,0.0,0.0,74.36,Range Breakout Buy
|
| 476 |
+
2025.04.08 00:52:40,475.0,XAUUSDc,sell,out,1.7,2987.605,480.0,0,0.0,-2.31,72.05,sl 2987.614
|
| 477 |
+
2025.04.11 00:21:05,476.0,XAUUSDc,buy,in,0.71,3192.922,481.0,0,0.0,0.0,72.05,Range Breakout Buy
|
| 478 |
+
2025.04.11 00:43:38,477.0,XAUUSDc,sell,out,0.71,3215.807,482.0,0,0.0,16.25,88.3,tp 3215.789
|
| 479 |
+
2025.04.15 01:09:04,478.0,XAUUSDc,buy,in,0.83,3215.251,483.0,0,0.0,0.0,88.3,Range Breakout Buy
|
| 480 |
+
2025.04.15 13:53:41,479.0,XAUUSDc,sell,out,0.83,3212.152,484.0,0,0.0,-2.57,85.73,sl 3212.174
|
| 481 |
+
2025.04.16 00:03:02,480.0,XAUUSDc,buy,in,0.29,3260.848,485.0,0,0.0,0.0,85.73,Range Breakout Buy
|
| 482 |
+
2025.04.16 16:24:26,481.0,XAUUSDc,sell,out,0.29,3330.605,486.0,0,0.0,20.23,105.96,tp 3330.592
|
| 483 |
+
2025.04.17 00:45:02,482.0,XAUUSDc,sell,in,1.13,3342.715,487.0,0,0.0,0.0,105.96,Range Breakout Sell
|
| 484 |
+
2025.04.17 00:47:30,483.0,XAUUSDc,buy,out,1.13,3345.639,488.0,0,0.0,-3.3,102.66,sl 3345.616
|
| 485 |
+
2025.04.22 00:06:02,484.0,XAUUSDc,sell,in,0.29,3416.529,489.0,0,0.0,0.0,102.66,Range Breakout Sell
|
| 486 |
+
2025.04.22 00:20:28,485.0,XAUUSDc,buy,out,0.29,3427.156,490.0,0,0.0,-3.08,99.58,sl 3427.126
|
| 487 |
+
2025.04.23 00:30:02,486.0,XAUUSDc,buy,in,0.54,3350.938,491.0,0,0.0,0.0,99.58,Range Breakout Buy
|
| 488 |
+
2025.04.23 03:04:38,487.0,XAUUSDc,sell,out,0.54,3345.407,492.0,0,0.0,-2.99,96.59,sl 3345.409
|
| 489 |
+
2025.04.25 01:51:07,488.0,XAUUSDc,sell,in,0.77,3346.032,493.0,0,0.0,0.0,96.59,Range Breakout Sell
|
| 490 |
+
2025.04.25 02:03:14,489.0,XAUUSDc,buy,out,0.77,3349.283,494.0,0,0.0,-2.5,94.09,sl 3349.269
|
| 491 |
+
2025.04.29 00:30:02,490.0,XAUUSDc,sell,in,1.42,3331.809,495.0,0,0.0,0.0,94.09,Range Breakout Sell
|
| 492 |
+
2025.04.29 00:37:14,491.0,XAUUSDc,buy,out,1.42,3333.887,496.0,0,0.0,-2.95,91.14,sl 3333.858
|
| 493 |
+
2025.04.30 00:09:05,492.0,XAUUSDc,buy,in,0.96,3324.179,497.0,0,0.0,0.0,91.14,Range Breakout Buy
|
| 494 |
+
2025.04.30 00:15:42,493.0,XAUUSDc,sell,out,0.96,3321.141,498.0,0,0.0,-2.92,88.22,sl 3321.151
|
| 495 |
+
2025.05.05 01:06:00,494.0,XAUUSDc,buy,in,0.61,3254.151,499.0,0,0.0,0.0,88.22,Range Breakout Buy
|
| 496 |
+
2025.05.05 09:04:41,495.0,XAUUSDc,sell,out,0.61,3288.349,500.0,0,0.0,20.86,109.08,tp 3288.348
|
| 497 |
+
2025.05.06 01:03:14,496.0,XAUUSDc,buy,in,0.17,3347.088,501.0,0,0.0,0.0,109.08,Range Breakout Buy
|
| 498 |
+
2025.05.08 00:15:04,497.0,XAUUSDc,buy,in,1.03,3378.565,502.0,0,0.0,0.0,109.08,Range Breakout Buy
|
| 499 |
+
2025.05.08 01:52:31,498.0,XAUUSDc,sell,out,1.03,3403.842,503.0,0,0.0,26.04,135.12,tp 3403.838
|
| 500 |
+
2025.05.08 06:33:32,499.0,XAUUSDc,sell,out,0.17,3329.614,504.0,0,-0.39,-2.97,131.76,sl 3329.618
|
| 501 |
+
2025.05.12 01:15:07,500.0,XAUUSDc,sell,in,0.82,3259.787,505.0,0,0.0,0.0,131.76,Range Breakout Sell
|
| 502 |
+
2025.05.12 01:22:55,501.0,XAUUSDc,buy,out,0.82,3266.686,506.0,0,0.0,-5.66,126.1,sl 3266.682
|
| 503 |
+
2025.05.13 00:09:07,502.0,XAUUSDc,buy,in,0.98,3242.72,507.0,0,0.0,0.0,126.1,Range Breakout Buy
|
| 504 |
+
2025.05.13 00:21:58,503.0,XAUUSDc,sell,out,0.98,3238.969,508.0,0,0.0,-3.68,122.42,sl 3238.993
|
| 505 |
+
2025.05.14 00:03:07,504.0,XAUUSDc,sell,in,0.54,3247.771,509.0,0,0.0,0.0,122.42,Range Breakout Sell
|
| 506 |
+
2025.05.14 12:46:33,505.0,XAUUSDc,buy,out,0.54,3194.201,510.0,0,0.0,28.93,151.35,tp 3194.214
|
| 507 |
+
2025.05.15 01:45:02,506.0,XAUUSDc,sell,in,0.86,3177.847,511.0,0,0.0,0.0,151.35,Range Breakout Sell
|
| 508 |
+
2025.05.15 04:54:41,507.0,XAUUSDc,buy,out,0.86,3135.927,512.0,0,0.0,36.05,187.4,tp 3135.939
|
| 509 |
+
2025.05.19 00:12:00,508.0,XAUUSDc,buy,in,0.93,3247.371,513.0,0,0.0,0.0,187.4,Range Breakout Buy
|
| 510 |
+
2025.05.19 00:53:42,509.0,XAUUSDc,sell,out,0.93,3241.18,514.0,0,0.0,-5.76,181.64,sl 3241.201
|
| 511 |
+
2025.05.20 00:21:15,510.0,XAUUSDc,sell,in,6.08,3218.923,515.0,0,0.0,0.0,181.64,Range Breakout Sell
|
| 512 |
+
2025.05.20 00:29:05,511.0,XAUUSDc,buy,out,6.08,3219.972,516.0,0,0.0,-6.38,175.26,sl 3219.958
|
| 513 |
+
2025.05.22 08:33:06,512.0,XAUUSDc,sell,in,1.09,3314.393,517.0,0,0.0,0.0,175.26,Range Breakout Sell
|
| 514 |
+
2025.05.23 00:06:01,513.0,XAUUSDc,sell,in,1.88,3293.701,518.0,0,0.0,0.0,175.26,Range Breakout Sell
|
| 515 |
+
2025.05.23 00:07:30,514.0,XAUUSDc,buy,out,1.88,3296.485,519.0,0,0.0,-5.23,170.03,sl 3296.442
|
| 516 |
+
2025.05.23 05:15:41,515.0,XAUUSDc,buy,out,1.09,3318.737,520.0,0,0.0,-4.74,165.29,sl 3318.722
|
| 517 |
+
2025.05.26 00:12:00,516.0,XAUUSDc,sell,in,1.07,3337.395,521.0,0,0.0,0.0,165.29,Range Breakout Sell
|
| 518 |
+
2025.05.26 00:59:28,517.0,XAUUSDc,buy,out,1.07,3342.029,522.0,0,0.0,-4.96,160.33,sl 3342.024
|
| 519 |
+
2025.05.27 00:15:00,518.0,XAUUSDc,buy,in,1.83,3349.605,523.0,0,0.0,0.0,160.33,Range Breakout Buy
|
| 520 |
+
2025.05.27 00:19:16,519.0,XAUUSDc,sell,out,1.83,3346.785,524.0,0,0.0,-5.16,155.17,sl 3346.795
|
| 521 |
+
2025.05.28 03:21:00,520.0,XAUUSDc,sell,in,0.65,3295.013,525.0,0,0.0,0.0,155.17,Range Breakout Sell
|
| 522 |
+
2025.05.28 05:07:36,521.0,XAUUSDc,buy,out,0.65,3302.056,526.0,0,0.0,-4.58,150.59,sl 3302.037
|
| 523 |
+
2025.05.29 10:21:11,522.0,XAUUSDc,buy,in,1.1,3296.213,527.0,0,0.0,0.0,150.59,Range Breakout Buy
|
| 524 |
+
2025.05.29 16:14:43,523.0,XAUUSDc,sell,out,1.1,3328.635,528.0,0,0.0,35.67,186.26,tp 3328.605
|
| 525 |
+
2025.06.02 04:57:06,524.0,XAUUSDc,buy,in,2.61,3318.076,529.0,0,0.0,0.0,186.26,Range Breakout Buy
|
| 526 |
+
2025.06.02 04:58:57,525.0,XAUUSDc,sell,out,2.61,3314.787,530.0,0,0.0,-8.58,177.68,sl 3314.787
|
| 527 |
+
2025.06.03 00:06:03,526.0,XAUUSDc,sell,in,1.28,3381.902,531.0,0,0.0,0.0,177.68,Range Breakout Sell
|
| 528 |
+
2025.06.03 13:46:00,527.0,XAUUSDc,buy,out,1.28,3348.791,532.0,0,0.0,42.38,220.06,tp 3348.811
|
| 529 |
+
2025.06.09 00:18:04,528.0,XAUUSDc,sell,in,1.89,3307.759,533.0,0,0.0,0.0,220.06,Range Breakout Sell
|
| 530 |
+
2025.06.09 00:34:31,529.0,XAUUSDc,buy,out,1.89,3311.784,534.0,0,0.0,-7.61,212.45,sl 3311.782
|
| 531 |
+
2025.06.10 06:33:07,530.0,XAUUSDc,buy,in,2.43,3327.943,535.0,0,0.0,0.0,212.45,Range Breakout Buy
|
| 532 |
+
2025.06.10 06:59:58,531.0,XAUUSDc,sell,out,2.43,3325.417,536.0,0,0.0,-6.14,206.31,sl 3325.421
|
| 533 |
+
2025.06.12 07:39:07,532.0,XAUUSDc,sell,in,0.91,3353.481,537.0,0,0.0,0.0,206.31,Range Breakout Sell
|
| 534 |
+
2025.06.12 08:28:42,533.0,XAUUSDc,buy,out,0.91,3360.312,538.0,0,0.0,-6.22,200.09,sl 3360.299
|
| 535 |
+
2025.06.13 00:03:03,534.0,XAUUSDc,buy,in,0.69,3400.899,539.0,0,0.0,0.0,200.09,Range Breakout Buy
|
| 536 |
+
2025.06.16 13:54:40,535.0,XAUUSDc,sell,out,0.69,3391.692,540.0,0,-0.39,-6.35,193.35,sl 3391.695
|
| 537 |
+
2025.06.18 04:33:06,536.0,XAUUSDc,buy,in,3.3,3396.705,541.0,0,0.0,0.0,193.35,Range Breakout Buy
|
| 538 |
+
2025.06.18 04:34:39,537.0,XAUUSDc,sell,out,3.3,3394.495,542.0,0,0.0,-7.29,186.06,sl 3394.516
|
| 539 |
+
2025.06.20 01:12:08,538.0,XAUUSDc,sell,in,1.48,3360.127,543.0,0,0.0,0.0,186.06,Range Breakout Sell
|
| 540 |
+
2025.06.20 01:47:34,539.0,XAUUSDc,buy,out,1.48,3364.313,544.0,0,0.0,-6.2,179.86,sl 3364.301
|
| 541 |
+
2025.06.23 00:06:07,540.0,XAUUSDc,sell,in,2.16,3370.233,545.0,0,0.0,0.0,179.86,Range Breakout Sell
|
| 542 |
+
2025.06.23 05:35:26,541.0,XAUUSDc,buy,out,2.16,3350.507,546.0,0,0.0,42.61,222.47,tp 3350.509
|
| 543 |
+
2025.06.24 00:03:08,542.0,XAUUSDc,sell,in,0.86,3337.628,547.0,0,0.0,0.0,222.47,Range Breakout Sell
|
| 544 |
+
2025.06.24 00:15:03,543.0,XAUUSDc,buy,out,0.86,3345.224,548.0,0,0.0,-6.53,215.94,sl 3345.218
|
| 545 |
+
2025.06.25 12:45:03,544.0,XAUUSDc,sell,in,1.84,3319.774,549.0,0,0.0,0.0,215.94,Range Breakout Sell
|
| 546 |
+
2025.06.25 14:30:41,545.0,XAUUSDc,buy,out,1.84,3323.309,550.0,0,0.0,-6.51,209.43,sl 3323.306
|
| 547 |
+
2025.06.27 00:06:08,546.0,XAUUSDc,sell,in,5.57,3315.266,551.0,0,0.0,0.0,209.43,Range Breakout Sell
|
| 548 |
+
2025.06.27 00:08:27,547.0,XAUUSDc,buy,out,5.57,3316.985,552.0,0,0.0,-9.57,199.86,sl 3316.969
|
| 549 |
+
2025.06.30 01:27:12,548.0,XAUUSDc,buy,in,1.59,3275.965,553.0,0,0.0,0.0,199.86,Range Breakout Buy
|
| 550 |
+
2025.06.30 01:36:40,549.0,XAUUSDc,sell,out,1.59,3271.829,554.0,0,0.0,-6.58,193.28,sl 3271.853
|
| 551 |
+
2025.07.01 01:00:09,550.0,XAUUSDc,buy,in,4.48,3314.368,555.0,0,0.0,0.0,193.28,Range Breakout Buy
|
| 552 |
+
2025.07.01 05:03:37,551.0,XAUUSDc,sell,out,4.48,3325.076,556.0,0,0.0,47.97,241.25,tp 3325.066
|
| 553 |
+
2025.07.02 00:06:01,552.0,XAUUSDc,sell,in,11.73,3336.535,557.0,0,0.0,0.0,241.25,Range Breakout Sell
|
| 554 |
+
2025.07.02 00:06:17,553.0,XAUUSDc,buy,out,11.73,3337.124,558.0,0,0.0,-6.91,234.34,sl 3337.114
|
| 555 |
+
2025.07.03 00:03:07,554.0,XAUUSDc,sell,in,2.07,3346.043,559.0,0,0.0,0.0,234.34,Range Breakout Sell
|
| 556 |
+
2025.07.03 02:49:36,555.0,XAUUSDc,buy,out,2.07,3349.924,560.0,0,0.0,-8.03,226.31,sl 3349.895
|
| 557 |
+
2025.07.04 01:21:06,556.0,XAUUSDc,buy,in,3.46,3332.383,561.0,0,0.0,0.0,226.31,Range Breakout Buy
|
| 558 |
+
2025.07.04 01:35:14,557.0,XAUUSDc,sell,out,3.46,3330.31,562.0,0,0.0,-7.17,219.14,sl 3330.332
|
| 559 |
+
2025.07.08 00:03:03,558.0,XAUUSDc,sell,in,3.22,3333.386,563.0,0,0.0,0.0,219.14,Range Breakout Sell
|
| 560 |
+
2025.07.08 00:04:37,559.0,XAUUSDc,buy,out,3.22,3335.692,564.0,0,0.0,-7.43,211.71,sl 3335.675
|
| 561 |
+
2025.07.09 00:03:01,560.0,XAUUSDc,buy,in,1.38,3306.467,565.0,0,0.0,0.0,211.71,Range Breakout Buy
|
| 562 |
+
2025.07.09 01:13:30,561.0,XAUUSDc,sell,out,1.38,3301.79,566.0,0,0.0,-6.45,205.26,sl 3301.815
|
| 563 |
+
2025.07.10 00:45:06,562.0,XAUUSDc,buy,in,4.49,3321.907,567.0,0,0.0,0.0,205.26,Range Breakout Buy
|
| 564 |
+
2025.07.10 00:45:40,563.0,XAUUSDc,sell,out,4.49,3320.307,568.0,0,0.0,-7.18,198.08,sl 3320.329
|
| 565 |
+
2025.07.14 07:30:02,564.0,XAUUSDc,buy,in,1.56,3374.832,569.0,0,0.0,0.0,198.08,Range Breakout Buy
|
| 566 |
+
2025.07.14 07:38:00,565.0,XAUUSDc,sell,out,1.56,3370.728,570.0,0,0.0,-6.4,191.68,sl 3370.738
|
| 567 |
+
2025.07.15 13:27:03,566.0,XAUUSDc,sell,in,2.39,3340.866,571.0,0,0.0,0.0,191.68,Range Breakout Sell
|
| 568 |
+
2025.07.15 13:53:39,567.0,XAUUSDc,buy,out,2.39,3343.165,572.0,0,0.0,-5.49,186.19,sl 3343.160
|
| 569 |
+
2025.07.22 12:45:06,568.0,XAUUSDc,buy,in,2.76,3404.077,573.0,0,0.0,0.0,186.19,Range Breakout Buy
|
| 570 |
+
2025.07.22 12:49:37,569.0,XAUUSDc,sell,out,2.76,3401.681,574.0,0,0.0,-6.61,179.58,sl 3401.687
|
| 571 |
+
2025.07.23 01:06:08,570.0,XAUUSDc,sell,in,1.16,3425.437,575.0,0,0.0,0.0,179.58,Range Breakout Sell
|
| 572 |
+
2025.07.23 09:06:38,571.0,XAUUSDc,buy,out,1.16,3430.275,576.0,0,0.0,-5.61,173.97,sl 3430.262
|
| 573 |
+
2025.07.24 01:09:01,572.0,XAUUSDc,sell,in,0.85,3385.473,577.0,0,0.0,0.0,173.97,Range Breakout Sell
|
| 574 |
+
2025.07.24 01:15:37,573.0,XAUUSDc,buy,out,0.85,3391.676,578.0,0,0.0,-5.27,168.7,sl 3391.667
|
| 575 |
+
2025.07.25 02:21:02,574.0,XAUUSDc,sell,in,7.4,3364.892,579.0,0,0.0,0.0,168.7,Range Breakout Sell
|
| 576 |
+
2025.07.25 02:25:37,575.0,XAUUSDc,buy,out,7.4,3365.677,580.0,0,0.0,-5.81,162.89,sl 3365.671
|
| 577 |
+
2025.07.30 00:03:05,576.0,XAUUSDc,buy,in,1.81,3329.853,581.0,0,0.0,0.0,162.89,Range Breakout Buy
|
| 578 |
+
2025.07.30 01:35:42,577.0,XAUUSDc,sell,out,1.81,3327.193,582.0,0,0.0,-4.82,158.07,sl 3327.206
|
| 579 |
+
2025.07.31 00:03:01,578.0,XAUUSDc,buy,in,2.16,3286.627,583.0,0,0.0,0.0,158.07,Range Breakout Buy
|
| 580 |
+
2025.07.31 00:07:36,579.0,XAUUSDc,sell,out,2.16,3284.318,584.0,0,0.0,-4.99,153.08,sl 3284.339
|
| 581 |
+
2025.08.01 03:12:08,580.0,XAUUSDc,buy,in,1.31,3297.22,585.0,0,0.0,0.0,153.08,Range Breakout Buy
|
| 582 |
+
2025.08.01 03:21:24,581.0,XAUUSDc,sell,out,1.31,3293.486,586.0,0,0.0,-4.89,148.19,sl 3293.493
|
| 583 |
+
2025.08.06 00:21:07,582.0,XAUUSDc,buy,in,3.07,3384.225,587.0,0,0.0,0.0,148.19,Range Breakout Buy
|
| 584 |
+
2025.08.06 00:41:24,583.0,XAUUSDc,sell,out,3.07,3382.544,588.0,0,0.0,-5.16,143.03,sl 3382.572
|
| 585 |
+
2025.08.07 00:03:13,584.0,XAUUSDc,sell,in,0.99,3366.364,589.0,0,0.0,0.0,143.03,Range Breakout Sell
|
| 586 |
+
2025.08.07 00:14:30,585.0,XAUUSDc,buy,out,0.99,3370.44,590.0,0,0.0,-4.04,138.99,sl 3370.403
|
| 587 |
+
2025.08.11 00:03:05,586.0,XAUUSDc,sell,in,1.5,3389.103,591.0,0,0.0,0.0,138.99,Range Breakout Sell
|
| 588 |
+
2025.08.11 00:08:05,587.0,XAUUSDc,buy,out,1.5,3391.642,592.0,0,0.0,-3.81,135.18,sl 3391.639
|
| 589 |
+
2025.08.13 00:03:01,588.0,XAUUSDc,sell,in,2.48,3349.236,593.0,0,0.0,0.0,135.18,Range Breakout Sell
|
| 590 |
+
2025.08.13 01:46:27,589.0,XAUUSDc,buy,out,2.48,3350.797,594.0,0,0.0,-3.87,131.31,sl 3350.783
|
| 591 |
+
2025.08.14 00:03:01,590.0,XAUUSDc,buy,in,1.75,3365.156,595.0,0,0.0,0.0,131.31,Range Breakout Buy
|
| 592 |
+
2025.08.14 03:00:01,591.0,XAUUSDc,sell,out,1.75,3362.739,596.0,0,0.0,-4.23,127.08,sl 3362.743
|
| 593 |
+
2025.08.18 00:18:07,592.0,XAUUSDc,buy,in,2.5,3335.801,597.0,0,0.0,0.0,127.08,Range Breakout Buy
|
| 594 |
+
2025.08.18 03:31:40,593.0,XAUUSDc,sell,out,2.5,3347.879,598.0,0,0.0,30.2,157.28,tp 3347.836
|
| 595 |
+
2025.08.19 00:03:00,594.0,XAUUSDc,sell,in,1.67,3328.291,599.0,0,0.0,0.0,157.28,Range Breakout Sell
|
| 596 |
+
2025.08.19 00:06:29,595.0,XAUUSDc,buy,out,1.67,3331.01,600.0,0,0.0,-4.54,152.74,sl 3330.990
|
| 597 |
+
2025.08.21 00:03:05,596.0,XAUUSDc,sell,in,3.96,3345.835,601.0,0,0.0,0.0,152.74,Range Breakout Sell
|
| 598 |
+
2025.08.21 06:22:16,597.0,XAUUSDc,buy,out,3.96,3336.487,602.0,0,0.0,37.02,189.76,tp 3336.502
|
| 599 |
+
2025.08.22 14:03:03,598.0,XAUUSDc,buy,in,0.28,3354.759,603.0,0,0.0,0.0,189.76,Range Breakout Buy
|
| 600 |
+
2025.08.25 00:06:02,599.0,XAUUSDc,sell,in,3.4,3365.794,604.0,0,0.0,0.0,189.76,Range Breakout Sell
|
| 601 |
+
2025.08.25 01:02:02,600.0,XAUUSDc,buy,out,3.4,3367.464,605.0,0,0.0,-5.68,184.08,sl 3367.427
|
| 602 |
+
2025.08.26 00:15:01,601.0,XAUUSDc,buy,in,0.82,3369.136,606.0,0,0.0,0.0,184.08,Range Breakout Buy
|
| 603 |
+
2025.08.28 00:15:03,602.0,XAUUSDc,sell,in,9.0,3394.656,607.0,0,0.0,0.0,184.08,Range Breakout Sell
|
| 604 |
+
2025.08.28 00:15:36,603.0,XAUUSDc,buy,out,9.0,3395.293,608.0,0,0.0,-5.73,178.35,sl 3395.278
|
| 605 |
+
2025.08.28 19:56:30,604.0,XAUUSDc,sell,out,0.82,3422.305,609.0,0,-1.85,43.6,220.1,tp 3422.301
|
| 606 |
+
2025.08.29 13:15:01,605.0,XAUUSDc,buy,in,4.09,3418.866,610.0,0,0.0,0.0,220.1,Range Breakout Buy
|
| 607 |
+
2025.08.29 13:25:59,606.0,XAUUSDc,sell,out,4.09,3417.048,611.0,0,0.0,-7.44,212.66,sl 3417.048
|
| 608 |
+
2025.09.01 02:00:05,607.0,XAUUSDc,buy,in,0.85,3457.542,612.0,0,0.0,0.0,212.66,Range Breakout Buy
|
| 609 |
+
2025.09.02 07:54:10,608.0,XAUUSDc,sell,in,1.22,3472.891,613.0,0,0.0,0.0,212.66,Range Breakout Sell
|
| 610 |
+
2025.09.02 08:35:37,609.0,XAUUSDc,buy,out,1.22,3479.043,614.0,0,0.0,-7.51,205.15,sl 3479.014
|
| 611 |
+
2025.09.02 14:47:29,610.0,XAUUSDc,sell,out,0.28,3512.385,615.0,0,-1.43,44.14,247.86,tp 3512.383
|
| 612 |
+
2025.09.02 15:47:27,611.0,XAUUSDc,sell,out,0.85,3516.718,616.0,0,-0.48,50.3,297.68,tp 3516.684
|
| 613 |
+
2025.09.03 00:21:07,612.0,XAUUSDc,buy,in,2.78,3535.652,617.0,0,0.0,0.0,297.68,Range Breakout Buy
|
| 614 |
+
2025.09.03 02:59:38,613.0,XAUUSDc,sell,out,2.78,3531.817,618.0,0,0.0,-10.66,287.02,sl 3531.851
|
| 615 |
+
2025.09.04 00:09:06,614.0,XAUUSDc,sell,in,2.27,3553.191,619.0,0,0.0,0.0,287.02,Range Breakout Sell
|
| 616 |
+
2025.09.04 00:11:19,615.0,XAUUSDc,buy,out,2.27,3556.947,620.0,0,0.0,-8.53,278.49,sl 3556.932
|
| 617 |
+
2025.09.05 00:03:06,616.0,XAUUSDc,buy,in,3.1,3556.045,621.0,0,0.0,0.0,278.49,Range Breakout Buy
|
| 618 |
+
2025.09.05 00:05:31,617.0,XAUUSDc,sell,out,3.1,3552.525,622.0,0,0.0,-10.91,267.58,sl 3552.532
|
| 619 |
+
2025.09.09 00:15:02,618.0,XAUUSDc,buy,in,9.52,3637.1,623.0,0,0.0,0.0,267.58,Range Breakout Buy
|
| 620 |
+
2025.09.09 01:09:39,619.0,XAUUSDc,sell,out,9.52,3636.238,624.0,0,0.0,-8.21,259.37,sl 3636.253
|
| 621 |
+
2025.09.10 04:09:03,620.0,XAUUSDc,buy,in,5.55,3641.151,625.0,0,0.0,0.0,259.37,Range Breakout Buy
|
| 622 |
+
2025.09.10 09:45:35,621.0,XAUUSDc,sell,out,5.55,3652.07,626.0,0,0.0,60.6,319.97,tp 3652.063
|
| 623 |
+
2025.09.12 01:03:11,622.0,XAUUSDc,buy,in,2.91,3639.599,627.0,0,0.0,0.0,319.97,Range Breakout Buy
|
| 624 |
+
2025.09.15 00:03:30,623.0,XAUUSDc,sell,out,2.91,3636.452,628.0,0,-1.64,-9.16,309.17,sl 3636.484
|
| 625 |
+
2025.09.15 00:06:03,624.0,XAUUSDc,sell,in,5.62,3636.206,629.0,0,0.0,0.0,309.17,Range Breakout Sell
|
| 626 |
+
2025.09.15 00:07:37,625.0,XAUUSDc,buy,out,5.62,3637.836,630.0,0,0.0,-9.16,300.01,sl 3637.824
|
| 627 |
+
2025.09.16 00:18:01,626.0,XAUUSDc,buy,in,4.4,3681.186,631.0,0,0.0,0.0,300.01,Range Breakout Buy
|
| 628 |
+
2025.09.16 01:15:37,627.0,XAUUSDc,sell,out,4.4,3679.079,632.0,0,0.0,-9.27,290.74,sl 3679.098
|
| 629 |
+
2025.09.17 01:24:00,628.0,XAUUSDc,sell,in,3.99,3688.916,633.0,0,0.0,0.0,290.74,Range Breakout Sell
|
| 630 |
+
2025.09.17 06:44:29,629.0,XAUUSDc,buy,out,3.99,3671.467,634.0,0,0.0,69.62,360.36,tp 3671.500
|
| 631 |
+
2025.09.24 00:03:05,630.0,XAUUSDc,sell,in,2.99,3761.852,635.0,0,0.0,0.0,360.36,Range Breakout Sell
|
| 632 |
+
2025.09.24 00:24:37,631.0,XAUUSDc,buy,out,2.99,3765.182,636.0,0,0.0,-9.96,350.4,sl 3765.156
|
| 633 |
+
2025.09.25 00:06:04,632.0,XAUUSDc,buy,in,3.04,3746.589,637.0,0,0.0,0.0,350.4,Range Breakout Buy
|
| 634 |
+
2025.09.25 01:10:28,633.0,XAUUSDc,sell,out,3.04,3743.073,638.0,0,0.0,-10.69,339.71,sl 3743.086
|
| 635 |
+
2025.09.29 00:12:00,634.0,XAUUSDc,buy,in,5.16,3773.734,639.0,0,0.0,0.0,339.71,Range Breakout Buy
|
| 636 |
+
2025.09.29 01:24:28,635.0,XAUUSDc,sell,out,5.16,3771.533,640.0,0,0.0,-11.36,328.35,sl 3771.558
|
| 637 |
+
2025.09.30 00:03:16,636.0,XAUUSDc,buy,in,3.9,3833.801,641.0,0,0.0,0.0,328.35,Range Breakout Buy
|
| 638 |
+
2025.09.30 03:13:30,637.0,XAUUSDc,sell,out,3.9,3853.811,642.0,0,0.0,78.04,406.39,tp 3853.798
|
| 639 |
+
2025.10.01 00:03:10,638.0,XAUUSDc,buy,in,7.03,3864.086,643.0,0,0.0,0.0,406.39,Range Breakout Buy
|
| 640 |
+
2025.10.01 00:26:17,639.0,XAUUSDc,sell,out,7.03,3862.334,644.0,0,0.0,-12.32,394.07,sl 3862.349
|
| 641 |
+
2025.10.02 00:21:00,640.0,XAUUSDc,sell,in,3.92,3857.391,645.0,0,0.0,0.0,394.07,Range Breakout Sell
|
| 642 |
+
2025.10.02 00:24:29,641.0,XAUUSDc,buy,out,3.92,3860.436,646.0,0,0.0,-11.94,382.13,sl 3860.409
|
| 643 |
+
2025.10.03 01:24:07,642.0,XAUUSDc,sell,in,3.7,3850.997,647.0,0,0.0,0.0,382.13,Range Breakout Sell
|
| 644 |
+
2025.10.03 01:39:42,643.0,XAUUSDc,buy,out,3.7,3854.712,648.0,0,0.0,-13.75,368.38,sl 3854.685
|
| 645 |
+
2025.10.06 02:03:04,644.0,XAUUSDc,buy,in,1.91,3923.893,649.0,0,0.0,0.0,368.38,Range Breakout Buy
|
| 646 |
+
2025.10.06 16:08:38,645.0,XAUUSDc,sell,out,1.91,3969.498,650.0,0,0.0,87.11,455.49,tp 3969.485
|
| 647 |
+
2025.10.09 04:30:05,646.0,XAUUSDc,buy,in,13.66,4038.675,651.0,0,0.0,0.0,455.49,Range Breakout Buy
|
| 648 |
+
2025.10.09 04:36:38,647.0,XAUUSDc,sell,out,13.66,4037.252,652.0,0,0.0,-19.44,436.05,sl 4037.270
|
| 649 |
+
2025.10.10 00:12:02,648.0,XAUUSDc,buy,in,6.27,3990.816,653.0,0,0.0,0.0,436.05,Range Breakout Buy
|
| 650 |
+
2025.10.10 00:13:42,649.0,XAUUSDc,sell,out,6.27,3988.749,654.0,0,0.0,-12.96,423.09,sl 3988.750
|
| 651 |
+
2025.10.14 06:24:01,650.0,XAUUSDc,sell,in,0.75,4092.031,655.0,0,0.0,0.0,423.09,Range Breakout Sell
|
| 652 |
+
2025.10.14 06:26:02,651.0,XAUUSDc,buy,out,0.75,4109.016,656.0,0,0.0,-12.74,410.35,sl 4109.008
|
| 653 |
+
2025.10.15 00:12:03,652.0,XAUUSDc,buy,in,7.69,4167.727,657.0,0,0.0,0.0,410.35,Range Breakout Buy
|
| 654 |
+
2025.10.15 00:18:41,653.0,XAUUSDc,sell,out,7.69,4165.973,658.0,0,0.0,-13.49,396.86,sl 4165.981
|
| 655 |
+
2025.10.16 00:18:08,654.0,XAUUSDc,buy,in,8.47,4215.978,659.0,0,0.0,0.0,396.86,Range Breakout Buy
|
| 656 |
+
2025.10.16 00:59:20,655.0,XAUUSDc,sell,out,8.47,4214.823,660.0,0,0.0,-9.78,387.08,sl 4214.828
|
| 657 |
+
2025.10.17 01:18:05,656.0,XAUUSDc,sell,in,0.56,4325.163,661.0,0,0.0,0.0,387.08,Range Breakout Sell
|
| 658 |
+
2025.10.17 02:50:15,657.0,XAUUSDc,buy,out,0.56,4348.467,662.0,0,0.0,-13.05,374.03,sl 4348.448
|
| 659 |
+
2025.10.20 00:12:00,658.0,XAUUSDc,sell,in,1.6,4231.83,663.0,0,0.0,0.0,374.03,Range Breakout Sell
|
| 660 |
+
2025.10.20 00:37:47,659.0,XAUUSDc,buy,out,1.6,4238.865,664.0,0,0.0,-11.26,362.77,sl 4238.845
|
| 661 |
+
2025.10.22 00:03:03,660.0,XAUUSDc,sell,in,0.41,4065.26,665.0,0,0.0,0.0,362.77,Range Breakout Sell
|
| 662 |
+
2025.10.22 01:04:21,661.0,XAUUSDc,buy,out,0.41,4094.069,666.0,0,0.0,-11.81,350.96,sl 4094.052
|
| 663 |
+
2025.10.23 00:21:01,662.0,XAUUSDc,sell,in,1.85,4079.723,667.0,0,0.0,0.0,350.96,Range Breakout Sell
|
| 664 |
+
2025.10.23 00:52:42,663.0,XAUUSDc,buy,out,1.85,4085.397,668.0,0,0.0,-10.5,340.46,sl 4085.376
|
| 665 |
+
2025.10.27 00:03:09,664.0,XAUUSDc,sell,in,1.32,4059.765,669.0,0,0.0,0.0,340.46,Range Breakout Sell
|
| 666 |
+
2025.10.27 00:07:31,665.0,XAUUSDc,buy,out,1.32,4067.733,670.0,0,0.0,-10.52,329.94,sl 4067.716
|
| 667 |
+
2025.10.28 00:21:06,666.0,XAUUSDc,sell,in,0.81,3973.599,671.0,0,0.0,0.0,329.94,Range Breakout Sell
|
| 668 |
+
2025.10.28 00:30:29,667.0,XAUUSDc,buy,out,0.81,3985.913,672.0,0,0.0,-9.98,319.96,sl 3985.878
|
| 669 |
+
2025.10.30 00:03:06,668.0,XAUUSDc,buy,in,1.43,3957.829,673.0,0,0.0,0.0,319.96,Range Breakout Buy
|
| 670 |
+
2025.10.30 00:36:39,669.0,XAUUSDc,sell,out,1.43,3951.994,674.0,0,0.0,-8.34,311.62,sl 3952.011
|
| 671 |
+
2025.11.05 00:06:05,670.0,XAUUSDc,buy,in,3.27,3941.019,675.0,0,0.0,0.0,311.62,Range Breakout Buy
|
| 672 |
+
2025.11.05 00:07:03,671.0,XAUUSDc,sell,out,3.27,3937.696,676.0,0,0.0,-10.87,300.75,sl 3937.710
|
| 673 |
+
2025.11.06 02:33:06,672.0,XAUUSDc,buy,in,2.22,3982.997,677.0,0,0.0,0.0,300.75,Range Breakout Buy
|
| 674 |
+
2025.11.06 08:27:40,673.0,XAUUSDc,sell,out,2.22,4014.637,678.0,0,0.0,70.24,370.99,tp 4014.624
|
| 675 |
+
2025.11.10 00:03:01,674.0,XAUUSDc,buy,in,4.96,4013.693,679.0,0,0.0,0.0,370.99,Range Breakout Buy
|
| 676 |
+
2025.11.10 01:16:39,675.0,XAUUSDc,sell,out,4.96,4031.343,680.0,0,0.0,87.54,458.53,tp 4031.319
|
| 677 |
+
2025.11.11 00:27:00,676.0,XAUUSDc,buy,in,4.43,4123.945,681.0,0,0.0,0.0,458.53,Range Breakout Buy
|
| 678 |
+
2025.11.11 04:02:39,677.0,XAUUSDc,sell,out,4.43,4148.601,682.0,0,0.0,109.23,567.76,tp 4148.582
|
| 679 |
+
2025.11.12 00:06:05,678.0,XAUUSDc,buy,in,8.53,4145.562,683.0,0,0.0,0.0,567.76,Range Breakout Buy
|
| 680 |
+
2025.11.12 00:07:39,679.0,XAUUSDc,sell,out,8.53,4143.142,684.0,0,0.0,-20.64,547.12,sl 4143.156
|
| 681 |
+
2025.11.14 00:21:08,680.0,XAUUSDc,buy,in,4.97,4188.548,685.0,0,0.0,0.0,547.12,Range Breakout Buy
|
| 682 |
+
2025.11.14 00:27:34,681.0,XAUUSDc,sell,out,4.97,4185.288,686.0,0,0.0,-16.2,530.92,sl 4185.301
|
| 683 |
+
2025.11.18 13:36:04,682.0,XAUUSDc,buy,in,1.45,4060.293,687.0,0,0.0,0.0,530.92,Range Breakout Buy
|
| 684 |
+
2025.11.18 15:51:04,683.0,XAUUSDc,sell,out,1.45,4049.597,688.0,0,0.0,-15.51,515.41,sl 4049.606
|
| 685 |
+
2025.11.20 00:03:02,684.0,XAUUSDc,buy,in,3.25,4109.695,689.0,0,0.0,0.0,515.41,Range Breakout Buy
|
| 686 |
+
2025.11.20 00:05:03,685.0,XAUUSDc,sell,out,3.25,4104.655,690.0,0,0.0,-16.38,499.03,sl 4104.668
|
| 687 |
+
2025.11.21 16:51:00,686.0,XAUUSDc,buy,in,0.98,4093.307,691.0,0,0.0,0.0,499.03,Range Breakout Buy
|
| 688 |
+
2025.11.21 18:30:36,687.0,XAUUSDc,sell,out,0.98,4078.043,692.0,0,0.0,-14.96,484.07,sl 4078.047
|
| 689 |
+
2025.11.24 00:09:03,688.0,XAUUSDc,sell,in,2.31,4062.974,693.0,0,0.0,0.0,484.07,Range Breakout Sell
|
| 690 |
+
2025.11.24 01:00:05,689.0,XAUUSDc,buy,out,2.31,4068.929,694.0,0,0.0,-13.76,470.31,sl 4068.921
|
| 691 |
+
2025.11.26 00:09:03,690.0,XAUUSDc,buy,in,3.79,4137.495,695.0,0,0.0,0.0,470.31,Range Breakout Buy
|
| 692 |
+
2025.11.26 03:07:57,691.0,XAUUSDc,sell,out,3.79,4167.181,696.0,0,0.0,112.51,582.82,tp 4167.177
|
| 693 |
+
2025.11.28 00:03:02,692.0,XAUUSDc,buy,in,10.31,4164.861,697.0,0,0.0,0.0,582.82,Range Breakout Buy
|
| 694 |
+
2025.11.28 00:34:30,693.0,XAUUSDc,sell,out,10.31,4178.355,698.0,0,0.0,139.12,721.94,tp 4178.348
|
| 695 |
+
2025.12.01 00:30:01,694.0,XAUUSDc,buy,in,7.66,4227.263,699.0,0,0.0,0.0,721.94,Range Breakout Buy
|
| 696 |
+
2025.12.01 01:04:41,695.0,XAUUSDc,sell,out,7.66,4224.277,700.0,0,0.0,-22.87,699.07,sl 4224.309
|
| 697 |
+
2025.12.03 01:03:05,696.0,XAUUSDc,buy,in,4.03,4217.091,701.0,0,0.0,0.0,699.07,Range Breakout Buy
|
| 698 |
+
2025.12.03 05:39:27,697.0,XAUUSDc,sell,out,4.03,4211.551,702.0,0,0.0,-22.33,676.74,sl 4211.553
|
| 699 |
+
2025.12.04 00:09:15,698.0,XAUUSDc,buy,in,7.23,4209.117,703.0,0,0.0,0.0,676.74,Range Breakout Buy
|
| 700 |
+
2025.12.04 01:05:40,699.0,XAUUSDc,sell,out,7.23,4206.277,704.0,0,0.0,-20.53,656.21,sl 4206.279
|
| 701 |
+
2025.12.05 00:18:05,700.0,XAUUSDc,buy,in,8.7,4210.554,705.0,0,0.0,0.0,656.21,Range Breakout Buy
|
| 702 |
+
2025.12.05 00:18:40,701.0,XAUUSDc,sell,out,8.7,4208.005,706.0,0,0.0,-22.18,634.03,sl 4208.028
|
| 703 |
+
2025.12.08 00:39:06,702.0,XAUUSDc,buy,in,7.02,4210.172,707.0,0,0.0,0.0,634.03,Range Breakout Buy
|
| 704 |
+
2025.12.08 01:00:43,703.0,XAUUSDc,sell,out,7.02,4207.04,708.0,0,0.0,-21.99,612.04,sl 4207.044
|
| 705 |
+
2025.12.11 00:03:05,704.0,XAUUSDc,buy,in,5.67,4234.796,709.0,0,0.0,0.0,612.04,Range Breakout Buy
|
| 706 |
+
2025.12.11 02:11:40,705.0,XAUUSDc,sell,out,5.67,4231.298,710.0,0,0.0,-19.83,592.21,sl 4231.298
|
| 707 |
+
2025.12.12 00:54:06,706.0,XAUUSDc,sell,in,6.46,4271.836,711.0,0,0.0,0.0,592.21,Range Breakout Sell
|
| 708 |
+
2025.12.12 01:13:25,707.0,XAUUSDc,buy,out,6.46,4274.526,712.0,0,0.0,-17.38,574.83,sl 4274.518
|
| 709 |
+
2025.12.15 01:03:04,708.0,XAUUSDc,buy,in,2.81,4311.507,713.0,0,0.0,0.0,574.83,Range Breakout Buy
|
| 710 |
+
2025.12.15 16:05:32,709.0,XAUUSDc,sell,out,2.81,4305.769,714.0,0,0.0,-16.12,558.71,sl 4305.777
|
| 711 |
+
2025.12.17 00:03:15,710.0,XAUUSDc,buy,in,6.87,4309.767,715.0,0,0.0,0.0,558.71,Range Breakout Buy
|
| 712 |
+
2025.12.17 04:42:30,711.0,XAUUSDc,sell,out,6.87,4329.348,716.0,0,0.0,134.52,693.23,tp 4329.326
|
| 713 |
+
2025.12.18 00:51:06,712.0,XAUUSDc,sell,in,6.7,4333.554,717.0,0,0.0,0.0,693.23,Range Breakout Sell
|
| 714 |
+
2025.12.18 01:01:38,713.0,XAUUSDc,buy,out,6.7,4336.675,718.0,0,0.0,-20.91,672.32,sl 4336.672
|
| 715 |
+
2025.12.19 00:06:07,714.0,XAUUSDc,sell,in,7.62,4333.776,719.0,0,0.0,0.0,672.32,Range Breakout Sell
|
| 716 |
+
2025.12.19 01:28:39,715.0,XAUUSDc,buy,out,7.62,4312.021,720.0,0,0.0,165.77,838.09,tp 4312.036
|
| 717 |
+
2025.12.22 00:03:16,716.0,XAUUSDc,buy,in,3.19,4363.46,721.0,0,0.0,0.0,838.09,Range Breakout Buy
|
| 718 |
+
2025.12.22 13:11:04,717.0,XAUUSDc,sell,out,3.19,4426.221,722.0,0,0.0,200.21,1038.3,tp 4426.207
|
| 719 |
+
2025.12.23 00:06:07,718.0,XAUUSDc,buy,in,10.54,4462.635,723.0,0,0.0,0.0,1038.3,Range Breakout Buy
|
| 720 |
+
2025.12.23 01:12:13,719.0,XAUUSDc,sell,out,10.54,4486.54,724.0,0,0.0,251.96,1290.26,tp 4486.532
|
| 721 |
+
2025.12.24 03:00:06,720.0,XAUUSDc,sell,in,1.59,4483.272,725.0,0,0.0,0.0,1290.26,Range Breakout Sell
|
| 722 |
+
2025.12.26 00:06:42,721.0,XAUUSDc,buy,out,1.59,4501.823,726.0,0,0.0,-29.5,1260.76,sl 4501.822
|
| 723 |
+
2025.12.29 00:03:17,722.0,XAUUSDc,sell,in,5.06,4522.129,727.0,0,0.0,0.0,1260.76,Range Breakout Sell
|
| 724 |
+
2025.12.29 07:00:28,723.0,XAUUSDc,buy,out,5.06,4460.874,728.0,0,0.0,309.95,1570.71,tp 4460.881
|
| 725 |
+
,,,,,,,,0,-6.18,1476.89,1570.71,
|
backend/[4]_output_csv_files/Upload-1_ID/extracted_orders.csv
ADDED
|
@@ -0,0 +1,724 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Open Time,Order,Symbol,Type,Volume,Price,S / L,T / P,Time,State,Comment
|
| 2 |
+
2024.01.02 01:03:34,2.0,XAUUSDc,buy,2.03 / 2.03,0.0,2065.053,2078.319,2024.01.02 01:03:34,filled,Range Breakout Buy
|
| 3 |
+
2024.01.02 02:07:30,3.0,XAUUSDc,sell,2.03 / 2.03,0.0,,,2024.01.02 02:07:30,filled,sl 2065.053
|
| 4 |
+
2024.01.03 00:12:34,4.0,XAUUSDc,buy,7.42 / 7.42,0.0,2059.922,2063.414,2024.01.03 00:12:34,filled,Range Breakout Buy
|
| 5 |
+
2024.01.03 01:16:30,5.0,XAUUSDc,sell,7.42 / 7.42,0.0,,,2024.01.03 01:16:30,filled,sl 2059.922
|
| 6 |
+
2024.01.04 00:54:34,6.0,XAUUSDc,sell,7.95 / 7.95,0.0,2042.059,2038.981,2024.01.04 00:54:34,filled,Range Breakout Sell
|
| 7 |
+
2024.01.04 00:55:30,7.0,XAUUSDc,buy,7.95 / 7.95,0.0,,,2024.01.04 00:55:30,filled,sl 2042.059
|
| 8 |
+
2024.01.05 00:48:32,8.0,XAUUSDc,buy,17.51 / 17.51,0.0,2044.323,2045.655,2024.01.05 00:48:32,filled,Range Breakout Buy
|
| 9 |
+
2024.01.05 00:51:30,9.0,XAUUSDc,sell,17.51 / 17.51,0.0,,,2024.01.05 00:51:30,filled,sl 2044.323
|
| 10 |
+
2024.01.09 00:03:31,10.0,XAUUSDc,buy,7.37 / 7.37,0.0,2031.095,2033.939,2024.01.09 00:03:31,filled,Range Breakout Buy
|
| 11 |
+
2024.01.09 00:19:30,11.0,XAUUSDc,sell,7.37 / 7.37,0.0,,,2024.01.09 00:19:30,filled,tp 2033.939
|
| 12 |
+
2024.01.10 01:15:31,12.0,XAUUSDc,sell,4.1 / 4.1,0.0,2028.842,2022.686,2024.01.10 01:15:31,filled,Range Breakout Sell
|
| 13 |
+
2024.01.10 01:21:30,13.0,XAUUSDc,buy,4.1 / 4.1,0.0,,,2024.01.10 01:21:30,filled,sl 2028.842
|
| 14 |
+
2024.01.11 00:06:32,14.0,XAUUSDc,buy,10.45 / 10.45,0.0,2027.239,2029.471,2024.01.11 00:06:32,filled,Range Breakout Buy
|
| 15 |
+
2024.01.11 00:09:30,15.0,XAUUSDc,sell,10.45 / 10.45,0.0,,,2024.01.11 00:09:30,filled,sl 2027.239
|
| 16 |
+
2024.01.16 00:27:33,17.0,XAUUSDc,sell,4.23 / 4.23,0.0,2053.648,2048.581,2024.01.16 00:27:33,filled,Range Breakout Sell
|
| 17 |
+
2024.01.16 05:22:30,18.0,XAUUSDc,buy,4.23 / 4.23,0.0,,,2024.01.16 05:22:30,filled,tp 2048.581
|
| 18 |
+
2024.01.17 00:12:31,19.0,XAUUSDc,sell,6.58 / 6.58,0.0,2026.439,2022.443,2024.01.17 00:12:31,filled,Range Breakout Sell
|
| 19 |
+
2024.01.17 00:20:30,20.0,XAUUSDc,buy,6.58 / 6.58,0.0,,,2024.01.17 00:20:30,filled,sl 2026.439
|
| 20 |
+
2024.01.19 00:21:31,22.0,XAUUSDc,buy,3.5 / 3.5,0.0,2023.458,2030.559,2024.01.19 00:21:31,filled,Range Breakout Buy
|
| 21 |
+
2024.01.19 00:36:30,23.0,XAUUSDc,sell,3.5 / 3.5,0.0,,,2024.01.19 00:36:30,filled,sl 2023.458
|
| 22 |
+
2024.01.24 07:45:33,25.0,XAUUSDc,buy,1.15 / 1.15,0.0,2028.856,2049.871,2024.01.24 07:45:33,filled,Range Breakout Buy
|
| 23 |
+
2024.01.24 08:18:30,26.0,XAUUSDc,sell,1.15 / 1.15,0.0,,,2024.01.24 08:18:30,filled,sl 2028.856
|
| 24 |
+
2024.01.25 07:33:36,27.0,XAUUSDc,buy,13.28 / 13.28,0.0,2017.272,2019.054,2024.01.25 07:33:36,filled,Range Breakout Buy
|
| 25 |
+
2024.01.25 07:34:30,28.0,XAUUSDc,sell,13.28 / 13.28,0.0,,,2024.01.25 07:34:30,filled,sl 2017.272
|
| 26 |
+
2024.01.26 00:42:38,29.0,XAUUSDc,buy,2.95 / 2.95,0.0,2020.32,2027.808,2024.01.26 00:42:38,filled,Range Breakout Buy
|
| 27 |
+
2024.01.26 07:16:30,30.0,XAUUSDc,sell,2.95 / 2.95,0.0,,,2024.01.26 07:16:30,filled,sl 2020.320
|
| 28 |
+
2024.01.30 00:39:34,31.0,XAUUSDc,buy,9.01 / 9.01,0.0,2032.772,2035.112,2024.01.30 00:39:34,filled,Range Breakout Buy
|
| 29 |
+
2024.01.30 01:04:30,32.0,XAUUSDc,sell,9.01 / 9.01,0.0,,,2024.01.30 01:04:30,filled,sl 2032.772
|
| 30 |
+
2024.01.31 00:03:32,33.0,XAUUSDc,buy,3.24 / 3.24,0.0,2036.658,2042.778,2024.01.31 00:03:32,filled,Range Breakout Buy
|
| 31 |
+
2024.01.31 00:42:30,34.0,XAUUSDc,sell,3.24 / 3.24,0.0,,,2024.01.31 00:42:30,filled,sl 2036.658
|
| 32 |
+
2024.02.01 00:33:33,35.0,XAUUSDc,buy,3.03 / 3.03,0.0,2041.173,2047.356,2024.02.01 00:33:33,filled,Range Breakout Buy
|
| 33 |
+
2024.02.01 00:50:30,36.0,XAUUSDc,sell,3.03 / 3.03,0.0,,,2024.02.01 00:50:30,filled,sl 2041.173
|
| 34 |
+
2024.02.02 00:30:36,37.0,XAUUSDc,buy,4.78 / 4.78,0.0,2055.7,2059.498,2024.02.02 00:30:36,filled,Range Breakout Buy
|
| 35 |
+
2024.02.02 00:53:30,38.0,XAUUSDc,sell,4.78 / 4.78,0.0,,,2024.02.02 00:53:30,filled,sl 2055.700
|
| 36 |
+
2024.02.05 00:03:33,39.0,XAUUSDc,sell,4.25 / 4.25,0.0,2038.379,2034.275,2024.02.05 00:03:33,filled,Range Breakout Sell
|
| 37 |
+
2024.02.05 00:04:30,40.0,XAUUSDc,buy,4.25 / 4.25,0.0,,,2024.02.05 00:04:30,filled,sl 2038.379
|
| 38 |
+
2024.02.06 00:06:34,41.0,XAUUSDc,buy,8.14 / 8.14,0.0,2025.284,2027.354,2024.02.06 00:06:34,filled,Range Breakout Buy
|
| 39 |
+
2024.02.06 00:10:30,42.0,XAUUSDc,sell,8.14 / 8.14,0.0,,,2024.02.06 00:10:30,filled,sl 2025.284
|
| 40 |
+
2024.02.08 00:03:43,43.0,XAUUSDc,buy,12.94 / 12.94,0.0,2036.461,2037.649,2024.02.08 00:03:43,filled,Range Breakout Buy
|
| 41 |
+
2024.02.08 01:02:30,44.0,XAUUSDc,sell,12.94 / 12.94,0.0,,,2024.02.08 01:02:30,filled,tp 2037.649
|
| 42 |
+
2024.02.09 00:36:34,45.0,XAUUSDc,sell,4.09 / 4.09,0.0,2033.744,2029.343,2024.02.09 00:36:34,filled,Range Breakout Sell
|
| 43 |
+
2024.02.09 00:37:30,46.0,XAUUSDc,buy,4.09 / 4.09,0.0,,,2024.02.09 00:37:30,filled,sl 2033.744
|
| 44 |
+
2024.02.12 08:21:42,47.0,XAUUSDc,buy,3.39 / 3.39,0.0,2025.941,2031.17,2024.02.12 08:21:42,filled,Range Breakout Buy
|
| 45 |
+
2024.02.12 08:35:30,48.0,XAUUSDc,sell,3.39 / 3.39,0.0,,,2024.02.12 08:35:30,filled,sl 2025.941
|
| 46 |
+
2024.02.14 00:27:41,50.0,XAUUSDc,buy,3.7 / 3.7,0.0,1992.27,1996.752,2024.02.14 00:27:41,filled,Range Breakout Buy
|
| 47 |
+
2024.02.14 00:51:30,51.0,XAUUSDc,sell,3.7 / 3.7,0.0,,,2024.02.14 00:51:30,filled,sl 1992.270
|
| 48 |
+
2024.02.16 01:36:35,52.0,XAUUSDc,buy,3.36 / 3.36,0.0,2003.979,2008.812,2024.02.16 01:36:35,filled,Range Breakout Buy
|
| 49 |
+
2024.02.16 01:40:30,53.0,XAUUSDc,sell,3.36 / 3.36,0.0,,,2024.02.16 01:40:30,filled,sl 2003.979
|
| 50 |
+
2024.02.19 00:27:37,54.0,XAUUSDc,buy,1.42 / 1.42,0.0,2016.745,2027.788,2024.02.19 00:27:37,filled,Range Breakout Buy
|
| 51 |
+
2024.02.19 00:38:30,55.0,XAUUSDc,sell,1.42 / 1.42,0.0,,,2024.02.19 00:38:30,filled,sl 2016.745
|
| 52 |
+
2024.02.20 00:12:38,56.0,XAUUSDc,sell,5.99 / 5.99,0.0,2015.796,2013.258,2024.02.20 00:12:38,filled,Range Breakout Sell
|
| 53 |
+
2024.02.20 00:17:30,57.0,XAUUSDc,buy,5.99 / 5.99,0.0,,,2024.02.20 00:17:30,filled,sl 2015.796
|
| 54 |
+
2024.02.21 00:03:33,58.0,XAUUSDc,sell,2.48 / 2.48,0.0,2023.6,2017.822,2024.02.21 00:03:33,filled,Range Breakout Sell
|
| 55 |
+
2024.02.21 00:05:30,59.0,XAUUSDc,buy,2.48 / 2.48,0.0,,,2024.02.21 00:05:30,filled,sl 2023.600
|
| 56 |
+
2024.02.23 00:27:30,60.0,XAUUSDc,buy,9.13 / 9.13,0.0,2025.604,2027.152,2024.02.23 00:27:30,filled,Range Breakout Buy
|
| 57 |
+
2024.02.23 00:34:30,61.0,XAUUSDc,sell,9.13 / 9.13,0.0,,,2024.02.23 00:34:30,filled,sl 2025.604
|
| 58 |
+
2024.02.26 00:03:33,62.0,XAUUSDc,sell,2.51 / 2.51,0.0,2033.596,2028.511,2024.02.26 00:03:33,filled,Range Breakout Sell
|
| 59 |
+
2024.02.26 00:06:30,63.0,XAUUSDc,buy,2.51 / 2.51,0.0,,,2024.02.26 00:06:30,filled,sl 2033.596
|
| 60 |
+
2024.02.27 00:03:40,64.0,XAUUSDc,buy,3.86 / 3.86,0.0,2031.823,2035.027,2024.02.27 00:03:40,filled,Range Breakout Buy
|
| 61 |
+
2024.02.27 00:05:30,65.0,XAUUSDc,sell,3.86 / 3.86,0.0,,,2024.02.27 00:05:30,filled,sl 2031.823
|
| 62 |
+
2024.03.04 07:45:38,67.0,XAUUSDc,buy,1.31 / 1.31,0.0,2085.692,2094.782,2024.03.04 07:45:38,filled,Range Breakout Buy
|
| 63 |
+
2024.03.04 08:18:30,68.0,XAUUSDc,sell,1.31 / 1.31,0.0,,,2024.03.04 08:18:30,filled,sl 2085.692
|
| 64 |
+
2024.03.05 01:18:36,69.0,XAUUSDc,sell,1.39 / 1.39,0.0,2114.143,2105.962,2024.03.05 01:18:36,filled,Range Breakout Sell
|
| 65 |
+
2024.03.05 04:10:30,70.0,XAUUSDc,buy,1.39 / 1.39,0.0,,,2024.03.05 04:10:30,filled,sl 2114.143
|
| 66 |
+
2024.03.06 07:06:35,71.0,XAUUSDc,buy,1.29 / 1.29,0.0,2127.835,2136.196,2024.03.06 07:06:35,filled,Range Breakout Buy
|
| 67 |
+
2024.03.06 08:00:30,72.0,XAUUSDc,sell,1.29 / 1.29,0.0,,,2024.03.06 08:00:30,filled,sl 2127.835
|
| 68 |
+
2024.03.07 01:15:34,73.0,XAUUSDc,sell,1.23 / 1.23,0.0,2146.742,2138.39,2024.03.07 01:15:34,filled,Range Breakout Sell
|
| 69 |
+
2024.03.07 01:38:30,74.0,XAUUSDc,buy,1.23 / 1.23,0.0,,,2024.03.07 01:38:30,filled,sl 2146.742
|
| 70 |
+
2024.03.08 00:03:39,75.0,XAUUSDc,buy,5.59 / 5.59,0.0,2161.267,2163.076,2024.03.08 00:03:39,filled,Range Breakout Buy
|
| 71 |
+
2024.03.08 00:04:30,76.0,XAUUSDc,sell,5.59 / 5.59,0.0,,,2024.03.08 00:04:30,filled,sl 2161.267
|
| 72 |
+
2024.03.11 00:39:47,77.0,XAUUSDc,buy,1.64 / 1.64,0.0,2183.876,2189.168,2024.03.11 00:39:47,filled,Range Breakout Buy
|
| 73 |
+
2024.03.11 01:04:30,78.0,XAUUSDc,sell,1.64 / 1.64,0.0,,,2024.03.11 01:04:30,filled,sl 2183.876
|
| 74 |
+
2024.03.12 00:57:38,79.0,XAUUSDc,sell,2.23 / 2.23,0.0,2180.771,2177.135,2024.03.12 00:57:38,filled,Range Breakout Sell
|
| 75 |
+
2024.03.12 00:58:30,80.0,XAUUSDc,buy,2.23 / 2.23,0.0,,,2024.03.12 00:58:30,filled,sl 2180.771
|
| 76 |
+
2024.03.13 02:48:32,81.0,XAUUSDc,buy,1.79 / 1.79,0.0,2160.743,2165.153,2024.03.13 02:48:32,filled,Range Breakout Buy
|
| 77 |
+
2024.03.13 02:55:30,82.0,XAUUSDc,sell,1.79 / 1.79,0.0,,,2024.03.13 02:55:30,filled,sl 2160.743
|
| 78 |
+
2024.03.14 00:57:30,83.0,XAUUSDc,buy,1.43 / 1.43,0.0,2175.898,2181.055,2024.03.14 00:57:30,filled,Range Breakout Buy
|
| 79 |
+
2024.03.14 01:11:30,84.0,XAUUSDc,sell,1.43 / 1.43,0.0,,,2024.03.14 01:11:30,filled,sl 2175.898
|
| 80 |
+
2024.03.15 00:42:34,85.0,XAUUSDc,buy,1.36 / 1.36,0.0,2161.697,2166.719,2024.03.15 00:42:34,filled,Range Breakout Buy
|
| 81 |
+
2024.03.15 05:43:30,86.0,XAUUSDc,sell,1.36 / 1.36,0.0,,,2024.03.15 05:43:30,filled,tp 2166.719
|
| 82 |
+
2024.03.18 01:09:38,87.0,XAUUSDc,sell,1.9 / 1.9,0.0,2154.376,2149.876,2024.03.18 01:09:38,filled,Range Breakout Sell
|
| 83 |
+
2024.03.18 02:45:30,88.0,XAUUSDc,buy,1.9 / 1.9,0.0,,,2024.03.18 02:45:30,filled,tp 2149.876
|
| 84 |
+
2024.03.19 00:03:31,89.0,XAUUSDc,buy,1.33 / 1.33,0.0,2161.781,2170.079,2024.03.19 00:03:31,filled,Range Breakout Buy
|
| 85 |
+
2024.03.19 00:10:30,90.0,XAUUSDc,sell,1.33 / 1.33,0.0,,,2024.03.19 00:10:30,filled,sl 2161.781
|
| 86 |
+
2024.03.20 01:24:36,91.0,XAUUSDc,buy,1.47 / 1.47,0.0,2158.904,2166.203,2024.03.20 01:24:36,filled,Range Breakout Buy
|
| 87 |
+
2024.03.20 01:33:30,92.0,XAUUSDc,sell,1.47 / 1.47,0.0,,,2024.03.20 01:33:30,filled,sl 2158.904
|
| 88 |
+
2024.03.21 14:06:35,93.0,XAUUSDc,sell,0.43 / 0.43,0.0,2188.094,2164.451,2024.03.21 14:06:35,filled,Range Breakout Sell
|
| 89 |
+
2024.03.22 00:15:37,94.0,XAUUSDc,buy,4.41 / 4.41,0.0,2182.308,2184.621,2024.03.22 00:15:37,filled,Range Breakout Buy
|
| 90 |
+
2024.03.22 00:34:30,95.0,XAUUSDc,sell,4.41 / 4.41,0.0,,,2024.03.22 00:34:30,filled,tp 2184.621
|
| 91 |
+
2024.03.22 07:21:30,96.0,XAUUSDc,buy,0.43 / 0.43,0.0,,,2024.03.22 07:21:30,filled,tp 2164.451
|
| 92 |
+
2024.03.25 00:03:33,97.0,XAUUSDc,buy,2.46 / 2.46,0.0,2168.473,2174.323,2024.03.25 00:03:33,filled,Range Breakout Buy
|
| 93 |
+
2024.03.25 00:09:30,98.0,XAUUSDc,sell,2.46 / 2.46,0.0,,,2024.03.25 00:09:30,filled,sl 2168.473
|
| 94 |
+
2024.03.26 00:03:35,99.0,XAUUSDc,buy,2.84 / 2.84,0.0,2172.704,2177.573,2024.03.26 00:03:35,filled,Range Breakout Buy
|
| 95 |
+
2024.03.26 00:07:30,100.0,XAUUSDc,sell,2.84 / 2.84,0.0,,,2024.03.26 00:07:30,filled,sl 2172.704
|
| 96 |
+
2024.03.28 00:03:32,101.0,XAUUSDc,sell,0.88 / 0.88,0.0,2190.297,2175.195,2024.03.28 00:03:32,filled,Range Breakout Sell
|
| 97 |
+
2024.03.28 00:32:30,102.0,XAUUSDc,buy,0.88 / 0.88,0.0,,,2024.03.28 00:32:30,filled,sl 2190.297
|
| 98 |
+
2024.04.01 00:09:37,103.0,XAUUSDc,buy,0.64 / 0.64,0.0,2245.926,2265.744,2024.04.01 00:09:37,filled,Range Breakout Buy
|
| 99 |
+
2024.04.01 12:05:30,104.0,XAUUSDc,sell,0.64 / 0.64,0.0,,,2024.04.01 12:05:30,filled,sl 2245.926
|
| 100 |
+
2024.04.02 04:45:32,105.0,XAUUSDc,buy,0.88 / 0.88,0.0,2255.036,2268.806,2024.04.02 04:45:32,filled,Range Breakout Buy
|
| 101 |
+
2024.04.02 05:16:30,106.0,XAUUSDc,sell,0.88 / 0.88,0.0,,,2024.04.02 05:16:30,filled,sl 2255.036
|
| 102 |
+
2024.04.03 01:12:35,107.0,XAUUSDc,sell,1.47 / 1.47,0.0,2278.85,2270.984,2024.04.03 01:12:35,filled,Range Breakout Sell
|
| 103 |
+
2024.04.03 01:16:30,108.0,XAUUSDc,buy,1.47 / 1.47,0.0,,,2024.04.03 01:16:30,filled,sl 2278.850
|
| 104 |
+
2024.04.04 00:57:35,109.0,XAUUSDc,buy,0.62 / 0.62,0.0,2300.351,2318.162,2024.04.04 00:57:35,filled,Range Breakout Buy
|
| 105 |
+
2024.04.04 01:05:30,110.0,XAUUSDc,sell,0.62 / 0.62,0.0,,,2024.04.04 01:05:30,filled,sl 2300.351
|
| 106 |
+
2024.04.05 00:15:38,111.0,XAUUSDc,sell,1.44 / 1.44,0.0,2288.853,2281.401,2024.04.05 00:15:38,filled,Range Breakout Sell
|
| 107 |
+
2024.04.05 00:16:30,112.0,XAUUSDc,buy,1.44 / 1.44,0.0,,,2024.04.05 00:16:30,filled,sl 2288.853
|
| 108 |
+
2024.04.08 01:03:33,113.0,XAUUSDc,sell,0.45 / 0.45,0.0,2306.23,2283.055,2024.04.08 01:03:33,filled,Range Breakout Sell
|
| 109 |
+
2024.04.08 01:07:30,114.0,XAUUSDc,buy,0.45 / 0.45,0.0,,,2024.04.08 01:07:30,filled,sl 2306.230
|
| 110 |
+
2024.04.10 01:03:35,115.0,XAUUSDc,sell,0.49 / 0.49,0.0,2350.958,2330.726,2024.04.10 01:03:35,filled,Range Breakout Sell
|
| 111 |
+
2024.04.10 02:31:30,116.0,XAUUSDc,buy,0.49 / 0.49,0.0,,,2024.04.10 02:31:30,filled,sl 2350.958
|
| 112 |
+
2024.04.11 01:09:32,117.0,XAUUSDc,buy,1.41 / 1.41,0.0,2337.475,2344.504,2024.04.11 01:09:32,filled,Range Breakout Buy
|
| 113 |
+
2024.04.11 02:49:30,118.0,XAUUSDc,sell,1.41 / 1.41,0.0,,,2024.04.11 02:49:30,filled,tp 2344.504
|
| 114 |
+
2024.04.12 01:03:05,119.0,XAUUSDc,buy,0.24 / 0.24,0.0,2378.667,2426.799,2024.04.12 01:03:05,filled,Range Breakout Buy
|
| 115 |
+
2024.04.12 14:58:27,120.0,XAUUSDc,sell,0.24 / 0.24,0.0,,,2024.04.12 14:58:27,filled,tp 2426.799
|
| 116 |
+
2024.04.16 15:09:04,121.0,XAUUSDc,buy,0.31 / 0.31,0.0,2387.495,2433.674,2024.04.16 15:09:04,filled,Range Breakout Buy
|
| 117 |
+
2024.04.16 15:12:36,122.0,XAUUSDc,sell,0.31 / 0.31,0.0,,,2024.04.16 15:12:36,filled,sl 2387.495
|
| 118 |
+
2024.04.17 00:03:02,123.0,XAUUSDc,sell,0.71 / 0.71,0.0,2383.399,2363.626,2024.04.17 00:03:02,filled,Range Breakout Sell
|
| 119 |
+
2024.04.17 00:19:38,124.0,XAUUSDc,buy,0.71 / 0.71,0.0,,,2024.04.17 00:19:38,filled,sl 2383.399
|
| 120 |
+
2024.04.18 00:03:05,125.0,XAUUSDc,buy,0.84 / 0.84,0.0,2367.837,2383.956,2024.04.18 00:03:05,filled,Range Breakout Buy
|
| 121 |
+
2024.04.18 00:09:30,126.0,XAUUSDc,sell,0.84 / 0.84,0.0,,,2024.04.18 00:09:30,filled,sl 2367.837
|
| 122 |
+
2024.04.19 00:06:07,127.0,XAUUSDc,sell,0.79 / 0.79,0.0,2379.029,2362.37,2024.04.19 00:06:07,filled,Range Breakout Sell
|
| 123 |
+
2024.04.19 00:58:30,128.0,XAUUSDc,buy,0.79 / 0.79,0.0,,,2024.04.19 00:58:30,filled,sl 2379.029
|
| 124 |
+
2024.04.23 01:09:02,129.0,XAUUSDc,buy,1.11 / 1.11,0.0,2332.673,2344.193,2024.04.23 01:09:02,filled,Range Breakout Buy
|
| 125 |
+
2024.04.23 01:21:41,130.0,XAUUSDc,sell,1.11 / 1.11,0.0,,,2024.04.23 01:21:41,filled,sl 2332.673
|
| 126 |
+
2024.04.24 03:21:00,131.0,XAUUSDc,buy,0.82 / 0.82,0.0,2323.504,2338.444,2024.04.24 03:21:00,filled,Range Breakout Buy
|
| 127 |
+
2024.04.24 07:05:03,132.0,XAUUSDc,sell,0.82 / 0.82,0.0,,,2024.04.24 07:05:03,filled,sl 2323.504
|
| 128 |
+
2024.04.25 03:12:01,133.0,XAUUSDc,sell,0.23 / 0.23,0.0,2318.705,2268.818,2024.04.25 03:12:01,filled,Range Breakout Sell
|
| 129 |
+
2024.04.25 05:36:37,134.0,XAUUSDc,buy,0.23 / 0.23,0.0,,,2024.04.25 05:36:37,filled,sl 2318.705
|
| 130 |
+
2024.04.26 00:18:03,135.0,XAUUSDc,sell,1.28 / 1.28,0.0,2330.814,2321.823,2024.04.26 00:18:03,filled,Range Breakout Sell
|
| 131 |
+
2024.04.26 01:32:14,136.0,XAUUSDc,buy,1.28 / 1.28,0.0,,,2024.04.26 01:32:14,filled,sl 2330.814
|
| 132 |
+
2024.04.29 00:45:04,137.0,XAUUSDc,sell,1.55 / 1.55,0.0,2332.994,2325.767,2024.04.29 00:45:04,filled,Range Breakout Sell
|
| 133 |
+
2024.04.29 01:00:37,138.0,XAUUSDc,buy,1.55 / 1.55,0.0,,,2024.04.29 01:00:37,filled,tp 2325.767
|
| 134 |
+
2024.04.30 00:03:00,139.0,XAUUSDc,sell,1.15 / 1.15,0.0,2333.218,2321.221,2024.04.30 00:03:00,filled,Range Breakout Sell
|
| 135 |
+
2024.04.30 00:06:36,140.0,XAUUSDc,buy,1.15 / 1.15,0.0,,,2024.04.30 00:06:36,filled,sl 2333.218
|
| 136 |
+
2024.05.01 00:51:16,141.0,XAUUSDc,sell,1.15 / 1.15,0.0,2288.222,2276.639,2024.05.01 00:51:16,filled,Range Breakout Sell
|
| 137 |
+
2024.05.01 00:52:29,142.0,XAUUSDc,buy,1.15 / 1.15,0.0,,,2024.05.01 00:52:29,filled,sl 2288.222
|
| 138 |
+
2024.05.02 00:06:02,143.0,XAUUSDc,buy,1.3 / 1.3,0.0,2324.289,2334.009,2024.05.02 00:06:02,filled,Range Breakout Buy
|
| 139 |
+
2024.05.02 00:06:35,144.0,XAUUSDc,sell,1.3 / 1.3,0.0,,,2024.05.02 00:06:35,filled,sl 2324.289
|
| 140 |
+
2024.05.03 01:06:00,145.0,XAUUSDc,buy,1.02 / 1.02,0.0,2304.217,2316.052,2024.05.03 01:06:00,filled,Range Breakout Buy
|
| 141 |
+
2024.05.03 01:12:25,146.0,XAUUSDc,sell,1.02 / 1.02,0.0,,,2024.05.03 01:12:25,filled,sl 2304.217
|
| 142 |
+
2024.05.06 00:18:02,147.0,XAUUSDc,sell,0.52 / 0.52,0.0,2294.96,2272.667,2024.05.06 00:18:02,filled,Range Breakout Sell
|
| 143 |
+
2024.05.06 00:38:34,148.0,XAUUSDc,buy,0.52 / 0.52,0.0,,,2024.05.06 00:38:34,filled,sl 2294.960
|
| 144 |
+
2024.05.07 02:12:05,149.0,XAUUSDc,sell,0.9 / 0.9,0.0,2323.354,2310.808,2024.05.07 02:12:05,filled,Range Breakout Sell
|
| 145 |
+
2024.05.07 02:29:25,150.0,XAUUSDc,buy,0.9 / 0.9,0.0,,,2024.05.07 02:29:25,filled,sl 2323.354
|
| 146 |
+
2024.05.08 00:45:00,151.0,XAUUSDc,sell,2.39 / 2.39,0.0,2314.326,2309.7,2024.05.08 00:45:00,filled,Range Breakout Sell
|
| 147 |
+
2024.05.08 00:45:29,152.0,XAUUSDc,buy,2.39 / 2.39,0.0,,,2024.05.08 00:45:29,filled,sl 2314.326
|
| 148 |
+
2024.05.10 00:30:07,153.0,XAUUSDc,buy,1.04 / 1.04,0.0,2347.421,2357.672,2024.05.10 00:30:07,filled,Range Breakout Buy
|
| 149 |
+
2024.05.10 00:36:37,154.0,XAUUSDc,sell,1.04 / 1.04,0.0,,,2024.05.10 00:36:37,filled,sl 2347.421
|
| 150 |
+
2024.05.13 01:15:04,155.0,XAUUSDc,sell,0.51 / 0.51,0.0,2361.76,2341.483,2024.05.13 01:15:04,filled,Range Breakout Sell
|
| 151 |
+
2024.05.13 09:26:04,156.0,XAUUSDc,buy,0.51 / 0.51,0.0,,,2024.05.13 09:26:04,filled,tp 2341.483
|
| 152 |
+
2024.05.14 00:18:00,157.0,XAUUSDc,buy,1.75 / 1.75,0.0,2338.715,2346.059,2024.05.14 00:18:00,filled,Range Breakout Buy
|
| 153 |
+
2024.05.14 00:25:13,158.0,XAUUSDc,sell,1.75 / 1.75,0.0,,,2024.05.14 00:25:13,filled,sl 2338.715
|
| 154 |
+
2024.05.15 01:33:02,159.0,XAUUSDc,buy,0.86 / 0.86,0.0,2356.274,2370.566,2024.05.15 01:33:02,filled,Range Breakout Buy
|
| 155 |
+
2024.05.15 04:53:37,160.0,XAUUSDc,sell,0.86 / 0.86,0.0,,,2024.05.15 04:53:37,filled,sl 2356.274
|
| 156 |
+
2024.05.16 00:12:06,161.0,XAUUSDc,buy,0.78 / 0.78,0.0,2390.394,2405.622,2024.05.16 00:12:06,filled,Range Breakout Buy
|
| 157 |
+
2024.05.16 01:55:40,162.0,XAUUSDc,sell,0.78 / 0.78,0.0,,,2024.05.16 01:55:40,filled,sl 2390.394
|
| 158 |
+
2024.05.20 00:42:06,163.0,XAUUSDc,buy,0.56 / 0.56,0.0,2422.957,2443.63,2024.05.20 00:42:06,filled,Range Breakout Buy
|
| 159 |
+
2024.05.20 05:34:19,164.0,XAUUSDc,sell,0.56 / 0.56,0.0,,,2024.05.20 05:34:19,filled,tp 2443.630
|
| 160 |
+
2024.05.22 00:06:01,165.0,XAUUSDc,buy,3.25 / 3.25,0.0,2421.866,2426.285,2024.05.22 00:06:01,filled,Range Breakout Buy
|
| 161 |
+
2024.05.22 00:14:33,166.0,XAUUSDc,sell,3.25 / 3.25,0.0,,,2024.05.22 00:14:33,filled,sl 2421.866
|
| 162 |
+
2024.05.23 01:12:04,167.0,XAUUSDc,sell,0.31 / 0.31,0.0,2381.451,2337.603,2024.05.23 01:12:04,filled,Range Breakout Sell
|
| 163 |
+
2024.05.23 17:28:27,168.0,XAUUSDc,buy,0.31 / 0.31,0.0,,,2024.05.23 17:28:27,filled,tp 2337.603
|
| 164 |
+
2024.05.27 02:27:04,169.0,XAUUSDc,buy,1.37 / 1.37,0.0,2339.473,2351.902,2024.05.27 02:27:04,filled,Range Breakout Buy
|
| 165 |
+
2024.05.27 02:30:36,170.0,XAUUSDc,sell,1.37 / 1.37,0.0,,,2024.05.27 02:30:36,filled,sl 2339.473
|
| 166 |
+
2024.05.28 01:36:00,171.0,XAUUSDc,buy,1.4 / 1.4,0.0,2352.721,2364.457,2024.05.28 01:36:00,filled,Range Breakout Buy
|
| 167 |
+
2024.05.28 02:32:24,172.0,XAUUSDc,sell,1.4 / 1.4,0.0,,,2024.05.28 02:32:24,filled,sl 2352.721
|
| 168 |
+
2024.05.29 00:45:14,173.0,XAUUSDc,sell,2.72 / 2.72,0.0,2358.248,2352.407,2024.05.29 00:45:14,filled,Range Breakout Sell
|
| 169 |
+
2024.05.29 00:48:04,174.0,XAUUSDc,buy,2.72 / 2.72,0.0,,,2024.05.29 00:48:04,filled,sl 2358.248
|
| 170 |
+
2024.05.30 00:03:03,175.0,XAUUSDc,sell,0.77 / 0.77,0.0,2338.378,2318.605,2024.05.30 00:03:03,filled,Range Breakout Sell
|
| 171 |
+
2024.05.30 01:12:15,176.0,XAUUSDc,buy,0.77 / 0.77,0.0,,,2024.05.30 01:12:15,filled,sl 2338.378
|
| 172 |
+
2024.05.31 00:48:02,177.0,XAUUSDc,buy,1.03 / 1.03,0.0,2344.944,2359.317,2024.05.31 00:48:02,filled,Range Breakout Buy
|
| 173 |
+
2024.05.31 01:09:36,178.0,XAUUSDc,sell,1.03 / 1.03,0.0,,,2024.05.31 01:09:36,filled,sl 2344.944
|
| 174 |
+
2024.06.04 01:09:05,179.0,XAUUSDc,sell,1.61 / 1.61,0.0,2350.571,2341.679,2024.06.04 01:09:05,filled,Range Breakout Sell
|
| 175 |
+
2024.06.04 06:04:30,180.0,XAUUSDc,buy,1.61 / 1.61,0.0,,,2024.06.04 06:04:30,filled,sl 2350.571
|
| 176 |
+
2024.06.05 01:03:04,181.0,XAUUSDc,sell,0.98 / 0.98,0.0,2328.704,2314.574,2024.06.05 01:03:04,filled,Range Breakout Sell
|
| 177 |
+
2024.06.05 01:32:37,182.0,XAUUSDc,buy,0.98 / 0.98,0.0,,,2024.06.05 01:32:37,filled,sl 2328.704
|
| 178 |
+
2024.06.06 01:03:02,183.0,XAUUSDc,buy,0.8 / 0.8,0.0,2355.546,2372.268,2024.06.06 01:03:02,filled,Range Breakout Buy
|
| 179 |
+
2024.06.06 01:31:36,184.0,XAUUSDc,sell,0.8 / 0.8,0.0,,,2024.06.06 01:31:36,filled,tp 2372.268
|
| 180 |
+
2024.06.07 01:12:06,185.0,XAUUSDc,sell,0.78 / 0.78,0.0,2377.237,2355.907,2024.06.07 01:12:06,filled,Range Breakout Sell
|
| 181 |
+
2024.06.07 02:51:38,186.0,XAUUSDc,buy,0.78 / 0.78,0.0,,,2024.06.07 02:51:38,filled,sl 2377.237
|
| 182 |
+
2024.06.11 01:03:07,187.0,XAUUSDc,sell,0.26 / 0.26,0.0,2310.812,2249.414,2024.06.11 01:03:07,filled,Range Breakout Sell
|
| 183 |
+
2024.06.11 12:12:02,188.0,XAUUSDc,buy,0.26 / 0.26,0.0,,,2024.06.11 12:12:02,filled,sl 2310.812
|
| 184 |
+
2024.06.12 00:54:01,189.0,XAUUSDc,sell,1.41 / 1.41,0.0,2314.782,2303.721,2024.06.12 00:54:01,filled,Range Breakout Sell
|
| 185 |
+
2024.06.12 01:54:38,190.0,XAUUSDc,buy,1.41 / 1.41,0.0,,,2024.06.12 01:54:38,filled,sl 2314.782
|
| 186 |
+
2024.06.13 00:03:05,191.0,XAUUSDc,sell,1.38 / 1.38,0.0,2320.774,2309.821,2024.06.13 00:03:05,filled,Range Breakout Sell
|
| 187 |
+
2024.06.13 00:24:31,192.0,XAUUSDc,buy,1.38 / 1.38,0.0,,,2024.06.13 00:24:31,filled,sl 2320.774
|
| 188 |
+
2024.06.14 00:15:02,193.0,XAUUSDc,sell,1.87 / 1.87,0.0,2302.526,2294.705,2024.06.14 00:15:02,filled,Range Breakout Sell
|
| 189 |
+
2024.06.14 00:19:25,194.0,XAUUSDc,buy,1.87 / 1.87,0.0,,,2024.06.14 00:19:25,filled,sl 2302.526
|
| 190 |
+
2024.06.17 00:03:01,195.0,XAUUSDc,sell,0.68 / 0.68,0.0,2328.918,2308.092,2024.06.17 00:03:01,filled,Range Breakout Sell
|
| 191 |
+
2024.06.17 01:20:39,196.0,XAUUSDc,buy,0.68 / 0.68,0.0,,,2024.06.17 01:20:39,filled,sl 2328.918
|
| 192 |
+
2024.06.18 00:03:08,197.0,XAUUSDc,buy,1.03 / 1.03,0.0,2320.634,2333.9,2024.06.18 00:03:08,filled,Range Breakout Buy
|
| 193 |
+
2024.06.18 01:17:59,198.0,XAUUSDc,sell,1.03 / 1.03,0.0,,,2024.06.18 01:17:59,filled,sl 2320.634
|
| 194 |
+
2024.06.19 01:48:07,199.0,XAUUSDc,buy,1.91 / 1.91,0.0,2329.483,2336.386,2024.06.19 01:48:07,filled,Range Breakout Buy
|
| 195 |
+
2024.06.19 02:06:22,200.0,XAUUSDc,sell,1.91 / 1.91,0.0,,,2024.06.19 02:06:22,filled,sl 2329.483
|
| 196 |
+
2024.06.20 01:03:05,201.0,XAUUSDc,buy,0.91 / 0.91,0.0,2329.667,2343.518,2024.06.20 01:03:05,filled,Range Breakout Buy
|
| 197 |
+
2024.06.20 05:36:23,202.0,XAUUSDc,sell,0.91 / 0.91,0.0,,,2024.06.20 05:36:23,filled,tp 2343.518
|
| 198 |
+
2024.06.21 00:03:09,203.0,XAUUSDc,buy,2.48 / 2.48,0.0,2360.764,2367.073,2024.06.21 00:03:09,filled,Range Breakout Buy
|
| 199 |
+
2024.06.21 01:15:27,204.0,XAUUSDc,sell,2.48 / 2.48,0.0,,,2024.06.21 01:15:27,filled,sl 2360.764
|
| 200 |
+
2024.06.24 01:09:06,205.0,XAUUSDc,buy,0.8 / 0.8,0.0,2321.142,2340.069,2024.06.24 01:09:06,filled,Range Breakout Buy
|
| 201 |
+
2024.06.24 02:11:39,206.0,XAUUSDc,sell,0.8 / 0.8,0.0,,,2024.06.24 02:11:39,filled,sl 2321.142
|
| 202 |
+
2024.06.25 10:09:06,207.0,XAUUSDc,buy,1.14 / 1.14,0.0,2333.2,2346.07,2024.06.25 10:09:06,filled,Range Breakout Buy
|
| 203 |
+
2024.06.25 11:08:36,208.0,XAUUSDc,sell,1.14 / 1.14,0.0,,,2024.06.25 11:08:36,filled,sl 2333.200
|
| 204 |
+
2024.06.26 00:15:00,209.0,XAUUSDc,buy,0.54 / 0.54,0.0,2318.718,2345.016,2024.06.26 00:15:00,filled,Range Breakout Buy
|
| 205 |
+
2024.06.26 00:36:03,210.0,XAUUSDc,sell,0.54 / 0.54,0.0,,,2024.06.26 00:36:03,filled,sl 2318.718
|
| 206 |
+
2024.06.27 00:15:02,211.0,XAUUSDc,buy,1.56 / 1.56,0.0,2298.656,2307.44,2024.06.27 00:15:02,filled,Range Breakout Buy
|
| 207 |
+
2024.06.27 00:15:40,212.0,XAUUSDc,sell,1.56 / 1.56,0.0,,,2024.06.27 00:15:40,filled,sl 2298.656
|
| 208 |
+
2024.06.28 00:09:04,213.0,XAUUSDc,buy,2.1 / 2.1,0.0,2327.321,2333.621,2024.06.28 00:09:04,filled,Range Breakout Buy
|
| 209 |
+
2024.06.28 00:09:36,214.0,XAUUSDc,sell,2.1 / 2.1,0.0,,,2024.06.28 00:09:36,filled,sl 2327.321
|
| 210 |
+
2024.07.02 00:03:06,215.0,XAUUSDc,buy,0.9 / 0.9,0.0,2332.087,2346.037,2024.07.02 00:03:06,filled,Range Breakout Buy
|
| 211 |
+
2024.07.02 00:23:37,216.0,XAUUSDc,sell,0.9 / 0.9,0.0,,,2024.07.02 00:23:37,filled,sl 2332.087
|
| 212 |
+
2024.07.03 00:12:01,217.0,XAUUSDc,buy,3.04 / 3.04,0.0,2331.122,2335.136,2024.07.03 00:12:01,filled,Range Breakout Buy
|
| 213 |
+
2024.07.03 00:17:23,218.0,XAUUSDc,sell,3.04 / 3.04,0.0,,,2024.07.03 00:17:23,filled,sl 2331.122
|
| 214 |
+
2024.07.04 01:06:07,219.0,XAUUSDc,buy,1.56 / 1.56,0.0,2358.852,2366.313,2024.07.04 01:06:07,filled,Range Breakout Buy
|
| 215 |
+
2024.07.04 01:14:40,220.0,XAUUSDc,sell,1.56 / 1.56,0.0,,,2024.07.04 01:14:40,filled,sl 2358.852
|
| 216 |
+
2024.07.05 00:33:08,221.0,XAUUSDc,buy,0.98 / 0.98,0.0,2356.857,2368.323,2024.07.05 00:33:08,filled,Range Breakout Buy
|
| 217 |
+
2024.07.05 12:16:35,222.0,XAUUSDc,sell,0.98 / 0.98,0.0,,,2024.07.05 12:16:35,filled,tp 2368.323
|
| 218 |
+
2024.07.09 00:03:05,223.0,XAUUSDc,buy,1.97 / 1.97,0.0,2361.74,2368.787,2024.07.09 00:03:05,filled,Range Breakout Buy
|
| 219 |
+
2024.07.09 00:08:00,224.0,XAUUSDc,sell,1.97 / 1.97,0.0,,,2024.07.09 00:08:00,filled,sl 2361.740
|
| 220 |
+
2024.07.15 01:15:07,225.0,XAUUSDc,sell,1.02 / 1.02,0.0,2406.651,2393.628,2024.07.15 01:15:07,filled,Range Breakout Sell
|
| 221 |
+
2024.07.15 01:18:14,226.0,XAUUSDc,buy,1.02 / 1.02,0.0,,,2024.07.15 01:18:14,filled,sl 2406.651
|
| 222 |
+
2024.07.17 00:42:04,227.0,XAUUSDc,buy,0.45 / 0.45,0.0,2468.561,2497.091,2024.07.17 00:42:04,filled,Range Breakout Buy
|
| 223 |
+
2024.07.17 00:59:40,228.0,XAUUSDc,sell,0.45 / 0.45,0.0,,,2024.07.17 00:59:40,filled,sl 2468.561
|
| 224 |
+
2024.07.18 00:09:01,229.0,XAUUSDc,sell,1.46 / 1.46,0.0,2458.864,2450.305,2024.07.18 00:09:01,filled,Range Breakout Sell
|
| 225 |
+
2024.07.18 00:11:17,230.0,XAUUSDc,buy,1.46 / 1.46,0.0,,,2024.07.18 00:11:17,filled,sl 2458.864
|
| 226 |
+
2024.07.19 00:03:00,231.0,XAUUSDc,sell,0.31 / 0.31,0.0,2441.343,2402.553,2024.07.19 00:03:00,filled,Range Breakout Sell
|
| 227 |
+
2024.07.19 12:47:39,232.0,XAUUSDc,buy,0.31 / 0.31,0.0,,,2024.07.19 12:47:39,filled,tp 2402.553
|
| 228 |
+
2024.07.23 00:33:04,233.0,XAUUSDc,buy,2.09 / 2.09,0.0,2397.253,2404.444,2024.07.23 00:33:04,filled,Range Breakout Buy
|
| 229 |
+
2024.07.23 03:06:28,234.0,XAUUSDc,sell,2.09 / 2.09,0.0,,,2024.07.23 03:06:28,filled,sl 2397.253
|
| 230 |
+
2024.07.26 01:03:00,235.0,XAUUSDc,sell,0.72 / 0.72,0.0,2362.726,2342.584,2024.07.26 01:03:00,filled,Range Breakout Sell
|
| 231 |
+
2024.07.26 01:17:14,236.0,XAUUSDc,buy,0.72 / 0.72,0.0,,,2024.07.26 01:17:14,filled,sl 2362.726
|
| 232 |
+
2024.07.29 08:30:00,237.0,XAUUSDc,sell,1.17 / 1.17,0.0,2389.127,2377.112,2024.07.29 08:30:00,filled,Range Breakout Sell
|
| 233 |
+
2024.07.29 08:39:37,238.0,XAUUSDc,buy,1.17 / 1.17,0.0,,,2024.07.29 08:39:37,filled,sl 2389.127
|
| 234 |
+
2024.07.30 03:51:06,239.0,XAUUSDc,buy,4.26 / 4.26,0.0,2384.676,2387.88,2024.07.30 03:51:06,filled,Range Breakout Buy
|
| 235 |
+
2024.07.30 04:31:26,240.0,XAUUSDc,sell,4.26 / 4.26,0.0,,,2024.07.30 04:31:26,filled,tp 2387.880
|
| 236 |
+
2024.08.01 02:45:07,241.0,XAUUSDc,sell,0.93 / 0.93,0.0,2445.957,2428.029,2024.08.01 02:45:07,filled,Range Breakout Sell
|
| 237 |
+
2024.08.01 04:29:57,242.0,XAUUSDc,buy,0.93 / 0.93,0.0,,,2024.08.01 04:29:57,filled,sl 2445.957
|
| 238 |
+
2024.08.02 01:15:08,243.0,XAUUSDc,sell,0.2 / 0.2,0.0,2446.837,2365.549,2024.08.02 01:15:08,filled,Range Breakout Sell
|
| 239 |
+
2024.08.02 01:59:04,244.0,XAUUSDc,buy,0.2 / 0.2,0.0,,,2024.08.02 01:59:04,filled,sl 2446.837
|
| 240 |
+
2024.08.05 00:03:05,245.0,XAUUSDc,sell,0.53 / 0.53,0.0,2440.984,2411.635,2024.08.05 00:03:05,filled,Range Breakout Sell
|
| 241 |
+
2024.08.05 01:42:02,246.0,XAUUSDc,buy,0.53 / 0.53,0.0,,,2024.08.05 01:42:02,filled,sl 2440.984
|
| 242 |
+
2024.08.06 05:48:08,247.0,XAUUSDc,sell,0.81 / 0.81,0.0,2405.912,2387.192,2024.08.06 05:48:08,filled,Range Breakout Sell
|
| 243 |
+
2024.08.06 06:26:04,248.0,XAUUSDc,buy,0.81 / 0.81,0.0,,,2024.08.06 06:26:04,filled,sl 2405.912
|
| 244 |
+
2024.08.07 00:09:12,249.0,XAUUSDc,sell,0.54 / 0.54,0.0,2384.795,2357.633,2024.08.07 00:09:12,filled,Range Breakout Sell
|
| 245 |
+
2024.08.07 00:30:34,250.0,XAUUSDc,buy,0.54 / 0.54,0.0,,,2024.08.07 00:30:34,filled,sl 2384.795
|
| 246 |
+
2024.08.15 00:03:01,251.0,XAUUSDc,buy,8.35 / 8.35,0.0,2449.377,2451.096,2024.08.15 00:03:01,filled,Range Breakout Buy
|
| 247 |
+
2024.08.15 00:05:17,252.0,XAUUSDc,sell,8.35 / 8.35,0.0,,,2024.08.15 00:05:17,filled,sl 2449.377
|
| 248 |
+
2024.08.21 01:12:10,253.0,XAUUSDc,buy,1.93 / 1.93,0.0,2515.567,2522.587,2024.08.21 01:12:10,filled,Range Breakout Buy
|
| 249 |
+
2024.08.21 01:12:29,254.0,XAUUSDc,sell,1.93 / 1.93,0.0,,,2024.08.21 01:12:29,filled,sl 2515.567
|
| 250 |
+
2024.08.26 01:42:02,255.0,XAUUSDc,sell,0.95 / 0.95,0.0,2512.301,2498.612,2024.08.26 01:42:02,filled,Range Breakout Sell
|
| 251 |
+
2024.08.26 01:46:28,256.0,XAUUSDc,buy,0.95 / 0.95,0.0,,,2024.08.26 01:46:28,filled,sl 2512.301
|
| 252 |
+
2024.08.29 00:03:18,257.0,XAUUSDc,buy,1.15 / 1.15,0.0,2507.967,2518.875,2024.08.29 00:03:18,filled,Range Breakout Buy
|
| 253 |
+
2024.08.29 05:53:39,258.0,XAUUSDc,sell,1.15 / 1.15,0.0,,,2024.08.29 05:53:39,filled,tp 2518.875
|
| 254 |
+
2024.08.30 00:03:08,259.0,XAUUSDc,sell,1.36 / 1.36,0.0,2519.687,2508.203,2024.08.30 00:03:08,filled,Range Breakout Sell
|
| 255 |
+
2024.08.30 01:31:03,260.0,XAUUSDc,buy,1.36 / 1.36,0.0,,,2024.08.30 01:31:03,filled,sl 2519.687
|
| 256 |
+
2024.09.02 00:45:02,261.0,XAUUSDc,buy,1.6 / 1.6,0.0,2503.918,2513.386,2024.09.02 00:45:02,filled,Range Breakout Buy
|
| 257 |
+
2024.09.02 00:49:36,262.0,XAUUSDc,sell,1.6 / 1.6,0.0,,,2024.09.02 00:49:36,filled,sl 2503.918
|
| 258 |
+
2024.09.03 07:21:06,263.0,XAUUSDc,buy,1.88 / 1.88,0.0,2498.966,2506.787,2024.09.03 07:21:06,filled,Range Breakout Buy
|
| 259 |
+
2024.09.03 10:07:36,264.0,XAUUSDc,sell,1.88 / 1.88,0.0,,,2024.09.03 10:07:36,filled,sl 2498.966
|
| 260 |
+
2024.09.05 04:03:02,265.0,XAUUSDc,sell,2.64 / 2.64,0.0,2494.897,2489.542,2024.09.05 04:03:02,filled,Range Breakout Sell
|
| 261 |
+
2024.09.05 04:06:03,266.0,XAUUSDc,buy,2.64 / 2.64,0.0,,,2024.09.05 04:06:03,filled,sl 2494.897
|
| 262 |
+
2024.09.12 01:09:05,267.0,XAUUSDc,buy,1.38 / 1.38,0.0,2512.843,2522.698,2024.09.12 01:09:05,filled,Range Breakout Buy
|
| 263 |
+
2024.09.12 01:59:01,268.0,XAUUSDc,sell,1.38 / 1.38,0.0,,,2024.09.12 01:59:01,filled,sl 2512.843
|
| 264 |
+
2024.09.13 00:33:02,269.0,XAUUSDc,buy,1.97 / 1.97,0.0,2558.906,2565.557,2024.09.13 00:33:02,filled,Range Breakout Buy
|
| 265 |
+
2024.09.13 00:49:28,270.0,XAUUSDc,sell,1.97 / 1.97,0.0,,,2024.09.13 00:49:28,filled,sl 2558.906
|
| 266 |
+
2024.09.16 00:09:07,271.0,XAUUSDc,buy,2.77 / 2.77,0.0,2580.235,2584.78,2024.09.16 00:09:07,filled,Range Breakout Buy
|
| 267 |
+
2024.09.16 01:11:59,272.0,XAUUSDc,sell,2.77 / 2.77,0.0,,,2024.09.16 01:11:59,filled,sl 2580.235
|
| 268 |
+
2024.09.18 00:03:08,273.0,XAUUSDc,buy,1.81 / 1.81,0.0,2574.012,2580.69,2024.09.18 00:03:08,filled,Range Breakout Buy
|
| 269 |
+
2024.09.18 00:05:25,274.0,XAUUSDc,sell,1.81 / 1.81,0.0,,,2024.09.18 00:05:25,filled,sl 2574.012
|
| 270 |
+
2024.09.19 01:03:04,275.0,XAUUSDc,sell,0.35 / 0.35,0.0,2558.754,2526.021,2024.09.19 01:03:04,filled,Range Breakout Sell
|
| 271 |
+
2024.09.19 02:07:38,276.0,XAUUSDc,buy,0.35 / 0.35,0.0,,,2024.09.19 02:07:38,filled,sl 2558.754
|
| 272 |
+
2024.09.23 00:03:17,277.0,XAUUSDc,sell,1.91 / 1.91,0.0,2620.272,2614.314,2024.09.23 00:03:17,filled,Range Breakout Sell
|
| 273 |
+
2024.09.23 00:28:35,278.0,XAUUSDc,buy,1.91 / 1.91,0.0,,,2024.09.23 00:28:35,filled,sl 2620.272
|
| 274 |
+
2024.09.24 00:03:02,279.0,XAUUSDc,sell,1.5 / 1.5,0.0,2626.345,2618.947,2024.09.24 00:03:02,filled,Range Breakout Sell
|
| 275 |
+
2024.09.24 00:14:33,280.0,XAUUSDc,buy,1.5 / 1.5,0.0,,,2024.09.24 00:14:33,filled,sl 2626.345
|
| 276 |
+
2024.09.27 00:03:00,281.0,XAUUSDc,sell,0.87 / 0.87,0.0,2672.708,2660.396,2024.09.27 00:03:00,filled,Range Breakout Sell
|
| 277 |
+
2024.09.27 01:27:38,282.0,XAUUSDc,buy,0.87 / 0.87,0.0,,,2024.09.27 01:27:38,filled,sl 2672.708
|
| 278 |
+
2024.09.30 00:03:08,283.0,XAUUSDc,buy,0.52 / 0.52,0.0,2662.981,2683.015,2024.09.30 00:03:08,filled,Range Breakout Buy
|
| 279 |
+
2024.09.30 00:21:35,284.0,XAUUSDc,sell,0.52 / 0.52,0.0,,,2024.09.30 00:21:35,filled,sl 2662.981
|
| 280 |
+
2024.10.02 00:03:03,285.0,XAUUSDc,sell,1 / 1,0.0,2660.652,2650.545,2024.10.02 00:03:03,filled,Range Breakout Sell
|
| 281 |
+
2024.10.02 01:48:36,286.0,XAUUSDc,buy,1 / 1,0.0,,,2024.10.02 01:48:36,filled,sl 2660.652
|
| 282 |
+
2024.10.03 00:09:08,287.0,XAUUSDc,buy,0.59 / 0.59,0.0,2660.299,2676.877,2024.10.03 00:09:08,filled,Range Breakout Buy
|
| 283 |
+
2024.10.03 00:12:36,288.0,XAUUSDc,sell,0.59 / 0.59,0.0,,,2024.10.03 00:12:36,filled,sl 2660.299
|
| 284 |
+
2024.10.04 12:33:06,289.0,XAUUSDc,sell,0.05 / 0.05,0.0,2657.61,2497.212,2024.10.04 12:33:06,filled,Range Breakout Sell
|
| 285 |
+
2024.10.04 14:52:30,290.0,XAUUSDc,buy,0.05 / 0.05,0.0,,,2024.10.04 14:52:30,filled,sl 2657.610
|
| 286 |
+
2024.10.07 00:03:02,291.0,XAUUSDc,sell,0.87 / 0.87,0.0,2650.584,2639.91,2024.10.07 00:03:02,filled,Range Breakout Sell
|
| 287 |
+
2024.10.07 00:11:05,292.0,XAUUSDc,buy,0.87 / 0.87,0.0,,,2024.10.07 00:11:05,filled,sl 2650.584
|
| 288 |
+
2024.10.10 00:03:04,293.0,XAUUSDc,sell,0.54 / 0.54,0.0,2608.757,2592.143,2024.10.10 00:03:04,filled,Range Breakout Sell
|
| 289 |
+
2024.10.10 00:29:27,294.0,XAUUSDc,buy,0.54 / 0.54,0.0,,,2024.10.10 00:29:27,filled,sl 2608.757
|
| 290 |
+
2024.10.14 00:03:06,295.0,XAUUSDc,sell,0.51 / 0.51,0.0,2648.131,2630.968,2024.10.14 00:03:06,filled,Range Breakout Sell
|
| 291 |
+
2024.10.14 00:31:37,296.0,XAUUSDc,buy,0.51 / 0.51,0.0,,,2024.10.14 00:31:37,filled,sl 2648.131
|
| 292 |
+
2024.10.16 00:03:03,297.0,XAUUSDc,sell,0.94 / 0.94,0.0,2660.498,2651.453,2024.10.16 00:03:03,filled,Range Breakout Sell
|
| 293 |
+
2024.10.16 00:21:36,298.0,XAUUSDc,buy,0.94 / 0.94,0.0,,,2024.10.16 00:21:36,filled,sl 2660.498
|
| 294 |
+
2024.10.21 00:36:04,299.0,XAUUSDc,buy,0.95 / 0.95,0.0,2724.248,2732.951,2024.10.21 00:36:04,filled,Range Breakout Buy
|
| 295 |
+
2024.10.21 00:38:38,300.0,XAUUSDc,sell,0.95 / 0.95,0.0,,,2024.10.21 00:38:38,filled,sl 2724.248
|
| 296 |
+
2024.10.22 00:06:06,301.0,XAUUSDc,buy,0.93 / 0.93,0.0,2721.863,2730.431,2024.10.22 00:06:06,filled,Range Breakout Buy
|
| 297 |
+
2024.10.22 02:08:40,302.0,XAUUSDc,sell,0.93 / 0.93,0.0,,,2024.10.22 02:08:40,filled,tp 2730.431
|
| 298 |
+
2024.10.23 00:30:03,303.0,XAUUSDc,sell,1.1 / 1.1,0.0,2746.068,2737.14,2024.10.23 00:30:03,filled,Range Breakout Sell
|
| 299 |
+
2024.10.23 00:31:35,304.0,XAUUSDc,buy,1.1 / 1.1,0.0,,,2024.10.23 00:31:35,filled,sl 2746.068
|
| 300 |
+
2024.10.25 14:15:08,305.0,XAUUSDc,buy,0.42 / 0.42,0.0,2735.133,2757.66,2024.10.25 14:15:08,filled,Range Breakout Buy
|
| 301 |
+
2024.10.25 14:18:41,306.0,XAUUSDc,sell,0.42 / 0.42,0.0,,,2024.10.25 14:18:41,filled,sl 2735.133
|
| 302 |
+
2024.10.28 06:12:04,307.0,XAUUSDc,buy,0.71 / 0.71,0.0,2738.985,2751.936,2024.10.28 06:12:04,filled,Range Breakout Buy
|
| 303 |
+
2024.10.28 07:24:05,308.0,XAUUSDc,sell,0.71 / 0.71,0.0,,,2024.10.28 07:24:05,filled,sl 2738.985
|
| 304 |
+
2024.10.29 00:03:14,309.0,XAUUSDc,buy,1.27 / 1.27,0.0,2743.799,2750.792,2024.10.29 00:03:14,filled,Range Breakout Buy
|
| 305 |
+
2024.10.29 00:21:50,310.0,XAUUSDc,sell,1.27 / 1.27,0.0,,,2024.10.29 00:21:50,filled,sl 2743.799
|
| 306 |
+
2024.10.30 00:03:03,311.0,XAUUSDc,buy,1.35 / 1.35,0.0,2774.778,2781.123,2024.10.30 00:03:03,filled,Range Breakout Buy
|
| 307 |
+
2024.10.30 01:41:39,312.0,XAUUSDc,sell,1.35 / 1.35,0.0,,,2024.10.30 01:41:39,filled,tp 2781.123
|
| 308 |
+
2024.10.31 00:03:04,313.0,XAUUSDc,sell,1.52 / 1.52,0.0,2785.746,2778.807,2024.10.31 00:03:04,filled,Range Breakout Sell
|
| 309 |
+
2024.10.31 00:09:56,314.0,XAUUSDc,buy,1.52 / 1.52,0.0,,,2024.10.31 00:09:56,filled,sl 2785.746
|
| 310 |
+
2024.11.01 01:33:00,315.0,XAUUSDc,buy,0.67 / 0.67,0.0,2746.229,2761.331,2024.11.01 01:33:00,filled,Range Breakout Buy
|
| 311 |
+
2024.11.01 01:39:29,316.0,XAUUSDc,sell,0.67 / 0.67,0.0,,,2024.11.01 01:39:29,filled,sl 2746.229
|
| 312 |
+
2024.11.04 01:00:05,317.0,XAUUSDc,buy,1.18 / 1.18,0.0,2739.467,2747.846,2024.11.04 01:00:05,filled,Range Breakout Buy
|
| 313 |
+
2024.11.04 01:02:36,318.0,XAUUSDc,sell,1.18 / 1.18,0.0,,,2024.11.04 01:02:36,filled,sl 2739.467
|
| 314 |
+
2024.11.05 00:03:06,319.0,XAUUSDc,sell,1.17 / 1.17,0.0,2736.27,2728.053,2024.11.05 00:03:06,filled,Range Breakout Sell
|
| 315 |
+
2024.11.05 00:25:30,320.0,XAUUSDc,buy,1.17 / 1.17,0.0,,,2024.11.05 00:25:30,filled,sl 2736.270
|
| 316 |
+
2024.11.06 01:45:03,321.0,XAUUSDc,buy,0.29 / 0.29,0.0,2744.237,2775.944,2024.11.06 01:45:03,filled,Range Breakout Buy
|
| 317 |
+
2024.11.06 02:08:36,322.0,XAUUSDc,sell,0.29 / 0.29,0.0,,,2024.11.06 02:08:36,filled,sl 2744.237
|
| 318 |
+
2024.11.07 01:12:00,323.0,XAUUSDc,sell,0.39 / 0.39,0.0,2662.193,2639.216,2024.11.07 01:12:00,filled,Range Breakout Sell
|
| 319 |
+
2024.11.07 07:17:20,324.0,XAUUSDc,buy,0.39 / 0.39,0.0,,,2024.11.07 07:17:20,filled,sl 2662.193
|
| 320 |
+
2024.11.08 01:03:00,325.0,XAUUSDc,sell,0.24 / 0.24,0.0,2707.59,2672.373,2024.11.08 01:03:00,filled,Range Breakout Sell
|
| 321 |
+
2024.11.11 01:03:07,326.0,XAUUSDc,sell,0.23 / 0.23,0.0,2684.863,2647.711,2024.11.11 01:03:07,filled,Range Breakout Sell
|
| 322 |
+
2024.11.11 01:58:38,327.0,XAUUSDc,buy,0.24 / 0.24,0.0,,,2024.11.11 01:58:38,filled,tp 2672.373
|
| 323 |
+
2024.11.11 13:33:01,328.0,XAUUSDc,buy,0.23 / 0.23,0.0,,,2024.11.11 13:33:01,filled,tp 2647.711
|
| 324 |
+
2024.11.12 01:30:04,329.0,XAUUSDc,sell,1.09 / 1.09,0.0,2620.64,2608.886,2024.11.12 01:30:04,filled,Range Breakout Sell
|
| 325 |
+
2024.11.12 01:30:39,330.0,XAUUSDc,buy,1.09 / 1.09,0.0,,,2024.11.12 01:30:39,filled,sl 2620.640
|
| 326 |
+
2024.11.13 15:06:07,331.0,XAUUSDc,sell,0.41 / 0.41,0.0,2600.722,2570.896,2024.11.13 15:06:07,filled,Range Breakout Sell
|
| 327 |
+
2024.11.13 15:11:15,332.0,XAUUSDc,buy,0.41 / 0.41,0.0,,,2024.11.13 15:11:15,filled,sl 2600.722
|
| 328 |
+
2024.11.14 01:03:06,333.0,XAUUSDc,sell,0.22 / 0.22,0.0,2572.975,2518.615,2024.11.14 01:03:06,filled,Range Breakout Sell
|
| 329 |
+
2024.11.14 15:34:40,334.0,XAUUSDc,buy,0.22 / 0.22,0.0,,,2024.11.14 15:34:40,filled,sl 2572.975
|
| 330 |
+
2024.11.15 01:45:08,335.0,XAUUSDc,sell,0.57 / 0.57,0.0,2567.046,2546.562,2024.11.15 01:45:08,filled,Range Breakout Sell
|
| 331 |
+
2024.11.15 02:02:41,336.0,XAUUSDc,buy,0.57 / 0.57,0.0,,,2024.11.15 02:02:41,filled,sl 2567.046
|
| 332 |
+
2024.11.18 00:54:07,337.0,XAUUSDc,buy,0.43 / 0.43,0.0,2574.038,2600.057,2024.11.18 00:54:07,filled,Range Breakout Buy
|
| 333 |
+
2024.11.18 13:30:37,338.0,XAUUSDc,sell,0.43 / 0.43,0.0,,,2024.11.18 13:30:37,filled,tp 2600.057
|
| 334 |
+
2024.11.20 00:09:06,339.0,XAUUSDc,buy,2.37 / 2.37,0.0,2635.023,2640.909,2024.11.20 00:09:06,filled,Range Breakout Buy
|
| 335 |
+
2024.11.20 01:01:39,340.0,XAUUSDc,sell,2.37 / 2.37,0.0,,,2024.11.20 01:01:39,filled,tp 2640.909
|
| 336 |
+
2024.11.22 00:06:06,341.0,XAUUSDc,buy,2.9 / 2.9,0.0,2669.406,2675.31,2024.11.22 00:06:06,filled,Range Breakout Buy
|
| 337 |
+
2024.11.22 01:00:29,342.0,XAUUSDc,sell,2.9 / 2.9,0.0,,,2024.11.22 01:00:29,filled,tp 2675.310
|
| 338 |
+
2024.11.25 01:00:03,343.0,XAUUSDc,sell,2.86 / 2.86,0.0,2711.459,2704.052,2024.11.25 01:00:03,filled,Range Breakout Sell
|
| 339 |
+
2024.11.25 01:03:42,344.0,XAUUSDc,buy,2.86 / 2.86,0.0,,,2024.11.25 01:03:42,filled,tp 2704.052
|
| 340 |
+
2024.11.27 00:18:06,345.0,XAUUSDc,sell,2.96 / 2.96,0.0,2631.105,2622.168,2024.11.27 00:18:06,filled,Range Breakout Sell
|
| 341 |
+
2024.11.27 01:21:35,346.0,XAUUSDc,buy,2.96 / 2.96,0.0,,,2024.11.27 01:21:35,filled,sl 2631.105
|
| 342 |
+
2024.11.28 00:15:10,347.0,XAUUSDc,sell,6.75 / 6.75,0.0,2636.526,2632.701,2024.11.28 00:15:10,filled,Range Breakout Sell
|
| 343 |
+
2024.11.28 00:15:26,348.0,XAUUSDc,buy,6.75 / 6.75,0.0,,,2024.11.28 00:15:26,filled,sl 2636.526
|
| 344 |
+
2024.11.29 00:09:08,349.0,XAUUSDc,sell,2.91 / 2.91,0.0,2637.978,2629.338,2024.11.29 00:09:08,filled,Range Breakout Sell
|
| 345 |
+
2024.11.29 00:30:30,350.0,XAUUSDc,buy,2.91 / 2.91,0.0,,,2024.11.29 00:30:30,filled,sl 2637.978
|
| 346 |
+
2024.12.02 00:36:01,351.0,XAUUSDc,sell,0.67 / 0.67,0.0,2644.436,2608.571,2024.12.02 00:36:01,filled,Range Breakout Sell
|
| 347 |
+
2024.12.02 11:35:21,352.0,XAUUSDc,buy,0.67 / 0.67,0.0,,,2024.12.02 11:35:21,filled,sl 2644.436
|
| 348 |
+
2024.12.03 01:30:04,353.0,XAUUSDc,sell,1.14 / 1.14,0.0,2640.279,2619.705,2024.12.03 01:30:04,filled,Range Breakout Sell
|
| 349 |
+
2024.12.03 01:34:16,354.0,XAUUSDc,buy,1.14 / 1.14,0.0,,,2024.12.03 01:34:16,filled,sl 2640.279
|
| 350 |
+
2024.12.04 00:06:04,355.0,XAUUSDc,buy,5.51 / 5.51,0.0,2642.827,2646.967,2024.12.04 00:06:04,filled,Range Breakout Buy
|
| 351 |
+
2024.12.04 00:12:28,356.0,XAUUSDc,sell,5.51 / 5.51,0.0,,,2024.12.04 00:12:28,filled,sl 2642.827
|
| 352 |
+
2024.12.05 05:36:04,357.0,XAUUSDc,buy,1.38 / 1.38,0.0,2650.007,2665.73,2024.12.05 05:36:04,filled,Range Breakout Buy
|
| 353 |
+
2024.12.05 06:23:52,358.0,XAUUSDc,sell,1.38 / 1.38,0.0,,,2024.12.05 06:23:52,filled,sl 2650.007
|
| 354 |
+
2024.12.10 00:03:18,359.0,XAUUSDc,sell,1.46 / 1.46,0.0,2660.744,2646.425,2024.12.10 00:03:18,filled,Range Breakout Sell
|
| 355 |
+
2024.12.10 00:30:26,360.0,XAUUSDc,buy,1.46 / 1.46,0.0,,,2024.12.10 00:30:26,filled,sl 2660.744
|
| 356 |
+
2024.12.12 01:18:15,361.0,XAUUSDc,sell,0.85 / 0.85,0.0,2718.237,2694.324,2024.12.12 01:18:15,filled,Range Breakout Sell
|
| 357 |
+
2024.12.12 06:58:29,362.0,XAUUSDc,buy,0.85 / 0.85,0.0,,,2024.12.12 06:58:29,filled,sl 2718.237
|
| 358 |
+
2024.12.13 00:03:06,363.0,XAUUSDc,sell,2.15 / 2.15,0.0,2680.661,2671.562,2024.12.13 00:03:06,filled,Range Breakout Sell
|
| 359 |
+
2024.12.13 00:13:24,364.0,XAUUSDc,buy,2.15 / 2.15,0.0,,,2024.12.13 00:13:24,filled,sl 2680.661
|
| 360 |
+
2024.12.17 00:15:14,365.0,XAUUSDc,sell,2.62 / 2.62,0.0,2652.181,2644.936,2024.12.17 00:15:14,filled,Range Breakout Sell
|
| 361 |
+
2024.12.17 00:21:42,366.0,XAUUSDc,buy,2.62 / 2.62,0.0,,,2024.12.17 00:21:42,filled,sl 2652.181
|
| 362 |
+
2024.12.18 00:09:07,367.0,XAUUSDc,buy,2.1 / 2.1,0.0,2647.162,2655.919,2024.12.18 00:09:07,filled,Range Breakout Buy
|
| 363 |
+
2024.12.18 00:19:35,368.0,XAUUSDc,sell,2.1 / 2.1,0.0,,,2024.12.18 00:19:35,filled,sl 2647.162
|
| 364 |
+
2024.12.19 00:30:06,369.0,XAUUSDc,buy,0.88 / 0.88,0.0,2591.208,2611.044,2024.12.19 00:30:06,filled,Range Breakout Buy
|
| 365 |
+
2024.12.19 01:38:43,370.0,XAUUSDc,sell,0.88 / 0.88,0.0,,,2024.12.19 01:38:43,filled,tp 2611.044
|
| 366 |
+
2024.12.20 01:09:04,371.0,XAUUSDc,buy,0.61 / 0.61,0.0,2592.182,2627.525,2024.12.20 01:09:04,filled,Range Breakout Buy
|
| 367 |
+
2024.12.20 15:31:40,372.0,XAUUSDc,sell,0.61 / 0.61,0.0,,,2024.12.20 15:31:40,filled,tp 2627.525
|
| 368 |
+
2024.12.23 00:36:04,373.0,XAUUSDc,sell,2.07 / 2.07,0.0,2622.061,2609.029,2024.12.23 00:36:04,filled,Range Breakout Sell
|
| 369 |
+
2024.12.23 00:46:39,374.0,XAUUSDc,buy,2.07 / 2.07,0.0,,,2024.12.23 00:46:39,filled,sl 2622.061
|
| 370 |
+
2024.12.27 03:36:11,375.0,XAUUSDc,buy,2.27 / 2.27,0.0,2633.937,2645.466,2024.12.27 03:36:11,filled,Range Breakout Buy
|
| 371 |
+
2024.12.27 03:40:27,376.0,XAUUSDc,sell,2.27 / 2.27,0.0,,,2024.12.27 03:40:27,filled,sl 2633.937
|
| 372 |
+
2025.01.03 00:03:08,377.0,XAUUSDc,buy,2 / 2,0.0,2658.368,2670.968,2025.01.03 00:03:08,filled,Range Breakout Buy
|
| 373 |
+
2025.01.03 01:24:13,378.0,XAUUSDc,sell,2 / 2,0.0,,,2025.01.03 01:24:13,filled,sl 2658.368
|
| 374 |
+
2025.01.06 00:15:02,379.0,XAUUSDc,sell,3.45 / 3.45,0.0,2639.97,2632.932,2025.01.06 00:15:02,filled,Range Breakout Sell
|
| 375 |
+
2025.01.06 00:16:28,380.0,XAUUSDc,buy,3.45 / 3.45,0.0,,,2025.01.06 00:16:28,filled,sl 2639.970
|
| 376 |
+
2025.01.07 01:03:04,381.0,XAUUSDc,buy,1.1 / 1.1,0.0,2634.755,2656.058,2025.01.07 01:03:04,filled,Range Breakout Buy
|
| 377 |
+
2025.01.07 13:17:04,382.0,XAUUSDc,sell,1.1 / 1.1,0.0,,,2025.01.07 13:17:04,filled,tp 2656.058
|
| 378 |
+
2025.01.08 00:21:08,383.0,XAUUSDc,buy,7.42 / 7.42,0.0,2650.003,2653.927,2025.01.08 00:21:08,filled,Range Breakout Buy
|
| 379 |
+
2025.01.08 01:00:30,384.0,XAUUSDc,sell,7.42 / 7.42,0.0,,,2025.01.08 01:00:30,filled,sl 2650.003
|
| 380 |
+
2025.01.09 00:06:18,385.0,XAUUSDc,sell,3.44 / 3.44,0.0,2662.473,2654.418,2025.01.09 00:06:18,filled,Range Breakout Sell
|
| 381 |
+
2025.01.09 06:36:27,386.0,XAUUSDc,buy,3.44 / 3.44,0.0,,,2025.01.09 06:36:27,filled,sl 2662.473
|
| 382 |
+
2025.01.10 13:33:08,387.0,XAUUSDc,sell,0.29 / 0.29,0.0,2677.453,2584.978,2025.01.10 13:33:08,filled,Range Breakout Sell
|
| 383 |
+
2025.01.10 13:45:42,388.0,XAUUSDc,buy,0.29 / 0.29,0.0,,,2025.01.10 13:45:42,filled,sl 2677.453
|
| 384 |
+
2025.01.13 00:03:07,389.0,XAUUSDc,buy,3.86 / 3.86,0.0,2690.619,2697.333,2025.01.13 00:03:07,filled,Range Breakout Buy
|
| 385 |
+
2025.01.13 00:20:31,390.0,XAUUSDc,sell,3.86 / 3.86,0.0,,,2025.01.13 00:20:31,filled,sl 2690.619
|
| 386 |
+
2025.01.14 13:39:01,391.0,XAUUSDc,sell,0.4 / 0.4,0.0,2668.256,2607.101,2025.01.14 13:39:01,filled,Range Breakout Sell
|
| 387 |
+
2025.01.14 13:47:36,392.0,XAUUSDc,buy,0.4 / 0.4,0.0,,,2025.01.14 13:47:36,filled,sl 2668.256
|
| 388 |
+
2025.01.16 00:03:01,393.0,XAUUSDc,sell,1.56 / 1.56,0.0,2695.621,2680.096,2025.01.16 00:03:01,filled,Range Breakout Sell
|
| 389 |
+
2025.01.16 00:16:28,394.0,XAUUSDc,buy,1.56 / 1.56,0.0,,,2025.01.16 00:16:28,filled,sl 2695.621
|
| 390 |
+
2025.01.17 01:03:02,395.0,XAUUSDc,sell,0.78 / 0.78,0.0,2714.855,2684.678,2025.01.17 01:03:02,filled,Range Breakout Sell
|
| 391 |
+
2025.01.17 01:54:14,396.0,XAUUSDc,buy,0.78 / 0.78,0.0,,,2025.01.17 01:54:14,filled,sl 2714.855
|
| 392 |
+
2025.01.20 01:03:03,397.0,XAUUSDc,sell,0.83 / 0.83,0.0,2694.441,2667.09,2025.01.20 01:03:03,filled,Range Breakout Sell
|
| 393 |
+
2025.01.20 01:32:20,398.0,XAUUSDc,buy,0.83 / 0.83,0.0,,,2025.01.20 01:32:20,filled,sl 2694.441
|
| 394 |
+
2025.01.21 00:09:07,399.0,XAUUSDc,buy,2.89 / 2.89,0.0,2710.246,2717.95,2025.01.21 00:09:07,filled,Range Breakout Buy
|
| 395 |
+
2025.01.21 00:15:36,400.0,XAUUSDc,sell,2.89 / 2.89,0.0,,,2025.01.21 00:15:36,filled,sl 2710.246
|
| 396 |
+
2025.01.27 01:00:08,401.0,XAUUSDc,buy,2.61 / 2.61,0.0,2768.807,2777.042,2025.01.27 01:00:08,filled,Range Breakout Buy
|
| 397 |
+
2025.01.27 01:25:36,402.0,XAUUSDc,sell,2.61 / 2.61,0.0,,,2025.01.27 01:25:36,filled,sl 2768.807
|
| 398 |
+
2025.01.28 13:00:03,403.0,XAUUSDc,buy,2.03 / 2.03,0.0,2744.384,2754.698,2025.01.28 13:00:03,filled,Range Breakout Buy
|
| 399 |
+
2025.01.28 14:30:32,404.0,XAUUSDc,sell,2.03 / 2.03,0.0,,,2025.01.28 14:30:32,filled,tp 2754.698
|
| 400 |
+
2025.01.29 00:03:04,405.0,XAUUSDc,sell,10.66 / 10.66,0.0,2762.707,2760.286,2025.01.29 00:03:04,filled,Range Breakout Sell
|
| 401 |
+
2025.01.29 00:03:23,406.0,XAUUSDc,buy,10.66 / 10.66,0.0,,,2025.01.29 00:03:23,filled,sl 2762.707
|
| 402 |
+
2025.01.30 00:30:02,407.0,XAUUSDc,buy,2.84 / 2.84,0.0,2760.171,2768.901,2025.01.30 00:30:02,filled,Range Breakout Buy
|
| 403 |
+
2025.01.30 01:04:41,408.0,XAUUSDc,sell,2.84 / 2.84,0.0,,,2025.01.30 01:04:41,filled,sl 2760.171
|
| 404 |
+
2025.01.31 00:06:08,409.0,XAUUSDc,buy,1.02 / 1.02,0.0,2795.936,2819.192,2025.01.31 00:06:08,filled,Range Breakout Buy
|
| 405 |
+
2025.01.31 00:34:40,410.0,XAUUSDc,sell,1.02 / 1.02,0.0,,,2025.01.31 00:34:40,filled,sl 2795.936
|
| 406 |
+
2025.02.03 01:12:07,411.0,XAUUSDc,sell,0.87 / 0.87,0.0,2786.037,2759.415,2025.02.03 01:12:07,filled,Range Breakout Sell
|
| 407 |
+
2025.02.03 01:13:41,412.0,XAUUSDc,buy,0.87 / 0.87,0.0,,,2025.02.03 01:13:41,filled,sl 2786.037
|
| 408 |
+
2025.02.04 00:33:07,413.0,XAUUSDc,buy,2.55 / 2.55,0.0,2814.676,2823.523,2025.02.04 00:33:07,filled,Range Breakout Buy
|
| 409 |
+
2025.02.04 01:45:59,414.0,XAUUSDc,sell,2.55 / 2.55,0.0,,,2025.02.04 01:45:59,filled,tp 2823.523
|
| 410 |
+
2025.02.05 00:30:05,415.0,XAUUSDc,buy,2.86 / 2.86,0.0,2841.766,2851.549,2025.02.05 00:30:05,filled,Range Breakout Buy
|
| 411 |
+
2025.02.05 01:31:42,416.0,XAUUSDc,sell,2.86 / 2.86,0.0,,,2025.02.05 01:31:42,filled,sl 2841.766
|
| 412 |
+
2025.02.06 01:09:03,417.0,XAUUSDc,sell,1.41 / 1.41,0.0,2867.386,2848.261,2025.02.06 01:09:03,filled,Range Breakout Sell
|
| 413 |
+
2025.02.06 01:19:39,418.0,XAUUSDc,buy,1.41 / 1.41,0.0,,,2025.02.06 01:19:39,filled,sl 2867.386
|
| 414 |
+
2025.02.07 00:03:01,419.0,XAUUSDc,buy,2.95 / 2.95,0.0,2857.99,2866.891,2025.02.07 00:03:01,filled,Range Breakout Buy
|
| 415 |
+
2025.02.07 01:00:04,420.0,XAUUSDc,sell,2.95 / 2.95,0.0,,,2025.02.07 01:00:04,filled,sl 2857.990
|
| 416 |
+
2025.02.10 01:03:06,421.0,XAUUSDc,buy,0.69 / 0.69,0.0,2867.786,2904.137,2025.02.10 01:03:06,filled,Range Breakout Buy
|
| 417 |
+
2025.02.10 01:30:30,422.0,XAUUSDc,sell,0.69 / 0.69,0.0,,,2025.02.10 01:30:30,filled,sl 2867.786
|
| 418 |
+
2025.02.11 00:51:03,423.0,XAUUSDc,buy,1.71 / 1.71,0.0,2920.189,2934.553,2025.02.11 00:51:03,filled,Range Breakout Buy
|
| 419 |
+
2025.02.11 01:05:04,424.0,XAUUSDc,sell,1.71 / 1.71,0.0,,,2025.02.11 01:05:04,filled,sl 2920.189
|
| 420 |
+
2025.02.12 00:06:04,425.0,XAUUSDc,sell,1.25 / 1.25,0.0,2898.075,2878.923,2025.02.12 00:06:04,filled,Range Breakout Sell
|
| 421 |
+
2025.02.12 00:14:14,426.0,XAUUSDc,buy,1.25 / 1.25,0.0,,,2025.02.12 00:14:14,filled,sl 2898.075
|
| 422 |
+
2025.02.13 00:06:06,427.0,XAUUSDc,buy,2.59 / 2.59,0.0,2905.878,2914.842,2025.02.13 00:06:06,filled,Range Breakout Buy
|
| 423 |
+
2025.02.13 00:21:48,428.0,XAUUSDc,sell,2.59 / 2.59,0.0,,,2025.02.13 00:21:48,filled,sl 2905.878
|
| 424 |
+
2025.02.14 01:12:00,429.0,XAUUSDc,buy,1.74 / 1.74,0.0,2931.603,2944.464,2025.02.14 01:12:00,filled,Range Breakout Buy
|
| 425 |
+
2025.02.14 01:14:40,430.0,XAUUSDc,sell,1.74 / 1.74,0.0,,,2025.02.14 01:14:40,filled,sl 2931.603
|
| 426 |
+
2025.02.18 01:09:07,431.0,XAUUSDc,sell,2.51 / 2.51,0.0,2897.752,2889.121,2025.02.18 01:09:07,filled,Range Breakout Sell
|
| 427 |
+
2025.02.18 01:15:22,432.0,XAUUSDc,buy,2.51 / 2.51,0.0,,,2025.02.18 01:15:22,filled,sl 2897.752
|
| 428 |
+
2025.02.19 00:03:02,433.0,XAUUSDc,sell,2.39 / 2.39,0.0,2934.059,2925.203,2025.02.19 00:03:02,filled,Range Breakout Sell
|
| 429 |
+
2025.02.19 00:05:30,434.0,XAUUSDc,buy,2.39 / 2.39,0.0,,,2025.02.19 00:05:30,filled,sl 2934.059
|
| 430 |
+
2025.02.20 00:03:05,435.0,XAUUSDc,buy,1.22 / 1.22,0.0,2935.386,2952.225,2025.02.20 00:03:05,filled,Range Breakout Buy
|
| 431 |
+
2025.02.20 01:35:37,436.0,XAUUSDc,sell,1.22 / 1.22,0.0,,,2025.02.20 01:35:37,filled,sl 2935.386
|
| 432 |
+
2025.02.21 00:27:05,437.0,XAUUSDc,sell,1.18 / 1.18,0.0,2940.311,2923.625,2025.02.21 00:27:05,filled,Range Breakout Sell
|
| 433 |
+
2025.02.21 00:49:38,438.0,XAUUSDc,buy,1.18 / 1.18,0.0,,,2025.02.21 00:49:38,filled,sl 2940.311
|
| 434 |
+
2025.02.26 00:03:00,439.0,XAUUSDc,buy,1.29 / 1.29,0.0,2918.631,2933.508,2025.02.26 00:03:00,filled,Range Breakout Buy
|
| 435 |
+
2025.02.26 01:56:38,440.0,XAUUSDc,sell,1.29 / 1.29,0.0,,,2025.02.26 01:56:38,filled,sl 2918.631
|
| 436 |
+
2025.02.27 01:09:13,441.0,XAUUSDc,sell,1.78 / 1.78,0.0,2916.264,2905.824,2025.02.27 01:09:13,filled,Range Breakout Sell
|
| 437 |
+
2025.02.27 01:34:58,442.0,XAUUSDc,buy,1.78 / 1.78,0.0,,,2025.02.27 01:34:58,filled,sl 2916.264
|
| 438 |
+
2025.02.28 01:57:15,443.0,XAUUSDc,sell,0.79 / 0.79,0.0,2876.518,2853.73,2025.02.28 01:57:15,filled,Range Breakout Sell
|
| 439 |
+
2025.02.28 02:22:13,444.0,XAUUSDc,buy,0.79 / 0.79,0.0,,,2025.02.28 02:22:13,filled,sl 2876.518
|
| 440 |
+
2025.03.03 03:12:05,445.0,XAUUSDc,sell,1 / 1,0.0,2864.737,2847.16,2025.03.03 03:12:05,filled,Range Breakout Sell
|
| 441 |
+
2025.03.03 03:36:03,446.0,XAUUSDc,buy,1 / 1,0.0,,,2025.03.03 03:36:03,filled,sl 2864.737
|
| 442 |
+
2025.03.05 00:03:03,447.0,XAUUSDc,sell,0.86 / 0.86,0.0,2914.505,2894.921,2025.03.05 00:03:03,filled,Range Breakout Sell
|
| 443 |
+
2025.03.05 00:10:19,448.0,XAUUSDc,buy,0.86 / 0.86,0.0,,,2025.03.05 00:10:19,filled,sl 2914.505
|
| 444 |
+
2025.03.06 00:06:07,449.0,XAUUSDc,buy,7.35 / 7.35,0.0,2918.806,2921.056,2025.03.06 00:06:07,filled,Range Breakout Buy
|
| 445 |
+
2025.03.06 00:06:38,450.0,XAUUSDc,sell,7.35 / 7.35,0.0,,,2025.03.06 00:06:38,filled,sl 2918.806
|
| 446 |
+
2025.03.10 00:09:08,451.0,XAUUSDc,buy,2.04 / 2.04,0.0,2916.461,2924.048,2025.03.10 00:09:08,filled,Range Breakout Buy
|
| 447 |
+
2025.03.10 00:13:39,452.0,XAUUSDc,sell,2.04 / 2.04,0.0,,,2025.03.10 00:13:39,filled,sl 2916.461
|
| 448 |
+
2025.03.17 09:39:06,453.0,XAUUSDc,buy,1.29 / 1.29,0.0,2992.937,3004.52,2025.03.17 09:39:06,filled,Range Breakout Buy
|
| 449 |
+
2025.03.17 12:08:31,454.0,XAUUSDc,sell,1.29 / 1.29,0.0,,,2025.03.17 12:08:31,filled,sl 2992.937
|
| 450 |
+
2025.03.19 00:03:01,455.0,XAUUSDc,sell,5.27 / 5.27,0.0,3031.808,3029.063,2025.03.19 00:03:01,filled,Range Breakout Sell
|
| 451 |
+
2025.03.19 00:03:35,456.0,XAUUSDc,buy,5.27 / 5.27,0.0,,,2025.03.19 00:03:35,filled,sl 3031.808
|
| 452 |
+
2025.03.20 00:03:01,457.0,XAUUSDc,buy,1.1 / 1.1,0.0,3050.023,3062.713,2025.03.20 00:03:01,filled,Range Breakout Buy
|
| 453 |
+
2025.03.20 01:59:29,458.0,XAUUSDc,sell,1.1 / 1.1,0.0,,,2025.03.20 01:59:29,filled,sl 3050.023
|
| 454 |
+
2025.03.21 00:03:06,459.0,XAUUSDc,buy,3.19 / 3.19,0.0,3046.335,3050.565,2025.03.21 00:03:06,filled,Range Breakout Buy
|
| 455 |
+
2025.03.21 00:05:16,460.0,XAUUSDc,sell,3.19 / 3.19,0.0,,,2025.03.21 00:05:16,filled,sl 3046.335
|
| 456 |
+
2025.03.25 00:51:01,461.0,XAUUSDc,buy,1.16 / 1.16,0.0,3011.375,3022.562,2025.03.25 00:51:01,filled,Range Breakout Buy
|
| 457 |
+
2025.03.25 01:20:38,462.0,XAUUSDc,sell,1.16 / 1.16,0.0,,,2025.03.25 01:20:38,filled,sl 3011.375
|
| 458 |
+
2025.03.26 00:36:06,463.0,XAUUSDc,sell,1.09 / 1.09,0.0,3020.912,3009.446,2025.03.26 00:36:06,filled,Range Breakout Sell
|
| 459 |
+
2025.03.26 01:35:39,464.0,XAUUSDc,buy,1.09 / 1.09,0.0,,,2025.03.26 01:35:39,filled,sl 3020.912
|
| 460 |
+
2025.03.27 00:03:16,465.0,XAUUSDc,buy,1.27 / 1.27,0.0,3021.522,3031.044,2025.03.27 00:03:16,filled,Range Breakout Buy
|
| 461 |
+
2025.03.27 02:42:45,466.0,XAUUSDc,sell,1.27 / 1.27,0.0,,,2025.03.27 02:42:45,filled,tp 3031.044
|
| 462 |
+
2025.03.28 00:06:00,467.0,XAUUSDc,buy,0.95 / 0.95,0.0,3056.423,3072.164,2025.03.28 00:06:00,filled,Range Breakout Buy
|
| 463 |
+
2025.03.28 01:48:41,468.0,XAUUSDc,sell,0.95 / 0.95,0.0,,,2025.03.28 01:48:41,filled,tp 3072.164
|
| 464 |
+
2025.03.31 00:03:08,469.0,XAUUSDc,sell,0.84 / 0.84,0.0,3089.729,3067.688,2025.03.31 00:03:08,filled,Range Breakout Sell
|
| 465 |
+
2025.03.31 01:26:20,470.0,XAUUSDc,buy,0.84 / 0.84,0.0,,,2025.03.31 01:26:20,filled,sl 3089.729
|
| 466 |
+
2025.04.01 00:45:06,471.0,XAUUSDc,buy,1.58 / 1.58,0.0,3125.205,3136.563,2025.04.01 00:45:06,filled,Range Breakout Buy
|
| 467 |
+
2025.04.01 01:46:00,472.0,XAUUSDc,sell,1.58 / 1.58,0.0,,,2025.04.01 01:46:00,filled,tp 3136.563
|
| 468 |
+
2025.04.02 00:24:08,473.0,XAUUSDc,buy,0.49 / 0.49,0.0,3115.411,3160.069,2025.04.02 00:24:08,filled,Range Breakout Buy
|
| 469 |
+
2025.04.02 05:00:37,474.0,XAUUSDc,sell,0.49 / 0.49,0.0,,,2025.04.02 05:00:37,filled,sl 3115.411
|
| 470 |
+
2025.04.03 06:30:04,475.0,XAUUSDc,sell,0.4 / 0.4,0.0,3128.357,3074.744,2025.04.03 06:30:04,filled,Range Breakout Sell
|
| 471 |
+
2025.04.03 06:48:30,476.0,XAUUSDc,buy,0.4 / 0.4,0.0,,,2025.04.03 06:48:30,filled,sl 3128.357
|
| 472 |
+
2025.04.04 00:30:03,477.0,XAUUSDc,sell,0.94 / 0.94,0.0,3111.653,3089.594,2025.04.04 00:30:03,filled,Range Breakout Sell
|
| 473 |
+
2025.04.04 00:52:37,478.0,XAUUSDc,buy,0.94 / 0.94,0.0,,,2025.04.04 00:52:37,filled,sl 3111.653
|
| 474 |
+
2025.04.08 00:27:05,479.0,XAUUSDc,buy,1.7 / 1.7,0.0,2987.614,2999.413,2025.04.08 00:27:05,filled,Range Breakout Buy
|
| 475 |
+
2025.04.08 00:52:40,480.0,XAUUSDc,sell,1.7 / 1.7,0.0,,,2025.04.08 00:52:40,filled,sl 2987.614
|
| 476 |
+
2025.04.11 00:21:05,481.0,XAUUSDc,buy,0.71 / 0.71,0.0,3188.717,3215.789,2025.04.11 00:21:05,filled,Range Breakout Buy
|
| 477 |
+
2025.04.11 00:43:38,482.0,XAUUSDc,sell,0.71 / 0.71,0.0,,,2025.04.11 00:43:38,filled,tp 3215.789
|
| 478 |
+
2025.04.15 01:09:04,483.0,XAUUSDc,buy,0.83 / 0.83,0.0,3212.174,3240.758,2025.04.15 01:09:04,filled,Range Breakout Buy
|
| 479 |
+
2025.04.15 13:53:41,484.0,XAUUSDc,sell,0.83 / 0.83,0.0,,,2025.04.15 13:53:41,filled,sl 3212.174
|
| 480 |
+
2025.04.16 00:03:02,485.0,XAUUSDc,buy,0.29 / 0.29,0.0,3251.59,3330.592,2025.04.16 00:03:02,filled,Range Breakout Buy
|
| 481 |
+
2025.04.16 16:24:26,486.0,XAUUSDc,sell,0.29 / 0.29,0.0,,,2025.04.16 16:24:26,filled,tp 3330.592
|
| 482 |
+
2025.04.17 00:45:02,487.0,XAUUSDc,sell,1.13 / 1.13,0.0,3345.616,3320.317,2025.04.17 00:45:02,filled,Range Breakout Sell
|
| 483 |
+
2025.04.17 00:47:30,488.0,XAUUSDc,buy,1.13 / 1.13,0.0,,,2025.04.17 00:47:30,filled,sl 3345.616
|
| 484 |
+
2025.04.22 00:06:02,489.0,XAUUSDc,sell,0.29 / 0.29,0.0,3427.126,3333.733,2025.04.22 00:06:02,filled,Range Breakout Sell
|
| 485 |
+
2025.04.22 00:20:28,490.0,XAUUSDc,buy,0.29 / 0.29,0.0,,,2025.04.22 00:20:28,filled,sl 3427.126
|
| 486 |
+
2025.04.23 00:30:02,491.0,XAUUSDc,buy,0.54 / 0.54,0.0,3345.409,3394.693,2025.04.23 00:30:02,filled,Range Breakout Buy
|
| 487 |
+
2025.04.23 03:04:38,492.0,XAUUSDc,sell,0.54 / 0.54,0.0,,,2025.04.23 03:04:38,filled,sl 3345.409
|
| 488 |
+
2025.04.25 01:51:07,493.0,XAUUSDc,sell,0.77 / 0.77,0.0,3349.269,3315.645,2025.04.25 01:51:07,filled,Range Breakout Sell
|
| 489 |
+
2025.04.25 02:03:14,494.0,XAUUSDc,buy,0.77 / 0.77,0.0,,,2025.04.25 02:03:14,filled,sl 3349.269
|
| 490 |
+
2025.04.29 00:30:02,495.0,XAUUSDc,sell,1.42 / 1.42,0.0,3333.858,3316.011,2025.04.29 00:30:02,filled,Range Breakout Sell
|
| 491 |
+
2025.04.29 00:37:14,496.0,XAUUSDc,buy,1.42 / 1.42,0.0,,,2025.04.29 00:37:14,filled,sl 3333.858
|
| 492 |
+
2025.04.30 00:09:05,497.0,XAUUSDc,buy,0.96 / 0.96,0.0,3321.151,3346.63,2025.04.30 00:09:05,filled,Range Breakout Buy
|
| 493 |
+
2025.04.30 00:15:42,498.0,XAUUSDc,sell,0.96 / 0.96,0.0,,,2025.04.30 00:15:42,filled,sl 3321.151
|
| 494 |
+
2025.05.05 01:06:00,499.0,XAUUSDc,buy,0.61 / 0.61,0.0,3249.729,3288.348,2025.05.05 01:06:00,filled,Range Breakout Buy
|
| 495 |
+
2025.05.05 09:04:41,500.0,XAUUSDc,sell,0.61 / 0.61,0.0,,,2025.05.05 09:04:41,filled,tp 3288.348
|
| 496 |
+
2025.05.06 01:03:14,501.0,XAUUSDc,buy,0.17 / 0.17,0.0,3329.618,3495.245,2025.05.06 01:03:14,filled,Range Breakout Buy
|
| 497 |
+
2025.05.08 00:15:04,502.0,XAUUSDc,buy,1.03 / 1.03,0.0,3375.317,3403.838,2025.05.08 00:15:04,filled,Range Breakout Buy
|
| 498 |
+
2025.05.08 01:52:31,503.0,XAUUSDc,sell,1.03 / 1.03,0.0,,,2025.05.08 01:52:31,filled,tp 3403.838
|
| 499 |
+
2025.05.08 06:33:32,504.0,XAUUSDc,sell,0.17 / 0.17,0.0,,,2025.05.08 06:33:32,filled,sl 3329.618
|
| 500 |
+
2025.05.12 01:15:07,505.0,XAUUSDc,sell,0.82 / 0.82,0.0,3266.682,3223.707,2025.05.12 01:15:07,filled,Range Breakout Sell
|
| 501 |
+
2025.05.12 01:22:55,506.0,XAUUSDc,buy,0.82 / 0.82,0.0,,,2025.05.12 01:22:55,filled,sl 3266.682
|
| 502 |
+
2025.05.13 00:09:07,507.0,XAUUSDc,buy,0.98 / 0.98,0.0,3238.993,3273.463,2025.05.13 00:09:07,filled,Range Breakout Buy
|
| 503 |
+
2025.05.13 00:21:58,508.0,XAUUSDc,sell,0.98 / 0.98,0.0,,,2025.05.13 00:21:58,filled,sl 3238.993
|
| 504 |
+
2025.05.14 00:03:07,509.0,XAUUSDc,sell,0.54 / 0.54,0.0,3254.658,3194.214,2025.05.14 00:03:07,filled,Range Breakout Sell
|
| 505 |
+
2025.05.14 12:46:33,510.0,XAUUSDc,buy,0.54 / 0.54,0.0,,,2025.05.14 12:46:33,filled,tp 3194.214
|
| 506 |
+
2025.05.15 01:45:02,511.0,XAUUSDc,sell,0.86 / 0.86,0.0,3183.117,3135.939,2025.05.15 01:45:02,filled,Range Breakout Sell
|
| 507 |
+
2025.05.15 04:54:41,512.0,XAUUSDc,buy,0.86 / 0.86,0.0,,,2025.05.15 04:54:41,filled,tp 3135.939
|
| 508 |
+
2025.05.19 00:12:00,513.0,XAUUSDc,buy,0.93 / 0.93,0.0,3241.201,3295.408,2025.05.19 00:12:00,filled,Range Breakout Buy
|
| 509 |
+
2025.05.19 00:53:42,514.0,XAUUSDc,sell,0.93 / 0.93,0.0,,,2025.05.19 00:53:42,filled,sl 3241.201
|
| 510 |
+
2025.05.20 00:21:15,515.0,XAUUSDc,sell,6.08 / 6.08,0.0,3219.958,3211.903,2025.05.20 00:21:15,filled,Range Breakout Sell
|
| 511 |
+
2025.05.20 00:29:05,516.0,XAUUSDc,buy,6.08 / 6.08,0.0,,,2025.05.20 00:29:05,filled,sl 3219.958
|
| 512 |
+
2025.05.22 08:33:06,517.0,XAUUSDc,sell,1.09 / 1.09,0.0,3318.722,3275.513,2025.05.22 08:33:06,filled,Range Breakout Sell
|
| 513 |
+
2025.05.23 00:06:01,518.0,XAUUSDc,sell,1.88 / 1.88,0.0,3296.442,3271.305,2025.05.23 00:06:01,filled,Range Breakout Sell
|
| 514 |
+
2025.05.23 00:07:30,519.0,XAUUSDc,buy,1.88 / 1.88,0.0,,,2025.05.23 00:07:30,filled,sl 3296.442
|
| 515 |
+
2025.05.23 05:15:41,520.0,XAUUSDc,buy,1.09 / 1.09,0.0,,,2025.05.23 05:15:41,filled,sl 3318.722
|
| 516 |
+
2025.05.26 00:12:00,521.0,XAUUSDc,sell,1.07 / 1.07,0.0,3342.024,3300.579,2025.05.26 00:12:00,filled,Range Breakout Sell
|
| 517 |
+
2025.05.26 00:59:28,522.0,XAUUSDc,buy,1.07 / 1.07,0.0,,,2025.05.26 00:59:28,filled,sl 3342.024
|
| 518 |
+
2025.05.27 00:15:00,523.0,XAUUSDc,buy,1.83 / 1.83,0.0,3346.795,3370.339,2025.05.27 00:15:00,filled,Range Breakout Buy
|
| 519 |
+
2025.05.27 00:19:16,524.0,XAUUSDc,sell,1.83 / 1.83,0.0,,,2025.05.27 00:19:16,filled,sl 3346.795
|
| 520 |
+
2025.05.28 03:21:00,525.0,XAUUSDc,sell,0.65 / 0.65,0.0,3302.037,3238.47,2025.05.28 03:21:00,filled,Range Breakout Sell
|
| 521 |
+
2025.05.28 05:07:36,526.0,XAUUSDc,buy,0.65 / 0.65,0.0,,,2025.05.28 05:07:36,filled,sl 3302.037
|
| 522 |
+
2025.05.29 10:21:11,527.0,XAUUSDc,buy,1.1 / 1.1,0.0,3291.723,3328.605,2025.05.29 10:21:11,filled,Range Breakout Buy
|
| 523 |
+
2025.05.29 16:14:43,528.0,XAUUSDc,sell,1.1 / 1.1,0.0,,,2025.05.29 16:14:43,filled,tp 3328.605
|
| 524 |
+
2025.06.02 04:57:06,529.0,XAUUSDc,buy,2.61 / 2.61,0.0,3314.787,3334.002,2025.06.02 04:57:06,filled,Range Breakout Buy
|
| 525 |
+
2025.06.02 04:58:57,530.0,XAUUSDc,sell,2.61 / 2.61,0.0,,,2025.06.02 04:58:57,filled,sl 3314.787
|
| 526 |
+
2025.06.03 00:06:03,531.0,XAUUSDc,sell,1.28 / 1.28,0.0,3386.035,3348.811,2025.06.03 00:06:03,filled,Range Breakout Sell
|
| 527 |
+
2025.06.03 13:46:00,532.0,XAUUSDc,buy,1.28 / 1.28,0.0,,,2025.06.03 13:46:00,filled,tp 3348.811
|
| 528 |
+
2025.06.09 00:18:04,533.0,XAUUSDc,sell,1.89 / 1.89,0.0,3311.782,3280.345,2025.06.09 00:18:04,filled,Range Breakout Sell
|
| 529 |
+
2025.06.09 00:34:31,534.0,XAUUSDc,buy,1.89 / 1.89,0.0,,,2025.06.09 00:34:31,filled,sl 3311.782
|
| 530 |
+
2025.06.10 06:33:07,535.0,XAUUSDc,buy,2.43 / 2.43,0.0,3325.421,3348.992,2025.06.10 06:33:07,filled,Range Breakout Buy
|
| 531 |
+
2025.06.10 06:59:58,536.0,XAUUSDc,sell,2.43 / 2.43,0.0,,,2025.06.10 06:59:58,filled,sl 3325.421
|
| 532 |
+
2025.06.12 07:39:07,537.0,XAUUSDc,sell,0.91 / 0.91,0.0,3360.299,3299.144,2025.06.12 07:39:07,filled,Range Breakout Sell
|
| 533 |
+
2025.06.12 08:28:42,538.0,XAUUSDc,buy,0.91 / 0.91,0.0,,,2025.06.12 08:28:42,filled,sl 3360.299
|
| 534 |
+
2025.06.13 00:03:03,539.0,XAUUSDc,buy,0.69 / 0.69,0.0,3391.695,3469.95,2025.06.13 00:03:03,filled,Range Breakout Buy
|
| 535 |
+
2025.06.16 13:54:40,540.0,XAUUSDc,sell,0.69 / 0.69,0.0,,,2025.06.16 13:54:40,filled,sl 3391.695
|
| 536 |
+
2025.06.18 04:33:06,541.0,XAUUSDc,buy,3.3 / 3.3,0.0,3394.516,3410.311,2025.06.18 04:33:06,filled,Range Breakout Buy
|
| 537 |
+
2025.06.18 04:34:39,542.0,XAUUSDc,sell,3.3 / 3.3,0.0,,,2025.06.18 04:34:39,filled,sl 3394.516
|
| 538 |
+
2025.06.20 01:12:08,543.0,XAUUSDc,sell,1.48 / 1.48,0.0,3364.301,3330.461,2025.06.20 01:12:08,filled,Range Breakout Sell
|
| 539 |
+
2025.06.20 01:47:34,544.0,XAUUSDc,buy,1.48 / 1.48,0.0,,,2025.06.20 01:47:34,filled,sl 3364.301
|
| 540 |
+
2025.06.23 00:06:07,545.0,XAUUSDc,sell,2.16 / 2.16,0.0,3372.928,3350.509,2025.06.23 00:06:07,filled,Range Breakout Sell
|
| 541 |
+
2025.06.23 05:35:26,546.0,XAUUSDc,buy,2.16 / 2.16,0.0,,,2025.06.23 05:35:26,filled,tp 3350.509
|
| 542 |
+
2025.06.24 00:03:08,547.0,XAUUSDc,sell,0.86 / 0.86,0.0,3345.218,3275.864,2025.06.24 00:03:08,filled,Range Breakout Sell
|
| 543 |
+
2025.06.24 00:15:03,548.0,XAUUSDc,buy,0.86 / 0.86,0.0,,,2025.06.24 00:15:03,filled,sl 3345.218
|
| 544 |
+
2025.06.25 12:45:03,549.0,XAUUSDc,sell,1.84 / 1.84,0.0,3323.306,3291.77,2025.06.25 12:45:03,filled,Range Breakout Sell
|
| 545 |
+
2025.06.25 14:30:41,550.0,XAUUSDc,buy,1.84 / 1.84,0.0,,,2025.06.25 14:30:41,filled,sl 3323.306
|
| 546 |
+
2025.06.27 00:06:08,551.0,XAUUSDc,sell,5.57 / 5.57,0.0,3316.969,3306.826,2025.06.27 00:06:08,filled,Range Breakout Sell
|
| 547 |
+
2025.06.27 00:08:27,552.0,XAUUSDc,buy,5.57 / 5.57,0.0,,,2025.06.27 00:08:27,filled,sl 3316.969
|
| 548 |
+
2025.06.30 01:27:12,553.0,XAUUSDc,buy,1.59 / 1.59,0.0,3271.853,3305.72,2025.06.30 01:27:12,filled,Range Breakout Buy
|
| 549 |
+
2025.06.30 01:36:40,554.0,XAUUSDc,sell,1.59 / 1.59,0.0,,,2025.06.30 01:36:40,filled,sl 3271.853
|
| 550 |
+
2025.07.01 01:00:09,555.0,XAUUSDc,buy,4.48 / 4.48,0.0,3313.429,3325.066,2025.07.01 01:00:09,filled,Range Breakout Buy
|
| 551 |
+
2025.07.01 05:03:37,556.0,XAUUSDc,sell,4.48 / 4.48,0.0,,,2025.07.01 05:03:37,filled,tp 3325.066
|
| 552 |
+
2025.07.02 00:06:01,557.0,XAUUSDc,sell,11.73 / 11.73,0.0,3337.114,3331.561,2025.07.02 00:06:01,filled,Range Breakout Sell
|
| 553 |
+
2025.07.02 00:06:17,558.0,XAUUSDc,buy,11.73 / 11.73,0.0,,,2025.07.02 00:06:17,filled,sl 3337.114
|
| 554 |
+
2025.07.03 00:03:07,559.0,XAUUSDc,sell,2.07 / 2.07,0.0,3349.895,3319.331,2025.07.03 00:03:07,filled,Range Breakout Sell
|
| 555 |
+
2025.07.03 02:49:36,560.0,XAUUSDc,buy,2.07 / 2.07,0.0,,,2025.07.03 02:49:36,filled,sl 3349.895
|
| 556 |
+
2025.07.04 01:21:06,561.0,XAUUSDc,buy,3.46 / 3.46,0.0,3330.332,3347.963,2025.07.04 01:21:06,filled,Range Breakout Buy
|
| 557 |
+
2025.07.04 01:35:14,562.0,XAUUSDc,sell,3.46 / 3.46,0.0,,,2025.07.04 01:35:14,filled,sl 3330.332
|
| 558 |
+
2025.07.08 00:03:03,563.0,XAUUSDc,sell,3.22 / 3.22,0.0,3335.675,3317.342,2025.07.08 00:03:03,filled,Range Breakout Sell
|
| 559 |
+
2025.07.08 00:04:37,564.0,XAUUSDc,buy,3.22 / 3.22,0.0,,,2025.07.08 00:04:37,filled,sl 3335.675
|
| 560 |
+
2025.07.09 00:03:01,565.0,XAUUSDc,buy,1.38 / 1.38,0.0,3301.815,3343.161,2025.07.09 00:03:01,filled,Range Breakout Buy
|
| 561 |
+
2025.07.09 01:13:30,566.0,XAUUSDc,sell,1.38 / 1.38,0.0,,,2025.07.09 01:13:30,filled,sl 3301.815
|
| 562 |
+
2025.07.10 00:45:06,567.0,XAUUSDc,buy,4.49 / 4.49,0.0,3320.329,3332.668,2025.07.10 00:45:06,filled,Range Breakout Buy
|
| 563 |
+
2025.07.10 00:45:40,568.0,XAUUSDc,sell,4.49 / 4.49,0.0,,,2025.07.10 00:45:40,filled,sl 3320.329
|
| 564 |
+
2025.07.14 07:30:02,569.0,XAUUSDc,buy,1.56 / 1.56,0.0,3370.738,3405.019,2025.07.14 07:30:02,filled,Range Breakout Buy
|
| 565 |
+
2025.07.14 07:38:00,570.0,XAUUSDc,sell,1.56 / 1.56,0.0,,,2025.07.14 07:38:00,filled,sl 3370.738
|
| 566 |
+
2025.07.15 13:27:03,571.0,XAUUSDc,sell,2.39 / 2.39,0.0,3343.16,3321.506,2025.07.15 13:27:03,filled,Range Breakout Sell
|
| 567 |
+
2025.07.15 13:53:39,572.0,XAUUSDc,buy,2.39 / 2.39,0.0,,,2025.07.15 13:53:39,filled,sl 3343.160
|
| 568 |
+
2025.07.22 12:45:06,573.0,XAUUSDc,buy,2.76 / 2.76,0.0,3401.687,3419.876,2025.07.22 12:45:06,filled,Range Breakout Buy
|
| 569 |
+
2025.07.22 12:49:37,574.0,XAUUSDc,sell,2.76 / 2.76,0.0,,,2025.07.22 12:49:37,filled,sl 3401.687
|
| 570 |
+
2025.07.23 01:06:08,575.0,XAUUSDc,sell,1.16 / 1.16,0.0,3430.262,3388.799,2025.07.23 01:06:08,filled,Range Breakout Sell
|
| 571 |
+
2025.07.23 09:06:38,576.0,XAUUSDc,buy,1.16 / 1.16,0.0,,,2025.07.23 09:06:38,filled,sl 3430.262
|
| 572 |
+
2025.07.24 01:09:01,577.0,XAUUSDc,sell,0.85 / 0.85,0.0,3391.667,3336.65,2025.07.24 01:09:01,filled,Range Breakout Sell
|
| 573 |
+
2025.07.24 01:15:37,578.0,XAUUSDc,buy,0.85 / 0.85,0.0,,,2025.07.24 01:15:37,filled,sl 3391.667
|
| 574 |
+
2025.07.25 02:21:02,579.0,XAUUSDc,sell,7.4 / 7.4,0.0,3365.671,3359.524,2025.07.25 02:21:02,filled,Range Breakout Sell
|
| 575 |
+
2025.07.25 02:25:37,580.0,XAUUSDc,buy,7.4 / 7.4,0.0,,,2025.07.25 02:25:37,filled,sl 3365.671
|
| 576 |
+
2025.07.30 00:03:05,581.0,XAUUSDc,buy,1.81 / 1.81,0.0,3327.206,3351.407,2025.07.30 00:03:05,filled,Range Breakout Buy
|
| 577 |
+
2025.07.30 01:35:42,582.0,XAUUSDc,sell,1.81 / 1.81,0.0,,,2025.07.30 01:35:42,filled,sl 3327.206
|
| 578 |
+
2025.07.31 00:03:01,583.0,XAUUSDc,buy,2.16 / 2.16,0.0,3284.339,3304.058,2025.07.31 00:03:01,filled,Range Breakout Buy
|
| 579 |
+
2025.07.31 00:07:36,584.0,XAUUSDc,sell,2.16 / 2.16,0.0,,,2025.07.31 00:07:36,filled,sl 3284.339
|
| 580 |
+
2025.08.01 03:12:08,585.0,XAUUSDc,buy,1.31 / 1.31,0.0,3293.493,3324.903,2025.08.01 03:12:08,filled,Range Breakout Buy
|
| 581 |
+
2025.08.01 03:21:24,586.0,XAUUSDc,sell,1.31 / 1.31,0.0,,,2025.08.01 03:21:24,filled,sl 3293.493
|
| 582 |
+
2025.08.06 00:21:07,587.0,XAUUSDc,buy,3.07 / 3.07,0.0,3382.572,3395.577,2025.08.06 00:21:07,filled,Range Breakout Buy
|
| 583 |
+
2025.08.06 00:41:24,588.0,XAUUSDc,sell,3.07 / 3.07,0.0,,,2025.08.06 00:41:24,filled,sl 3382.572
|
| 584 |
+
2025.08.07 00:03:13,589.0,XAUUSDc,sell,0.99 / 0.99,0.0,3370.403,3331.658,2025.08.07 00:03:13,filled,Range Breakout Sell
|
| 585 |
+
2025.08.07 00:14:30,590.0,XAUUSDc,buy,0.99 / 0.99,0.0,,,2025.08.07 00:14:30,filled,sl 3370.403
|
| 586 |
+
2025.08.11 00:03:05,591.0,XAUUSDc,sell,1.5 / 1.5,0.0,3391.639,3366.628,2025.08.11 00:03:05,filled,Range Breakout Sell
|
| 587 |
+
2025.08.11 00:08:05,592.0,XAUUSDc,buy,1.5 / 1.5,0.0,,,2025.08.11 00:08:05,filled,sl 3391.639
|
| 588 |
+
2025.08.13 00:03:01,593.0,XAUUSDc,sell,2.48 / 2.48,0.0,3350.783,3336.122,2025.08.13 00:03:01,filled,Range Breakout Sell
|
| 589 |
+
2025.08.13 01:46:27,594.0,XAUUSDc,buy,2.48 / 2.48,0.0,,,2025.08.13 01:46:27,filled,sl 3350.783
|
| 590 |
+
2025.08.14 00:03:01,595.0,XAUUSDc,buy,1.75 / 1.75,0.0,3362.743,3382.939,2025.08.14 00:03:01,filled,Range Breakout Buy
|
| 591 |
+
2025.08.14 03:00:01,596.0,XAUUSDc,sell,1.75 / 1.75,0.0,,,2025.08.14 03:00:01,filled,sl 3362.743
|
| 592 |
+
2025.08.18 00:18:07,597.0,XAUUSDc,buy,2.5 / 2.5,0.0,3334.156,3347.836,2025.08.18 00:18:07,filled,Range Breakout Buy
|
| 593 |
+
2025.08.18 03:31:40,598.0,XAUUSDc,sell,2.5 / 2.5,0.0,,,2025.08.18 03:31:40,filled,tp 3347.836
|
| 594 |
+
2025.08.19 00:03:00,599.0,XAUUSDc,sell,1.67 / 1.67,0.0,3330.99,3305.691,2025.08.19 00:03:00,filled,Range Breakout Sell
|
| 595 |
+
2025.08.19 00:06:29,600.0,XAUUSDc,buy,1.67 / 1.67,0.0,,,2025.08.19 00:06:29,filled,sl 3330.990
|
| 596 |
+
2025.08.21 00:03:05,601.0,XAUUSDc,sell,3.96 / 3.96,0.0,3346.906,3336.502,2025.08.21 00:03:05,filled,Range Breakout Sell
|
| 597 |
+
2025.08.21 06:22:16,602.0,XAUUSDc,buy,3.96 / 3.96,0.0,,,2025.08.21 06:22:16,filled,tp 3336.502
|
| 598 |
+
2025.08.22 14:03:03,603.0,XAUUSDc,buy,0.28 / 0.28,0.0,3333.733,3512.383,2025.08.22 14:03:03,filled,Range Breakout Buy
|
| 599 |
+
2025.08.25 00:06:02,604.0,XAUUSDc,sell,3.4 / 3.4,0.0,3367.427,3352.379,2025.08.25 00:06:02,filled,Range Breakout Sell
|
| 600 |
+
2025.08.25 01:02:02,605.0,XAUUSDc,buy,3.4 / 3.4,0.0,,,2025.08.25 01:02:02,filled,sl 3367.427
|
| 601 |
+
2025.08.26 00:15:01,606.0,XAUUSDc,buy,0.82 / 0.82,0.0,3362.343,3422.301,2025.08.26 00:15:01,filled,Range Breakout Buy
|
| 602 |
+
2025.08.28 00:15:03,607.0,XAUUSDc,sell,9 / 9,0.0,3395.278,3389.761,2025.08.28 00:15:03,filled,Range Breakout Sell
|
| 603 |
+
2025.08.28 00:15:36,608.0,XAUUSDc,buy,9 / 9,0.0,,,2025.08.28 00:15:36,filled,sl 3395.278
|
| 604 |
+
2025.08.28 19:56:30,609.0,XAUUSDc,sell,0.82 / 0.82,0.0,,,2025.08.28 19:56:30,filled,tp 3422.301
|
| 605 |
+
2025.08.29 13:15:01,610.0,XAUUSDc,buy,4.09 / 4.09,0.0,3417.048,3431.574,2025.08.29 13:15:01,filled,Range Breakout Buy
|
| 606 |
+
2025.08.29 13:25:59,611.0,XAUUSDc,sell,4.09 / 4.09,0.0,,,2025.08.29 13:25:59,filled,sl 3417.048
|
| 607 |
+
2025.09.01 02:00:05,612.0,XAUUSDc,buy,0.85 / 0.85,0.0,3449.787,3516.684,2025.09.01 02:00:05,filled,Range Breakout Buy
|
| 608 |
+
2025.09.02 07:54:10,613.0,XAUUSDc,sell,1.22 / 1.22,0.0,3479.014,3431.989,2025.09.02 07:54:10,filled,Range Breakout Sell
|
| 609 |
+
2025.09.02 08:35:37,614.0,XAUUSDc,buy,1.22 / 1.22,0.0,,,2025.09.02 08:35:37,filled,sl 3479.014
|
| 610 |
+
2025.09.02 14:47:29,615.0,XAUUSDc,sell,0.28 / 0.28,0.0,,,2025.09.02 14:47:29,filled,tp 3512.383
|
| 611 |
+
2025.09.02 15:47:27,616.0,XAUUSDc,sell,0.85 / 0.85,0.0,,,2025.09.02 15:47:27,filled,tp 3516.684
|
| 612 |
+
2025.09.03 00:21:07,617.0,XAUUSDc,buy,2.78 / 2.78,0.0,3531.851,3560.669,2025.09.03 00:21:07,filled,Range Breakout Buy
|
| 613 |
+
2025.09.03 02:59:38,618.0,XAUUSDc,sell,2.78 / 2.78,0.0,,,2025.09.03 02:59:38,filled,sl 3531.851
|
| 614 |
+
2025.09.04 00:09:06,619.0,XAUUSDc,sell,2.27 / 2.27,0.0,3556.932,3522.867,2025.09.04 00:09:06,filled,Range Breakout Sell
|
| 615 |
+
2025.09.04 00:11:19,620.0,XAUUSDc,buy,2.27 / 2.27,0.0,,,2025.09.04 00:11:19,filled,sl 3556.932
|
| 616 |
+
2025.09.05 00:03:06,621.0,XAUUSDc,buy,3.1 / 3.1,0.0,3552.532,3576.715,2025.09.05 00:03:06,filled,Range Breakout Buy
|
| 617 |
+
2025.09.05 00:05:31,622.0,XAUUSDc,sell,3.1 / 3.1,0.0,,,2025.09.05 00:05:31,filled,sl 3552.532
|
| 618 |
+
2025.09.09 00:15:02,623.0,XAUUSDc,buy,9.52 / 9.52,0.0,3636.253,3643.84,2025.09.09 00:15:02,filled,Range Breakout Buy
|
| 619 |
+
2025.09.09 01:09:39,624.0,XAUUSDc,sell,9.52 / 9.52,0.0,,,2025.09.09 01:09:39,filled,sl 3636.253
|
| 620 |
+
2025.09.10 04:09:03,625.0,XAUUSDc,buy,5.55 / 5.55,0.0,3639.454,3652.063,2025.09.10 04:09:03,filled,Range Breakout Buy
|
| 621 |
+
2025.09.10 09:45:35,626.0,XAUUSDc,sell,5.55 / 5.55,0.0,,,2025.09.10 09:45:35,filled,tp 3652.063
|
| 622 |
+
2025.09.12 01:03:11,627.0,XAUUSDc,buy,2.91 / 2.91,0.0,3636.484,3666.139,2025.09.12 01:03:11,filled,Range Breakout Buy
|
| 623 |
+
2025.09.15 00:03:30,628.0,XAUUSDc,sell,2.91 / 2.91,0.0,,,2025.09.15 00:03:30,filled,sl 3636.484
|
| 624 |
+
2025.09.15 00:06:03,629.0,XAUUSDc,sell,5.62 / 5.62,0.0,3637.824,3622.983,2025.09.15 00:06:03,filled,Range Breakout Sell
|
| 625 |
+
2025.09.15 00:07:37,630.0,XAUUSDc,buy,5.62 / 5.62,0.0,,,2025.09.15 00:07:37,filled,sl 3637.824
|
| 626 |
+
2025.09.16 00:18:01,631.0,XAUUSDc,buy,4.4 / 4.4,0.0,3679.098,3697.494,2025.09.16 00:18:01,filled,Range Breakout Buy
|
| 627 |
+
2025.09.16 01:15:37,632.0,XAUUSDc,sell,4.4 / 4.4,0.0,,,2025.09.16 01:15:37,filled,sl 3679.098
|
| 628 |
+
2025.09.17 01:24:00,633.0,XAUUSDc,sell,3.99 / 3.99,0.0,3691.138,3671.5,2025.09.17 01:24:00,filled,Range Breakout Sell
|
| 629 |
+
2025.09.17 06:44:29,634.0,XAUUSDc,buy,3.99 / 3.99,0.0,,,2025.09.17 06:44:29,filled,tp 3671.500
|
| 630 |
+
2025.09.24 00:03:05,635.0,XAUUSDc,sell,2.99 / 2.99,0.0,3765.156,3732.657,2025.09.24 00:03:05,filled,Range Breakout Sell
|
| 631 |
+
2025.09.24 00:24:37,636.0,XAUUSDc,buy,2.99 / 2.99,0.0,,,2025.09.24 00:24:37,filled,sl 3765.156
|
| 632 |
+
2025.09.25 00:06:04,637.0,XAUUSDc,buy,3.04 / 3.04,0.0,3743.086,3774.136,2025.09.25 00:06:04,filled,Range Breakout Buy
|
| 633 |
+
2025.09.25 01:10:28,638.0,XAUUSDc,sell,3.04 / 3.04,0.0,,,2025.09.25 01:10:28,filled,sl 3743.086
|
| 634 |
+
2025.09.29 00:12:00,639.0,XAUUSDc,buy,5.16 / 5.16,0.0,3771.558,3789.324,2025.09.29 00:12:00,filled,Range Breakout Buy
|
| 635 |
+
2025.09.29 01:24:28,640.0,XAUUSDc,sell,5.16 / 5.16,0.0,,,2025.09.29 01:24:28,filled,sl 3771.558
|
| 636 |
+
2025.09.30 00:03:16,641.0,XAUUSDc,buy,3.9 / 3.9,0.0,3831.091,3853.798,2025.09.30 00:03:16,filled,Range Breakout Buy
|
| 637 |
+
2025.09.30 03:13:30,642.0,XAUUSDc,sell,3.9 / 3.9,0.0,,,2025.09.30 03:13:30,filled,tp 3853.798
|
| 638 |
+
2025.10.01 00:03:10,643.0,XAUUSDc,buy,7.03 / 7.03,0.0,3862.349,3877.955,2025.10.01 00:03:10,filled,Range Breakout Buy
|
| 639 |
+
2025.10.01 00:26:17,644.0,XAUUSDc,sell,7.03 / 7.03,0.0,,,2025.10.01 00:26:17,filled,sl 3862.349
|
| 640 |
+
2025.10.02 00:21:00,645.0,XAUUSDc,sell,3.92 / 3.92,0.0,3860.409,3833.292,2025.10.02 00:21:00,filled,Range Breakout Sell
|
| 641 |
+
2025.10.02 00:24:29,646.0,XAUUSDc,buy,3.92 / 3.92,0.0,,,2025.10.02 00:24:29,filled,sl 3860.409
|
| 642 |
+
2025.10.03 01:24:07,647.0,XAUUSDc,sell,3.7 / 3.7,0.0,3854.685,3826.821,2025.10.03 01:24:07,filled,Range Breakout Sell
|
| 643 |
+
2025.10.03 01:39:42,648.0,XAUUSDc,buy,3.7 / 3.7,0.0,,,2025.10.03 01:39:42,filled,sl 3854.685
|
| 644 |
+
2025.10.06 02:03:04,649.0,XAUUSDc,buy,1.91 / 1.91,0.0,3917.537,3969.485,2025.10.06 02:03:04,filled,Range Breakout Buy
|
| 645 |
+
2025.10.06 16:08:38,650.0,XAUUSDc,sell,1.91 / 1.91,0.0,,,2025.10.06 16:08:38,filled,tp 3969.485
|
| 646 |
+
2025.10.09 04:30:05,651.0,XAUUSDc,buy,13.66 / 13.66,0.0,4037.27,4046.27,2025.10.09 04:30:05,filled,Range Breakout Buy
|
| 647 |
+
2025.10.09 04:36:38,652.0,XAUUSDc,sell,13.66 / 13.66,0.0,,,2025.10.09 04:36:38,filled,sl 4037.270
|
| 648 |
+
2025.10.10 00:12:02,653.0,XAUUSDc,buy,6.27 / 6.27,0.0,3988.75,4007.515,2025.10.10 00:12:02,filled,Range Breakout Buy
|
| 649 |
+
2025.10.10 00:13:42,654.0,XAUUSDc,sell,6.27 / 6.27,0.0,,,2025.10.10 00:13:42,filled,sl 3988.750
|
| 650 |
+
2025.10.14 06:24:01,655.0,XAUUSDc,sell,0.75 / 0.75,0.0,4109.008,3958.591,2025.10.14 06:24:01,filled,Range Breakout Sell
|
| 651 |
+
2025.10.14 06:26:02,656.0,XAUUSDc,buy,0.75 / 0.75,0.0,,,2025.10.14 06:26:02,filled,sl 4109.008
|
| 652 |
+
2025.10.15 00:12:03,657.0,XAUUSDc,buy,7.69 / 7.69,0.0,4165.981,4180.381,2025.10.15 00:12:03,filled,Range Breakout Buy
|
| 653 |
+
2025.10.15 00:18:41,658.0,XAUUSDc,sell,7.69 / 7.69,0.0,,,2025.10.15 00:18:41,filled,sl 4165.981
|
| 654 |
+
2025.10.16 00:18:08,659.0,XAUUSDc,buy,8.47 / 8.47,0.0,4214.828,4227.464,2025.10.16 00:18:08,filled,Range Breakout Buy
|
| 655 |
+
2025.10.16 00:59:20,660.0,XAUUSDc,sell,8.47 / 8.47,0.0,,,2025.10.16 00:59:20,filled,sl 4214.828
|
| 656 |
+
2025.10.17 01:18:05,661.0,XAUUSDc,sell,0.56 / 0.56,0.0,4348.448,4163.705,2025.10.17 01:18:05,filled,Range Breakout Sell
|
| 657 |
+
2025.10.17 02:50:15,662.0,XAUUSDc,buy,0.56 / 0.56,0.0,,,2025.10.17 02:50:15,filled,sl 4348.448
|
| 658 |
+
2025.10.20 00:12:00,663.0,XAUUSDc,sell,1.6 / 1.6,0.0,4238.845,4175.935,2025.10.20 00:12:00,filled,Range Breakout Sell
|
| 659 |
+
2025.10.20 00:37:47,664.0,XAUUSDc,buy,1.6 / 1.6,0.0,,,2025.10.20 00:37:47,filled,sl 4238.845
|
| 660 |
+
2025.10.22 00:03:03,665.0,XAUUSDc,sell,0.41 / 0.41,0.0,4094.052,3855.246,2025.10.22 00:03:03,filled,Range Breakout Sell
|
| 661 |
+
2025.10.22 01:04:21,666.0,XAUUSDc,buy,0.41 / 0.41,0.0,,,2025.10.22 01:04:21,filled,sl 4094.052
|
| 662 |
+
2025.10.23 00:21:01,667.0,XAUUSDc,sell,1.85 / 1.85,0.0,4085.376,4034.157,2025.10.23 00:21:01,filled,Range Breakout Sell
|
| 663 |
+
2025.10.23 00:52:42,668.0,XAUUSDc,buy,1.85 / 1.85,0.0,,,2025.10.23 00:52:42,filled,sl 4085.376
|
| 664 |
+
2025.10.27 00:03:09,669.0,XAUUSDc,sell,1.32 / 1.32,0.0,4067.716,3998.137,2025.10.27 00:03:09,filled,Range Breakout Sell
|
| 665 |
+
2025.10.27 00:07:31,670.0,XAUUSDc,buy,1.32 / 1.32,0.0,,,2025.10.27 00:07:31,filled,sl 4067.716
|
| 666 |
+
2025.10.28 00:21:06,671.0,XAUUSDc,sell,0.81 / 0.81,0.0,3985.878,3876.564,2025.10.28 00:21:06,filled,Range Breakout Sell
|
| 667 |
+
2025.10.28 00:30:29,672.0,XAUUSDc,buy,0.81 / 0.81,0.0,,,2025.10.28 00:30:29,filled,sl 3985.878
|
| 668 |
+
2025.10.30 00:03:06,673.0,XAUUSDc,buy,1.43 / 1.43,0.0,3952.011,4012.176,2025.10.30 00:03:06,filled,Range Breakout Buy
|
| 669 |
+
2025.10.30 00:36:39,674.0,XAUUSDc,sell,1.43 / 1.43,0.0,,,2025.10.30 00:36:39,filled,sl 3952.011
|
| 670 |
+
2025.11.05 00:06:05,675.0,XAUUSDc,buy,3.27 / 3.27,0.0,3937.71,3963.387,2025.11.05 00:06:05,filled,Range Breakout Buy
|
| 671 |
+
2025.11.05 00:07:03,676.0,XAUUSDc,sell,3.27 / 3.27,0.0,,,2025.11.05 00:07:03,filled,sl 3937.710
|
| 672 |
+
2025.11.06 02:33:06,677.0,XAUUSDc,buy,2.22 / 2.22,0.0,3978.12,4014.624,2025.11.06 02:33:06,filled,Range Breakout Buy
|
| 673 |
+
2025.11.06 08:27:40,678.0,XAUUSDc,sell,2.22 / 2.22,0.0,,,2025.11.06 08:27:40,filled,tp 4014.624
|
| 674 |
+
2025.11.10 00:03:01,679.0,XAUUSDc,buy,4.96 / 4.96,0.0,4011.132,4031.319,2025.11.10 00:03:01,filled,Range Breakout Buy
|
| 675 |
+
2025.11.10 01:16:39,680.0,XAUUSDc,sell,4.96 / 4.96,0.0,,,2025.11.10 01:16:39,filled,tp 4031.319
|
| 676 |
+
2025.11.11 00:27:00,681.0,XAUUSDc,buy,4.43 / 4.43,0.0,4120.655,4148.582,2025.11.11 00:27:00,filled,Range Breakout Buy
|
| 677 |
+
2025.11.11 04:02:39,682.0,XAUUSDc,sell,4.43 / 4.43,0.0,,,2025.11.11 04:02:39,filled,tp 4148.582
|
| 678 |
+
2025.11.12 00:06:05,683.0,XAUUSDc,buy,8.53 / 8.53,0.0,4143.156,4161.12,2025.11.12 00:06:05,filled,Range Breakout Buy
|
| 679 |
+
2025.11.12 00:07:39,684.0,XAUUSDc,sell,8.53 / 8.53,0.0,,,2025.11.12 00:07:39,filled,sl 4143.156
|
| 680 |
+
2025.11.14 00:21:08,685.0,XAUUSDc,buy,4.97 / 4.97,0.0,4185.301,4215.019,2025.11.14 00:21:08,filled,Range Breakout Buy
|
| 681 |
+
2025.11.14 00:27:34,686.0,XAUUSDc,sell,4.97 / 4.97,0.0,,,2025.11.14 00:27:34,filled,sl 4185.301
|
| 682 |
+
2025.11.18 13:36:04,687.0,XAUUSDc,buy,1.45 / 1.45,0.0,4049.606,4147.994,2025.11.18 13:36:04,filled,Range Breakout Buy
|
| 683 |
+
2025.11.18 15:51:04,688.0,XAUUSDc,sell,1.45 / 1.45,0.0,,,2025.11.18 15:51:04,filled,sl 4049.606
|
| 684 |
+
2025.11.20 00:03:02,689.0,XAUUSDc,buy,3.25 / 3.25,0.0,4104.668,4147.373,2025.11.20 00:03:02,filled,Range Breakout Buy
|
| 685 |
+
2025.11.20 00:05:03,690.0,XAUUSDc,sell,3.25 / 3.25,0.0,,,2025.11.20 00:05:03,filled,sl 4104.668
|
| 686 |
+
2025.11.21 16:51:00,691.0,XAUUSDc,buy,0.98 / 0.98,0.0,4078.047,4214.496,2025.11.21 16:51:00,filled,Range Breakout Buy
|
| 687 |
+
2025.11.21 18:30:36,692.0,XAUUSDc,sell,0.98 / 0.98,0.0,,,2025.11.21 18:30:36,filled,sl 4078.047
|
| 688 |
+
2025.11.24 00:09:03,693.0,XAUUSDc,sell,2.31 / 2.31,0.0,4068.921,4012.581,2025.11.24 00:09:03,filled,Range Breakout Sell
|
| 689 |
+
2025.11.24 01:00:05,694.0,XAUUSDc,buy,2.31 / 2.31,0.0,,,2025.11.24 01:00:05,filled,sl 4068.921
|
| 690 |
+
2025.11.26 00:09:03,695.0,XAUUSDc,buy,3.79 / 3.79,0.0,4133.742,4167.177,2025.11.26 00:09:03,filled,Range Breakout Buy
|
| 691 |
+
2025.11.26 03:07:57,696.0,XAUUSDc,sell,3.79 / 3.79,0.0,,,2025.11.26 03:07:57,filled,tp 4167.177
|
| 692 |
+
2025.11.28 00:03:02,697.0,XAUUSDc,buy,10.31 / 10.31,0.0,4163.093,4178.348,2025.11.28 00:03:02,filled,Range Breakout Buy
|
| 693 |
+
2025.11.28 00:34:30,698.0,XAUUSDc,sell,10.31 / 10.31,0.0,,,2025.11.28 00:34:30,filled,tp 4178.348
|
| 694 |
+
2025.12.01 00:30:01,699.0,XAUUSDc,buy,7.66 / 7.66,0.0,4224.309,4249.725,2025.12.01 00:30:01,filled,Range Breakout Buy
|
| 695 |
+
2025.12.01 01:04:41,700.0,XAUUSDc,sell,7.66 / 7.66,0.0,,,2025.12.01 01:04:41,filled,sl 4224.309
|
| 696 |
+
2025.12.03 01:03:05,701.0,XAUUSDc,buy,4.03 / 4.03,0.0,4211.553,4258.362,2025.12.03 01:03:05,filled,Range Breakout Buy
|
| 697 |
+
2025.12.03 05:39:27,702.0,XAUUSDc,sell,4.03 / 4.03,0.0,,,2025.12.03 05:39:27,filled,sl 4211.553
|
| 698 |
+
2025.12.04 00:09:15,703.0,XAUUSDc,buy,7.23 / 7.23,0.0,4206.279,4231.533,2025.12.04 00:09:15,filled,Range Breakout Buy
|
| 699 |
+
2025.12.04 01:05:40,704.0,XAUUSDc,sell,7.23 / 7.23,0.0,,,2025.12.04 01:05:40,filled,sl 4206.279
|
| 700 |
+
2025.12.05 00:18:05,705.0,XAUUSDc,buy,8.7 / 8.7,0.0,4208.028,4228.386,2025.12.05 00:18:05,filled,Range Breakout Buy
|
| 701 |
+
2025.12.05 00:18:40,706.0,XAUUSDc,sell,8.7 / 8.7,0.0,,,2025.12.05 00:18:40,filled,sl 4208.028
|
| 702 |
+
2025.12.08 00:39:06,707.0,XAUUSDc,buy,7.02 / 7.02,0.0,4207.044,4231.425,2025.12.08 00:39:06,filled,Range Breakout Buy
|
| 703 |
+
2025.12.08 01:00:43,708.0,XAUUSDc,sell,7.02 / 7.02,0.0,,,2025.12.08 01:00:43,filled,sl 4207.044
|
| 704 |
+
2025.12.11 00:03:05,709.0,XAUUSDc,buy,5.67 / 5.67,0.0,4231.298,4260.431,2025.12.11 00:03:05,filled,Range Breakout Buy
|
| 705 |
+
2025.12.11 02:11:40,710.0,XAUUSDc,sell,5.67 / 5.67,0.0,,,2025.12.11 02:11:40,filled,sl 4231.298
|
| 706 |
+
2025.12.12 00:54:06,711.0,XAUUSDc,sell,6.46 / 6.46,0.0,4274.518,4249.777,2025.12.12 00:54:06,filled,Range Breakout Sell
|
| 707 |
+
2025.12.12 01:13:25,712.0,XAUUSDc,buy,6.46 / 6.46,0.0,,,2025.12.12 01:13:25,filled,sl 4274.518
|
| 708 |
+
2025.12.15 01:03:04,713.0,XAUUSDc,buy,2.81 / 2.81,0.0,4305.777,4360.911,2025.12.15 01:03:04,filled,Range Breakout Buy
|
| 709 |
+
2025.12.15 16:05:32,714.0,XAUUSDc,sell,2.81 / 2.81,0.0,,,2025.12.15 16:05:32,filled,sl 4305.777
|
| 710 |
+
2025.12.17 00:03:15,715.0,XAUUSDc,buy,6.87 / 6.87,0.0,4307.375,4329.326,2025.12.17 00:03:15,filled,Range Breakout Buy
|
| 711 |
+
2025.12.17 04:42:30,716.0,XAUUSDc,sell,6.87 / 6.87,0.0,,,2025.12.17 04:42:30,filled,tp 4329.326
|
| 712 |
+
2025.12.18 00:51:06,717.0,XAUUSDc,sell,6.7 / 6.7,0.0,4336.672,4308.754,2025.12.18 00:51:06,filled,Range Breakout Sell
|
| 713 |
+
2025.12.18 01:01:38,718.0,XAUUSDc,buy,6.7 / 6.7,0.0,,,2025.12.18 01:01:38,filled,sl 4336.672
|
| 714 |
+
2025.12.19 00:06:07,719.0,XAUUSDc,sell,7.62 / 7.62,0.0,4335.841,4312.036,2025.12.19 00:06:07,filled,Range Breakout Sell
|
| 715 |
+
2025.12.19 01:28:39,720.0,XAUUSDc,buy,7.62 / 7.62,0.0,,,2025.12.19 01:28:39,filled,tp 4312.036
|
| 716 |
+
2025.12.22 00:03:16,721.0,XAUUSDc,buy,3.19 / 3.19,0.0,4355.278,4426.207,2025.12.22 00:03:16,filled,Range Breakout Buy
|
| 717 |
+
2025.12.22 13:11:04,722.0,XAUUSDc,sell,3.19 / 3.19,0.0,,,2025.12.22 13:11:04,filled,tp 4426.207
|
| 718 |
+
2025.12.23 00:06:07,723.0,XAUUSDc,buy,10.54 / 10.54,0.0,4459.946,4486.532,2025.12.23 00:06:07,filled,Range Breakout Buy
|
| 719 |
+
2025.12.23 01:12:13,724.0,XAUUSDc,sell,10.54 / 10.54,0.0,,,2025.12.23 01:12:13,filled,tp 4486.532
|
| 720 |
+
2025.12.24 03:00:06,725.0,XAUUSDc,sell,1.59 / 1.59,0.0,4501.822,4283.104,2025.12.24 03:00:06,filled,Range Breakout Sell
|
| 721 |
+
2025.12.26 00:06:42,726.0,XAUUSDc,buy,1.59 / 1.59,0.0,,,2025.12.26 00:06:42,filled,sl 4501.822
|
| 722 |
+
2025.12.29 00:03:17,727.0,XAUUSDc,sell,5.06 / 5.06,0.0,4528.03,4460.881,2025.12.29 00:03:17,filled,Range Breakout Sell
|
| 723 |
+
2025.12.29 07:00:28,728.0,XAUUSDc,buy,5.06 / 5.06,0.0,,,2025.12.29 07:00:28,filled,tp 4460.881
|
| 724 |
+
Deals,,,,,,,,,,
|
backend/[4]_output_csv_files/Upload-1_ID/merged_extracted_orders_and_deals.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
backend/[4]_output_csv_files/Upload-1_ID/visualize_results.py
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pandas as pd
|
| 2 |
+
import plotly.graph_objects as go
|
| 3 |
+
from plotly.subplots import make_subplots
|
| 4 |
+
import os
|
| 5 |
+
|
| 6 |
+
def format_title(text):
|
| 7 |
+
"""
|
| 8 |
+
Formats the column name for the graph title:
|
| 9 |
+
1. Splits by '_'.
|
| 10 |
+
2. If 'rolling' exists, keep only words AFTER it.
|
| 11 |
+
3. Capitalize first letter (unless already all caps).
|
| 12 |
+
4. Remove duplicates.
|
| 13 |
+
"""
|
| 14 |
+
# Split by underscore
|
| 15 |
+
words = text.split('_')
|
| 16 |
+
|
| 17 |
+
# Handle 'rolling': Find the specific word and keep everything after it
|
| 18 |
+
lower_words = [w.lower() for w in words]
|
| 19 |
+
if 'rolling' in lower_words:
|
| 20 |
+
try:
|
| 21 |
+
# Find the index of the word 'rolling'
|
| 22 |
+
index = lower_words.index('rolling')
|
| 23 |
+
# Slice the list to keep only elements after 'rolling'
|
| 24 |
+
words = words[index + 1:]
|
| 25 |
+
except ValueError:
|
| 26 |
+
pass
|
| 27 |
+
|
| 28 |
+
# Deduplicate and Format
|
| 29 |
+
clean_words = []
|
| 30 |
+
seen = set()
|
| 31 |
+
|
| 32 |
+
for word in words:
|
| 33 |
+
# distinct check (case-insensitive) and skip empty strings or leftover 'rolling'
|
| 34 |
+
if word.lower() not in seen and word.strip() != "" and word.lower() != 'rolling':
|
| 35 |
+
seen.add(word.lower())
|
| 36 |
+
|
| 37 |
+
# Capitalization Logic
|
| 38 |
+
if word.isupper():
|
| 39 |
+
# If text is already capslock (abbreviation), do not change
|
| 40 |
+
clean_words.append(word)
|
| 41 |
+
else:
|
| 42 |
+
# Make first letter capslock
|
| 43 |
+
clean_words.append(word.capitalize())
|
| 44 |
+
|
| 45 |
+
return " ".join(clean_words)
|
| 46 |
+
|
| 47 |
+
def create_column_graphs(filename):
|
| 48 |
+
# Check if file exists
|
| 49 |
+
if not os.path.exists(filename):
|
| 50 |
+
print(f"Error: The file '{filename}' was not found in the current directory.")
|
| 51 |
+
return
|
| 52 |
+
|
| 53 |
+
# Load the data
|
| 54 |
+
try:
|
| 55 |
+
df = pd.read_csv(filename)
|
| 56 |
+
except Exception as e:
|
| 57 |
+
print(f"Error reading the CSV file: {e}")
|
| 58 |
+
return
|
| 59 |
+
|
| 60 |
+
# Select only numeric columns (assuming we want to plot numerical data)
|
| 61 |
+
cols_to_plot = df.select_dtypes(include=['number']).columns
|
| 62 |
+
|
| 63 |
+
if len(cols_to_plot) == 0:
|
| 64 |
+
print("No numeric columns found to plot.")
|
| 65 |
+
# Fallback to all columns if no numeric found
|
| 66 |
+
cols_to_plot = df.columns
|
| 67 |
+
|
| 68 |
+
# Process titles according to rules
|
| 69 |
+
formatted_titles = [format_title(col) for col in cols_to_plot]
|
| 70 |
+
|
| 71 |
+
num_plots = len(cols_to_plot)
|
| 72 |
+
print(f"Generating {num_plots} graphs...")
|
| 73 |
+
|
| 74 |
+
# Create subplots: one row for each column
|
| 75 |
+
fig = make_subplots(
|
| 76 |
+
rows=num_plots,
|
| 77 |
+
cols=1,
|
| 78 |
+
subplot_titles=formatted_titles, # Use the formatted titles here
|
| 79 |
+
vertical_spacing=0.05 / max(1, (num_plots / 2)) # Adjust spacing dynamically
|
| 80 |
+
)
|
| 81 |
+
|
| 82 |
+
# Add a line graph for each column
|
| 83 |
+
for i, col in enumerate(cols_to_plot):
|
| 84 |
+
fig.add_trace(
|
| 85 |
+
go.Scatter(
|
| 86 |
+
x=df.index,
|
| 87 |
+
y=df[col],
|
| 88 |
+
mode='lines',
|
| 89 |
+
name=formatted_titles[i] # Update trace name to match title
|
| 90 |
+
),
|
| 91 |
+
row=i + 1,
|
| 92 |
+
col=1
|
| 93 |
+
)
|
| 94 |
+
|
| 95 |
+
# Update the layout to use the white theme and ensure it's tall enough
|
| 96 |
+
fig.update_layout(
|
| 97 |
+
template='plotly_white',
|
| 98 |
+
height=300 * num_plots, # Set height: 300px per graph
|
| 99 |
+
title_text=f"Visualization of {filename}",
|
| 100 |
+
showlegend=False # Hide legend to reduce clutter
|
| 101 |
+
)
|
| 102 |
+
|
| 103 |
+
# Show the graph
|
| 104 |
+
fig.show()
|
| 105 |
+
|
| 106 |
+
if __name__ == "__main__":
|
| 107 |
+
create_column_graphs('9_layer_output.csv')
|
backend/[4]_output_csv_files/outputs will go here
ADDED
|
File without changes
|
backend/server.py
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import shutil
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
from typing import List
|
| 5 |
+
from fastapi import FastAPI, UploadFile, File, HTTPException
|
| 6 |
+
from fastapi.middleware.cors import CORSMiddleware
|
| 7 |
+
from fastapi.staticfiles import StaticFiles
|
| 8 |
+
from fastapi.responses import FileResponse
|
| 9 |
+
|
| 10 |
+
app = FastAPI()
|
| 11 |
+
|
| 12 |
+
# Configure CORS
|
| 13 |
+
app.add_middleware(
|
| 14 |
+
CORSMiddleware,
|
| 15 |
+
allow_origins=["*"], # In production, replace with specific origin
|
| 16 |
+
allow_credentials=True,
|
| 17 |
+
allow_methods=["*"],
|
| 18 |
+
allow_headers=["*"],
|
| 19 |
+
)
|
| 20 |
+
|
| 21 |
+
# Directories
|
| 22 |
+
BASE_DIR = Path(__file__).parent.absolute()
|
| 23 |
+
UPLOAD_DIR = BASE_DIR / "[2]_Drop_xlsx_here"
|
| 24 |
+
OUTPUT_DIR = BASE_DIR / "[4]_output_csv_files"
|
| 25 |
+
|
| 26 |
+
# Ensure directories exist
|
| 27 |
+
UPLOAD_DIR.mkdir(exist_ok=True)
|
| 28 |
+
OUTPUT_DIR.mkdir(exist_ok=True)
|
| 29 |
+
|
| 30 |
+
@app.get("/")
|
| 31 |
+
async def root():
|
| 32 |
+
return {"message": "MTParsee Backend Running"}
|
| 33 |
+
|
| 34 |
+
@app.post("/upload")
|
| 35 |
+
async def upload_file(file: UploadFile = File(...)):
|
| 36 |
+
if not file.filename.endswith(('.xlsx', '.xls')):
|
| 37 |
+
raise HTTPException(status_code=400, detail="Only Excel files are allowed")
|
| 38 |
+
|
| 39 |
+
file_path = UPLOAD_DIR / file.filename
|
| 40 |
+
try:
|
| 41 |
+
with open(file_path, "wb") as buffer:
|
| 42 |
+
shutil.copyfileobj(file.file, buffer)
|
| 43 |
+
return {"filename": file.filename, "message": "File uploaded successfully"}
|
| 44 |
+
except Exception as e:
|
| 45 |
+
raise HTTPException(status_code=500, detail=str(e))
|
| 46 |
+
|
| 47 |
+
@app.get("/processed")
|
| 48 |
+
async def list_processed_folders():
|
| 49 |
+
"""List all result folders in the output directory"""
|
| 50 |
+
if not OUTPUT_DIR.exists():
|
| 51 |
+
return []
|
| 52 |
+
|
| 53 |
+
results = []
|
| 54 |
+
# Sort by modification time, newest first
|
| 55 |
+
items = sorted(OUTPUT_DIR.iterdir(), key=os.path.getmtime, reverse=True)
|
| 56 |
+
|
| 57 |
+
for item in items:
|
| 58 |
+
if item.is_dir() and item.name.startswith("Upload-"):
|
| 59 |
+
# Count files in the folder
|
| 60 |
+
file_count = len(list(item.glob("*.*")))
|
| 61 |
+
results.append({
|
| 62 |
+
"id": item.name,
|
| 63 |
+
"name": item.name,
|
| 64 |
+
"created": item.stat().st_mtime,
|
| 65 |
+
"file_count": file_count
|
| 66 |
+
})
|
| 67 |
+
return results
|
| 68 |
+
|
| 69 |
+
@app.get("/processed/{folder_id}")
|
| 70 |
+
async def list_folder_contents(folder_id: str):
|
| 71 |
+
folder_path = OUTPUT_DIR / folder_id
|
| 72 |
+
if not folder_path.exists():
|
| 73 |
+
raise HTTPException(status_code=404, detail="Folder not found")
|
| 74 |
+
|
| 75 |
+
files = []
|
| 76 |
+
for item in folder_path.iterdir():
|
| 77 |
+
if item.is_file():
|
| 78 |
+
files.append({
|
| 79 |
+
"name": item.name,
|
| 80 |
+
"size": item.stat().st_size,
|
| 81 |
+
"path": f"download/{folder_id}/{item.name}"
|
| 82 |
+
})
|
| 83 |
+
return files
|
| 84 |
+
|
| 85 |
+
@app.get("/download/{folder_id}/{filename}")
|
| 86 |
+
async def download_file(folder_id: str, filename: str):
|
| 87 |
+
file_path = OUTPUT_DIR / folder_id / filename
|
| 88 |
+
if not file_path.exists():
|
| 89 |
+
raise HTTPException(status_code=404, detail="File not found")
|
| 90 |
+
|
| 91 |
+
return FileResponse(path=file_path, filename=filename, media_type='application/octet-stream')
|
| 92 |
+
|
| 93 |
+
if __name__ == "__main__":
|
| 94 |
+
import uvicorn
|
| 95 |
+
uvicorn.run(app, host="0.0.0.0", port=8000)
|
backend/test_backend.py
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import requests
|
| 2 |
+
import os
|
| 3 |
+
from pathlib import Path
|
| 4 |
+
|
| 5 |
+
BASE_URL = "http://localhost:8000"
|
| 6 |
+
|
| 7 |
+
def test_backend():
|
| 8 |
+
print(f"Testing backend at {BASE_URL}...")
|
| 9 |
+
|
| 10 |
+
# 1. Health Check
|
| 11 |
+
try:
|
| 12 |
+
r = requests.get(f"{BASE_URL}/")
|
| 13 |
+
print(f"Root: {r.status_code} - {r.json()}")
|
| 14 |
+
except Exception as e:
|
| 15 |
+
print(f"Failed to connect: {e}")
|
| 16 |
+
return
|
| 17 |
+
|
| 18 |
+
# 2. Upload
|
| 19 |
+
dummy_file = "test_upload.xlsx"
|
| 20 |
+
# Create empty dummy file
|
| 21 |
+
with open(dummy_file, "wb") as f:
|
| 22 |
+
f.write(b"dummy excel content")
|
| 23 |
+
|
| 24 |
+
files = {'file': (dummy_file, open(dummy_file, 'rb'))}
|
| 25 |
+
try:
|
| 26 |
+
r = requests.post(f"{BASE_URL}/upload", files=files)
|
| 27 |
+
print(f"Upload: {r.status_code} - {r.json()}")
|
| 28 |
+
except Exception as e:
|
| 29 |
+
print(f"Upload failed: {e}")
|
| 30 |
+
finally:
|
| 31 |
+
os.remove(dummy_file)
|
| 32 |
+
|
| 33 |
+
# 3. List Processed
|
| 34 |
+
try:
|
| 35 |
+
r = requests.get(f"{BASE_URL}/processed")
|
| 36 |
+
print(f"Processed: {r.status_code} - {r.json()}")
|
| 37 |
+
except Exception as e:
|
| 38 |
+
print(f"List processed failed: {e}")
|
| 39 |
+
|
| 40 |
+
if __name__ == "__main__":
|
| 41 |
+
test_backend()
|
backend/workflow.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
```
|
| 2 |
+
Backend/
|
| 3 |
+
├── main_watchdog.py # The "Brain": Constantly monitors for new files script
|
| 4 |
+
├── Drop_xlsx_here/ # The "Trigger": Put your raw Excel files here folder
|
| 5 |
+
├── Process/ folder
|
| 6 |
+
│ ├── 1_layer.py # parsing the entire one xlxs - outputs 1 csv script
|
| 7 |
+
│ ├── 2_layer.py # extracts the order&deals tables - outputs 2 csv script
|
| 8 |
+
│ ├── 3_layer.py # from 2 csv, merge into one - outputs 1 csv script
|
| 9 |
+
│ ├── 4_layer.py # only all red-rolling_28-metrics (MT5) - outputs 1 csv script
|
| 10 |
+
│ ├── 5_layer.py # only all blue-rolling_13-metrics (non-MT5) - outputs 1 csv script
|
| 11 |
+
│ ├── 6_layer.py # from 2 csv, all balance-based_41-metrics - outputs 1 csv script
|
| 12 |
+
│ ├── 7_layer.py # only all orange (equity-based) rolling_metrics - outputs 1 csv script
|
| 13 |
+
│ ├── 8_layer.py # from 1 csv, all equity-based_35metrics - outputs 1 csv script
|
| 14 |
+
│ └── 9_layer.py # all balance & equity-based_76metrics - outputs 1 csv script
|
| 15 |
+
├── Output_csv_files/ # The "Result": Final processed data ends up here folder
|
| 16 |
+
├── Others/
|
| 17 |
+
│ ├── cells_dataframe_counter.py
|
| 18 |
+
│ ├── linechart_one_row_tester.py
|
| 19 |
+
│ └── PQI.py
|
| 20 |
+
└── workflow.md
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
|
| 31 |
+
QuasarVaultage
|
| 32 |
+
├── .venv/
|
| 33 |
+
├── .vscode/
|
| 34 |
+
├── backend/
|
| 35 |
+
│ ├── [1]_main_watchdog.py # The "Brain": Constantly monitors for new files
|
| 36 |
+
│ ├── [2]_Drop_xlsx_here/ # The "Trigger": Put your raw Excel files here
|
| 37 |
+
│ ├── [3]_Process/
|
| 38 |
+
│ │ ├── 1_layer.py # parsing the entire one xlxs
|
| 39 |
+
│ │ ├── 2_layer.py # extracts the order&deals tables
|
| 40 |
+
│ │ ├── 3_layer.py # from 2 csv, merge into one
|
| 41 |
+
│ │ ├── 4_layer.py # only all red-rolling_28-metrics (MT5)
|
| 42 |
+
│ │ ├── 5_layer.py # only all blue-rolling_13-metrics (non-MT5)
|
| 43 |
+
│ │ ├── 6_layer.py # from 2 csv, all balance-based_41-metrics
|
| 44 |
+
│ │ ├── 7_layer.py # only all orange (equity-based) rolling_metrics
|
| 45 |
+
│ │ ├── 8_layer.py # from 1 csv, all equity-based_35metrics
|
| 46 |
+
│ │ └── 9_layer.py # all balance & equity-based_76metrics
|
| 47 |
+
│ ├── [4]_output_csv_files/ # The "Result": Final processed data ends up here
|
| 48 |
+
│ │ ├── Upload-1_ID/ # This is where the parsed file for first uploaded file
|
| 49 |
+
│ │ | ├── 1_layer_output.csv # example file
|
| 50 |
+
│ │ | ├── 2_layer_output.csv # example file
|
| 51 |
+
│ │ | ├── 3_layer_output.csv # example file
|
| 52 |
+
│ │ | ├── 4_layer_output.csv # example file
|
| 53 |
+
│ │ | ├── 5_layer_output.csv # example file
|
| 54 |
+
│ │ | ├── 6_layer_output.csv # example file
|
| 55 |
+
│ │ | ├── 7_layer_output.csv # example file
|
| 56 |
+
│ │ | ├── 8_layer_output.csv # example file
|
| 57 |
+
│ │ | └── 9_layer_output.csv # example file
|
| 58 |
+
│ ├── Upload-2_ID/ # This is where the parsed file for second uploaded file
|
| 59 |
+
│ ├── Upload-3_ID/ # This is where the parsed file for third uploaded file
|
| 60 |
+
│ └── Upload-4_ID/ # and so on, the pattern goes infinite
|
| 61 |
+
├── database/ # only stores metadata
|
| 62 |
+
├── authentication/ # mont secure authentication process which mainly include email and no password needed
|
| 63 |
+
└── frontend/
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
QuasarVaultage
|
| 71 |
+
├── .venv/
|
| 72 |
+
├── .vscode/
|
| 73 |
+
├── backend/
|
| 74 |
+
│ ├── [1]_main_watchdog.py
|
| 75 |
+
│ ├── [2]_Drop_xlsx_here/
|
| 76 |
+
│ ├── [3]_Process/
|
| 77 |
+
│ │ ├── 1_layer.py
|
| 78 |
+
│ │ ├── 2_layer.py
|
| 79 |
+
│ │ ├── 3_layer.py
|
| 80 |
+
│ │ ├── 4_layer.py
|
| 81 |
+
│ │ ├── 5_layer.py
|
| 82 |
+
│ │ ├── 6_layer.py
|
| 83 |
+
│ │ ├── 7_layer.py
|
| 84 |
+
│ │ ├── 8_layer.py
|
| 85 |
+
│ │ └── 9_layer.py
|
| 86 |
+
│ └── [4]_output_csv_files/
|
| 87 |
+
├── database/
|
| 88 |
+
├── authentication/
|
| 89 |
+
└── frontend/
|
| 90 |
+
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
|
frontend/.gitignore
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Logs
|
| 2 |
+
logs
|
| 3 |
+
*.log
|
| 4 |
+
npm-debug.log*
|
| 5 |
+
yarn-debug.log*
|
| 6 |
+
yarn-error.log*
|
| 7 |
+
pnpm-debug.log*
|
| 8 |
+
lerna-debug.log*
|
| 9 |
+
|
| 10 |
+
node_modules
|
| 11 |
+
dist
|
| 12 |
+
dist-ssr
|
| 13 |
+
*.local
|
| 14 |
+
|
| 15 |
+
# Editor directories and files
|
| 16 |
+
.vscode/*
|
| 17 |
+
!.vscode/extensions.json
|
| 18 |
+
.idea
|
| 19 |
+
.DS_Store
|
| 20 |
+
*.suo
|
| 21 |
+
*.ntvs*
|
| 22 |
+
*.njsproj
|
| 23 |
+
*.sln
|
| 24 |
+
*.sw?
|
frontend/README.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# React + Vite
|
| 2 |
+
|
| 3 |
+
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
| 4 |
+
|
| 5 |
+
Currently, two official plugins are available:
|
| 6 |
+
|
| 7 |
+
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
|
| 8 |
+
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
|
| 9 |
+
|
| 10 |
+
## React Compiler
|
| 11 |
+
|
| 12 |
+
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
|
| 13 |
+
|
| 14 |
+
## Expanding the ESLint configuration
|
| 15 |
+
|
| 16 |
+
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
|
frontend/eslint.config.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import js from '@eslint/js'
|
| 2 |
+
import globals from 'globals'
|
| 3 |
+
import reactHooks from 'eslint-plugin-react-hooks'
|
| 4 |
+
import reactRefresh from 'eslint-plugin-react-refresh'
|
| 5 |
+
import { defineConfig, globalIgnores } from 'eslint/config'
|
| 6 |
+
|
| 7 |
+
export default defineConfig([
|
| 8 |
+
globalIgnores(['dist']),
|
| 9 |
+
{
|
| 10 |
+
files: ['**/*.{js,jsx}'],
|
| 11 |
+
extends: [
|
| 12 |
+
js.configs.recommended,
|
| 13 |
+
reactHooks.configs.flat.recommended,
|
| 14 |
+
reactRefresh.configs.vite,
|
| 15 |
+
],
|
| 16 |
+
languageOptions: {
|
| 17 |
+
ecmaVersion: 2020,
|
| 18 |
+
globals: globals.browser,
|
| 19 |
+
parserOptions: {
|
| 20 |
+
ecmaVersion: 'latest',
|
| 21 |
+
ecmaFeatures: { jsx: true },
|
| 22 |
+
sourceType: 'module',
|
| 23 |
+
},
|
| 24 |
+
},
|
| 25 |
+
rules: {
|
| 26 |
+
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
|
| 27 |
+
},
|
| 28 |
+
},
|
| 29 |
+
])
|
frontend/index.html
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8" />
|
| 5 |
+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
| 6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
+
<title>frontend</title>
|
| 8 |
+
</head>
|
| 9 |
+
<body>
|
| 10 |
+
<div id="root"></div>
|
| 11 |
+
<script type="module" src="/src/main.jsx"></script>
|
| 12 |
+
</body>
|
| 13 |
+
</html>
|
frontend/package-lock.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
frontend/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "frontend",
|
| 3 |
+
"private": true,
|
| 4 |
+
"version": "0.0.0",
|
| 5 |
+
"type": "module",
|
| 6 |
+
"scripts": {
|
| 7 |
+
"dev": "vite",
|
| 8 |
+
"build": "vite build",
|
| 9 |
+
"lint": "eslint .",
|
| 10 |
+
"preview": "vite preview"
|
| 11 |
+
},
|
| 12 |
+
"dependencies": {
|
| 13 |
+
"axios": "^1.6.0",
|
| 14 |
+
"clsx": "^2.0.0",
|
| 15 |
+
"framer-motion": "^12.26.2",
|
| 16 |
+
"lucide-react": "^0.562.0",
|
| 17 |
+
"react": "^19.2.0",
|
| 18 |
+
"react-dom": "^19.2.0",
|
| 19 |
+
"react-dropzone": "^14.3.8",
|
| 20 |
+
"tailwind-merge": "^2.0.0"
|
| 21 |
+
},
|
| 22 |
+
"devDependencies": {
|
| 23 |
+
"@eslint/js": "^9.39.1",
|
| 24 |
+
"@types/react": "^19.2.5",
|
| 25 |
+
"@types/react-dom": "^19.2.3",
|
| 26 |
+
"@vitejs/plugin-react": "^5.1.1",
|
| 27 |
+
"autoprefixer": "^10.4.16",
|
| 28 |
+
"eslint": "^9.39.1",
|
| 29 |
+
"eslint-plugin-react-hooks": "^7.0.1",
|
| 30 |
+
"eslint-plugin-react-refresh": "^0.4.24",
|
| 31 |
+
"globals": "^16.5.0",
|
| 32 |
+
"postcss": "^8.4.31",
|
| 33 |
+
"tailwindcss": "^3.3.0",
|
| 34 |
+
"vite": "^7.2.4"
|
| 35 |
+
}
|
| 36 |
+
}
|
frontend/postcss.config.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
export default {
|
| 2 |
+
plugins: {
|
| 3 |
+
tailwindcss: {},
|
| 4 |
+
autoprefixer: {},
|
| 5 |
+
},
|
| 6 |
+
}
|
frontend/public/vite.svg
ADDED
|
|
frontend/src/App.css
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#root {
|
| 2 |
+
max-width: 1280px;
|
| 3 |
+
margin: 0 auto;
|
| 4 |
+
padding: 2rem;
|
| 5 |
+
text-align: center;
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
.logo {
|
| 9 |
+
height: 6em;
|
| 10 |
+
padding: 1.5em;
|
| 11 |
+
will-change: filter;
|
| 12 |
+
transition: filter 300ms;
|
| 13 |
+
}
|
| 14 |
+
.logo:hover {
|
| 15 |
+
filter: drop-shadow(0 0 2em #646cffaa);
|
| 16 |
+
}
|
| 17 |
+
.logo.react:hover {
|
| 18 |
+
filter: drop-shadow(0 0 2em #61dafbaa);
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
@keyframes logo-spin {
|
| 22 |
+
from {
|
| 23 |
+
transform: rotate(0deg);
|
| 24 |
+
}
|
| 25 |
+
to {
|
| 26 |
+
transform: rotate(360deg);
|
| 27 |
+
}
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
@media (prefers-reduced-motion: no-preference) {
|
| 31 |
+
a:nth-of-type(2) .logo {
|
| 32 |
+
animation: logo-spin infinite 20s linear;
|
| 33 |
+
}
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
.card {
|
| 37 |
+
padding: 2em;
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
.read-the-docs {
|
| 41 |
+
color: #888;
|
| 42 |
+
}
|
frontend/src/App.jsx
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React, { useState } from 'react';
|
| 2 |
+
import DropZone from './components/DropZone';
|
| 3 |
+
import ResultList from './components/ResultList';
|
| 4 |
+
|
| 5 |
+
function App() {
|
| 6 |
+
const [refreshKey, setRefreshKey] = useState(0);
|
| 7 |
+
|
| 8 |
+
const handleUploadSuccess = () => {
|
| 9 |
+
// Refresh the list after a successful upload
|
| 10 |
+
// Adding a small delay to allow backend to detect file
|
| 11 |
+
setTimeout(() => {
|
| 12 |
+
setRefreshKey(old => old + 1);
|
| 13 |
+
}, 1000);
|
| 14 |
+
};
|
| 15 |
+
|
| 16 |
+
return (
|
| 17 |
+
<div className="min-h-screen bg-gray-900 text-gray-100 font-sans selection:bg-blue-500/30">
|
| 18 |
+
<div className="absolute inset-0 bg-[url('https://grainy-gradients.vercel.app/noise.svg')] opacity-20 pointer-events-none"></div>
|
| 19 |
+
|
| 20 |
+
<main className="relative container mx-auto px-4 py-12 flex flex-col items-center min-h-screen">
|
| 21 |
+
<header className="mb-12 text-center space-y-2">
|
| 22 |
+
<h1 className="text-4xl md:text-5xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-blue-400 to-purple-500">
|
| 23 |
+
QuasarVaultage
|
| 24 |
+
</h1>
|
| 25 |
+
<p className="text-gray-400 text-lg">
|
| 26 |
+
Advanced Excel Processing Pipeline
|
| 27 |
+
</p>
|
| 28 |
+
</header>
|
| 29 |
+
|
| 30 |
+
<DropZone onUploadSuccess={handleUploadSuccess} />
|
| 31 |
+
|
| 32 |
+
<div className="w-full h-px bg-gradient-to-r from-transparent via-gray-700 to-transparent my-10 max-w-2xl"></div>
|
| 33 |
+
|
| 34 |
+
<ResultList refreshTrigger={refreshKey} />
|
| 35 |
+
|
| 36 |
+
<footer className="mt-auto pt-10 text-gray-600 text-sm">
|
| 37 |
+
© {new Date().getFullYear()} MTParsee System
|
| 38 |
+
</footer>
|
| 39 |
+
</main>
|
| 40 |
+
</div>
|
| 41 |
+
);
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
export default App;
|
frontend/src/assets/react.svg
ADDED
|
|
frontend/src/components/DropZone.jsx
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React, { useCallback, useState } from 'react';
|
| 2 |
+
import { useDropzone } from 'react-dropzone';
|
| 3 |
+
import axios from 'axios';
|
| 4 |
+
import { UploadCloud, File, CheckCircle, AlertCircle, Loader2 } from 'lucide-react';
|
| 5 |
+
import { motion, AnimatePresence } from 'framer-motion';
|
| 6 |
+
|
| 7 |
+
const DropZone = ({ onUploadSuccess }) => {
|
| 8 |
+
const [uploading, setUploading] = useState(false);
|
| 9 |
+
const [uploadStatus, setUploadStatus] = useState(null); // 'success' | 'error' | null
|
| 10 |
+
const [message, setMessage] = useState('');
|
| 11 |
+
|
| 12 |
+
const onDrop = useCallback(async (acceptedFiles) => {
|
| 13 |
+
const file = acceptedFiles[0];
|
| 14 |
+
if (!file) return;
|
| 15 |
+
|
| 16 |
+
setUploading(true);
|
| 17 |
+
setUploadStatus(null);
|
| 18 |
+
setMessage('');
|
| 19 |
+
|
| 20 |
+
const formData = new FormData();
|
| 21 |
+
formData.append('file', file);
|
| 22 |
+
|
| 23 |
+
try {
|
| 24 |
+
// Assuming backend is on port 8000
|
| 25 |
+
await axios.post('http://localhost:8000/upload', formData, {
|
| 26 |
+
headers: {
|
| 27 |
+
'Content-Type': 'multipart/form-data',
|
| 28 |
+
},
|
| 29 |
+
});
|
| 30 |
+
setUploadStatus('success');
|
| 31 |
+
setMessage(`Successfully uploaded ${file.name}`);
|
| 32 |
+
if (onUploadSuccess) onUploadSuccess();
|
| 33 |
+
} catch (error) {
|
| 34 |
+
console.error(error);
|
| 35 |
+
setUploadStatus('error');
|
| 36 |
+
setMessage(error.response?.data?.detail || 'Upload failed');
|
| 37 |
+
} finally {
|
| 38 |
+
setUploading(false);
|
| 39 |
+
}
|
| 40 |
+
}, [onUploadSuccess]);
|
| 41 |
+
|
| 42 |
+
const { getRootProps, getInputProps, isDragActive } = useDropzone({
|
| 43 |
+
onDrop,
|
| 44 |
+
accept: {
|
| 45 |
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['.xlsx'],
|
| 46 |
+
'application/vnd.ms-excel': ['.xls']
|
| 47 |
+
},
|
| 48 |
+
maxFiles: 1,
|
| 49 |
+
multiple: false
|
| 50 |
+
});
|
| 51 |
+
|
| 52 |
+
return (
|
| 53 |
+
<div className="w-full max-w-xl mx-auto mb-8">
|
| 54 |
+
<div
|
| 55 |
+
{...getRootProps()}
|
| 56 |
+
className={`relative group cursor-pointer overflow-hidden rounded-2xl border-2 border-dashed transition-all duration-300 ease-in-out
|
| 57 |
+
${isDragActive ? 'border-blue-500 bg-blue-500/10' : 'border-gray-600 hover:border-gray-500 bg-gray-800/50 hover:bg-gray-800'}
|
| 58 |
+
${uploading ? 'pointer-events-none opacity-80' : ''}
|
| 59 |
+
`}
|
| 60 |
+
>
|
| 61 |
+
<input {...getInputProps()} />
|
| 62 |
+
|
| 63 |
+
<div className="flex flex-col items-center justify-center p-10 text-center space-y-4">
|
| 64 |
+
<div className={`p-4 rounded-full bg-gray-700/50 transition-transform duration-300 ${isDragActive ? 'scale-110' : 'group-hover:scale-110'}`}>
|
| 65 |
+
{uploading ? (
|
| 66 |
+
<Loader2 className="w-10 h-10 text-blue-400 animate-spin" />
|
| 67 |
+
) : (
|
| 68 |
+
<UploadCloud className={`w-10 h-10 ${isDragActive ? 'text-blue-400' : 'text-gray-400'}`} />
|
| 69 |
+
)}
|
| 70 |
+
</div>
|
| 71 |
+
|
| 72 |
+
<div className="space-y-1">
|
| 73 |
+
<h3 className="text-lg font-semibold text-gray-200">
|
| 74 |
+
{uploading ? 'Uploading...' : isDragActive ? 'Drop your file here' : 'Click or Drag & Drop'}
|
| 75 |
+
</h3>
|
| 76 |
+
<p className="text-sm text-gray-400">
|
| 77 |
+
Support for .xlsx files (Max 1 file)
|
| 78 |
+
</p>
|
| 79 |
+
</div>
|
| 80 |
+
</div>
|
| 81 |
+
</div>
|
| 82 |
+
|
| 83 |
+
<AnimatePresence mode="wait">
|
| 84 |
+
{uploadStatus && (
|
| 85 |
+
<motion.div
|
| 86 |
+
initial={{ opacity: 0, y: 10 }}
|
| 87 |
+
animate={{ opacity: 1, y: 0 }}
|
| 88 |
+
exit={{ opacity: 0, y: -10 }}
|
| 89 |
+
className={`flex items-center p-4 rounded-lg border ${uploadStatus === 'success'
|
| 90 |
+
? 'bg-green-500/10 border-green-500/20 text-green-200'
|
| 91 |
+
: 'bg-red-500/10 border-red-500/20 text-red-200'
|
| 92 |
+
}`}
|
| 93 |
+
>
|
| 94 |
+
{uploadStatus === 'success' ? <CheckCircle className="w-5 h-5 mr-3" /> : <AlertCircle className="w-5 h-5 mr-3" />}
|
| 95 |
+
<span className="text-sm font-medium">{message}</span>
|
| 96 |
+
</motion.div>
|
| 97 |
+
)}
|
| 98 |
+
</AnimatePresence>
|
| 99 |
+
</div>
|
| 100 |
+
);
|
| 101 |
+
};
|
| 102 |
+
|
| 103 |
+
export default DropZone;
|
frontend/src/components/FileViewer.jsx
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React, { useEffect, useState } from 'react';
|
| 2 |
+
import axios from 'axios';
|
| 3 |
+
import { FileText, Download, ArrowLeft, FolderOpen } from 'lucide-react';
|
| 4 |
+
import { motion } from 'framer-motion';
|
| 5 |
+
|
| 6 |
+
const FileViewer = ({ folderId, onBack }) => {
|
| 7 |
+
const [files, setFiles] = useState([]);
|
| 8 |
+
const [loading, setLoading] = useState(true);
|
| 9 |
+
|
| 10 |
+
useEffect(() => {
|
| 11 |
+
const fetchFiles = async () => {
|
| 12 |
+
try {
|
| 13 |
+
const response = await axios.get(`http://localhost:8000/processed/${folderId}`);
|
| 14 |
+
setFiles(response.data);
|
| 15 |
+
} catch (error) {
|
| 16 |
+
console.error("Failed to fetch files", error);
|
| 17 |
+
} finally {
|
| 18 |
+
setLoading(false);
|
| 19 |
+
}
|
| 20 |
+
};
|
| 21 |
+
|
| 22 |
+
if (folderId) fetchFiles();
|
| 23 |
+
}, [folderId]);
|
| 24 |
+
|
| 25 |
+
const handleDownload = (path, filename) => {
|
| 26 |
+
// Trigger download
|
| 27 |
+
const link = document.createElement('a');
|
| 28 |
+
link.href = `http://localhost:8000/${path}`;
|
| 29 |
+
link.setAttribute('download', filename);
|
| 30 |
+
document.body.appendChild(link);
|
| 31 |
+
link.click();
|
| 32 |
+
link.parentNode.removeChild(link);
|
| 33 |
+
};
|
| 34 |
+
|
| 35 |
+
if (loading) {
|
| 36 |
+
return <div className="text-gray-400 text-center py-8">Loading files...</div>;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
return (
|
| 40 |
+
<div className="space-y-4">
|
| 41 |
+
<div className="flex items-center space-x-2 text-gray-300 mb-4">
|
| 42 |
+
<button
|
| 43 |
+
onClick={onBack}
|
| 44 |
+
className="p-2 hover:bg-gray-800 rounded-full transition-colors"
|
| 45 |
+
title="Back to folders"
|
| 46 |
+
>
|
| 47 |
+
<ArrowLeft className="w-5 h-5" />
|
| 48 |
+
</button>
|
| 49 |
+
<FolderOpen className="w-5 h-5 text-blue-400" />
|
| 50 |
+
<h3 className="font-semibold text-lg">{folderId}</h3>
|
| 51 |
+
</div>
|
| 52 |
+
|
| 53 |
+
<div className="grid gap-3">
|
| 54 |
+
{files.length === 0 ? (
|
| 55 |
+
<div className="text-gray-500 text-center py-4">No files found in this folder.</div>
|
| 56 |
+
) : (
|
| 57 |
+
files.map((file) => (
|
| 58 |
+
<motion.div
|
| 59 |
+
key={file.name}
|
| 60 |
+
initial={{ opacity: 0, x: -10 }}
|
| 61 |
+
animate={{ opacity: 1, x: 0 }}
|
| 62 |
+
className="flex items-center justify-between p-3 bg-gray-800/40 border border-gray-700/50 rounded-lg hover:bg-gray-800/60 transition-colors group"
|
| 63 |
+
>
|
| 64 |
+
<div className="flex items-center space-x-3 overflow-hidden">
|
| 65 |
+
<div className="p-2 bg-gray-700/50 rounded-lg text-blue-400">
|
| 66 |
+
<FileText className="w-5 h-5" />
|
| 67 |
+
</div>
|
| 68 |
+
<div className="min-w-0">
|
| 69 |
+
<p className="text-sm font-medium text-gray-200 truncate">{file.name}</p>
|
| 70 |
+
<p className="text-xs text-gray-500">{(file.size / 1024).toFixed(1)} KB</p>
|
| 71 |
+
</div>
|
| 72 |
+
</div>
|
| 73 |
+
|
| 74 |
+
<button
|
| 75 |
+
onClick={() => handleDownload(file.path, file.name)}
|
| 76 |
+
className="p-2 text-gray-400 hover:text-blue-400 hover:bg-blue-400/10 rounded-lg transition-all opacity-0 group-hover:opacity-100"
|
| 77 |
+
title="Download"
|
| 78 |
+
>
|
| 79 |
+
<Download className="w-5 h-5" />
|
| 80 |
+
</button>
|
| 81 |
+
</motion.div>
|
| 82 |
+
))
|
| 83 |
+
)}
|
| 84 |
+
</div>
|
| 85 |
+
</div>
|
| 86 |
+
);
|
| 87 |
+
};
|
| 88 |
+
|
| 89 |
+
export default FileViewer;
|
frontend/src/components/ResultList.jsx
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import React, { useEffect, useState } from 'react';
|
| 2 |
+
import axios from 'axios';
|
| 3 |
+
import { Folder, Clock, ChevronRight, RefreshCw } from 'lucide-react';
|
| 4 |
+
import { motion, AnimatePresence } from 'framer-motion';
|
| 5 |
+
import FileViewer from './FileViewer';
|
| 6 |
+
|
| 7 |
+
const ResultList = ({ refreshTrigger }) => {
|
| 8 |
+
const [folders, setFolders] = useState([]);
|
| 9 |
+
const [selectedFolder, setSelectedFolder] = useState(null);
|
| 10 |
+
const [loading, setLoading] = useState(false);
|
| 11 |
+
|
| 12 |
+
const fetchFolders = async () => {
|
| 13 |
+
setLoading(true);
|
| 14 |
+
try {
|
| 15 |
+
const response = await axios.get('http://localhost:8000/processed');
|
| 16 |
+
setFolders(response.data);
|
| 17 |
+
} catch (error) {
|
| 18 |
+
console.error("Failed to fetch processed folders", error);
|
| 19 |
+
} finally {
|
| 20 |
+
setLoading(false);
|
| 21 |
+
}
|
| 22 |
+
};
|
| 23 |
+
|
| 24 |
+
useEffect(() => {
|
| 25 |
+
fetchFolders();
|
| 26 |
+
}, [refreshTrigger]);
|
| 27 |
+
|
| 28 |
+
const formatDate = (timestamp) => {
|
| 29 |
+
return new Date(timestamp * 1000).toLocaleString();
|
| 30 |
+
};
|
| 31 |
+
|
| 32 |
+
if (selectedFolder) {
|
| 33 |
+
return <FileViewer folderId={selectedFolder} onBack={() => setSelectedFolder(null)} />;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
return (
|
| 37 |
+
<div className="w-full max-w-xl mx-auto">
|
| 38 |
+
<div className="flex items-center justify-between mb-4">
|
| 39 |
+
<h2 className="text-xl font-bold text-gray-100">Processed Batches</h2>
|
| 40 |
+
<button
|
| 41 |
+
onClick={fetchFolders}
|
| 42 |
+
className="p-2 text-gray-400 hover:text-white hover:bg-gray-800 rounded-full transition-all"
|
| 43 |
+
>
|
| 44 |
+
<RefreshCw className={`w-5 h-5 ${loading ? 'animate-spin' : ''}`} />
|
| 45 |
+
</button>
|
| 46 |
+
</div>
|
| 47 |
+
|
| 48 |
+
<div className="space-y-3">
|
| 49 |
+
{folders.length === 0 && !loading && (
|
| 50 |
+
<div className="text-center py-10 text-gray-500 bg-gray-800/30 rounded-xl border border-dashed border-gray-700">
|
| 51 |
+
<Folder className="w-12 h-12 mx-auto mb-3 opacity-20" />
|
| 52 |
+
<p>No processed files yet</p>
|
| 53 |
+
</div>
|
| 54 |
+
)}
|
| 55 |
+
|
| 56 |
+
<AnimatePresence>
|
| 57 |
+
{folders.map((folder, index) => (
|
| 58 |
+
<motion.div
|
| 59 |
+
key={folder.id}
|
| 60 |
+
initial={{ opacity: 0, y: 10 }}
|
| 61 |
+
animate={{ opacity: 1, y: 0 }}
|
| 62 |
+
transition={{ delay: index * 0.05 }}
|
| 63 |
+
onClick={() => setSelectedFolder(folder.id)}
|
| 64 |
+
className="group cursor-pointer p-4 bg-gray-800/40 border border-gray-700/50 hover:bg-gray-800 hover:border-blue-500/30 rounded-xl transition-all duration-200"
|
| 65 |
+
>
|
| 66 |
+
<div className="flex items-center justify-between">
|
| 67 |
+
<div className="flex items-center space-x-4">
|
| 68 |
+
<div className="p-3 bg-blue-500/10 text-blue-400 rounded-lg group-hover:bg-blue-500/20 transition-colors">
|
| 69 |
+
<Folder className="w-6 h-6" />
|
| 70 |
+
</div>
|
| 71 |
+
<div>
|
| 72 |
+
<h3 className="font-semibold text-gray-200">{folder.name}</h3>
|
| 73 |
+
<div className="flex items-center text-xs text-gray-500 mt-1 space-x-3">
|
| 74 |
+
<span className="flex items-center">
|
| 75 |
+
<Clock className="w-3 h-3 mr-1" />
|
| 76 |
+
{formatDate(folder.created)}
|
| 77 |
+
</span>
|
| 78 |
+
<span className="bg-gray-700 px-2 py-0.5 rounded-full text-gray-300">
|
| 79 |
+
{folder.file_count} files
|
| 80 |
+
</span>
|
| 81 |
+
</div>
|
| 82 |
+
</div>
|
| 83 |
+
</div>
|
| 84 |
+
<ChevronRight className="w-5 h-5 text-gray-600 group-hover:text-blue-400 transform group-hover:translate-x-1 transition-all" />
|
| 85 |
+
</div>
|
| 86 |
+
</motion.div>
|
| 87 |
+
))}
|
| 88 |
+
</AnimatePresence>
|
| 89 |
+
</div>
|
| 90 |
+
</div>
|
| 91 |
+
);
|
| 92 |
+
};
|
| 93 |
+
|
| 94 |
+
export default ResultList;
|