Универсальный советник от iPlaton'а

Приветствую. Не уверен, что правильно уловил суть вопроса. Советник может работать с любым индикатором, отдающим свои значения в буферы, и корректно написанным (рассчитывающим ограниченное количество баров, не перегруженным графикой и т.п.).
 
Ну что же, через годик добрался я и до нашего доблестного Платона. Скоро выложу новую версию (хорошо забытую старую) с некоторыми изменениями.
 
Новая версия на базе ранее выложенной с индикатором Advanced Parabolic от давным-давно покинувшего этот форум (а выложенный им индикатор продолжает приносить пользу!) Garry119. Также в советника добавлено много фич, которые я применяю в других своих советниках: пересканирование серверов, замер загрузки депозита, вывод значения OnTester и другое. Многое, до чего ранее не доходили руки, исправлено и "причёсано".

Главное отличие от всех предыдущих версий: в советнике теперь применяется мартингейл. Мне долго не хотелось этого делать, но ничего не попишешь: без этого приёма в торговле обойтись трудно. Да и хотелось проверить конкретную стратегию. В общих чертах он похож на мой советник "Лавина" с той основной разницей, что лавина в Платоне не имеет чётких границ, открываясь по рыночной ситуации - это первое, и второе - при смене сигнала Параболика происходит увеличение лотности следующей серии (совокупности однонаправленных открытых и закрытых позиций по одному и тому же сигналу индикатора) на заданный в настройках коэффициент. Весь основной функционал прежних версий-прототипов сохранён. Можно задавать целевую прибыль для закрытия субсерий (однонаправленных открытых позиций), можно переводить позы в безубыток, трейлить их, назначать им индивидуальные тейк-профиты и стоп-лоссы, можно применять пропорциональный рост лотности. Короче, в этом смысле не изменилось ничего.

Открываем позицию по Параболику, ждём её выхода в заданную прибыль. Если наращивание позиций включено, будут открываться дополнительные позиции: по тренду (цена открытия следующей позиции ниже (для шортов)/выше (для лонгов) цены открытия низшей(для шортов)/высшей(для лонгов) позиции субсерии), против тренда (всё наоборот, открытие по лучшим ценам), по индикатору АС (снятие сигнала строго в соответствии с описанием в руководстве по МТ4). Если наращивание отключено, будет открыта одна позиция. Если мы имеем смену направления Параболика, текущие субсерия (если открыто несколько поз) и серия закрываются, открывается следующая серия. Если включено закрытие позиций, позиции будут закрыты, и в следующей серии все линейные позиции будут иметь увеличенный лот, если оно отключено, то позиции завершённой серии останутся в рынке, в этом случае только первая позиция новой серии будет перевешивать (её лот будет умножен на коэффициент) совокупную лотность позиций завершённой, а прочие линейные будут иметь исходный лот. И так до выхода в заданную прибыль, после чего лотность сбрасывается и всё начинается сначала. Ну то есть, как видите, примерно та же лавина, только "размытая", где переворотные позиции открыты не на одном примерно ценовом уровне, а вразброс, кто где. Суть в том, что мы постоянно имеем перевес лотности в актуальном направлении цены.

Сейчас советник на этапе оптимизации, по завершении будет запущен в работу на демо-счёте. Краткие отчёты (как я это делаю для советника Мантергейт) буду публиковать раз в месяц. Файл примерных настроек прилагается (для получения общего представления о диапазоне значений при оптимизации; вы обязаны провести свою оптимизацию и найти свои настройки!).

