Автор#1

Доброго времени суток. Выкладываю на критику свои труды.
Это моя первая «серьезная» работа на mql4.

Очередная двусторонняя сетка на мартингейле.
За идею взята сетка на отложенных ордерах + индикаторы + некоторые домыслы (которые, как оказалось позже, тоже появились в модах на этом форуме).

Написана мной полностью с нуля.

Суть: определить «удачный» вход, с «большим» (для сетки) профитом (30+- пп), а сама сетка играет роль перестраховки.
Тоесть если вошли относительно хорошо, но профит с первых x(настраивается) ордеров не взяли, то при достижении определенного плеча + развороте (выбранного) индикатора, происходят попытки сбросить «баласт» при первой же возможности.


  • бай и селл торгуются независимо

  • т.к. расчет идет не по закрытию свечи, то ТФ можно ставить любой. Ордера сами по себе, индикаторы сами по себе.

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

  • простенький планировщик

  • пауза после закрытием сетки и открытием новой

  • снижение профита у ордеров после Х, дабы закрыться просто в +-0. Чтобы не растягивать большие сетки. (отключается)

  • использует Alligator и RSI, есть еще HMA, но она чото пока в паре с RSI, не очень дружат. Возможность комбинирования индикаторов и таймфреймов для определения входа

  • входим если все индикаторы совпали, а выходим если хотябы 1 развернулся(если конечно же включена эта опция)



Таймфрейм: по большому счету, можно любой, т.к. для каждого индикатора он задается отдельно, а сама торговля идет НЕ по закрытию свечи
Инструменты: все, что и для обычной сетки: GBPUSD,EURUSD,...

Изменения:
20.12.13: Setka_v0.4.2
- Подправил выход по индикаторам, теперь выходит корректно
- Исправил таймер от переполнения, можно задавать больше 60 минут
- Сброс "баласта" при превышении количества ордеров >= ExitOrders, по индикаторам или без

24.12.13: Setka_v0.4.3
- Пофиксил баги мелкие
- HMA не тормозит систему
- Сброс происходит корректнее

26.12.13: Setka_v0.4.4
- Обработка пропущенных отложек (ГЭП, "быстрый рынок")
- Индикация просадки, абсолютная, если фикс лот, или в % если плавающий лот.

06.01.14: Setka_v0.4.5
- Несколько ТФ, для Аллигатора (через запятую), при совпадении - вход

Цитата


string st10 = "Пытаться выходить в 0, при развороте?";
bool ExitIfRevers = true; - Пытаться закрыть в 0, если развернуло тренд (если есть индикаторы на выход),
int ExitOrders = 4; - после 4 ордера, Если без индикаторов, то просто после этого ордера выходим в profit = 0.




Настройки советника:
Спойлер


