Цей проект реалізує комплексний аналіз ліквідності валютної пари EUR/USD по основних торгових сесіях (Азія, Франкфурт, Лондон, Нью-Йорк) згідно з технічним завданням.
- Обробка даних: Завантаження M1 даних з CSV/XLSX файлів
- Розрахунок рівнів: Asia High/Low/Mid, PDH/PDL
- Аналіз sweep: Frankfurt і London sweep рівнів
- Визначення напрямків: Основний рух сесій та типи sweep
- Розрахунок метрик: Розширення, rebalance, retests
- Статистика: Детальна статистика по всіх параметрах
artem/
├── liquidity_analyzer.py # 🔧 Основний скрипт аналізу
├── interactive.py # 🖥️ Інтерактивний інтерфейс
├── validator.py # ✅ Валідація даних
├── show_results.py # 📊 Демонстрація результатів
├── config.py # ⚙️ Конфігурація
├── run_analysis.sh # 🚀 Скрипт швидкого запуску
├── requirements.txt # 📚 Залежності Python
├── README.md # 📖 Ця інструкція
└── DAT_MT_EURUSD_M1_202505.csv # 📈 Вхідні дані
- Встановіть Python 3.8 або новішу версію
- Створіть та активуйте віртуальне середовище:
python -m venv venv
source venv/bin/activate # На macOS/Linux
# або
venv\Scripts\activate # На Windows- Встановіть необхідні бібліотеки:
pip install -r requirements.txtmacOS/Linux:
# Подвійний клік на файл:
./Запуск анализатора.command
# Або в терміналі:
./run_gui.shWindows:
# Подвійний клік на файл:
run_gui.batОсобливості GUI:
- 🖱️ Простий графічний інтерфейс ✅ (tkinter встановлено)
- 📁 Вибір файлів через діалог
- 📊 Візуальний прогрес обробки
- 🎯 3 вкладки: один файл / масова обробка / довідка
- 🔄 Автоматична установка залежностей
- 📝 Детальні логи процесу
- 🚀 Підтримка масової обробки
source venv/bin/activate
python menu.pyІнтерактивне меню (menu.py) дозволяє:
- 🔍 Валідувати вхідні дані
- ⚡ Запускати повний аналіз одного або всіх файлів
- 📊 Переглядати результати та статистику
- 🗂️ Перевіряти статус папок і файлів
- 🆘 Отримувати довідку
./run_analysis.shsource venv/bin/activate
python liquidity_analyzer.pyПрограма очікує CSV файл з наступною структурою:
Date— у форматіYYYY.MM.DDTime— у форматіHH:MMOpen,High,Low,Close— BID-ціниVolume— ігнорується
Результати зберігаються у файлі liquidity_analysis_results.xlsx з двома аркушами:
- Analysis_Results: Детальні результати по кожному дню
- Statistics: Загальна статистика
- Азія: 02:00 – 10:00
- Франкфурт: 09:00 – 10:00
- Лондон: 10:00 – 15:00
- Нью-Йорк: 15:00 – 19:00
- Розмір пункту: 0.00010
- Мінімальне пробиття: 1 пункт (0.00010)
- Допуск для Asia Mid: ±3 пункти (0.00030)
- Дата, день тижня
- Asia High/Low/Mid
- PDH/PDL (попередній день)
- Frankfurt Sweep High/Low
- Час sweep
- London Sweep High/Low
- Sweep Type (Continue/Sweep and Reverse/No Sweep)
- Основний рух Лондону (Long/Short)
- Rebalance (Yes/No)
- Розширення в пунктах та %
- Час до максимуму/мінімуму
- Reverse після sweep
- Retests рівнів
- NY Direction (Long/Short)
- NY Status (Support/Reverse)
- NY розширення в обидві сторони
- Завантаження даних: Читання CSV, перетворення часу в UTC+3
- Обробка по днях: Для кожного дня розрахунок всіх метрик
- Розрахунок рівнів: Asia High/Low/Mid, PDH/PDL
- Аналіз sweep: Перевірка пробиття рівнів у Frankfurt і London
- Визначення напрямків: Основний рух після sweep
- Розрахунок метрик: Розширення, rebalance, retests
- Збереження результатів: Експорт в Excel з статистикою
from liquidity_analyzer import LiquidityAnalyzer
# Створення аналізатора
analyzer = LiquidityAnalyzer()
# Завантаження даних
df = analyzer.load_data("your_data.csv")
# Аналіз періоду
results = analyzer.analyze_period(df)
# Збереження результатів
analyzer.save_results(results, "results.xlsx")from datetime import datetime
import pandas as pd
# Аналіз конкретної дати
specific_date = pd.Timestamp('2025-05-15')
day_result = analyzer.analyze_day(df, specific_date)
print(f"Sweep Type: {day_result['sweep_type']}")
print(f"Extension: {day_result['extension_pips']} pips")from validator import validate_input_file
# Перевірка якості даних
is_valid = validate_input_file("data.csv")
if is_valid:
print("✅ Дані готові для аналізу")Після завершення аналізу створюється Excel файл з двома аркушами:
Містить детальні результати по кожному дню:
- Основні дані (дата, день тижня)
- Asia рівні (High/Low/Mid)
- Frankfurt і London sweep
- Типи sweep та напрямки руху
- Метрики розширення та rebalance
- New York аналіз
Загальна статистика по всіх параметрах:
- Частота різних типів sweep
- Розподіл по днях тижня
- Середні показники розширення
- Корелаційний аналіз
- Обробка помилок: Захист від ділення на нуль, відсутніх даних
- Точність: Розрахунки з точністю до 5 знаків після коми
- Продуктивність: Оптимізована обробка великих обсягів даних
- Гнучкість: Легко налаштовувані параметри сесій та констант
GitHub Copilot
MIT License
artem/
├── files/ # 📥 Входные файлы (CSV/XLSX)
├── results/ # 📤 Результаты анализа
├── menu.py # 🎯 Интерактивное меню
├── batch_analyzer.py # 🔬 Массовая обработка
├── liquidity_analyzer.py # 🧮 Основной анализатор
└── README.md # 📖 Документация
python menu.pyМеню предоставляет:
- 1️⃣ Анализ одного файла (интерактивный режим)
- 2️⃣ Массовая обработка файлов (папка files/)
- 3️⃣ Показать статус папок
- 4️⃣ Помощь и инструкции
python batch_analyzer.pypython liquidity_analyzer.py✅ Автоматическая обработка - просто поместите файлы в папку files/
✅ Множественные форматы - поддержка CSV и XLSX
✅ Автоматическое именование - результаты с временными метками
✅ Сводные отчеты - статистика по всем обработанным файлам
✅ Обработка ошибок - детальные логи проблемных файлов
✅ Большие объемы - оптимизировано для многолетних данных
Если у вас есть файлы:
files/
├── DAT_MT_EURUSD_M1_2014.csv
├── DAT_MT_EURUSD_M1_2015.csv
├── DAT_MT_EURUSD_M1_2016.csv
└── ...
После запуска python batch_analyzer.py получите:
results/
├── liquidity_analysis_EURUSD_2014_20250611_223045.xlsx
├── liquidity_analysis_EURUSD_2015_20250611_223145.xlsx
├── liquidity_analysis_EURUSD_2016_20250611_223245.xlsx
├── ...
└── batch_analysis_summary_20250611_223345.xlsx
- Автоматическое определение валютной пары и периода из имени файла
- Обработка ошибок с детальными логами
- Прогресс-индикатор для отслеживания процесса
- Сводный отчет по всем обработанным файлам
- Временные метки для уникальности результатов
- Подготовка файлов: Поместите все CSV/XLSX файлы в папку
files/ - Именование: Используйте понятные имена файлов (например:
EURUSD_2024.csv) - Мониторинг: Используйте опцию
3в меню для проверки статуса - Большие данные: Система оптимизирована для многолетних исторических данных
Для изменения настроек отредактируйте:
config.py- основные параметры анализаbatch_analyzer.py- параметры массовой обработки
Обновлено: Июнь 2025
Версия: 2.0 с поддержкой массовой обработки