OnTester: цифры в целой части - максимальная загрузка СТАРТОВОГО депозита с учётом балансовой просадки (при оптимизации она задаётся настройкой "Мэджик-номер" - так вы сэкономите много времени на оптимизации, когда прогоны с превышением этого значения будут сразу завершаться), дробная часть - максимальная достигнутая лотность. Значения OnTester, на 10 большие заданного вами значения, неудачные, в этом случае дробная часть не выводится (цифра 1 в восьмом знаке после запятой означает, что прогон был прекращён из-за достижения разрешённого брокером предела открытых позиций). Например, OnTester -30,00250000 означает максимальную загрузку 30% от стартового депо и максимальную достигнутую лотность в 0,25. При значении настройки "Мэджик-номер", равном 50, значение OnTester -60,00000000 будет означать прекращение прогона в связи с достижением загрузкой этого значения, значение -60,00000001 - достижением предельного разрешённого количества открытых позиций.

На вопросы по работе советника готов отвечать, замеченные ошибки - исправлять: незначительные могут иметь место, т.к. сам я пользуюсь далеко не всеми возможностями и режимами советника и, стало быть, что-то мог не заметить. При возникновении ошибки компиляции, связанной с функцией GetAncestor, решение искать здесь. Так же, как и прежде, если у вас имеются хорошие, точные, не слишком сложные индикаторы, можем обсудить их интеграцию в советник взамен Параболика или в дополнение к нему или, как вариант, взамен индикатора АС для открытия дополнительных позиций. Прежде всего, надо работать над последними - важно, чтобы субсерии как можно быстрее уходили в прибыль, - тем меньше будет увеличений лотности и лучше статистика. Можно обсудить и фильтрацию основных сигналов. Короче говоря, если кто-то захочет поспособствовать улучшению советника - всегда пожалуйста. Правда, в последние годы с этим совсем грустно, ни у кого ни энтузиазма, ни идей 😞. Единственное условие - все усовершенствования по вашим идеям подлежат обязательной публикации в ветке на общее благо. Единоличников-непубличников не люблю и не приветствую.
 

Вложения

Последнее редактирование модератором:
Новая версия на базе ранее выложенной с индикатором Advanced Parabolic от давным-давно покинувшего этот форум (а выложенный им индикатор продолжает приносить пользу!) Garry119. Также в советника добавлено много фич, которые я применяю в других своих советниках: пересканирование серверов, замер загрузки депозита, вывод значения OnTester и другое. Многое, до чего ранее не доходили руки, исправлено и "причёсано".

Главное отличие от всех предыдущих версий: в советнике теперь применяется мартингейл. Мне долго не хотелось этого делать, но ничего не попишешь: без этого приёма в торговле обойтись трудно. Да и хотелось проверить конкретную стратегию. В общих чертах он похож на мой советник "Лавина" с той основной разницей, что лавина в Платоне не имеет чётких границ, открываясь по рыночной ситуации - это первое, и второе - при смене сигнала Параболика происходит увеличение лотности следующей серии (совокупности однонаправленных открытых и закрытых позиций по одному и тому же сигналу индикатора) на заданный в настройках коэффициент. Весь основной функционал прежних версий-прототипов сохранён. Можно задавать целевую прибыль для закрытия субсерий (однонаправленных открытых позиций), можно переводить позы в безубыток, трейлить их, назначать им индивидуальные тейк-профиты и стоп-лоссы, можно применять пропорциональный рост лотности. Короче, в этом смысле не изменилось ничего.

Открываем позицию по Параболику, ждём её выхода в заданную прибыль. Если наращивание позиций включено, будут открываться дополнительные позиции: по тренду (цена открытия следующей позиции ниже (для шортов)/выше (для лонгов) цены открытия низшей(для шортов)/высшей(для лонгов) позиции субсерии), против тренда (всё наоборот, открытие по лучшим ценам), по индикатору АС (снятие сигнала строго в соответствии с описанием в руководстве по МТ4). Если наращивание отключено, будет открыта одна позиция. Если мы имеем смену направления Параболика, текущие субсерия (если открыто несколько поз) и серия закрываются, открывается следующая серия. Если включено закрытие позиций, позиции будут закрыты, и в следующей серии все линейные позиции будут иметь увеличенный лот, если оно отключено, то позиции завершённой серии останутся в рынке, в этом случае только первая позиция новой серии будет перевешивать (её лот будет умножен на коэффициент) совокупную лотность позиций завершённой, а прочие линейные будут иметь исходный лот. И так до выхода в заданную прибыль, после чего лотность сбрасывается и всё начинается сначала. Ну то есть, как видите, примерно та же лавина, только "размытая", где переворотные позиции открыты не на одном примерно ценовом уровне, а вразброс, кто где. Суть в том, что мы постоянно имеем перевес лотности в актуальном направлении цены.

