Группа "Стол заказов MQL"

Рейтинг 2179



РЕКОМЕНДУЮ



советник торгующий по погоде евро

Здравствуйте.
WeatherTrader.ex5 (40 Kb)
WeatherTrader.ex5 (40 Kb)

ТЕХНИЧЕСКОЕ ЗАДАНИЕ
на разработку советника MetaTrader 5 «WeatherTrader»
1. ОБЩИЕ СВЕДЕНИЯ
1.1. Наименование проекта:
Советник WeatherTrader (псевдоним: «StormChaser»)
1.2. Назначение разработки:
Автоматизированная торговая система, принимающая торговые решения на основе анализа погодных условий в крупных финансовых центрах мира.
1.3. Платформа:
MetaTrader 5 (MQL5)
1.4. Внешние зависимости:
API OpenWeatherMap (https://openweathermap.org/api)
Требуется бесплатный API ключ
2. ФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ
2.1. Сбор погодных данных
2.1.1. Источники данных:
Использование REST API OpenWeatherMap (endpoint: /data/2.5/weather)
Протокол: HTTPS
Формат ответа: JSON
2.1.2. Отслеживаемые города (настраиваемый список):
Лондон (Великобритания)
Нью-Йорк (США)
Токио (Япония)
Франкфурт (Германия)
Возможность добавления/удаления городов через параметры
2.1.3. Частота обновления:
По умолчанию: 1 раз в 60 минут
Настраиваемый интервал (от 15 минут до 24 часов)
2.1.4. Критерии «плохой погоды»:
Советник классифицирует погоду как «плохую» при наличии в описании следующих ключевых слов:
rain (дождь)
snow (снег)
storm (шторм)
thunderstorm (гроза)
drizzle (морось)
shower (ливень)
2.2. Торговая логика
2.2.1. Условия открытия позиций:
Сценарий
Условие
Действие
Комментарий
Шторм
Плохая погода ≥ 2 городов
Открытие SELL
Глобальная тревога
Штиль
Хорошая погода во всех городах
Открытие BUY
Спокойный рынок
Неопределенность
Плохая погода в 1 городе
Без действий
Выжидание
2.2.2. Параметры ордеров:
Объем лота: настраиваемый (с автоматической нормализацией)
Stop Loss: настраиваемый в пунктах (по умолчанию 500)
Take Profit: настраиваемый в пунктах (по умолчанию 1000)
Отклонение цены (Deviation): 10 пунктов
2.2.3. Управление позициями:
Одновременно не более 1 открытой позиции на символ
Проверка наличия позиций с тем же Magic Number
Автоматический расчет стопов с учетом SYMBOL_TRADE_STOPS_LEVEL
2.3. Расчет объемов и рисков
2.3.1. Нормализация лота:

1234567
2.3.2. Расчет стоп-уровней:

1234567891011
2.3.3. Валидация стопов:
Для BUY: SL < Ask < TP
Для SELL: TP < Bid < SL
При нарушении → логирование ошибки, отказ от сделки
3. НЕФУНКЦИОНАЛЬНЫЕ ТРЕБОВАНИЯ
3.1. Производительность
Время обработки тика: < 100 мс
Время HTTP-запроса: таймаут 5000 мс
Задержка между запросами к API: 1000 мс (лимит 60 запросов/мин)
3.2. Надежность
Обработка всех возможных ошибок WebRequest
Автоматический повтор при сбоях сети
Логирование всех критических событий
Защита от бесконечных циклов
3.3. Безопасность
API ключ хранится в параметрах советника (не в коде)
Использование HTTPS для всех запросов
Валидация входных данных
3.4. Юзабилити
Информативный Comment на графике
Подробное логирование в журнал «Эксперты»
Понятные сообщения об ошибках
4. АЛГОРИТМ РАБОТЫ

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
5. ВХОДНЫЕ ПАРАМЕТРЫ
Параметр
Тип
Значение по умолчанию
Описание
InpApiKey
string
«ВАШ_API_КЛЮЧ_ЗДЕСЬ»
API ключ OpenWeatherMap
InpUpdateMins
int
60
Интервал обновления (мин)
InpCities
string
«London,New York,Tokyo,Frankfurt»
Список городов
InpLotSize
double
0.01
Объем лота
InpStopLoss
int
500
Stop Loss (пункты)
InpTakeProfit
int
1000
Take Profit (пункты)
InpSymbol
string
""
Торговый символ (пусто = символ графика)
InpMagicNumber
long
20260917
Уникальный идентификатор
6. ОБРАБОТКА ОШИБОК
6.1. Ошибки WebRequest
Код
Описание
Действие
200
Успех
Продолжить обработку
401
Неверный API ключ
Логирование, пропуск города
404
Город не найден
Логирование, пропуск города
-1
URL не в разрешениях
Критическая ошибка, останов
Другой
Ошибка сети
Логирование, повтор через таймер
6.2. Ошибки торговли
Код
Описание
Действие
10004
Volume limit reached
Автоматическое снижение лота
10006
Invalid stops
Пересчет с увеличенным запасом
10013
Invalid volume
Проверка SYMBOL_VOLUME_*
Другой
Общая ошибка
Логирование Retcode + Description
6.3. Логирование
Обязательные события для логирования:
✅ Успешная инициализация
✅ Обновление погоды (каждый город)
✅ Открытие/закрытие позиции
⚠️ Предупреждения (неверный API ключ, отсутствие торговли)
❌ Ошибки (все коды ошибок с описанием)
Формат лога:

123
7. ТРЕБОВАНИЯ К ИНТЕРФЕЙСУ
7.1. Отображение на графике (Comment)

1234567
Расшифровка статуса:
ТРЕВОГА — плохая погода в ≥1 городах
ШТИЛЬ — хорошая погода везде
7.2. Индикаторы состояния
Зеленая иконка в углу графика — советник активен, торговля разрешена
Красный крестик — торговля запрещена или ошибка
Синяя стрелка — советник загружен, но не торгует (нормально)
8. ТРЕБОВАНИЯ К ТЕСТИРОВАНИЮ
8.1. Модульное тестирование
Тест 1: Инициализация
Корректная работа с валидным API ключом
Корректная работа без API ключа (предупреждение, но не краш)
Обработка несуществующего символа
Проверка Magic Number
Тест 2: WebRequest
Успешный запрос к API
Обработка HTTP 401
Обработка HTTP 404
Обработка таймаута
Парсинг JSON с плохой погодой
Парсинг JSON с хорошей погодой
Тест 3: Расчет лотов
Лот меньше минимума → коррекция
Лот больше максимума → коррекция
Округление до шага лота
Работа с экзотическими парами (USDTRY, EURRUB)
Тест 4: Расчет стопов
StopsLevel = 0
StopsLevel > InpStopLoss
StopsLevel < InpStopLoss
Валидация SL < Ask < TP
Тест 5: Торговая логика
Открытие BUY при g_weatherScore = 0
Открытие SELL при g_weatherScore ≥ 2
Отсутствие сделок при g_weatherScore = 1
Проверка CountMyPositions()
8.2. Интеграционное тестирование
Сценарий 1: Нормальная работа
Запустить советник на EURUSD H1
Подождать 1 цикл обновления
Проверить лог на наличие погодных данных
Проверить Comment на графике
Сценарий 2: Торговля
Имитировать плохую погоду в 2+ городах
Проверить открытие SELL
Проверить корректность SL/TP
Закрыть позицию вручную
Проверить отсутствие повторных сделок
Сценарий 3: Обработка ошибок
Отключить интернет
Проверить лог на наличие ошибок
Включить интернет
Проверить автоматическое восстановление
8.3. Нагрузочное тестирование
Работа в течение 24 часов без сбоев
Обработка 1000+ тиков без утечек памяти
Корректная работа таймера
9. ТРЕБОВАНИЯ К ДОКУМЕНТАЦИИ
9.1. Встроенная документация
Заголовок файла:
mql5

123456789101112131415
9.2. Руководство пользователя
Файл README.md (отдельно):
Установка и настройка
Получение API ключа
Настройка MT5 (WebRequest)
Описание параметров
Интерпретация сигналов
Частые ошибки и решения
FAQ
10. КРИТЕРИИ ПРИЕМКИ
Советник считается принятым, если:
✅ Функциональность:
Корректно получает данные о погоде
Правильно классифицирует погоду
Открывает сделки согласно логике
Корректно рассчитывает лоты и стопы
✅ Надежность:
Не падает при ошибках API
Не открывает сделки при отсутствии связи
Корректно восстанавливается после сбоев
✅ Производительность:
Не создает нагрузку на терминал
Не превышает лимиты API (60 запросов/мин)
Потребление памяти < 50 MB
✅ Документация:
Код прокомментирован
Логирование информативное
README.md актуален
✅ Тесты:
Все модульные тесты пройдены
Интеграционное тестирование успешно
Нагрузочное тестирование (24 часа) без сбоев
11. ДОПОЛНИТЕЛЬНЫЕ ТРЕБОВАНИЯ
11.1. Совместимость
MT5 Build 3000+
Windows 7/10/11
Совместимость с VPS
11.2. Валюта депозита
Автоматическое определение валюты счета
Корректная работа с любыми валютами
11.3. Типы счетов
Hedging (Netting не поддерживается)
Market Execution
Instant Execution
11.4. Расширяемость
Модульная структура кода
Возможность добавления новых городов без изменения логики
Возможность добавления новых погодных критериев
12. ПРИЛОЖЕНИЯ
Приложение A: Примеры ответов API
Плохая погода:
json

1234567891011121314
Хорошая погода:
json

1234567891011121314
Приложение B: Словарь терминов
Термин
Определение
Point
Минимальное изменение цены (для 5-знаков = 0.00001)
StopsLevel
Минимальное расстояние стопов от цены (пункты)
Magic Number
Уникальный идентификатор советника
WebRequest
HTTP-запрос из MQL5
РАЗРАБОТЧИК: AI Assistant
ДАТА СОЗДАНИЯ: 20.09.2026
ВЕРСИЯ ТЗ: 1.0
СТАТУС: Утверждено
Copy
Ask Qwen
Explain
Translate(en-US)
  • +1
  • Просмотров: 408
  • 19 сентября 2026, 20:06
  • igrun
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
советник
30 августа 2026

Брокер для ваших роботов, 15 лет на рынке

Комментарии (3)

+
0
торгуйте юзвери вы наши
avatar

  26  igrun Автор Сообщений: 1957 - igrun

  • 19 сентября 2026, 20:07
+
0
:D 
avatar

  23  poker Сообщений: 878

  • 19 сентября 2026, 21:50
+
0
здравствуй юзверь
avatar

  26  igrun Автор Сообщений: 1957 - igrun

  • 19 сентября 2026, 21:52

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий