Нужен классный программист
Здравствуйте, Esav. Вы говорите, что ищете достойные предложения по формализованным пипсовочным стратегиям. Есть у меня одно.
По сути, это формализация ручной версии синтеза нескольких ТС – «Победа», «Экстрим ТМА» и «Генезис Матрикс». Набор индикаторов и шаблон для ручной торговли по данной ТС прилагаю. Код этих же индикаторов будет использован и в самом советнике.
Тех-задание:
Советник открывает и ведёт всего одну сделку. Только одну. Не локер, не сеточник – никаких извращений.
Тайм-фрейм: М1.
Логика советника: скальпинг/пипсовка в канале. То есть если цена находится в верхней части канала и показывает признаки движения вниз - продаёт; если в нижней части канала и вверх - покупает.
Как это работает?
Объясняю. В советнике прописывается ряд фильтров в форме настраиваемого параметра с двумя значениями - классика. Тру – фильтр включён. Фолс – фильтр игнорируется. Сделка открывается тогда, когда все включённые фильтры дадут зелёный свет. Эти фильтры таковы:
* 3 из 4 GenesisMatrix 2.21_1 на М1. Если 3 из 4 любых квадратика матрицы зелёные – бай. Если красные – селл.
* 4 из 4 GenesisMatrix 2.21_1 на М1. Если все 4 квадрата матрицы зелёные – бай. Если красные – селл.
Заметим, что все параметры этого индикатора желательно должны быть настраиваемыми.
* 3 из 4 GenesisMatrix 2.21_1 на М5. Если 3 из 4 любых квадратика матрицы синие – бай. Если оранжевые – селл.
* 4 из 4 GenesisMatrix 2.21_1 на М5. Если все 4 квадрата матрицы синие – бай. Если оранжевые – селл.
Заметим, что все параметры этого индикатора желательно должны быть настраиваемыми.
* Величина TMA Slope CTF. Узнать эту величину для разных таймфреймов можно из индикатора ExtremeTMA info 040. Нас, разумеется, интересует ТФ М1. Если она составляет 0.40 и выше – открываемся только в бай. Если -0.40 и ниже – только в селл. 0.40 – это для примера (довольно эффективное значение). Вообще в советнике эта величина должна быть прописана в виде настраиваемого параметра, чтобы пользователь сам мог её менять. При этом если TMA Slope CTF будет в диапазоне между этими двумя значениями, то советник будет открывать сделки в обоих направлениях.
* Положение цены в канале ТМА на М1. Этот канал отчётливо видно на графике. Зададим цене числовой параметр. Если цена находится на уровне средней линии канала – то это 0. Если она на уровне верхней (голубой) линии – то это 100. Ну а если на уровне нижней (оранжевой) линии – то это -100. Так вот, советник вычисляет этот текущий параметр и, если данный фильтр включён, открывает сделки в зависимости от его значения. Мы устанавливаем ещё один настраиваемый параметр, в котором зададим порог этого значения.
К примеру, мы поставили значение 20. Это значит, если наш параметр цены 20 и выше (цена в верхней части канала) – мы открываемся только в селл. А если параметр цены -20 и ниже (цена в нижней части канала) – мы открываемся только в бай. И это значит, что если цена на уровне от -19 до 19 (примерно посередине канала) – то сделки не открываются.
Ещё пример. Мы поставили значение -10. Тогда если параметр цены -10 и выше – мы можем открываться в селл. А если 10 и ниже – можем открываться в бай. А значит, если цена в пределах от -10 до 10 – советник может открывать сделки в обоих направлениях. Ну чё, рубите фишку?
* Положение цены в канале ТМА на М5. Всё по аналогии, только для канала ТМА с настройками для М5. На графике М1 его верхняя линия – жирная тёмно-синяя, а нижняя линия – жирная тёмно-красная.
* Направление Стохастика. Вверх – бай, вниз – селл. Все параметры самого стохастика также должны настраиваться пользователем.
* Зоны перекупленности/перепроданности Стохастика. Селл – если Стох в зоне перекупленности, бай – если в зоне перепроданности. Заметим: сами зоны являются ещё двумя настраиваемыми параметрами. Например, можно будет установить 20 и 80. Или 10 и 90, но тогда сигналы будут реже.
* Направление Стохастика с М5 (на графике это индикатор #MTF Stochastic v2.0). Всё по аналогии с обычным стохастиком на М1.
* Зоны перекупленности/перепроданности стохастика на М5. Всё по аналогии.
* Показания 2xMAcross_al. Это пересечение двух МА. Если быстрая пересекла медленную – снизу – бай, сверху – селл. Параметры самих МА должны быть обязательно настраиваемыми.
* Показания Adx crossing. Если последний сигнал зелёный – бай. Если красный – селл. Параметры индюка должны быть настраиваемыми.
* Показания adaptive Gann High-Low activator jma Heiken Ashi arrows - histo & for symbol. Этот индикатор стоит на М1, но в настройках у него М5, хотя этот и другие параметры должны быть настраиваемыми. Если последний бар розовый – селл, если голубой – бай.
* Показания ZB-CloudMatrix. Это по идее облако ишимоку. Если последний бар серый или зелёный – бай. Если серый или красный – селл. Да, если он серый, то сделки могут быть открыты в обоих направлениях. Сами параметры индикаторы должны быть настраиваемыми.
* Показания ZB-CloudMatrix более жёсткого характера. Если зелёный – бай. Если красный – селл. Ну а если серый, то сделка вообще не открывается.
* Показания ZWinnerColorSignals. Жёлтый – селл. Синий – бай. Сами параметры индюка настраиваются.
* Показания THV4 Coral. Если цена ниже жирной красно-зелёной линии – только селл. Если выше – только бай. Параметры настраиваются.
* Показания ultimasecret-5. Если цена ниже пунктирной белой линии – селл. Если выше – бай. Параметры настраиваются.
* Показания rvmGann_sv8. Типа зигзага. Если индикатор отрисовал линию вниз и закрепился – значит далее открываемся только в бай. Если же отрисовал линию вверх и закрепился – только селл. Параметры настраиваются.
* Показания ! $ 2012 SEMA4X - White Only. Тоже что-то зигзагоподобное. Фильтрация по аналогии с предыдущим.
* Фильтр по важным новостям. Предлагаю использовать индикатор news. Обязательно дать возможность настраивать параметры времени. Смысл в том, чтобы сделки вообще не открывались за X минут до и за Y минут после выхода важной новости. Важные новости отмечены тёмно-красной вертикальной линией. X и Y – само собой, настраиваемые параметры.
* Фильтр по средним новостям. Всё по аналогии, только эти новости отмечены оранжевым цветом. (Маловажные отмечены тёмно-зелёным – их в расчёт не берём).
* Фильтр по торговым сессиям. Ну тут классика – оперируя несколькими настраиваемыми параметрами, пользователь устанавливает время начала работы советника и время завершения работы.
* Фильтр по закрытию свечи. Это, по сути, фильтр для всех остальных фильтров. Если стоит тру – то все фильтры срабатывают по показаниям последней закрытой свечи. Если же фолс – то фильтры срабатывают по показаниям последней ещё незакрытой свечи.
* Фильтр по чередованию направлений сделок. Если ставим тру, то тогда, если сделка закрыта (не важно в плюс или минус) – советник дожидается нового сигнала только в противоположную сторону. То есть если купил, то следующая сделка будет уже на продажу. Ну а если ставим фолс – то этот фильтр игнорируется, и тогда советник при благоприятных условиях может подряд открывать сделки в одном направлении, например, бай, а потом ещё раз бай.
Как обстоят дела с ТП и СЛ? Они фиксированы и устанавливаются автоматически для каждой сделки. Но фиксированы они не по-тупому, а по-хитрому. По индикатору ExtremeTMA info 040 мы получаем инфу о ширине канала ТМА – это прямой показатель волатильности валютной пары. Называется параметр TMA Size CTF и выражается он в пунктах, например, 12.4.
Так вот, в советнике должны иметься 2 настраиваемых параметра (один для стоп лосса, другой для тейк профита) с числовыми значениями процентов от параметра ширины канала ТМА. К примеру:
Текущее TMA Size у нас 15.7
TP = 25
SL = 30
Это значит, что ТП у нас будет 25% от ширины ТМА, то есть 3.9 пунктов. А СЛ будет равен 30%, то есть 4.7 пункта.
Заметим, что возможность установки плавающих СЛ и ТП должна быть реализована как настраиваемый параметр. Если тру – включено, если фолс – выключено. Если выключено, то тогда становятся актуальны 2 других настраиваемых параметра с фиксированными значениями ТП и СЛ.
При этом если цена начинает выказывать признаки разворота, советник хладнокровно рубит сделку с убытком или небольшим профитом, не дожидаясь срабатывания СЛ или ТП. Но над тем, как формализовать это «выказывание признаков» надо ещё посоображать. Пока что я склоняюсь к варианту, когда 1 или несколько включённых фильтров покажут сигнал на противоположную сделку. И да, эта возможность досрочного закрытия сделки также должна быть реализована в виде настраиваемого параметра по типу тру/фолс.
И да, ещё кое-что.
* Нужен фильтр форс мажорных обстоятельств. Цель фильтра схожа с целью фильтра по новостям – не торговать, когда с рынком твориться всякая хрень. Вот только тут вышла заминка – в отличие от новостного индикатора, у меня нет индикатора уровня хрени. Придётся импровизировать. Вновь берём наш параметр текущего TMA Size. И задаём новый настраиваемый параметр – опять процент от ширины канала ТМА. Но на этот раз не для определения уровня СЛ и ТП, а для определения величины колебаний цены, при котором мы с уверенностью можем сказать, что с рынком творится хрень. Этот уровень – ни что иное, как величина текущей свечи. К примеру, мы установили значение параметра 40, а текущая ширина ТМА сейчас составляет 10 пунктов. 40% от 10 пунктов – это 4 пункта. Если последняя свеча настолько велика, то многие фильтры наверняка тут же просигналят нам о продаже или покупке. Но доверять таким большим свечам в пипсовке очень рискованно – часто цена быстро откатывается назад. Так что лучше игнорировать такой сигнал. Как это сделать. Вот один из способов: подобно реакции на новости, установить время, в течении которого советник перестаёт торговать после возникновения «хрени». Устанавливается в минутах в виде ещё одного настраиваемого параметра.
Ну вот, вроде бы основы этой торговой стратегии изложил. Есть ещё интуитивный фактор, который также при должной внимательности поддаётся формализации, но… пока что у программиста и так достаточно работы.
Ну что, осилите? Если да – получите рабочий грааль, при правильных настройках избавляющий вас от необходимости сидеть перед терминалом часами.