Автор#1
Название: Всё новое - это забытое старое.
Год выпуска: -
Сайт продажи: http://tradelikeapro.ru/
Валютные пары: GBPUSD
Таймфрейм: От Н1 и выше
Время торговли: Круглосуточно

Не самая лучшая торговая система,
но одна из самых простейших.


Поехали:
1. Осциллятор MACD параметры по умолчанию [12 26 9]
- Уровни +0,0002 и -0,0002. В этом промежутке все сигналы пропускаем.
2. Стратегия тестировалась на Н1 ДЦ Альпари.
3. Открываем 5-7 ордеров (сетка).
- умножение лота на 2
4. Для данной пары, размер свечи не должен превышать 40п (30).
- Размер (первой) сигнальной свечи - меньше 30п.
5. Расстояние между сигналами (текущего движения) от 30п.

Покупка:
Спойлер

1. MACD ниже 0;
2. Гистограмма пробивает Сигнальную линию (SMA) снизу вверх;
3. Смотрим положение гистограммы относительно уровня -0,0002;
- Если гистограмма находится между уровнями +/- 0,0002, пропускаем все сигналы.
4. Размер свечи не превышает 30п.



Открываем первый ордер, лотом 0.01

5. Если в текущем движении (до пересечения 0) гистограмма еще раз пересекает Сигнальную линию (SMA) снизу вверх:
- Расстояние между сигналами (текущего движения) должно быть больше 30

Спойлер



В данном примере гистограмма пересекла Сигнальную линию (SMA) снизу вверх три раза т.е. 3 сигнала.
- Расстояние между 1 и 2 сигналом 22п - пропускаем
- Расстояние между 1 и 3 сигнало 99п (да, именно 99п. Попадаются до 300п разбег) - открываем второй ордер на покупку лотом 0,04.
- Таким же образом открываем остальные ордера, если в движении попадется 5 сигналов с расстоянием от 30п между ними.
- Расстояние смотрим с последнего (открытого) сигнала.
- т.е. между 1 и 2, 2 и 3, 3 и 4, 4 и 5.



6. Если у нас текущее движение на покупку, все последующие сигналы (относительно очередности 1 2 3 4 5) должны быть ниже. Соответственно для продажи выше.
7. Закрываем все позиции на покупку, когда гистограмма закроется выше уровня +0,0002
- Другой вариант: после пересечения 0, выставляем 15п ТП и ждем. Для каждой пары и ТФ свой размер ТП.


Продажа:
Зеркально покупке.

Скромные тесы:
Спойлер

Глобально подошел к разбору ТС в 2010, потом бросил. Возобновил в 2013.

EURUSD 2010г [c 01.18 по 12.15]


EURUSD 2013г [с 03.18 по 12.20]


GBPUSD 2013г [с 01.21 по 12.20]



Недостаток - высокая просадка для разгона депо.
- Желательно смотреть дневной график, и от него отталкиваться на принятие решения.
Имеется советник, подбирайте параметры под свое текущее депо.

Индикаторы
Спойлер

Попробовал написать пару индикаторов (стрелочных) для облегчения нахождения сигналов.
1. Для входа MACD_Enter



Параметры:
extern int FastEMA=12; //настройки MACD
extern int SlowEMA=26; //настройки MACD
extern int SignalSMA=9; //настройки MACD
extern double buffersize = 20; //Уровни (20 = 0.0002)
extern int Candle=40; // Размер свечи

- Учитывает положение гистограммы, если ниже 0 - рисует зеленые стрелки, выше 0 - красные стрелки
- Фильтрует по размеру свечи и по уровням MACD +/- 0,0002


2. Для выхода MACD_Exit



- Зеленая точка: выход для открытых ордеров Бай
- Красная точка: выходя для открытых ордеров Селл
- Фильтрует по уровням MACD +/- 0,0002


P.S. Ждем закрытия свечи, только после этого можно считать сигнал действительным. Над\Под баром появится соответствующий символ.
P.S.S. Отсутствуют алерты, всплывающие окна и прочие уведомления.
P.S.S.S. 100% не перерисовывают после закрытия бара, если там был и есть сигнал. Если появилась стрелка, ждите закрытия бара - Возможно ситуация изменится и сигнал пропадет.



Советник 1.6 /torgovye-sistemy/2/h1-up-ostorozhno-martingeyl/5762/?do=findComment&comment=115399
Описание:
Спойлер

extern int FastEMA = 12; // Значение быстрой EMA индикатора MACD
extern int SlowEMA = 26; // Значение медленной EMA индикатора MACD
extern int SignalSMA = 9; // Значение сигнальной SMA индикатора MACD
extern double UpMACDFilter = 0.0002; // Верхний фильтр гисторграммы MACD. Открывать на продажу только если цена выше. Если значение выше, то закрываются сделки на покупку.
extern double DownMACDFilter = -0.0002; // Нижний фильтр гисторграммы MACD. Открывать на покупку только если цена ниже. Если значение ниже, то закрываются сделки на продажу.
extern int MaxCandleSize = 30; // Максимальный размер свечи
extern int MinSignalsDistance = 30; // Минимальное расстояние от цены открытия предыдущего ордера
extern bool EachTickMode = false; // Если true то используются сигналы с текущей свечи, false с предыдущей
extern int SkipSignals = 2; // Сколько сигналов пропускать перед открытием ордера

extern string _1 = "=== Ордер ===";
extern int MMMethod = 1; // 0 - постоянный начальный лот (Lots), 1 - пропорционально приросту депозита
extern double Lots = 0.01; // Количество лотов на MinDepo при MMMethod=0 и начальный лот при MMMethod=1
extern double MinDepo = 1000; // Эта и следующие переменные используется при MMMethod=1. Минимальный депозит (свободные средства). При росте средств сверх него на шаг DepoStep происходит увеличене лота на LotsStep
extern double DepoStep = 1000; // Шаг средств для увеличения лота из LotsStep
extern double LotsStep = 0.01; // Шаг лота
extern int MaxOrdersCount = -1; // Максимальное количество одновременно открытых ордеров одного типа. -1 не ограничено, либо ограничено параметрами мартингейла
extern int CloseType = 0; // Вариант закрытия ордеров:
// -1 - не закрывать ордера
// 0 - Закрываются при пересечении MACD обратной граници фыльтра
// 1 - Закрываются при обратном сигнале

extern string _2 = "=== Мартингейл ===";
extern int MartinType = 1; // Вариант прогрессии лота:
// -1 - не используется
// 0 - начальный лот умножается на переменную MartinFactor1, MartinFactor2, MartinFactor3,... соответственно номеру ордера
// 1 - умножение (используется MartinFactor)
// 2 - арифметическая прогрессия
// 3 - пропорционально числам Фибоначчи
extern double MartinFactor = 2; // Коэффициент умножения лота
extern int MartinMaxMult = 5; // Максимальное количество умножений, -1 - не ограничено.
extern double MartinMaxLots = 0; // Максимальный лот ордера, -1 - не используется
extern bool MartinKeepLast = false; // При исполнении максимального количества ордеров держать последний лот

extern double MartinFactor2 = 2; // коэфициент умножения начального лота для 2 ордера
extern double MartinFactor3 = 4; // коэфициент умножения начального лота для 3 ордера
extern double MartinFactor4 = 6; // коэфициент умножения начального лота для 4 ордера
extern double MartinFactor5 = 8; // коэфициент умножения начального лота для 5 ордера
extern double MartinFactor6 = -1; // коэфициент умножения начального лота для 6 ордера
extern double MartinFactor7 = -1; // коэфициент умножения начального лота для 7 ордера
extern double MartinFactor8 = -1; // коэфициент умножения начального лота для 8 ордера


extern int Magic = 6542; // Магик. Если несколько экспертов работает на одном символе у них должен быть разный магик.
extern int Slippage = 3; // Допустимое проскальзывание
extern bool Auto5Digits = true; // Автоматическое умножение всех параметров измеряемых в пунктах на 10 при работе в 5-ти знаковых ДЦ
extern string Сomment = "UP v1.6";// Комментарий ордеров



Советник 1.13 /torgovye-sistemy/2/h1-up-ostorozhno-martingeyl/5762/?do=findComment&comment=120573
Описание:
Спойлер

Пробуем добавить работу 'фильтра' по старшему ТФ

Новые параметры:
extern int FilterTF = 1440; // Таймфрейм фильтра. 0 - не использовать. Если таймфрейм фильтра меньше текущего, то фильтр игнорируется
extern int FilterFastEMA = 12; // Значение быстрой EMA индикатора MACD фильтра
extern int FilterSlowEMA = 26; // Значение медленной EMA индикатора MACD фильтра
extern int FilterSignalSMA = 9; // Значение сигнальной SMA индикатора MACD фильтра
extern double FilterMACDFilter = 0.001; // Верхняя и нижняя граница гисторграммы MACD фильтра.
extern int FilterMaxCandleSize = 400; // Максимальный размер свечи фильтра

Вместо MACDFilter добавил параметры:
extern int MACDFilterEnter // Фильтр открытия ордеров гисторграммы MACD
extern int MACDMainExit // Значение гисторгарммы MACD для закрытия ордеров при CloseType=0

