[open source] [Советник] Mix Scalper: сконструируй свой Грааль!

От Archmagister, 16 сентября, 2013 в Лаборатория ProfitFX

#51


По поводу Неработоспособности при отключении фильтров, я изначально вставил блок кодирования в функцию инициализации может быть в этом дело, на всякий случай перенесу в ядро для ежетикового перекодирования.


Где-то с 387 или около того билда было подозрение, что сложный код в функции инициализации начал отрабатываться не всегда корректно.
Но твердых доказательств нет, только более-менее обоснованное предположение.

Была мысль, что повысить вероятность корректной отработки крупного кода из функции инициализации можно, оставив в функции инициализации только присвоение значения переменной-флагу, которая взводится только при переинициализации бота.
Соответственно, сложный код из функции инициализации переносится в ядро и, согласно значения переменной-флага, этот фрагмент кода исполняется однократно сразу после переинициализации бота.

Применять это мне не пришлось и железно не проверил - но мысль такая была. :)
Автор#52
Цитата

Еще вопрос: настройки для стохастика вариант направление и Вариант Зоны для одного ТФ сделать общими или раздельными?


Общими - для меньшей путаницы.

Добавлено: 20-09-2013 19:09:48

По умолчанию - 15;3;3; експ.

Изменено 20 сентября, 2013 пользователем Archmagister

#53
Старик, так и реализовано, функция генерации кода комбинации инструментов имеет длину всего 10-17 строк, вызов этой функции я изначально производи только при инициализации, сейчас вызов производится каждый тик. Особой нагрузки на терминал она не может оказать, так как имеет место очень простое математическое кодирование (я даже незнаю как назвать в "троичной системе" что ли :)) ) Перенос этой функции может решить некоторые проблемы с динамическим изменением набора функций хотя насколько я помню, при изменении параметров советника он переинициализируется (пока писал пост дотукал в чем заключалась проблема :d)

в второй версии баг! лечится удалением советника с графика и его повторной установкой.

Archmagister, я один вид стохастиков интегрировал, сейчас сделаю зоны. Так как в стандартном стохастике почему-то, нельзя изменить тип усреднения, а переписывать лень, оставлю его по умолчанию експ, потом если понадобится подкорректирую стохастик и добавлю в бота возможность выбора метода усреднения.
#54

У кого-нибудь вторая версия сегодня наторговала? Или ... только в тестере пока?
По версии 00.01 у меня было сегодня 4 сделки. Две закрылись по тейку, одна - по стопу, и третья висела в плюсе перед самым закрытием торгов - не стал дожидаться и закрыл руками в небольшом плюсе (как оказалось - поторопился, цена всё же дошла до тейка :( ). Итог за день +1,44%. Скрины сделок (кроме первого, который уже выложен) прикрепил. Может будет интересно. ;)

02.jpg
03.jpg
04.jpg

Изменено 21 сентября, 2013 пользователем skylover410

Автор#55

Для минутного графика 4 сделки это чудовищно хилый результат - видимо, слишком жёсткие настройки по каналу. А насчёт второй версии, то она действительно вообще не торгует. Надеюсь, в третьей этот баг будет исправлен.

#56


Для минутного графика 4 сделки это чудовищно хилый результат - видимо, слишком жёсткие настройки по каналу. А насчёт второй версии, то она действительно вообще не торгует. Надеюсь, в третьей этот баг будет исправлен.


Вчера, пока я не поменял сет, сделок было много, но и лосей было больше (правда, тейк поначалу был 3 пункта, по умолчанию, да и ограничение по времени торгов ещё не выставлялось). Надо побольше погонять, может и подберём настройки. Сегодняшнему лосю не хватило пункта, чтоб он не закрылся в минус, а в плюс.
Вот вчерашние сделки (последние две - по новому сету).
Спойлер

#57

Итак, продолжаем наращивать функционал и править баги.
Версия совенка 00.03. Исправил баг с отсутствием торговли при изменении функционала. Добавил фильтр по направлению стохастика и по зонам стохастика для текущего и настраиваемого старшего тф(по умолчанию 5 минут), Добавил фильтр по качеству канала ТМА, настраиваются минимальная и максимальная ширина канала.
Настройки бота отличные от индикаторов теперь выглядят так(добавленные Жирным):