double FirstLot = 0.1; - Начальный лот
double MultiLot = 1.5; - Множитель лота
double Step = 35; - Шаг сетки ордеров
double TakeProfit = 20; - Расчитывается Автоматически, чтобы перекрыть убытки + Эти пункты для профита
string st01 = "Умножать профит после X ордеров (0 - выкл) на Y раз";
int MultiProfitAfter = 3; - После это ордера начнет умножать профит у ордеров, чтобы лиш бы закрыть в
double MultiProfit = 0.5; - умножая на 0 - просто перекрываются убытки
string st0 = "Или MaxLot или MaxLotCount!(100)";
double MaxLot = 100; - Максимальный открываемый лот
int MaxLotCount = 0; - Число ордеров в сетке (если = 0, то расчитается из Максимального лота)
string st02 = "Использовать плавающий FirstLot ?(0.1 на 10000)";
bool UseFloatLot = true; - Если выключено, то берется FirstLot
double FirstFLot = 0.01;
double FirstFDepo = 2500;
string st03 = "------------------------------------------";
int AlwaysOpenP = 2; - Сколько всегда держать открытых отложек (чем меньше,тем быстрее работает, но лучше держать парочку, вдруг аля F4Y поднимут StopLevel).
int MagicBuy = 123; - Магик для Покупок
int MagicSell = 321; - Магик для продаж
int Slippage = 5; - Проскальзывание
string st10 = "Пытаться выходить в 0, при развороте?";
bool ExitIfRevers = true; - Пытаться закрыть в 0, если развернулся трэнд.
int ExitOrders = 4; - после 3 ордера
string st1 = "Параметры входа:";
string st11 = "Планировщик"; (0 - воскресенье)
int StartTradeDay = 1;
int StartHour = 6;
int StartMinute = 0;
int EndTradeDay = 5;
int StopHour = 20;
int StopMinute = 0;
string st2 = "Ждать мин после закрытия сетки:";
int WaitMinutes = 20; - Таймер (минут), после закрытия сетки
string st3 = "Параметры Alligator:";
string st4 = "0,M1,M5,M15,M30,H1,H4,D1,W1,MN1";
bool UseAlligatorIN = true; - Использовать аллигатор для входа
bool UseAlligatorOUT = true; - Использовать для выхода
string PeriodAlligStr = "M30"; - ТФ для аллигатора
int AlligatorShift = 0; - Сдвиг всего аллигатора
int JawsPeriod = 13; - Период Челюсти
int JawsShift = 8; - Сдвиг челюсти
int TeethPeriod = 8; - Период зубов
int TeethShift = 5; - Сдвиг зубов
int LipsPeriod = 5; - Период губы
int LipsShift = 3; - Сдвиг губы
string st5 = "Параметры HMA:"; - HMA (Оч долго работает, надо поработать над ним)
bool UseHmaIN = false; - Использовать HMA для входа
bool UseHmaOUT = false; - Использовать для выхода
string HMA_TimeFrameStr = "0"; - ТФ для HMA
int HMA_Period = 20; - период
int HMA_PriceType = 0;
int HMA_Method = 3;
bool NormalizeValues = TRUE;
int NormalizeDigitsPlus = 2;
int VerticalShift = 0;
string st6 = "Параметры RSI";
bool UseRsiIN = true; - Использовать RSI для входа
bool UseRsiOUT = true; - Использовать RSI для выхода
string RSI_TimeFrameStr= "M5"; - ТФ для RSI
int RSI_Period = 14; - период
int RSI_Shift = 1; - сдвиг
int RSI_overbought = 70; - зона перекупленности
int RSI_oversold = 30; - зона перепроданности



Советник еще дорабатывать и дорабатывать, если конечно же есть смысл. Нет обработки ошибок сервера, нет четкого ММ (просто расчет лота например как: 0.01 на 1000), нету тралинга (если он конечно же нужен), оч медленно работает с HMA, надо поработать над ним еще.

Несколько Бэктестов:
Спойлер















Планы:

  • Исправить ошибку: на "быстром" рынке, может проскочить точку выставления отложки, так и остается висеть один ордер, пока по профиту не закроется.

Setka_v0.4.2_z3r4aa.zip56 скач.
Setka_v0.4.3_z3r4aa.zip55 скач.
01.10000.dd20.set59 скач.
Setka_v0.4.5_z3r4aa.zip89 скач.

Изменено 9 июля, 2017 пользователем Pavel888

#2
z3r4aa, в порядке знакомства - вы к программированию по жизни отношение имеете?
То есть это для вас очередной язык программирования, а все остальное вы умеете - или это вообще ваш первый эксперимент.
Без обид, пользователям, которые будут ставить бота на деньги, желательно понимать уровень общей подготовки автора и как долго надо тестировать бота.
Автор#3
Старик, Программирование как хобби. После С#, php и bash, тут все довольно просто оказалось.
На mql4 писал для себя всякие подручные штуки типо Gui + индикаторы для ручной торговли, а советник,да, первый.
Никаких обид, очевидные вопросы =)
У меня есть пара человек которые тестят советник, но когда ты один в команде понимаешься в программировани, хочется услышать мнение знающих людей.
#4
z3r4aa, понял - очень хорошо.
Я, собственно, и интересовался есть ли навыки алгоритмирования и, главное, отладки.
Не говоря о практике на форе.

Тогда есть смысл присмотреться к боту повнимательней. :)
#5

Интересный бот. AUDNZD при спреде 5 пп и мм 0.01 на 1000, при параметре Exitifrevers=false проходит 2013 год с просадкой 35%

AUDNZD.gif

Автор#6

Небыло возможности потестить на кросовых парах, типа gbpaud, которые много ходят за день. Должно интересно получиться :-?

#7

Обязательно потестирую. Автор, есть возможность выложить советник в открытом коде? Очень хочется покопаться в его внутренностях.

Автор#8


Обязательно потестирую. Автор, есть возможность выложить советник в открытом коде? Очень хочется покопаться в его внутренностях.