Алгоритм работы фильтра:
Описание от test13:

Используем Д1 (1440) в качестве фильтра. Н1 (текущий ТФ) открываем сделки.
'стрелка вверх' на Д1 = по Н1 открываем только покупку по сигналам.
'появился сигнал для выхода' на Д1 = прекращаем торговать лонги на Н1.

'стрелка вниз' на Д1 = по Н1 открываем только продажу по сигналам.
'появился сигнал для выхода' на Д1 = прекращаем торговать шорты на Н1.

Торговлю по Н1 ведем по сигналам Вход - Выход
Используем 'тренд' по Д1.



Советник 1.14_mod_v2 /torgovye-sistemy/2/h1-up-ostorozhno-martingeyl/5762/?do=findComment&comment=405132
Описание:
Спойлер


1. Добавлен вариант закрытия по количеству пунктов.
В настройках советника в графе CloseType ставим = 2 , робот закроет все ордера при достижении заданного количества пунктов, указанным в параметре Profit Points
Скрины /torgovye-sistemy/2/h1-up-ostorozhno-martingeyl/5762/?do=findComment&comment=140749

2. Добавлена возможность закрытие всех ордеров по деньгам.
Для того чтобы бот закрывал ордера по деньгам, в настройках в строке Close Type ставим = -1
В строке EnableCloseMoney - ставим true
И в параметре TakeMoney указываем сумму при которой будет происходить закрытие всех ордеров.



FAQ
http://tradelikeapro.ru/kak-ustanovit-foreks-sovetnik-universalnaya-instruktsiya-mini-f-a-q/
http://tradelikeapro.ru/kak-testirovat-sovetnik/

MACD_TC.rar486 скач.

Изменено 22 августа, 2018 пользователем test13

#2

Ti opozoril samij silnij signal tehniceskova analiza - divergenciji MACD. Iz za divergencii eta sistema i slivnaja ka svinja.

#3


Ti opozoril samij silnij signal tehniceskova analiza - divergenciji MACD. Iz za divergencii eta sistema i slivnaja ka svinja.



Не увидел ваши аргументы: скрин, разметка, технический анализ, теоретическое обоснование...

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

#4

На истории по фунду картинка очень даже красивая, респект!
Кроме фунта проводили эксперименты по другим парам?

Автор#5


Спойлер



Ti opozoril samij silnij signal tehniceskova analiza - divergenciji MACD. Iz za divergencii eta sistema i slivnaja ka svinja.



Не увидел ваши аргументы: скрин, разметка, технический анализ, теоретическое обоснавание...


Iz za divergenciji budet loznije vhodi. Sistema nadejatsa na to chto, kogda diver budet cena kogda to vsjo taki pajdjot v storonu kotoruju pokazivajet MACD , no eto mozet proishoditj namnogo poze, kogda vash depozit budet uze obnulivan.
Уважаемый, вы вообще о чем ?
В предложенном 'методе' речь о дивергенции не идет. Во внимание берется пересечение гистограммы и sma. Внимательно читай, потом лезь со своими комментариями.
За пару лет не смог слить депозит.

ascot
Евро и Фунт. Мне достаточно 2х пар для торговли. Попробуйте оценить другие пары, индикаторы облегчат задачу.
#6

Работает по любому и прибыль приносит. :)
Ещё предлагаю кому-нибудь воткнуть туда алерт и в том числе на мыло-будет совсем норм :d

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

#7

а какой принцип прогрессии у множителей?
и какие условия выхода?

#8


Попробовал написать пару индикаторов (стрелочных) для облегчения нахождения сигналов


А советник не пробовали писать? Очень интересная система, просто и ясно! Спс =d>
#9

Стратегия опасна для депозита, нужно ММ подбирать, маржи может не хватить, пример:

up.JPG

Автор#10
Arioh
Подбирал каждый лот от текущего размер депо.
Множитель 4, дальше по наростающей.
Обязательно пересчитайте.

Выходим:
7. Закрываем все позиции на покупку, когда гистограмма закроется выше уровня +0,0002. Для продажи ниже уровня -0,0002
Есть индикатор MACD_Exit
- Зеленая точка: выход для открытых ордеров Бай
- Красная точка: выходя для открытых ордеров Селл

Arkiniy
Не силен в этом направлении. Только если индикатор слепить.

ascot
Совершенно верно, депо на одну пару выходит солидное.
В самом начале написал: Не самая лучшая торговая система, но одна из самых простейших.
Недостаток - высокая просадка

Суть: показать 'иной' подход работы с MACD
Моё стартовое Депо на тот момент = 8000+