Спойлер

FixLot=0.1; - Фиксированное значение лота
ProtsD=0; - лот из расчета % от депозита
StepFromDepo=0; - Количество средств на 1 минимальный лот
Блок основных индикаторов
Gen3on4=True; - Флаг использования сигнала 3 из 4 кубиков Генезис Матрикс
Gen4on4=True; - Флаг использования сигнала 4 из 4 кубиков Генезис Матрикс
-----необходимые настройки из индикатора GenesisMatrix---------------
GenMatrSift=0; - Бар для взятия сигнала Генезис Матрикс (0-текущий, 1-предыдущий и тд.)
UseTMAL2=True; - Флаг использования сигнала ТМАЛайн_2
-----необходимые настройки из индикатора TMALine_2---------------
TMAL2_Shift=0; - Бар для взятия сигнала ТМАЛайн_2 (0-текущий, 1-предыдущий и тд.)
TMABuyPercent=20; - Бар для взятия сигнала ТМАЛайн_2 (0-текущий, 1-предыдущий и тд.)
TMASellPercent=80; - Зона канала для сигнала на продажу
ControlDiapTMA=True; - Флаг включения контроля диапазона ТМА на м1
MinDiapTMA=3; - Минимальный диапазон ТМА
MaxDiapTMA=20; - Максимальный диапазон ТМА
ControlDiapTMA_Shift=0; - Бар для анализа диапазона ТМА (0-текущий, 1-предыдущий и тд.)
UseETMA040=True; - Флаг использования сигнала Екстреме ТМА
ETMABuy=0.40; - Значение для покупки
ETMASell=0.40; - Значение для продажи
-----необходимые настройки из индикатора ExtremeTMA info 040------------

Блок второстепенных индикаторов
Gen3on4_High=False; - Флаг использования сигнала 3 из 4 кубиков Генезис Матрикс На М5
Gen4on4_High=True; - Флаг использования сигнала 4 из 4 кубиков Генезис Матрикс На М5
-----необходимые настройки из индикатора GenesisMatrix M5--------------
GenMatrSift_High=1; - Бар для взятия сигнала Генезис Матрикс (0-текущий, 1-предыдущий и тд.) На М5
UseTMAL2_High=True; - Флаг использования сигнала ТМАЛайн_2 На М5
-----необходимые настройки из индикатора TMALine_2 M5---------------
TMAL2_Shift_High=1; - Бар для взятия сигнала ТМАЛайн_2 (0-текущий, 1-предыдущий и тд.)На М5
TMABuyPercent_High=20; - Бар для взятия сигнала ТМАЛайн_2 (0-текущий, 1-предыдущий и тд.) На М5
TMASellPercent_High=80; - Зона канала для сигнала на продажу На М5
UseStohNap=True; - Флаг использования направления Stohastic на М1
UseStohZone=True; - флаг использования Зоны Stohastic на М1
--------------Необходимые настройки из индикатора Stohastic M1-----------
StohBarsNap=1; - Колличество последних баров для анализа направления (1: 0>1 & 1>2\\ 2: 0>1 & 1>2 & 2>3)
StohBarsZone=3; - Stohastic был в зоне N быров назад (1 - на 0 или 1 барах, 2 - на 0 или 1 или 2)
HighZone =80; - приграничное значение Верхней зоны
LowZone = 20; - Приграничнное значение нижней зоны
StohLookBac=0; - бар от которого начинается отсчет анализа (0 - с текущего, 1 с предыдущего)
UseStohNap_High=True; - Флаг использования направления Stohastic на М5
UseStohZone_High=True; - флаг использования Зоны Stohastic на М5
StohTF_High=5; - Таймфрейм для старшего стохастика;
--------------Необходимые настройки из индикатора Stohastic M5-----------
StohBarsNap_High=1;- Колличество последних баров для анализа направления (1: 0>1 & 1>2\\ 2: 0>1 & 1>2 & 2>3)
StohBarsZone_High=3; - Stohastic был в зоне N быров назад (1 - на 0 или 1 барах, 2 - на 0 или 1 или 2)
HighZone_High =80; - приграничное значение Верхней зоны
LowZone_High = 20; - Приграничнное значение нижней зоны
StohLookBac_High=0; - бар от которого начинается отсчет анализа (0 - с текущего, 1 с предыдущего)

