Пример сложной дивергенции

Вот он — 4 тип дивергенции — сложная дивергенция. Запишу сюда, а то потом найти сложно их. Не часто встречается, когда надо не найдешь. Тут другой принцип построения дивергенции. Система распознает вершины стохастического осциллятора исходя из максимальных его точек (вершин/экстремумов) с учетом его пересечений.

2017-02-23_00-39-45

Классическая простая дивергенция (1 тип по моей классификации) имеет внизу только одно пересечение вверх:

2017-02-23_00-44-01

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

Анализ чистоты определяемых сигналов

Последние два дня занимаюсь анализом результатов тестирования на тестере стратегий. USDJPY показывает много убыточных сделок, поэтому решил для анализа использовать результаты именно данной пары. Всего за второе полугодие совершено 66 сделок. Детально рассмотрел каждую точку входа. В целом убытки были понесены из-за того, что позиции были открыты против тренда. Так что тут все нормально. Но были и такие входы, которые меня никак не устраивали я собрал и их всех и снова детально рассмотрел. Далее привел их к единым типам. Всего было 13 некорректных сигнала:

2017-02-22_23-42-00

Почти все несоответствия я исправил, введя дополнительно 3 контроля.

1 контроль — контроль высоты первого хая. Простой пример такой ситуации:

2017-02-22_23-47-54

Конечно, такую ситуацию нельзя рассматривать как точку входа. Поэтому я использовал формулу, что расстояние АС не может превышать более чем в два раза расстояние ВС. Если превышает, значит такую ситуацию нельзя рассматривать как точку входа.

2 контроль — точка входа выше дивера. Вот на картинке некрасивая ситуация. Тут вообще два несоответствия сигнала — между вершинами еще одна вершина + точка входа выше вершины. Теперь такие ситуации программа распознает.

2017-02-22_23-31-22

3 контроль — наличие вершины между двумя вершинами дивергенции. Верхний рисунок, а также вот этот рисунок:

2017-02-22_23-12-43

Я решил, что это некрасиво, поэтому система теперь смотрит нет ли лишнего экстремума между вершинами дивергенции.

Для последних двух ситуаций в верхней таблице решил не делать контролей, пока, по крайне мере. Они просто очень редкие, специфические.

До дивергенции для покупок пока не дошел, но скоро дойду.

Вот результат теста на USDJPY после введения контролей. Слив, но это нормально, так как контртренд

2017-02-23_00-03-26

А это тот же советник, но уже на EURAUD:

2017-02-23_00-05-07

Это лишь говорит о том, что USDJPY инструмент очень трендовый, а дивер сигнал контртрендовый. EURAUD дивера хорошо отрабатывает.

Примеры распознавания дивера. Линии чертил сам, чтобы было понятно, система их не чертит. Чертил автоматом только в спорных ситуациях, когда разбирал несоответствия.

2017-02-23_00-11-03

2017-02-23_00-13-01

2017-02-23_00-14-15

2017-02-23_00-16-25

2017-02-23_00-19-37

2017-02-23_00-22-28

2017-02-23_00-23-43

2017-02-23_00-27-00


В принципе, можно сказать, что мне удалось создать автоматическое определение дивергенции. Теперь, наконец, надо заняться дивергенцией для покупок.

 

Среда

Хожу по подъездам, расклеиваю объявления о наборе людей в группу по обучению Вин Чун. У одного из подъездов стоит девочка лет семи. За спиной здоровый рюкзак,  в руках домбыра в чехле в рост самой владелицы инструмента. Судя по виду, давно тут стоит.

— Sizde kilt zhok pa? (У вас ключа нет?)

— Zhok. Uyde eshkim zhok pa ne? (Нет. Что, дома никого нет?)

— Bar. Domofon durys koygan zhok. (Есть, домофон неправильно поставили.)

Видимо домашние трубку домофона неплотно повесили и теперь гудок не идет.

— Telephon she? (А телефон?)

— Telephon bar, birak nesi bitip kaldy… (телефон есть, но кончились эти…)- тяжело вздыхает.

— Единицы?

-Zhok, zaryadkasy (нет, зарядка).

— Nomerin bilesin be? (номер телефона помнишь?),  — кивает головой. диктует мне номер.

Передаю ей телефон.

— Allo, mam. azhege aytshy domophondy durys koysyn. Men esiktin aldynda turmyn, iya… (Алло, мам, скажи бабушке, чтобы домофон правильно поставила. Я возле двери стою, да…)

Передает мне трубку и уходит в подъезд. А я иду дальше клеить свои объявления. Через пару минут звонят мне с того номера и сразу сбросили, я даже не успел снять.  Понятно, стало быть попала девочка домой. Ох уж мне эти ажежки. Это хорошо, думаю, что на улице сегодня тепло. А так попробуй постой в минус тридцать. Мда уж. В ушах звучит: «Мы с тобою никогда не постареем…».  Опять «Пицца»  — я их вовсю уже слушаю. Обошел двадцать один подъезд, ладно хватит на сегодня, да и руки замерзли. Сажусь на 28 маршрут, вытаскиваю свой kindle.  А в наушниках звучит:

«Обыкновенный вторник — самый незаметный день
Был, как будто не был, плыл и вяло утонул в среде»

Организация рабочих процессов

Вернемся к делам насущным.  Как показывает практика работы с людьми, 90% недостижения результата — это неправильная организация рабочих процессов. Именно этим я и занимался все эти два года на последней своей работе. Учил людей, как правильно организовывать свою работу.  Да и что там говорить, последние пять лет работы тоже. Первые пять лет меня этому учили другие.  Да, работа с программистом, совершенствование системы, контролей в системе и т.д. это конечно было, но на самом деле в большей степени сил уходило на то, чтобы люди учились правильно организовывать работу.

В первую очередь важен порядок. В голове. А чтобы был порядок в голове, нужно выстроить его «на бумаге».  Я использую всегда простой excel или гугл таблицы. Весь вечер сидел выстраивал структуру кода — работа нудная, но не сложная, так как костяк структуры уже был заложен:

2017-02-20_23-33-17

Вот теперь я вижу всю картину в рамках работы с дивергенциями. Теперь я хорошо вижу, что мне осталось сделать и на чем сосредоточиться. Это на бумаге, теперь я выстрою структуру алгоритма, а завтра займусь дальше программированием — дивергенциями для покупок.

 

12:12

… эх, забыл сказать, что видел фото, где они в Бишкеке проводят «деловые завтраки», вот голова соломенная.


Трубку не взяла, ну ладно — жива, здорова, работает. Вроде была доброй, кажется, не обиделась, и на том спасибо.

Сырники на завтрак

Дука, товарищ мой и коллега как то сказал, что я так долго не смогу и все равно вернусь в офис, потому как я привык решать задачи и мне будет скучно. Если бы вы видели, какие я научился делать сырники по утрам

}

˜

Ä
А вы говорите «задачи»).

Автоматизировал определение дивергенции

Но только пока для продажи. Так как  я давно занимаюсь дивергенциями (Спасибо Basil за науку), и неплохо их знаю, и в общем я разделил их на 4 типа. Я имею ввиду только классическую дивергенцию — и ее я разделил на 4 типа с точки зрения их математического/логического определения:

Дивергенция 1 типа — классика жанра, так сказать:

дивергенция 1 типа

Дивергенция 2 типа:

Дивергенция 2 типа

Дивергенция 3 типа:

дивергенция 3 типа

Может показаться что 2 и 3 тип — это одно и тоже, но на самом деле нет. Код, который видит 2 тип дивергенции, не заметит 3 тип и наоборот. Принцип построения  и определения их разный.

Дивергенцию 4 типа я пока не автоматизировал и даже трудно привести пример таковой —  так как мало данных и сложно их определить. Примерно она выглядит так:

2017-02-19_17-20-54

Протестировал первый вариант, в котором я только задал ограничение на размер стоп-лосса не более 50 пунктов:
2017-02-19_17-07-07

Далее я ввел ограничения по времени открытия позиций и добавил анализ запаса хода до ближайшего уровня:

2017-02-19_17-09-26

Как видно результат намного лучше, и это еще без учета трендов. В общем, пока мне все нравится. Далее займусь приведением в порядок кода, займусь определением дивергенции для покупок. Есть еще пара контролей, которые нужно ввести в код. А еще мне пришла мысль, что на эту тему можно было бы написать статью для сайта MQL — она была бы, думаю, полезной для сообщества.


 

P.S. Забыл добавить что в советнике используется функция переноса позиции в безубыток и соотношение риск/прибыли  — 1/3.

 

 

dav

dav

p
p

Программное определение дивергенции на MQL4

Наконец таки я сел за выполнение данной задачи. Задача в воздухе витает давно, очень давно, сейчас я, похоже,  созрел для нее. Хотя фиг его знает, может еще и не получится. Ну короче, я сел… Давно я так много не матерился. Во первых, я блин забыл как заполнять динамический массив. Ну как забыл… вроде все верно и логично, а результата не получаю:

Объявил массив: double St_mass_high_1_base_main[];

пару перемен для счетчика и цикла:

int i, St_high_1_base_int, St_high_2_base_int;

ну и сам цикл  счетчиком, заполняющий массив:
for (i=St_down_1_base;i<=St_up_1_base;i++)
{
St_mass_high_1_base_main[i]=iStochastic(NULL,base_tf,5,3,3,MODE_SMA,0,MODE_MAIN,i);
}

Вроде все верно, но не пашет. Потом явно указал размер массива. И вроде даже как-то заработало, но через время начало гадость показывать:

2017-02-15_22-45-54

Что за бесконечность цифр! На форумах ничего не нашел. Предположил, что закралась ошибка с нулевым значением и сделал контроль на предмет Empty_value — но не помогло. Уже хотел костыль поставить в виде ограничения данных, тупость конечно, ибо проблему вообще не решает. В итоге ошибка ушла, честно нашел методом научного тыка, использовав функцию ArrayResize(). Так я и не разобрался до конца в чем же заключалась природа глюка, хотя вроде бы использование функции понятна.

В итоге:

double St_mass_high_1_base_main[]; //объявил динамический массив
ArrayResize(St_mass_high_1_base_main,101); //задал размер
int i, St_high_1_base_int, St_high_2_base_int; //переменные
for (i=St_down_1_base;i<=St_up_1_base;i++) //цикл с счетчиком
{
St_mass_high_1_base_main[i]=iStochastic(NULL,base_tf,5,3,3,MODE_SMA,0,MODE_MAIN,i); //заполнение массива по счетчику
}

далее нашел максимальную точку вершины стохастического осциллятора:

2017-02-15_20-04-28

По данному рисунку я предположил что мне нужно найти максимальное значение основной линии между точками А1 и А2. Нашел первую вершину и все ок. Но когда начал определять вторую смежную вершину между точками А2 и А3, понял что подход в корне неверный, потому как искать максимальное значение надо было между точками В и А2 и В’ и А3 соответственно! Ок, переделал поиск вершин. Теперь переключился на проецирование вершин стохастика на график цены.

И вот тут  я понял, что подход по определению максимальных значений вершин стохастика и проецирование их на график цены — ВООБЩЕ неправильно!

2017-02-15_23-42-26

На рисунке  красные линии  — это максимальное значение стохастика, а синие максимальные значения цены. И они нифига не совпадают по времени. Стоп — лосс я должен ставить за вершину, и определять ее я должен по цене, иначе лосей будет неимоверное количество, а значит, возвращаясь снова к предыдущему рисунку, мне нужно определять максимальное значения ценовых экстремумов между точками В и А2 и В’ и А3, далее ввести логическую переменную, в которой определить условия расхождений. Ага, так стоп… значит я не зря находил максимальное значение вершины стохастика. Хм… возникает два способа сопоставления показателей индикатора и цены: 1) отталкиваясь от цены определить показания стохастика  — при данном методе бары и время как цены , так и инидкатора будут едины 2) независимое сопоставление цены и данных стохастика — при этом бары и время будут разные… Мде уж… над этим надо подумать, хотя на первый взгляд оба варианта должны давать в общем тот же результат. Но все же склонюсь к первому варианту, взяв в качестве основного показателя цену.

Выжат, млин, как не знаю кто и башка болит.  Чтобы понять уровень концентрации, скажу, что я даже фильму не включал))). Но ничего, пять часов работы прошли не просто так. Похоже, скоро мои боты научаться сами распознавать дивергенцию по стохастическому осциллятору!))  Заживем!)))

06.02.2017

Альтернативный подход к определению основного и коррекционного движения по MA все же кажется мне не очень эффективным, изначальный свой подход по фракталам считаю более надежным. По результатам наблюдений пришел к выводу. что для часа, как базового периода в качестве рабочего лучше использовать М30, для М30 — М15 И М15 — М5. Есть еще выводы, но описывать их пока не буду. Снова возвращаюсь к предыдущей своей разработке, попробую модифицировать ее с учетом запаса хода до ближайшей зоны   +- 10 пунктов и изменю контроли кое-какие. Ну, по крайней  мере, появилась какая-то четкость в дальнейших действиях.

Что еще… от Альпари решил отказаться, пока на демке у Робофорекса, возможно еще пойду к Адмиралам, но у них заморочена немного регистрация и открытие счета.

Сегодня подъем был в 6:35 в 7:00 вышел на пробежку, потом растяжка, пресс, отжимания и спина, а также форма заняли два часа. Все бы ничего, но как оказалось в минус 25 все таки нужно быть осторожным при беге на улице- грудь немного побаливает, обычно я зимой бегаю, когда температура ниже или равно 20 градусам. В принципе, можно чередовать — утренние пробежки заменять упражнениями на турнике и сделать акцент на техническую часть. Посмотрим.

В целом ощущения положительные. Интересно, что на работу я вечно просыпал — просто не хотел туда идти, ложился поздно, вставал соответственно тоже и с трудом. Сейчас такой проблемы нет.

В 23:00 решил не делать упражнения на глаза, так как посчитал, что нагружать мышцы пусть даже и глаз непосредственно перед сном не очень хорошая идея, поэтому план скорректирую. Вместо этого больший упор делаю перед сном на пальминг, так как он хорошо расслабляет организм. Далее можно спокойно ложиться спать, дополнительно вчера еще провел процедуру глубокого расслабления аутотренингом, так что спал хорошо. Аутотренинг хорошая вещь, но, конечно, не панацея, при сильном эмоциональном дисбалансе не поможет, но когда вопрос стоит «или — или» выручает.

Закручиваю дома плинтуса — понял, что закручивать их я не люблю.

Составил план по восстановлению зрения

Выглядит так:

2017-02-05_19-12-31

Полгода назад я ходил на коррекцию зрения упражнениями в клинику филиал РДЦ в общем методики их ничем не  отличаются от тех, что описаны в книгах, а потому я решил восстанавливать зрение с помощью упражнений дома. Год назад я делал упражнения на глаза и это дало положительный эффект, в итоге меня допустили на соревнования. Но за последние полгода пока я работал в офисе я чувствую, что зрение несколько ухудшилось. Сейчас после увольнения организм приходит в норму, в том числе и зрение, а после упражнений могу и вовсе без очков сидеть за компом, но немного глаза напрягаются, поэтому все же слабые очки за компом надеваю. Сейчас я сижу в очках с диоптриями -1  и прекрасно себя чувствую. На работе я носил очки -3, при том, что зрение мне ставили -4. Врачи сказали, что примерно 0,5 из них лишь остаточное напряжение и это легко убирается само по себе при упражнениях.

По сравнению с прошлым годом я добавил упражнения и хочу еще добавить поляризацию. В общем комплекс упражнений занимает от 30 минут до 40 если добавлю поляризацию.

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

Яндекс.Метрика