Сейчас советник на этапе оптимизации, по завершении будет запущен в работу на демо-счёте. Краткие отчёты (как я это делаю для советника Мантергейт) буду публиковать раз в месяц. Файл примерных настроек прилагается (для получения общего представления о диапазоне значений при оптимизации; вы обязаны провести свою оптимизацию и найти свои настройки!).

OnTester: цифры в целой части - максимальная загрузка СТАРТОВОГО депозита с учётом балансовой просадки (при оптимизации она задаётся настройкой "Мэджик-номер" - так вы сэкономите много времени на оптимизации, когда прогоны с превышением этого значения будут сразу завершаться), дробная часть - максимальная достигнутая лотность. Значения OnTester, на 10 большие заданного вами значения, неудачные, в этом случае дробная часть не выводится (цифра 1 в восьмом знаке после запятой означает, что прогон был прекращён из-за достижения разрешённого брокером предела открытых позиций). Например, OnTester -30,00250000 означает максимальную загрузку 30% от стартового депо и максимальную достигнутую лотность в 0,25. При значении настройки "Мэджик-номер", равном 50, значение OnTester -60,00000000 будет означать прекращение прогона в связи с достижением загрузкой этого значения, значение -60,00000001 - достижением предельного разрешённого количества открытых позиций.

На вопросы по работе советника готов отвечать, замеченные ошибки - исправлять: незначительные могут иметь место, т.к. сам я пользуюсь далеко не всеми возможностями и режимами советника и, стало быть, что-то мог не заметить. При возникновении ошибки компиляции, связанной с функцией GetAncestor, решение искать здесь. Так же, как и прежде, если у вас имеются хорошие, точные, не слишком сложные индикаторы, можем обсудить их интеграцию в советник взамен Параболика или в дополнение к нему или, как вариант, взамен индикатора АС для открытия дополнительных позиций. Прежде всего, надо работать над последними - важно, чтобы субсерии как можно быстрее уходили в прибыль, - тем меньше будет увеличений лотности и лучше статистика. Можно обсудить и фильтрацию основных сигналов. Короче говоря, если кто-то захочет поспособствовать улучшению советника - всегда пожалуйста. Единственное условие - все усовершенствования по вашим идеям подлежат обязательной публикации в ветке на общее благо. Единоличников-непубличников не люблю и не приветствую.
Добрый вечер Иван
Подскажите пожалуйста,почему не могу установить ни в тестере ни на график🤔
Другие версии ставятся без проблем
 
Последнее редактирование модератором:
Здравствуйте, Сергей. Удивительно! Что в логе экспертов и логе терминала? Сбросьте сюда или личным сообщением.
 
GetAncestor(WindowHandle(_Symbol,0),2); Не компилируется. ;) int ReScanServers()
 
Добрый день Иван
Я бы скинул,но я его на чарт не могу даже поставить 🤔
Компилируется без ошибок? Вы его сразу исходником набрасываете на график или сначала заходите в МетаЭдитор, там компилируете и потом на график набрасываете ex4?
GetAncestor(WindowHandle(_Symbol,0),2); Не компилируется. ;) int ReScanServers()
Слушайте, ну, честно, уже надоело. Стопятьсот раз объяснялось. Читайте внимательно 325-й пост, последний абзац. Прям вот внимательно-внимательно.
Что такое: Максимальная Загрузка? Может ПРОСАДКА?
Нет, именно загрузка. Балансовая просадка + текущая просадка + средства в залоге.
 