Блок технических настроек
CloseBuyOnRewers=True; - Закрытие покупок при появлении сигнала на продажу
CloseSellOnRewers=True; - Закрытие продаж при появлении сигнала на покупку
Magic=12345678; - Маджик номер для ордеров советника
Repids=3; - колличество попыток модификации\открытия\закрытия ордера (защита от зацикливания)
OsnTP=5; - Размер фиксированного ТП
OsnSL=3; - Размер фиксированного СЛ



В совенке на данный момент прописаны 512 вариантов комбинаций фильтров ( каждый из которых может являться сигналом). Разработка продолжается! :d

Mix_Skalper_v00.03.rar55 скач.

Автор#58

Всё замечательно, кроме одного:
StohBarsZone=3; - Stohastic был в зоне N быров назад (1 - на 0 или 1 барах, 2 - на 0 или 1 или 2)

Я планировал, что этот фильтр будет устроен по подобию фильтра положения цены в канале.
То есть задаём, допустим, параметры:
HighZone = 70
LowZone = 30.
Это значит, что мы можем продавать, когда стохастик находится в зоне от 70 до 100. И покупать, когда стохастик находится в зоне от 0 до 30. Если же стох в зоне от 30 до 70 - сделок не будет.

Но в данной версии походу применена логика ДОЖИДАНИЯ того момента, пока стохастик ВЫЙДЕТ из нужной нам зоны, что приводит во-первых: к сильному сокращению числа сделок (что видно в тестере), и во-вторых: к упусканию времени мини-тренда, ведь на М1 каждый пипс на счету. Это приводит к тому, что мы запрыгиваем в уходящий поезд, когда мини-тренд уже вот-вот иссякнет. У нас и так есть матрица с её 4 квадратами - не нужно добавлять ещё и ожидание стохастика. Смысл зон перекупленности и перепроданности в том, чтобы не покупать на верхотуре и не продавать в низинах. Вот и всё. Я предлагаю переделать этот момент.

#59

Я специально добавил этот парметр, если тебе нужно, чтоб стохастик был в зоне выбери 0, тогда индюк будет работать только если значение стохастика на текущем баре в зоне 80 20, советник дает сигнал если в течении этого колличества баров назад стохастик хоть раз находился в одной из зон. Просто как уже наверное все заметили хоть советник изначально и задумывался для ТФ М1, но я внес уйму настроек и его можно использовать для любого тф от М1 до Недельных, а соответственно и стохастик может месяцами небывать в данных зонах, поэтому введен параметр, сделав его максимальным, можно определить в какой зоне стохастик был последний раз.

Изменено 21 сентября, 2013 пользователем Ttomas

Автор#60

Ясно. В таком случае мне не понятно, почему на очень нежёстких настройках он выдал всего 10 сделок за неделю... Потестить бы его в режиме онлайн, но суббота)
Кстати, кто-нить знает, как тестировать советник с 99% точность, только не таким муторным способом, как изложено на сайте?

#61

Тестированием особо не занимался, когда нужны были тесты с 99 точностью использовал утилиту TDS Lite, кажется в общих вопросах есть тема\темы посвещенные ей. Ну как вариант можно преобрести ключ за 100$ :))

Кстати, чтоб стохастик не перерисовывался можно использовать в настройках цену открытия (передать параметр 1).

По поводу МА крос, я использую стандартную МА, нужен ли фильтр по старшему ТФ или просто сделать 1 вариант но с возможностью выбрать ТФ для него.

Изменено 21 сентября, 2013 пользователем Ttomas

Автор#62
Цитата

По поводу МА крос, я использую стандартную МА, нужен ли фильтр по старшему ТФ или просто сделать 1 вариант но с возможностью выбрать ТФ для него.


1 вариант с возможностью выбора ТФ.
#63

При написании функции я понял, что будет огромная заминка!!! так как пересечения будут редки то бот возможно даже неоткроет ниодной сделки. Поэтому думаю пока стоит сделать проверку недавнего пересечения с выносом параметров. То-есть сигнал на покупку будет положительным если быстрая МА пересекла Медленную снизу вверх в течении N последних баров. Пока что сделаю так, а потом когда закончим функционал и закончу систему под вариант "Накопление сигналов" тогда обмозгуем варианты как хорошо и как плохо.