Добавлено: 23-12-2013 09:53:05

Спойлер

По скрину просадка -1460
1 лот = -20
2 лот = -64
3 лот = -309
4 лот = 691

профит около +300

Изменено 16 июня, 2014 пользователем test13

#12


3. Открывал не больше 5 ордеров:
1 = 0,01
2 = 0,04
3 = 0,24
4 = 1,92
5 = 2,3


test13, приветствую тебя!
Честно сказать, твой бустер впечатляет.
Получается 4, 6, 8, 1.2
Я так понимаю, в теме надо добавить, как тут принято, "осторожно, мартингейл"...
+ почему бустер снижается после 4 колена? :-b
Автор#13

Спойлер



3. Открывал не больше 5 ордеров:
1 = 0,01
2 = 0,04
3 = 0,24
4 = 1,92
5 = 2,3


test13, приветствую тебя!
Честно сказать, твой бустер впечатляет.
Получается 4, 6, 8, 1.2
Я так понимаю, в теме надо добавить, как тут принято, "осторожно, мартингейл"...
+ почему бустер снижается после 4 колена? :-b

Про мартин добавил в заголовок
Что касается бустера. Как выше писал, увеличивал лот по отношению к депо на текущий момент.
Опытным путем 'бустер' доказал свою эффективность. В итоге оставил как есть без изменений.

Спойлер

4 лот уже 1,92$
Если продолжать увеличивать лот по бустеру *10, лот будет 19,2$ а это согласись великовато :)
*8 = 15,36 много
*6 = 11,52 много
*4 = 7,68 много
*2 = 3,84 лучше в плане просадки
*1 = 1,92 само то
Оставил *1.5 потом *1.2 - оптимальный вариант в плане просадки для 5 открытых ордеров и профит хорош.
Если позволяет депо, при *2.6, держать просадку до 5.000$ можно увеличить.

Были еще комбинации, но у меня депо не резиновое.
4, 6, 6, 2
3, 3, 10, 2
Можно и нужно еще комбинации перебрать.

#14

Я просмотрел историю по фунту, франку и евро за этот год, более трех усреднений не было, с коэффициентом *2 неплохо получилось.
По франку и евро за год около 4000 пунктов старых, по фунту около 6000.

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

#15

Хороша система, вы своей темой прям лучик поселили в моей голове :d. Признаюсь, я сам программист в должности старшего разработчика, десктоп, вот только времени мало. Пробовал писать уже пару советников, есть наработки(трейлинг, безубыток, отложенные ордера, поиск паттернов и есть тестирование с качеством 99.9%). Попробую в свободное время что-нибудь сляпать и погонять.
- Есть мысль при достижении точки выхода подтянуть максимально стоп-лосс(опытным путем выявим расстояние), а дальше включить трейлинг.
- Либо закрывать половину позиции, а остальное трейлить.
- Посмотреть что получится без мартина, для начала, потом вводить один-два фильтра входа, но не сильно усложнять.

В общем будут результаты, напишу!

#16

Почему ни слова про стоп лоссы?

#17


Почему ни слова про стоп лоссы?


Наверное потому, что используется усреднение... :-ss
#18

возможно я ошибаюсь но пару серий в минус и депо может закрыться.

#19

а для этого автор и рекомендует огромный депо для одной валютной пары, чтоб по крайней мере мог выдержать 5000 уе просадки на протяжении 5 сделок

#20

По просьбе ascot написал свою версию советника по этой стратегии.

Сообщайте об ошибках и пожеланях. По возможности буду реализовывать.

UP_v1.0.mq440 скач.

#21


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


Я анализировал пересечение границ на текущей свече. Переделал что-бы анализировал на предыдущей. Кому хочется на текущей - включаем параметр EachTickMode


3. Можно описать параметры\настройки советника ?


Описание переменных есть в самом советнике, но на всякий случай дублирую тут

extern int FastEMA = 12; // Значение быстрой EMA индикатора MACD
extern int SlowEMA = 26; // Значение медленной EMA индикатора MACD
extern int SignalSMA = 9; // Значение сигнальной SMA индикатора MACD
extern double UpMACDFilter = 0.0002; // Верхний фильтр гисторграммы MACD.
//Открывать на продажу только если цена выше. Если значение выше, то закрываются сделки на покупку.
extern double DownMACDFilter = -0.0002; // Нижний фильтр гисторграммы MACD.
//Открывать на покупку только если цена ниже. Если значение ниже, то закрываются сделки на продажу.
extern int MaxCandleSize = 30; // Максимальный размер свечи
extern int MinSignalsDistance = 27; // Минимальное расстояние от цены открытия предыдущего ордера
extern bool EachTickMode = false; // Если true то используются сигналы с текущей свечи, false с предыдущей

extern string _1 = "=== Ордер ===";
extern int MMMethod = 1; // 0 - постоянный начальный лот (Lots), 1 - пропорционально приросту депозита
extern double Lots = 0.01; // Количество лотов на MinDepo при MMMethod=0 и начальный лот при MMMethod=1
extern double MinDepo = 1000; // Эта и следующие переменные используется при MMMethod=1.
//Минимальный депозит (свободные средства). При росте средств сверх него на шаг DepoStep происходит увеличене лота на LotsStep
extern double DepoStep = 1000; // Шаг средств для увеличения лота из LotsStep
extern double LotsStep = 0.01; // Шаг лота

extern string _2 = "=== Мартингейл ===";
extern int MartinType = 0; // Вариант прогрессии лота:
// -1 - не используется
// 0 - начальный лот умножается на переменную MartinFactor1, MartinFactor2, MartinFactor3,... соответственно номеру ордера
// 1 - умножение (используется MartinFactor)
// 2 - арифметическая прогрессия
// 3 - пропорционально числам Фибоначчи
extern double MartinFactor = 2; // Коэффициент умножения лота
extern int MartinMaxMult = 5; // Максимальное количество умножений, -1 - не ограничено.
extern double MartinMaxLots = 0; // Максимальный лот ордера, -1 - не используется
extern bool MartinKeepLast = true; // При исполнении максимального количества ордеров держать последний лот

extern double MartinFactor2 = 2; // коэфициент умножения начального лота для 2 ордера
extern double MartinFactor3 = 4; // коэфициент умножения начального лота для 3 ордера
extern double MartinFactor4 = 6; // коэфициент умножения начального лота для 4 ордера
extern double MartinFactor5 = 8; // коэфициент умножения начального лота для 5 ордера
extern double MartinFactor6 = -1; // коэфициент умножения начального лота для 6 ордера
extern double MartinFactor7 = -1; // коэфициент умножения начального лота для 7 ордера
extern double MartinFactor8 = -1; // коэфициент умножения начального лота для 8 ордера


extern int Magic = 6542; // Магик. Если несколько экспертов работает на одном символе у них должен быть разный магик.
extern int Slippage = 3; // Допустимое проскальзывание
extern bool Auto5Digits = true; // Автоматическое умножение всех параметров измеряемых в пунктах на 10 при работе в 5-ти знаковых ДЦ
extern string Сomment = "UP v1.1";// Комментарий ордеров



4. Немного не понял как работает расчет буфера. Берется один множитель на все лоты ? Должен быть для каждого отдельно на 5 'колен'


Тип мартина задается в переменной MartinType. В описании параметрое есть про типы. Я добавил тип 0 - что-бы брало с переменных MartinFactor2, MartinFactor3, ...
если MartinType = -1 то мартин не используется


5. ТП и СЛ как-то учитываются ?


Это случайно попало. Удалил.


6. Про параметры ММ поподробней.


Есть фиксированный лот и можно задать увеличение лота на определенную величину при росте депозита. В параметрах более подробно.


открывает больше 5 ордеров. должно 5


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


и такое бывает


Я добавил проверку, что-бы при EachTickMode=false выполнялся цикл один раз в начале свечи и анализируем предыдущую свечу. Эта проблема должна уйти

UP_v1.1.mq426 скач.

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

#22


EURUSD H1 2008.09.25 - 2008.10.09 , открывает 10 ордеров
EachTickMode=false
http://gyazo.com/95dc123dc53ff26d551c4fb6dcf974ef



У меня последняя версия не открывает такое количество. Наоборот, из-за ошибки при MartinType=0 ограничивается 3-мя.
Исправленная версия в атачменте.

UP_v1.2.mq443 скач.

#23

в августе 2008 льет, но оно и не мудрено конечно...

#24

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

#25
Спойлер

Нет возможности проверить последнюю версию, но в версии 1 если выставить MinSignalsDistance = "0" открывалось много ордеров(более 5).

Предлагаю изменение - решение проблемы максимального количества ордеров: ввести переменную extern int MaxOrderCount = 5; //максимальное количество открытых ордеров.
дописать перед "OrderSendReliable(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, Сomment, Magic, 0, Green);" условие:


Спойлер

if (buyOrdersCount OrderSendReliable(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, Сomment, Magic, 0, Green);




и аналогично


Спойлер

if (sellOrdersCount OrderSendReliable(Symbol(), OP_SELL, lots, Bid, Slippage, 0, 0, Сomment, Magic, 0, Red);


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

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

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