Ну вот. А Вы сначала загрузите советника в МетаЭдитор и попробуйте скомпилировать. Если будет ошибка, связанная с GetAncestor, то что делать в таком случае, многажды разъяснялось.

Работа над советником продолжается, скоро выложу версию из поста № 325 с усовершенствованиями.
 
Перескан серверов я бы не советовал глушить. Может пригодиться. Что нужно делать, чтобы компилировалось, тысячу раз объяснялось.
 
Новая версия. Внесено много усовершенствований и исправлено много ошибок. Продукт готов. Машина получилась интересная. Ею можно спокойно и уверенно работать, кому как больше нравится - можно консервативно с небольшой прибылью, можно агрессивно - с соответствующим стартовым депозитом. Лично я предпочитаю повышенный, но ограниченный риск: на демо-счёте стартовый баланс составит 5000 единиц с примерной месячной прибылью около 600 единиц постоянным лотом. Параллельно проводилась оптимизация последней версии, которая и будет запущена на демо-счёте. Примерный комплект настроек для пары USD/JPY прилагается (вы ОБЯЗАНЫ провести собственную оптимизацию и получить собственный комплект настроек под свои цели и свой стиль!).

Общие принципы работы описывались выше. Они не изменились. Сохранён и "классический" функционал прототипа - тейки, стопы, безубытки, трейлинги, пропорциональный лот - всё это можно применять в разных комбинациях. При проведении оптимизации в режиме пропорционально повышающегося лота (настройка Пропорциональный лот включена) имейте в виду, что результаты оптимизации будут нелинейно отличаться от результатов в обычном режиме, на это есть свои объективные причины - отношение лотов не как целых чисел, разного рода "тонкие" закрытия и т.д.. Оптимизировать желательно при постоянном лоте, потому что при проплоте затруднена точная оценка загрузки стартового депозита, являющаяся главным показателем при оптимизации (значение OnTester), так как мы в таком случае уже не можем соотносить текущую загрузку со стартовым депозитом (лот-то вырос!), а рассчитывать её от текущего баланса (что за неимением лучшего и реализовано) - крайне неточно по тем же самым объективным причинам.