Добавлено: 21-09-2013 10:30:23

Такс, новая версия 00.04 добавил фильтр по Пересечению МА, особенности работы писал чуть выше. Также, вдохновленный ночным прозрением переработал систему сложения сигналов, ввиду чего совенок похудел более чем в 2 раза :)). Настройки совенка теперь выглядят так(жирным новые):
Спойлер

FixLot=0.1; - Фиксированное значение лота
ProtsD=0; - лот из расчета % от депозита
StepFromDepo=0; - Количество средств на 1 минимальный лот
Блок основных индикаторов
Gen3on4=True; - Флаг использования сигнала 3 из 4 кубиков Генезис Матрикс
Gen4on4=True; - Флаг использования сигнала 4 из 4 кубиков Генезис Матрикс
-----необходимые настройки из индикатора GenesisMatrix---------------
GenMatrSift=0; - Бар для взятия сигнала Генезис Матрикс (0-текущий, 1-предыдущий и тд.)
UseTMAL2=True; - Флаг использования сигнала ТМАЛайн_2
-----необходимые настройки из индикатора TMALine_2---------------
TMAL2_Shift=0; - Бар для взятия сигнала ТМАЛайн_2 (0-текущий, 1-предыдущий и тд.)
TMABuyPercent=20; - Бар для взятия сигнала ТМАЛайн_2 (0-текущий, 1-предыдущий и тд.)
TMASellPercent=80; - Зона канала для сигнала на продажу
ControlDiapTMA=True; - Флаг включения контроля диапазона ТМА на м1
MinDiapTMA=3; - Минимальный диапазон ТМА
MaxDiapTMA=20; - Максимальный диапазон ТМА
ControlDiapTMA_Shift=0; - Бар для анализа диапазона ТМА (0-текущий, 1-предыдущий и тд.)
UseETMA040=True; - Флаг использования сигнала Екстреме ТМА
ETMABuy=0.40; - Значение для покупки
ETMASell=0.40; - Значение для продажи
-----необходимые настройки из индикатора ExtremeTMA info 040------------

Блок второстепенных индикаторов
Gen3on4_High=False; - Флаг использования сигнала 3 из 4 кубиков Генезис Матрикс На М5
Gen4on4_High=True; - Флаг использования сигнала 4 из 4 кубиков Генезис Матрикс На М5
-----необходимые настройки из индикатора GenesisMatrix M5--------------
GenMatrSift_High=1; - Бар для взятия сигнала Генезис Матрикс (0-текущий, 1-предыдущий и тд.) На М5
UseTMAL2_High=True; - Флаг использования сигнала ТМАЛайн_2 На М5
-----необходимые настройки из индикатора TMALine_2 M5---------------
TMAL2_Shift_High=1; - Бар для взятия сигнала ТМАЛайн_2 (0-текущий, 1-предыдущий и тд.)На М5
TMABuyPercent_High=20; - Бар для взятия сигнала ТМАЛайн_2 (0-текущий, 1-предыдущий и тд.) На М5
TMASellPercent_High=80; - Зона канала для сигнала на продажу На М5
UseStohNap=True; - Флаг использования направления Stohastic на М1
UseStohZone=True; - флаг использования Зоны Stohastic на М1
--------------Необходимые настройки из индикатора Stohastic M1-----------
StohBarsNap=1; - Колличество последних баров для анализа направления (1: 0>1 & 1>2\\ 2: 0>1 & 1>2 & 2>3)
StohBarsZone=3; - Stohastic был в зоне N быров назад (1 - на 0 или 1 барах, 2 - на 0 или 1 или 2)
HighZone =80; - приграничное значение Верхней зоны
LowZone = 20; - Приграничнное значение нижней зоны
StohLookBac=0; - бар от которого начинается отсчет анализа (0 - с текущего, 1 с предыдущего)
UseStohNap_High=True; - Флаг использования направления Stohastic на М5
UseStohZone_High=True; - флаг использования Зоны Stohastic на М5
StohTF_High=5; - Таймфрейм для старшего стохастика;
--------------Необходимые настройки из индикатора Stohastic M5-----------
StohBarsNap_High=1;- Колличество последних баров для анализа направления (1: 0>1 & 1>2\\ 2: 0>1 & 1>2 & 2>3)
StohBarsZone_High=3; - Stohastic был в зоне N быров назад (1 - на 0 или 1 барах, 2 - на 0 или 1 или 2)
HighZone_High =80; - приграничное значение Верхней зоны
LowZone_High = 20; - Приграничнное значение нижней зоны
StohLookBac_High=0; - бар от которого начинается отсчет анализа (0 - с текущего, 1 с предыдущего)
UseCrosMA=True; - Использовать фильтр пересечения МА
MA_TF=0; - ТФ для МА фильтра
MASlow_Per=24; - Период Медленной МА
MAFast_Per=12; - Период Быстрой МА
MASlow_Shift=0; - Сдвиг Медленной МА
MAFast_Shift=0; - Сдвиг быстрой МА
MA_Met=1; - Метод усреднения МА
MA_Price=1; - Цена для анализа МА
MA_Bar=0; - С какого бара начать анализ (также взаимное расположение МА берется на этом баре)
MABarCros=5; - В течении сколько последних баров должно было быть пересечение