Не лучшая затея.

Изменено 21 декабря, 2013 пользователем z3r4aa

#9


Интересный бот. AUDNZD при спреде 5 пп и мм 0.01 на 1000, при параметре Exitifrevers=false проходит 2013 год с просадкой 35%


AUDNZD не показатель, 5пп спред в спокойное время, в 00.00 спред около 20-25пп, на новостях от 10 до 30 спокойно растягивается, имхо, в тестере всегда такие штуки красиво выглядят. А в реальном времени растянет будь здоров.
#10



Интересный бот. AUDNZD при спреде 5 пп и мм 0.01 на 1000, при параметре Exitifrevers=false проходит 2013 год с просадкой 35%


AUDNZD не показатель, 5пп спред в спокойное время, в 00.00 спред около 20-25пп, на новостях от 10 до 30 спокойно растягивается, имхо, в тестере всегда такие штуки красиво выглядят. А в реальном времени растянет будь здоров.

Ну в принципе при фиксированном спреде на альпах в 11 пп просадка соответственно 75%. Даже у зерга заточенного под эту пару, за последние две недели просадка доходила до 90%. Можно было-бы прикрутить ограничение по спреду, для кроссов полезная вещь, но это уже на усмотрение автора.
#11
Цитата

происходят попытки сбросить «баласт» при первой же возможности


В обычных терминах это закрытие всей корзины ордеров на уровне безубыток + Х пипсов, где Х>=0?
Автор#12


Цитата

происходят попытки сбросить «баласт» при первой же возможности


В обычных терминах это закрытие всей корзины ордеров на уровне безубыток + Х пипсов, где Х>=0?

Закрываем в безубыток, если количество ордеров сетки >= ExitOrders, и если включено ExitifRevers.

По поводу ограничения по спреду, довольно интересно. Надо попробовать. Хотя в тестере не погоняешь же с разными спредами, или я ошибаюсь?

Изменено 22 декабря, 2013 пользователем z3r4aa

#13


По поводу ограничения по спреду, довольно интересно. Надо попробовать. Хотя в тестере не погоняешь же с разными спредами, или я ошибаюсь?

Вроде нельзя,там либо текущий, либо заданный. Ну может в тестере стратегий еще, но у меня его нет и я не знаю как там выставляется спред.
Автор#14

Добил много ошибок по коду, прикрутил все таки ХМА нормально, ну и сет конечно.
Добавил в шапку.

1.jpg
2.jpg

Изменено 24 декабря, 2013 пользователем z3r4aa

#15

Бот интересный. Потихоньку на реале приносит прибыль. Не очень большую, но и в просадку сильно не уходит. Стоит на AUDNZD M15.

Автор#16

выложил новую версию:

Цитата


26.12.13: Setka_v0.4.4
- Обработка пропущенных отложек (ГЭП, "быстрый рынок")
- Индикация просадки, абсолютная, если фикс лот, или в % если плавающий лот.

06.01.14: Setka_v0.4.5
- Несколько ТФ, для Аллигатора (через запятую), при совпадении - вход.


в ближайшую неделю, планирую запустить "очень длительную" оптимизацию по многим парам.
#17

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

Понятно, что бот еще в разработке.
Но каких-то заметных преимуществ вашей концепции/реализации я пока не вижу.

Может, в двух словах обрисуете что вы считаете плюсами именно вашей разработки?
Или, может, есть соображения по повышению доходности и/или снижению просадки?
Я не прикалываюсь...
Просто хотелось бы понять что реально автор пытается вложить в бота, уничижительно обрисованного как "очередная сетка-мартышка".

Изменено 6 января, 2014 пользователем Старик

Автор#18

По большому счету, наверное ничем, кроме тех или иных индикаторов. Ну и то что работает на "отложках".
Я пишу ее, "на заказ", и по моим представлениям это еще не конечный вариант. Но заказчик разрешил выложить ее на данном форуме. Надеюсь данный бот, тут никому не мешает =)

Изменено 9 января, 2014 пользователем z3r4aa

#19
z3r4aa, бот, конечно, на форуме не лишний. Тем более с прорабатываемым индикаторным входом.
Тем более авторская разработка "онлайн", позволяющая надеяться, что бот будет разработан до достойного уровня.

Реально я пытаюсь понять что из подобного бота можно выжать, каковы перспективы вашей разработки.
Отсюда может и странноватые вопросы.

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

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

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