PDA

Виж пълната версия : Индикатор - Гапове и слипидж



Mateev
14.12.2019, 10:47
Отварям нова тема с цел да публикувам поредния мой индикатор, който може да ви помогне да осъзнаете логиката на пазара и/или на алгоритъма, с който даден брокер формира собствения си поток от котировки.

Под ГАПОВЕ аз разбирам каква е ценовата разлика в пипсове между два съседни тика. За всички е ясно, че тези тикове рисуват зигзаци или барове, но дали наистина може да се търгува по всяка една цена вътре в тези барове (зигзаци)?

Отговорът е ТВЪРДО НЕ !!!

За да си изясним какви са реалните гапове, които генерира потока от котировки на даден брокр, аз съм написал индикатор RsmGaps, който ги проследява и логва във файлове, както и ги визуализира на екрана на компютъра. По-точно визуализира агрегатните функции Min, Avg и Max за всеки един бар от всяко едно TimeFrame на дадения финансов инструмент.

Ако ви е любопитно какви ги върши вашият брокер, можете да си изтеглите индикатора и да го пуснете върху интересуващите ви символи:

Mateev
14.12.2019, 10:58
За който не знае как се слагат външни индикатори в МТ4, ще публикувам кратка инструкция:

1. Изтегляте си файла RsmGaps v1.02.rar
2. Разархивирате го и вътре ще намерите файла RsmGaps v1.02.ex4. Този файл съдържа готов компилиран индикатор с име RsmGaps v1.02
3. Стартирате MetaTrader 4
4. Избирате File и след това Open Data Folder. Отваря ви се прозорец на Windows Explorer с директорията на самия MetaTrader 4
5. В тази директория избирате MQL4 и след това избирате Indicators
6. Копирате файла RsmGaps v1.02.ex4 в директорията Indicators, и това е всичко.
7. След това или рестартирате МТ4, или отивате в неговия прозорец Navigator и след това Indicators и натискате Refresh

За да пуснете индикатора върху някоя графика, можете просто да го изберете с мишката и да го провлачите до графиката. Появява се един прозорец с възможност за настройки, които можете да разгледате и ако искате - да промените. След това натискате OK и индикатора се появява на графиката.

Mateev
14.12.2019, 11:15
Този индикатор започва да следи всеки един тик от потока с тикове и да смята разликата в цената между два съседни тика. Тази разлика я натрупва като статистика в няколко различни файла - по един за всеки таймфрейм. Така вие се сдобивате с вечно работеща статистика, която не се губи дори и при спиране на MT4. Тази статистика се визуализира като диаграма от вертикални линии, по една за всеки един бар от графиката.

Тоест на графиката M1 можете да наблюдавате статистиката на микрогаповете за всяка една минута от миналото. На М5 можете да наблюдавате статистиката на всеки 5 минути, на H1 за всеки час, на D1 за вски ден и т.н. Разбира се тази статистика ще се натрупва само ако MetaTrader е включен и на графиката има пуснат индикатор. Ако не, то тогава в диаграмата на статистиката ще има празни участъци.

За да си изясните как дадения брокер създава потока от тикове, добре е да оставите този индикатор да работи денонощно поне няколко месеца. Така ще натрупате статистическа информация какво се случва в различните часове от денонощието, в часовете около полунощ, или по време на новини. Тази информация е много важно да се знае от тейдера, защото по нея той може да се ориентира какви по размер СЛИПИДЖИ може да очаква от брокера и кога да ги очаква тези слипиджи.

След като веднъж сме натрупали статистическа информация за слипиджите, можем вече спокойно да модифицираме търговските си стратегии така, щото да не търгуват в периодите от време, когато се очакват големи слипиджи.

Mateev
07.01.2020, 17:20
Публикувам нова версия на индикатора RsmGaps. В старата имаше бъг, при който с отваряне на записания файл се генерираше един нереално голям гап, равен на разликата в цените спрямо стария бар, при който е бил затворем MetaTrader-a. Този голям гап мащабираше графиката така, щото другите реалните гапове почти не се виждаха като височина.

В новата версия този бъг е отстранен, и сега всички гапове се виждат нормално. След инсталиране на новата версия обаче трябва на ръка да се изтрият всички файлове, създадени от старата версия. Това с цел да се премахнат всички записани стари гапове с нереален размер. За да се изтрият файловете, трябва да се направи следното:
1. От MetaTrader менюто се избира File / Open Data Folder
2. От появилия се Explorer се избира MQL4 / Files / Gaps
3. Изтриват се всички файлове от директорията Gaps
4. Ако някой файл откаже да се изтрие, спрете MetaTrader-а, изтрийте файла, и след това отново стартирайте MetaTrader-a

bvg
19.08.2020, 22:36
Матеев, пробвал ли си някакви стратегии базирани на контрене на тренда, в които обаче слипиджа да се ползва в наша полза? Дори може по някога леко да забавяме изхода при по-волатилен пазар, т.е. да създаваме слипиджа изкуствено.

Mateev
20.08.2020, 11:47
И как слипиджа може да стане в наша полза? Та той винаги е във вреда на клиента (по-лоши за нас както Ask, така и Bid).

bvg
20.08.2020, 13:32
И как слипиджа може да стане в наша полза? Та той винаги е във вреда на клиента (по-лоши за нас както Ask, така и Bid).

Примерно, наближаваш таргета за изход, но виждаш, че има много висока волатилност и умишлено задържаш с 2-3 секунди до минута изхода. Не съм го мерил и ми е любопитно дали някой го изследвал. Примерно минутен бар който прави 30 до 50+ пипса. Нека го перефразирам и по друг начин. Дали според теб има зависимост на малките/минутните таймфреймове при по-дългите барове да има продължение на тренда за още минута - две?

Mateev
21.08.2020, 09:04
Това можеш да го изследваш по метода ти в другата тема с различните видове патерни, които се образуват от нули и единици.

Колкото до тренда - има една много голяма според мене самозаблуда от страна на трейдерите що е това тренд. Те гледат преди всичко височината на тренда, и пропускат да видят дълбочината на максималната корекция, а в действителност тя е основния определящ критерий може ли нещо да се спечели от този тренд или не.

Ще го обясня по следния начин:

Предполагам вече знаеш, че средната дължина на всеки един сегмент в зигзаг графиката на 50-те процента вероятност клони към 2. Една единица губим за да детектираме новия тренд и още една, за да детектираме неговия край (началото на следващия нов тренд). От тука и се получава 2 единици за случайните графики с 50% вероятност, и както вече знаеш, от тях не може да се спечели.

Ако средната дължина на сегмента е по-малка от две (вероятност < 50%), всяка една противотрендова стратегия ще печели, а ако е по-голям от 2 (вероятност > 50%) - всяка една трендоследяща система ще печели.

Как обаче се определя тази относителна дължина на тренда?
Ами като се раздели неговата абсолютна дължина в пипове на абсолютната дължина на най-дълбоката негова корекция. От тука става ясно, че не е важно дали тренда ще измине малко или голямо разстояние в пипове, а колко дълбока корекция ще има вътре в него.

Същото можеш да го съобразиш и по друг начин, като разделиш височината на тренда на неговата дължина на вътрешния зиг-заг. Така директно ще получиш най-вероятната вероятност, създала този тренд. Резултата ще го получиш с число от -1 до +1, което ако искаш да го видиш като познатата ти вероятност от 0 до 100%, трябва това число да го умножиш по 50 и да прибавиш 50.

То същото важи и за всеки един бар. Ако те интересува каква вероятност се е вихрила вътре в него, раздели височината (Close-Open) на дължината. При баровете обче имаме две възможни дължини, като вече е изгубена информацията коя от двете е по-вярна. Тоест имаме сегменти OHLC или OLHC. Смяташ дължината и на двете, след това смяташ и двете вероятности, и после за по-сигурно избираш по-малката вероятност.

zezo
26.08.2020, 18:06
Колкото до тренда - има една много голяма според мене самозаблуда от страна на трейдерите що е това тренд. Те гледат преди всичко височината на тренда, и пропускат да видят дълбочината на максималната корекция, а в действителност тя е основния определящ критерий може ли нещо да се спечели от този тренд или не.

Ще го обясня по следния начин:

Предполагам вече знаеш, че средната дължина на всеки един сегмент в зигзаг графиката на 50-те процента вероятност клони към 2. Една единица губим за да детектираме новия тренд и още една, за да детектираме неговия край (началото на следващия нов тренд). От тука и се получава 2 единици за случайните графики с 50% вероятност, и както вече знаеш, от тях не може да се спечели.

Ако средната дължина на сегмента е по-малка от две (вероятност < 50%), всяка една противотрендова стратегия ще печели, а ако е по-голям от 2 (вероятност > 50%) - всяка една трендоследяща система ще печели.

Как обаче се определя тази относителна дължина на тренда?
Ами като се раздели неговата абсолютна дължина в пипове на абсолютната дължина на най-дълбоката негова корекция. От тука става ясно, че не е важно дали тренда ще измине малко или голямо разстояние в пипове, а колко дълбока корекция ще има вътре в него.

Не е ли по-лесно пазара да се разреже на абсолютно еднакви сегменти и да се следи за техните поредици, когато самостоятелните барове са повече отколкото са в случайните графики то всяка противотрендова стратегия ще печели и когато поредиците от повече от един самостоятелен бар са повече то всяка тренд следяща стратегия ще печели? Или по този начин се губи някаква информация?

bvg
28.08.2020, 16:05
Не е ли по-лесно пазара да се разреже на абсолютно еднакви сегменти и да се следи за техните поредици, когато самостоятелните барове са повече отколкото са в случайните графики то всяка противотрендова стратегия ще печели и когато поредиците от повече от един самостоятелен бар са повече то всяка тренд следяща стратегия ще печели? Или по този начин се губи някаква информация?
Как да го разрежем? По време или по нива? На кое казваш самостоятелен бар?

zezo
28.08.2020, 19:38
По нива примерно всеки бар ни е 60 пипса точно като на картинката която качих EUR/CHF в другата тема. Самостоятелен бар е такъв след, който следващия бар е в обратната посока, а не в същата посока, тоест ако първият ни е отрицателен или надолу следващият ни е нагоре то първият ни е самостоятелен, ако и вторият беше положителен то тогава щяха да станат два поредни отрицателни и не са самостоятелни.

Mateev
29.08.2020, 09:19
Ценовата графика може да се нареже по 100 различни начина, както и таймфреймовете могат да се окрупняват по 100 различни начина. И по всеки един начин могат да се правят статистически изследвания, но за нас е важно да има някакъв логически смисъл в това окрупняване и нарязване. Също така някои видове окрупнявания/нарязвания са много трудни за анализ, защото при тях не знаем какво генерира случайноста, щото след това да търсим разлики от тази случайност.

Аз лично от всичките възможни вариации съм се спрял само на няколко, които са удобни за генериране и последващ анализ. Нека да поразсъждаваме малко:

1. Първична ценова информация са тиковете с офертни цени Ask, Bid, както и тиковете със цени на сделки Last. Също така съществува и една следствена изчислена последователност Mid, която е по-средата между Ask и Bid. Ако искаме да правим статистически анализ с цел търсене на зависимости, най-добре е да се използват цените Last. Ако тях ги нямаме като поток, то тогава е най-добре да използваме Mid. По неведоми за мене причини обаче масово се използва Bid, което аз не го одобрявам.

2. След като сме си избрали първичната тикова редица, трябва да я окрупним (да изхвърлим част от тиковете) и да я нарежем на части (барове). Няма строги изисквания кое от двете ще направим по-напред, защото различните алгоритми изискват едното или другото да се направи с приоритет.

3. Крайният резултат е да получим барове с някакви характеристики, като именно тези барове представляват така желаното от нас НАРЯЗВАНЕ на графиката.

4. Това нарязване се прави така, щото за нас 1 бар да представлява една сделка, в която печалбата/загубата е Close-Open, a High и Low всъщност са MFE и MAE.

5. След като приемем, че един бар е равен на 1 сделка, то тогава можем по еднотипен начин и с един и същи написан от нас софтуер да анализираме всички видове нарязвания на пазара, като просто в стратегията по някакви правила включваме/изключваме едни или други барове.

Предполагам разбрахте каква технология използвам аз:
1. Нарязване на пазара с някакви правила, които не са търговски, а такива за по-удобно представяне на цените
2. Тези правила образуват барове с някакви характеристики
3. Тези барове се обработват по еднотипен начин с един и същи наш софтуер
4. Тези барове всъщност представляват и сделки, като за всеки един бар е възможна както Buy, така и Sell сделка
5. Създаване на стратегии посредством втори комплект правила, които вече са търговски, и посредством които за всеки един бар/сделка решаваме дали да се включи в стратегията или не

Най-важното от цялата тази организация е получената от нас УНИВЕРСАЛНОСТ за всяка една наша сделка/стратегия, което пък ни позволява с един и същи софтуер да анализираме, обработваме и търгуваме произволно избрана стратегия.

Mateev
29.08.2020, 09:39
За стандартното нарязване на графиката на барове по оста на времето вече знаете. Знаете и как се окрупняват тези барове в по-високи таймфреймове. До тук добре, но тази смесица от цени и време създава барове, които много трудно можем да ги анализираме в статистически план поради факта, че не сме наясно чистата случайност какво трябва да създаде, за да търсим разлики, които да ги набедим за зависимости.

Тези стандартни барове по оста на времето имат три много големи недостатъка:
1. Създадени са по цената Bid, което не е най-доброто решение, и при което вече е загубена информацията за Ask пиковете на цената.
2. Ние търгуваме цени, а не време. Да, ама нарязването по време често създава ненужни барове, които объркват стандартните индикатори, или обратното - важни бързи движения се натъпкват в един единствен бар, и ние губим информация за реалния зиг-заг и броя на сегментите вътре в този бар.
3. Загубена е информацията кое се е случило по-напред - High или Low, но тази загубена информация е изключително важна за анализа на движението на цените. Нейната липса създава за нас възможност да открием някакви зависимости там, където другите трейдери не ги виждат.

Анализирайки всичко това аз стигнах до извода, че времето трябва да се изхвърли като параметър, по който се образуват ценови барове, и да работим само с цени и с нищо друго. Това не означава, че ще се откажем от това време. Точно обратното - за всеки един тик ще помним времето, и в бъдещите барове то неизменно ще присъства като параметър, но не общ за бара, а отделен за всяко едно събитие - Open Time, High Time, Low Time, Close Time. Тоест времето ще го имаме навсякъде, но нарязването и окрупняването на баровете ще го правим само по цени и по нищо друго.

Нарязването на баровете само по ценови признак създава вече възможност да правим статистически анализ на тези цени и да търсим в тях зависимости, които са истински, и които не зависят от случайната намеса на времето в тях.

Mateev
29.08.2020, 10:16
И сега вече мога да разкажа как аз образувам моите барове/сделки за анализ и търсене на стратегии:

1. От първичните тикове изчислявам цената Mid или използвам цената Last там, където я има. Всъщност тъй като софтуера е обектно ориентиран клас, на практика с него лесно мога да обработвам дори и последователностите Ask или Bid, но досега не ми се е налагало.

2. От последователноста с тикове изхвърлям дублиращите се и с остатъка образувам zig-zag сегменти. Тоест изхвърлят се и всички междинни тикове вътре в даден сегмент и се оставят само тези по върховете на сегментите, след които сегмента прави реверс в другата посока. Тука е важно да се отбележи, че реверса се детектира по първия тик в обратна посока, но този тик не го съхранявам, освен ако не е последния от новата посока.

3. Окрупняването на сегментите към по-големи се извършва по единствения логичен и разумен метод - изхвърляне на сегменти, по-малки от дадена предварително обявена дължина. Например ако искам графика ZZ10, то това означава зиг-заг, в който са изхвърлени всички сегменти, с дължина, по-малка от 10 пипа.

4. От новополучената окрупнена графика създаваме барове, като всеки един бар съдържа в себе си един сегмент, по който се прави или не една сделка.

Тука трябва да се направи следното доуточнение. Красивия зиг-заг, получен в миналото, е идеален за направата на статистически анализи, защото за него имаме много математика, за която ще говорим в бъдеще. Баровете обаче не включват в себе целия сегмент, защото неговото начало го откриваме със закъснение. Ако приемем, че MinZZ е размера на минималния сегмент, и всички по-дребни сегменти са изхвърлени, то тогава в реално време ние научаваме за началото на нов сегмент със закъснение по време и с ценово отместване, развно на MinZZ.

Тоест точката Open на бара ще е на разстояние MinZZ от реалното начало на сегмента. След това с нарастване на сегмента, ако е възходящ, ще нараства цената High, и след това ще започне нов сегмент, за който ние ще разберем чак когат цената се върне назад на разстояние отново MinZZ. Тоест ще получим бар, при който High-Close=MinZZ. Цената Low ще е равна или на Open или на Close в зависимост от това дали сегмента е по-къс или по-дълъг от средното.

Така получените барове можем да ги нарисуваме визуално, но те няма да ни помогнат кой-знае колко да анализираме пазара. Отново ще имаме хаос от барове и отново интуицията ще вижда в тях нещо, което всъщност го няма. По-интересното е да анализираме зиг-зага-а, защото всяка една зависимост, ако я има и ако я намерим с някакви индикатори, то тя ще я има и в зиг-зага, където може да бъде намерена много по-лесно с 3-4 еднотипни метода.

Описах ги тези барове не защото мисля да ги рисувам на екрана, а защото тези барове всъщност са предопределените сделки, които ние можем да сключим, и за които посредством правилата на стратегията ще решаваме:
1. Дали дадена сделка да я отваряме или да пропуснем
2. Ако ще я отваряме, в каква посока трябва да се отвори
3. За затваряне въобще не мислим - сделката по презумпция се затваря в края на бара, който край е предопределен от нетърговските правила за образуване на този бар.

Mateev
29.08.2020, 10:23
Преди да разкажа за няколкото стандартизирани и лесни методи за бързо търсене на зависимости, ще изчакам да видя дали има въпроси по написаното до момента, защото това е основополагащо и е хубаво да се разбере от всеки защо се прави точно така, а не иначе.

zezo
29.08.2020, 21:36
Ценовата графика може да се нареже по 100 различни начина, както и таймфреймовете могат да се окрупняват по 100 различни начина. И по всеки един начин могат да се правят статистически изследвания, но за нас е важно да има някакъв логически смисъл в това окрупняване и нарязване. Също така някои видове окрупнявания/нарязвания са много трудни за анализ, защото при тях не знаем какво генерира случайност, щото след това да търсим разлики от тази случайност.

Аз лично от всичките възможни вариации съм се спрял само на няколко, които са удобни за генериране и последващ анализ. Нека да поразсъждаваме малко:

1. Първична ценова информация са тиковете с офертни цени Ask, Bid, както и тиковете със цени на сделки Last. Също така съществува и една следствена изчислена последователност Mid, която е по-средата между Ask и Bid. Ако искаме да правим статистически анализ с цел търсене на зависимости, най-добре е да се използват цените Last. Ако тях ги нямаме като поток, то тогава е най-добре да използваме Mid. По неведоми за мене причини обаче масово се използва Bid, което аз не го одобрявам.

2. След като сме си избрали първичната тикова редица, трябва да я окрупним (да изхвърлим част от тиковете) и да я нарежем на части (барове). Няма строги изисквания кое от двете ще направим по-напред, защото различните алгоритми изискват едното или другото да се направи с приоритет.

3. Крайният резултат е да получим барове с някакви характеристики, като именно тези барове представляват така желаното от нас НАРЯЗВАНЕ на графиката.

4. Това нарязване се прави така, щото за нас 1 бар да представлява една сделка, в която печалбата/загубата е Close-Open, a High и Low всъщност са MFE и MAE.

5. След като приемем, че един бар е равен на 1 сделка, то тогава можем по еднотипен начин и с един и същи написан от нас софтуер да анализираме всички видове нарязвания на пазара, като просто в стратегията по някакви правила включваме/изключваме едни или други барове.

Предполагам разбрахте каква технология използвам аз:
1. Нарязване на пазара с някакви правила, които не са търговски, а такива за по-удобно представяне на цените
2. Тези правила образуват барове с някакви характеристики
3. Тези барове се обработват по еднотипен начин с един и същи наш софтуер
4. Тези барове всъщност представляват и сделки, като за всеки един бар е възможна както Buy, така и Sell сделка
5. Създаване на стратегии посредством втори комплект правила, които вече са търговски, и посредством които за всеки един бар/сделка решаваме дали да се включи в стратегията или не

Най-важното от цялата тази организация е получената от нас УНИВЕРСАЛНОСТ за всяка една наша сделка/стратегия, което пък ни позволява с един и същи софтуер да анализираме, обработваме и търгуваме произволно избрана стратегия.
Пета точка е изключително интересна и бих се радвал ако дадеш някакви насоки за развитието на такива стратегии.
По първите 4 точки прилагам картинка на това как аз го правя както и експерта, които разделя графиката по начин най-близък до твоите обяснения. Използвал съм тикови данни от 11.08.2015 до 11.08.2020 Експертът има функция за (Бид+Аск)/2. На картинката съм използвал настройка 650 поинта равна на 65 пипса големина на баровете, което съответно можем да приемем за стоп и таргет на нашата стратегия или по-точно отваряне на сделка в началото на бара и затваряне на сделката в края на бара. Ясно се вижда че ако приемем противотрендова стратегия тоест контриме посоката на всеки нов бар то от 11.08.2015 самостоятелните барове и в двете посоки са 60 бр. а пътите в които са превръщали в последователни са 40 което си е 60 % ПМО - което не е никък малко.... Но за съжаление това голямо ПМО не можем да го използваме със силата на 100 или 1000 сделки защото баровете са прекалено големи и за да имаме 100 сделки трябва да минат около 2 години, което е адски много време за само 100 сделки. Ако някой се сеща как да използваме това ПМО по-рационално моля да сподели.... Всъщност този проблем ще го имаме при всички открити зависимости при които бара е достатъчно голям за да е съразмерен със спреда, тоест спреда да вилиае в по-малка степен на печалбата. Аз съм намерил доста зависимости и при малките барове примерно 10 пипсови но там спреда ще смачка всяка печеливша стратегия или за да има някаква печалба ПМО то трябва да е изключително високо.

ПП. Ако Матеев реши да премести постовете в темата Статиска или развойна дейност, защото май разводнихме темата за индикатора за гап.