Пробежимся по настройкам и их оптимизационным диапазонам:
- Настройки Параболика - добавлена настройка Таймфрейм снятия сигналов. Нужна в том случае, если вы хотите снять сигнал индикатора не с текущего, а с иного ТФ. Я проводил оптимизацию на ТФ М5, и итоговый комплект настроек использует сигналы с этого же ТФ. Но кто-то может захотеть попробовать большую или меньшую "подвижность" индикатора - отчего бы не предоставить такую возможность?
1772794185921.png
Примерные оптимизационные диапазоны приведены на скриншоте;
- Стартовый (рабочий) лот - понятно;
- Коэффициент мартингейла - перевес по лотности текущего направления над противоположным. Примерный диапазон/шаг - 1,1 - 0,1 - 6,0;
- Максимальный лот - предел повышения рабочего лота в режиме пропорционального лота. Если вы не используете последний, эту настройку можно игнорировать, поставив нулевое значение;
- Пропорциональный лот - понятно;
- Наращивание позиций. Объяснялось в посте № 325, добавлен режим По АС с инверсией сигнала, когда при одном и том же поведении индикатора вместо Buy выдаётся Sell и наоборот. Если наращивание отключено, будет открываться одна позиция в субсерии (настройка Предел одновременно открытых позиций должна быть равна единице);
- Предел одновременно открытых позиций - понятно. Если равно нулю, количество (постоянно меняющееся) будет определяться советником (по индикатору ATR). Если равно единице, настройка Наращивание позиций должна иметь значение Нет. Примерный диапазон/шаг - 0 - 1 - 20;
- Фиксация. Определяет способ фиксации совокупной (групповой) прибыли. Если значение меньше нуля, советник берёт абсолютную прибыль (баланс + эквити относительно стартового баланса) в единицах депозита, указанную после знака "-" и останавливает работу. Если значение равно нулю, фиксация общей промежуточной прибыли (ОПП) советником не производится, оставаясь на ваше попечение; вы должны сами закрывать позиции, иначе они будут "висеть" без ограничения по времени (если нет трейлинга, тейк-профитов и/или стоп-лоссов). Если значение больше нуля, оно служит повышающим коэффициентом в формуле расчёта ОПП, которую необходимо взять в конкретной субсерии. Если мы имеем рабочую лотность 0,01 и значение этой настройки, например, 5, субсерия будет закрыта при ОПП 0,01 * 100 * 5 = 5 единиц депозита. Если открывается новая серия (по новому сигналу Параболика), а предыдущая (суб)серия не взяла ОПП, эта невзятая прибыль добавляется к расчётной целевой ОПП новой (суб)серии, на графике это значение отображается как "Долг", т.е. мы получаем премию за ожидание и повышенные лоты. Примерный диапазон/шаг - 1 - 1 - 30;
- Закрывать позиции при новом сигнале индикатора. При поступлении нового сигнала индикатора Параболик (начале новой серии) все противоположные позиции закрываются. Общее правило таково: если закрытие позиций включено, прежняя противонаправленная серия закрывается, при этом лот каждой позиции новой серии равняется лоту любой позиции закрытой серии, умноженному на Коэффициент мартингейла. Если закрытие позиций отключено, то первая позиция в новой серии является "перевешивающей" (суммарный лот ВСЕХ позиций предыдущей серии, умноженный на Коэффициент), а все последующие позиции открываются тем же (рабочим) лотом. При этом следует помнить, что на "перевешивающие" позиции не ставятся тейк-профиты и они закрываются только вместе со всей субсерией по ОПП, то есть только в группе - это сделано для того, чтобы такие позиции не открывались повторно, по худшим ценам, и не уходили в просадки;
- Мэджик-номер - в режиме тестирования/оптимизации этот параметр задает максимально допустимую загрузку стартового депозита в процентах, при достижении которой следует прекратить прогон (экономия времени). У меня эта настройка равна 33%;
- Тейк-профит и Стоп-лосс - отрицательные значения задают автоопределение того и другого советником по индикатору ATR. В таком случае ТП и СЛ будут равны. Примерный шаг/диапазон - -5 - 5 - 50.

Остальные настройки без изменений.

Советник постоянно следит за тем, чтобы лотность текущей (и предыдущих сонаправленных, если они есть) серии превышала лотность противонаправленной(ых) на необходимое значение, определяемое коэффициентом мартингейла. Все позиции, кроме "перевешивающих", набравшие прибыль по формуле лот * 100, при поступлении нового противоположного сигнала индикатора АС, закрываются независимо от того, к какой (суб)серии они относятся, даже в том случае, если режим наращивания позиций не связан с этим индикатором. То есть наращивание линейных позиций может производиться и по нему, и по другим критериям (по тренду, против тренда), а вот прибыльное закрытие всегда происходит по нему, или по ОПП, или по ТП, или по безубытку, или по трейлингу. Закрываемая прибыль каждой позиции идёт в засчёт ОПП данной (суб)серии. Как только ОПП будет достигнута, вся субсерия будет закрыта. Если после закрытия позиций по индивидуальной приыбли лотность текущей серии упала ниже порога, советник сразу же откроет "довесочную" "перевешивающую" позицию нужным лотом.

Итак, начинаем демо-торговлю. Старт или сегодня, или в понедельник. Возможно, будет и мониторинг.
1772801527212.png1772801804089.png
 

Вложения

Посмотрели (530) Посмотреть

Назад
Верх