Блок технических настроек
CloseBuyOnRewers=True; - Закрытие покупок при появлении сигнала на продажу
CloseSellOnRewers=True; - Закрытие продаж при появлении сигнала на покупку
Magic=12345678; - Маджик номер для ордеров советника
Repids=3; - колличество попыток модификации\открытия\закрытия ордера (защита от зацикливания)
OsnTP=5; - Размер фиксированного ТП
OsnSL=3; - Размер фиксированного СЛ



Итого вариантов комбинаций фильтров 1024 :))

Mix_Skalper_v00.04.rar76 скач.

Изменено 21 сентября, 2013 пользователем Ttomas

Автор#64

А разве нельзя заставить советник брать информацию, какой сигнал от МА был последним? К примеру, последним было пересечение быстрой медленную сверху. Значит впоследующем Советник может открывать сделки на продажу.

#65

Ну на самом деле механизм сделан так что в итоге если вдруг ненайдется пересечения то он будет по умолчанию давать сигнал основываясь на взаимном положении МА То-есть если Быстрая находится выше медленной то логично что последнее пересечение было снизу вверх(соответственно открываем только ордера на покупку) на продажу зеркально, Я ввел такой параметр из-за планов на будущее, когда сигналы будут накапливаться и иметь "срок годности". Так что Все будет в шоколаде! :))

Автор#66

Интересные у нас планы...
А это самое, вы ещё не передумали прописывать... сколько там? 2048 строчек кода когда добавится следующий индикатор? :)))

#67

Двигатель прогресса и седалищный нерв совместно с подсознанием сегодня ночью озарили к написанию альтернативного варианта, и теперь функция сложения сигналов, которая в завершающем варианте должна была достигнуть 132 тысяч строк резко сократилась до 1 условия =)) Что еще раз доказывает прописную истину что настоящий двигатель прогресса - ЛЕНЬ!!!!, параллельно я уже продумал вариант перестройки под статику и алгоритмические решения для данного перехода, думаю в советнике будут доступны оба варианта сигналов. Так как советник превращается в Мультитаймфреймовую Многоиндикаторную платформу для автоматизации стратегий с итоговым количеством вариантов комбинирования - от 32 тысяч до 132 тысяч, несчитая ограничителей торговли.

Автор#68

Поставил советника на 3 пары и оставил работать весь день. Настройки были не очень жёсткие, но сделок всё равно было немного. Ну а те, что были - оставляют желать лучшего: процент выигрышных сделок всё ещё недостаточен. Думаю, надо пронаблюдать за ним онлайн, чтобы понять, в чём же именно он лажает? Сейчас у него есть всё чтобы скопировать ручную торговлю, но при ручной торговле процент удач был гораздо выше...


Добавлено: 25-09-2013 11:12:23

Всё-таки не работает закрытие сделки по трём противоположным квадратам... Тогда отчасти понятно почему он льёт.

Изменено 25 сентября, 2013 пользователем Archmagister

#69

Скинь файл логов эксперта и файл настроек. Я все никак не пойму почему он у тебя не закрывает, он у меня на демо стоял и я наблюдал как он закрывал сделки, все было хорошо.

Поп поводу сова, времени особо небыло, поэтому потихоньку занимался доработкой системы аккумуляции сигналов, почти готово, по умолчанию добавил срок годности сигнала и подготовил почву к добавлению системы "Весов", может сегодня-завтра выложу обновление.

Автор#70

У меня настройки стоят так:
CoseOnMatrix=True;
GenMatrCloseShift=1
PointOnClose=3
CloseBuyOnRewers=False;
CloseSellOnRewers=False;

Цитата

почти готово, по умолчанию добавил срок годности сигнала и подготовил почву к добавлению системы "Весов", может сегодня-завтра выложу обновление.


Очень хорошо, а динамический ТП и СЛ скоро будут?
#71
CloseBuyOnRewers=False;
CloseSellOnRewers=False;

Ахаха, вот она загвоздка, Включи их=) Я их вставил в код как второе подтверждение условия для предотвращения срабатывания на продолжающихся сигналах=)

Динамические ТП и СЛ будут следующими на очереди или может быть в это же обновление включу, просто сейчас времени на ПК есть разве что 1-1.5 часа в день
Автор#72

Действительно - заработало)


Добавлено: 25-09-2013 19:19:13

Заработал разворот - исчезли лоси. Здорово! Именно этой фишки ох как не хватало старому советнику по Генезису.

Изменено 25 сентября, 2013 пользователем Archmagister

#73

Старый советник от нового отличается только набором функций. Просто отключи ненужные. Сегодня постараюсь сделать динамические ТП и СЛ.

Автор#74

Двухступенчатый Тейк Профит.


Задаём значения двум параметрам: ТП1 и ТП2 так, чтобы ТП2 было больше чем ТП1.
Если цена не достигла ТП1 – ничего не происходит.
Если цена достигла ТП1, но ещё не достигла ТП2 – работает протокол ускоренного закрытия.
Если цена достигла ТП2 – сделка закрывается.
Если цена побывала в зоне между ТП1 и ТП2, а потом опять откатилась за нижнюю границу ТП1, то включённый протокол ускоренного закрытия отключается.
Протокол ускоренного закрытия представляет собой программно заданное условие, при выполнении которого сделка закрывается.
Пример.
ТП1 = 2 п. (или 25% от ТМА если используем модуль с динамическим ТП)
ТП2 = 5 п. (или 70% от ТМА если используем модуль с динамическим ТП)
Протокол ускоренного закрытия: 1 любой квадрат матрицы перекрасился. Или: 2 любых квадрата матрицы перекрасились. Или: стохастик поменял направление. Лучше, конечно, настраиваемый вариант.
И да, наличие протокола ускоренного закрытия никак не отменяет работу протокола обычного закрытия сделки (например, у меня установлено 3 перекрашенных квадрата).

Представляется, что такой расклад выглядит лучше, чем трал и уж тем более лучше, чем просто фиксированный или динамический ТП.

Это к вопросу об интуиции – как сделать робота похожим на человека. Вот так я формализовал свои мысли в процессе закрытия прибыльной сделки. Запрограммировать это несложно. Если будет энтузиазм – вперёд! Советник от этого только приобретёт


Добавлено: 26-09-2013 17:13:14

Режь убытки на корню, а прибыли давай расти ;)

Первуе часть этой знаменитой мудрости мы реализовали. А теперь я придумал, как реализовать вторую часть)

Добавлено: 26-09-2013 17:28:13

Кстати, по поводу добавления новых индикаторов. Если мы хотим проапгрейдить режим пипсовщика, то на данном этапе наибольшая польза будет от ZWinnerColorSignals.
Если же хотим усилить режим полноценного скальпера, то тогда нам нужен ZB-CloudMatrix.


Добавлено: 26-09-2013 17:29:11

Лично я за пипсовщика :)

Изменено 26 сентября, 2013 пользователем Archmagister

#75

хорошо, я пока еще подшлифую советника, выложу позже, хотелось бы увидеть в теме немного графиков, и сетов настроек, чтоб понять в какую сторону идет оптимизация советника, это также должно немного поддерживать интерес к нему и возможно несколько дополнительных рук в поиске идеала :d. И просьба, все свои дополнения которые предлогаются по существу на подобии как Двухступенчатый ТП дублируй в спойлерах в стартовом посте, мне иногда приходится всю тему перелистывать чтоб все толковые предложения прочитать

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025