Добре дошли в Свободен Български ФОРЕКС форум.
Резултати от 1 до 7 от общо 7
  1. #1
    Наблюдател
    Регистриран
    17.01.2021
    Мнения
    40

    Класификатори

    Всички съвременни интелигентни системи страдат от калпави класификатори.
    И аз да съм в крак с модата си правя/направих класификатор на барове, който почти е завършен.

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

    Матеев, темата основно е ориентирана към теб, защото към момента май не съм чул за друг bg който да се вълнува сериозно от трейд роботи.

    Това е моето виждане на блокова схема за класиране на Тикове, ахъ тикове, за баровете няма проблем да споделям, но ми се иска да не е монолог като повечето теми.

    Щракнете върху изображението за по-голям размер

Име:	tick_classification.jpg
Прегледи:      18
Размер:	98.4 KB
ID:	10343

  2. #2
    Според мене трябва малко да обясниш какво точно си имал предвид когато си рисувал тази картинка. Готов съм да се включа в дискусията, но ако аз правех класификация, щях да я нарисувам по друг начин.

  3. #3
    Наблюдател
    Регистриран
    17.01.2021
    Мнения
    40
    Най-общо: класифицирам входящият поток с цел да мога да прогнозирам бъдещи негови стойности с висок % на достоверност.
    Класификациите са, за откриване на нови или разпознаване на съществуващи модели.

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

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

    Първото класиране което прилагам горе, е доставен ли е тика, до робота, при стандартните ти времена за доставка [да | не].
    При НЕ, прескачам коментара за причините (цяла отделна тема може да се развие), важното е какъв дял вземат от общата бройка, ще ги пренебрегнем ли, или ще приложим обработка на пакет през някакъв интервал. Това зависи от скорост на машината, нет връзка, бр. тикове за секунда, скорост на обработващия алгоритъм - все времеви показатели!

    Второ сито. Сред прочетените тикове, откриване на проблемните такива. Основно грешни са цената или времето. Количеството на проблемните тикове, е първи сигнал за смяна на брокера! Трудно се детекват и за съжаление при опасение за грешен тик, винаги е най-напечено и смислените решения са с игнорирането му, което води до допълнително забавяне. Засичането на грешен тик, ни предпазва само при предотвратяване, пускането на нова сделка. Наличните позиции го отнасят! Но, на база засечката, може да се разправяме с брокера да възстанови позицията/ите!

    Всички тикове стигнали до ниво (А.1.) са функционални и от тук вече започва същинската им класификация.
    Тук съм дал две деления по промяна на (цената и спреда) и първия извод е, че спреда е по-консервативен от цената.
    Няма промяна на цената - няма промяна на спреда и не всяка промяна на цената, води до промяна на спреда.

    Май това показва тази схема.

    Но е добре да се отчитат и динамични показатели, като:

    ∆P = P₁ - P₀ - jump
    ∆T = T₁ - T₀ - gap

    екстремни стойности: min, max

    Твоето виждане относно тиковете, барове, сегменти?


    PS: Целта ми е много на брой сделки на ден (20-24, до към 100 при възможност), като перфектната сделка е до 5 минути. Това до голяма степен изисква много чувствителен класификатор с висока надеждност на засечените модели.

  4. #4
    Благодаря ти за разясненията. Да, аз също много пъти съм мислил по този проблем, но никога не съм стигал до писане на софтуер, който в реално време да прави тази класификация.

    Мога да ти дам инфо и идеи какво да се добави към класификацията, от която предполагам ще произлезе някакъв алгоритъм.

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

    Ако случайно не знаеш, MetaTrader обновява тиковете и въобще търговския статус не по-често от 10-12 пъти в секунда. Това съм го тествал. При това положение много често в терминала пристигат пакети, в които има по няколко тика, но търговски операции могат да се правят само по последните тикове. В същото време там на сървъра се извършва активиране на стопове и лимити дори и по междинните тикове. Това е много важно и трябва да се знае от всеки трейдер, пишещ софтуер на роботи.

    Другият проблем е, че при MetaTrader винаги пристигат тикове с Ask и Bid, но в действителност там на пазара се е променило само едно от двете. Така че трябва да се прави сравнение с предишния тик, за да се изясни дали промяната е в Ask или в Bid.

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

  5. #5
    Наблюдател
    Регистриран
    17.01.2021
    Мнения
    40
    Определено страдам от липса на конструктивна критика и прилив на нови нюанси, за което на свой ред и аз благодаря за включването ти!
    От много време се мотам с платформата и с много "ефекти" съм се сблъсквал на живо. Доста тестове съм правил и където се достигне до такава точка и аз ще споделям резултат и изводи.

    Замислял съм се за входния протокол, но никога не съм задълбавал и тествал, повече наблягах над техника на сделката и анализ на данните. Сега като те чета... Съвсем логично е при толкова много инструменти в платформата, при доставка на 1 пакет, в него да има тикове на няколко инструмента и разнородни тикове, на 1 от тях.
    Мислил съм, че ценовите ъпдейти (бр. ценови пакети за секунда, има и други дейта ъпдейти!) са функция на скоростта на машината и Ping-а (пак скорост), а не са фиксирани във времето.
    Твоите тестове прави ли ги и на бавно PC и бавен нет (примерно GSM рутер)?

    По документация OnTick() е добре дефинирана, а SymbolInfoTick(), винаги дава последния дошъл тик, а не тика(/овете), които са генерирали събитието. Уви, сделката не става по нито един от тях, а по последния дошъл на сървъра (някъде бях пуснал подобна времева диаграма). Затова ти ги делиш на "тикове за анализи и тикове за търговия".

    Моя подход при този проблем е следния
    1. Частично се примирявам, че изпускам част от входящият поток. Даже по-бавната машина се явява естествен филтър на шум. Така или иначе, тикове който са с много малък gap по между си (под 10-12ms) са недостъпни за любителски системи. MetaTrader е такава и къде точно й е предела, не съм изследвал, защото винаги съм се притеснявал, че анализиращият ми алгоритъм ще е по-бавен. ...при добре структуриран класификатор, има потенциал анализа да падне под 1ms, което ще е тема за нови разговори по тази точка.
    - следствия "тиковете, образуващи някакъв връх или дъно" локалните минимуми и максимуми (екстремуми) ако се окажат сред пропуснатите - кофти! ...и това не съм го изследвал, какъв % от екстремумите са вътрешни, но е в списъка със следващите ми статистики, а като мина на квантово PC, надявам се да отпадне

    2. Аз използвам
    deviation, ако трябва да съм по-точен (front & back deviation). Front е по посока на сделката. Отношението front:back (1:2), като front е около (1/4-1/2) нормалният спред. Това гарантира сделката да се случи на цена близка до стойността на тика, на база на който е генериран сигнала. По този начин, тиковете между сигналния (последен в клиентския терминал преди начало на анализа) и сделковия (последен в сървъра на брокера на моя брокер към момента на match-ване на сделката) не афектират особено относно динамиката на тиковете. ...това не предпазва от лош анализ и калпави сигнали, но решава проблема с "тикове за анализи и тикове за търговия". При по-калпав брокер или високо волатилити, front = 0 и разкъсваме връзката front:back.

    Валутните анализатори с които работех, казваха следното: Един анализиращ алгоритъм е добър да прогнозира нивото на цената, друг времето на събитието, но никога и двете. - Нещо като мнението на физиците за електрона. ...но те бяха слаби анализатори щом работеха на заплата.

    Last - нямам точна представа къде се получава - в сървъра на брокера? (предполагам) или идва от сървъра на брокера на брокера! Ако е първото, при един брокер, анемичен на клиенти и заспали такива, ще има много редки изяви. По същият начин и Volume, тука става въпрос за опции, не за акция, уорънти или какъвто и да е инструмент в лимитирана серия! И двата параметъра, дават локална статистика на брокера, а не на пазара като цяло.

    Относно: "
    ...Ask и Bid цените нищо не означават. Някъде някой разцъква ордери,..." - За мен опционния тикMetaTrader други май няма, дори при левъридж 1:1) носи 3 смислени стойности (time_msc, ask & bid). Не искам да се съглася, че текущите ask & bid не са меродавни, защото това означава, че брокера ми е маркет мейкър и ако е така, то трябва да го сменя на мига! Далеч съм и от тезата, че брокерите са супер коректни! Не разширяват спреда, не фризват и какво ли още не! Всички тези изводи не водят до критерий за класиране, а колко ми е читав брокера. Поправи ме ако греша!

    До скоро, пренебрегвах всички тикове с повтаряща се цена (ASK = ASK && BID = BID) по горната класация AP.2. price replay, като не-носещи информация, даже и спреда не се променя! С навлизане в класификатора на барове, се оказаха доста водещи тия тикове. Затова твърдя, че тиковия анализ е важен, но много плитък, повърхностен.

    Горе написах
    ∆P = P₁ - P₀ => jump но да се смята (∆A = A₁ - A₀ & ∆B = B₁ - B₀) (ask & bid) - уви цената е комплексно число! На него етап се опитах да дам принципа.
    За голямо съжаление в повечето платформи графиките са на база Bid цена и нямат опция за избор на Ask, (
    ask + bid) / 2 и/или ask & bid едновременно. Това води до перфектна визуализация на Long-out & Short-in, но не и на обратното. ...замислям се някой ден да си направя моя визуализация в MetaTrader плюс и времеви корекции, но едва ли! Нали минавам само на роботи. Ако някой е попаднал на готов код, да сподели! Пример за такава графика е аплетния вариант на Oanda. Това има смисъл при проверка поведението и анализ на робота.

    Преобладаващата част в отговора ми, сведе класациите ти до техника на сделката.
    Целя да освободя класификатора от всичко излишно, да е максимално оптимизиран, но да не пропуска каквато и да е функционалност или сечение.

    Ако виждаш друго сечение в тиковете или не си съгласен с моето виждане, не се въздържай!!!

    Предпочитам критиката пред одобренията, конструктивната критика! /иначе нямаше да си споделям идеите/


  6. #6
    Радвам се, че описа всичко това, за да стане ясно на читателите колко е сложна тази материя ....

    Колкото до това, че MetaTrader комуникира със сървъра посредством уедрени пакети по около 10 в секунда - това го засякох случайно с моя софтуер. Имам написан собствен клас - таймер, с помощта на който меря времена между две извиквания с точност до 1 микросекунда. Това става с методите Timer(i).Start() и Timer(i).Stop(). С първия метод чета хардуерния брояч на Windows-a и го запомням. С втория метод пак го чета, и изчислявам разликата между новата и старата стойност. И така получавам информация буквално в наносекунди.

    Та бях си написал един клас да Download-ва всички тикове по всички инструменти, и да ги записва в лог файл, като за таймщамп ползвам този подробния брояч, и така записвам времето с много висока точност. И като разглеждах файла, открих, че таймщамповете на тиковете са групирани във времето, и в общия случай пристигат по 10-12 пакета в секунда. Понякога малко повече или малко по-малко, но порядъка е този.

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

  7. #7
    Наблюдател
    Регистриран
    17.01.2021
    Мнения
    40
    Към момента не виждам друго сечение на тиковете. Евентуално някакво динамично свързано с ∆ (делтите), но не е така ясно изявено. Поне аз не го усещам.
    Ако някой засича друго класифициране на тиковете, Моля да сподели!

    Баровете - класификатора ми работи в 3 направления
    1. Класифициране по форма.
    2. Клас. по количествени изменения.
    3. Динамични изменения.

    Относно (1) мисля, че съм постигнал перфектното решение - 2 бита.
    00 - блоков бар
    01 - горен мустак
    10 - долен мустак
    11 - горен и долен мустак

    Добавям и още 1 бит за посока на бара - относно него, ми е трудно да определя към (1) или (2) спада.

    При това начало (2) и (3) са разковничето за добър класификатор. Чакам предложения!

    Подчертавам! Много важно е класификатора да охарактеризира, а не да абсолютизира предмета на класифициране.
    Търсят се групи от характеристики, а не абсолютни стойности.

 

 

Информация за темата

Потребители разглеждащи тази тема

В момента има 1 потребител (и), разглеждащ (и) тази тема. (0 потребител (и) и 1 гост (и))

Разрешения за писане

  • Вие не може да да публикувате нови теми
  • Вие не може да публикувате мнения
  • Вие не може да публикувате прикачени файлове
  • Вие не може да редактирате вашите мнения
  •