MA_Stoch_Expert.ex5 (19 Kb)
MA_Stoch_Expert.mq5 (14 Kb)
ТЕХНИЧЕСКОЕ ЗАДАНИЕ (ТЗ)
На разработку автоматической торговой системы (Советника) для MT5
1. Общие сведения
Платформа: MetaTrader 5 (MQL5).
Тип программы: Советник (Expert Advisor).
Рабочий инструмент: Любые валютные пары (мультивалютность не требуется, работа на текущем графике).
Таймфрейм: H1 (часовой), но должна быть возможность изменения в настройках.
2. Логика работы индикаторов
Советник использует комбинацию трех скользящих средних и одного осциллятора.
2.1. Скользящие средние (MA)
Необходимо рассчитать три линии:
MA Main (Основная): Стандартная скользящая средняя.
Период: Настраиваемый (по умолчанию 14).
Метод: SMA/EMA (настраиваемый).
Цена: Close.
MA Up (Бычья): Строится только по растущим свечам (Close > Open).
Логика: Если свеча растущая, берем цену Close. Если падающая или дожи — берем последнее известное значение MA Up.
Период: Такой же, как у основной MA.
MA Down (Медвежья): Строится только по падающим свечам (Close < Open).
Логика: Если свеча падающая, берем цену Close. Если растущая — берем последнее известное значение MA Down.
Период: Такой же, как у основной MA.
Примечание: Для расчета MA Up и MA Down можно использовать встроенный индикатор или расчет внутри советника. Главное условие — отсутствие разрывов в линии (заполнение последним известным значением).
2.2. Осциллятор
Индикатор: Stochastic Oscillator.
Параметры: %K Period, %D Period, Slowing (настраиваемые, по умолчанию 5, 3, 3).
Уровни: 80 (перекупленность) и 20 (перепроданность).
3. Торговая логика (Сигналы)
3.1. Условие на ПОКУПКУ (Long)
Сделка открывается только при одновременном выполнении двух условий:
Сближение MA: Расстояние между MA Main и MA Up меньше заданного процента от текущей цены (параметр ProximityPercent, по умолчанию 2%).
Формула: Abs(MA_Main — MA_Up) <= (Price * ProximityPercent / 100)
Сигнал Стохастика: Линия %K стохастика пересекает уровень 80 сверху вниз (выход из зоны перекупленности).
Проверка: На предыдущем баре Stoch > 80, на текущем Stoch <= 80.
3.2. Условие на ПРОДАЖУ (Short)
Сделка открывается только при одновременном выполнении двух условий:
Сближение MA: Расстояние между MA Main и MA Down меньше заданного процента от текущей цены.
Формула: Abs(MA_Main — MA_Down) <= (Price * ProximityPercent / 100)
Сигнал Стохастика: Линия %K стохастика пересекает уровень 20 снизу вверх (выход из зоны перепроданности).
Проверка: На предыдущем баре Stoch < 20, на текущем Stoch >= 20.
3.3. Фильтры и ограничения
Одна позиция: Советник открывает только одну позицию за раз.
Разворот: При появлении противоположного сигнала текущая позиция закрывается, и открывается новая в обратном направлении.
Магический номер: Обязателен для идентификации сделок советника.
4. Управление рисками и позицией
Объем позиции (Lot): Фиксированный (настраиваемый).
Stop Loss (SL): В пунктах от цены открытия (настраиваемый, опционально).
Take Profit (TP): В пунктах от цены открытия (настраиваемый, опционально).
Trailing Stop: Не требуется (или добавить как опцию «в будущем»).
Breakeven: Не требуется.
5. Входные параметры (Inputs)
Все параметры должны быть вынесены в настройки советника:
Группа
Параметр
Тип
Описание
Default
MA Settings
MAPeriod
int
Период всех скользящих средних
14
MAMethod
enum
Метод усреднения (SMA, EMA...)
SMA
MAShift
int
Сдвиг MA
0
ProximityPercent
double
% близости MA для сигнала
2.0
Stochastic
StochK
int
Период K
5
StochD
int
Период D
3
StochSlowing
int
Замедление
3
Trading
LotSize
double
Размер лота
0.1
MagicNumber
int
Идентификатор советника
123456
StopLoss
int
Стоп-лосс в пунктах
100
TakeProfit
int
Тейк-профит в пунктах
200
Slippage
int
Допустимое проскальзывание
10
6. Технические требования к коду
Обработка ошибок: Проверка результатов функций OrderSend, CopyBuffer. Вывод ошибок в журнал (Print).
Оптимизация: Отсутствие утечек памяти, корректная работа с историей (не выходить за границы массивов).
События: Корректная обработка OnInit, OnDeinit, OnTick.
Компиляция: Код должен компилироваться без предупреждений (warnings) и ошибок.
Язык комментариев: Русский или английский (на выбор разработчика).
7. Критерии приемки
Советник успешно компилируется в MetaEditor.
При установке на график отображаются входные параметры.
В тестере стратегий (Strategy Tester) прогоняется история без ошибок array out of range и критических сбоев.
Советник открывает сделки строго по описанным условиям (проверяется визуально на истории или через логи).
Закрывает позиции по SL/TP или при развороте сигнала.
Рекомендации по использованию этого ТЗ:
Если вы отдаете это программисту, приложите к ТЗ скриншоты желаемого вида индикатора MA Up/Down, если он должен отображаться на графике визуально.
Уточните, нужен ли визуальный индикатор отдельно от советника, или достаточно, чтобы советник просто торговал «вслепую», используя эти данные internally. (В коде выше мы сделали расчет внутри советника для скорости).
Комментарии (1)
25 igrun Автор Сообщений: 1914 - igrun
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий