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

    мулти-маркет с автономна настройка

    Ръчният трейдинг умря! Да живеят Роботите!
    Mateev припокрива на 90% вижданията ми, но ще се опитам да дефинирам моя идеал за робот
    Поддържам мнението, че нито една идея не подлежи на открадване, защото ноу-хау-а е в реализацията й
    А когато става въпрос за борсова търговия, пазара е необятен и ако драсканиците ми по-долу помогнат на някой да дръпне, само може да ме радва!

    1. МТ5!!! ако е МТ4, то в краен случай, но не универсален код, а два различни проекта.
    2. Мулти-маркет, да може да поддържа всички инструменти на всеки брокер, и тъй като калкулациите по сектори са различни, то ще се добавят по етапно.
    3. Потребителя, т.е. Аз избирам кои пазари да се търгуват, като избора да се добавят или премахват става в движение без рестарт.
    4. Предполага се, че робота е стартиран при различни брокери като някой от тях може да не работят с всички от зададените инструменти, но при листването им от брокера, стартират автоматично.
    5. Всеки пазар на база история на пазара си настройва всички динамични параметри (ауто), като всичките се разглеждат като фрагментация на спреда.
    6. Въвеждане на рейтинг на инструментите (пазарите) чрез който се определя квотата му на участие от капитала, като старта е равен 1/n, а с всяка сделка и други фактори се коригира (ауто).
    7. Времето за обработка на един цикъл е добре да не надвишава 1-1.5 сек, колкото по-малко, по-добре! При по-слаба машина, повече тикове за сек, пазарите с по-нисък рейтинг отпадат до влизане в норма.
    8. Плюс списъка от търгуваните пазари от потребителя се въвеждат още много малко параметри:
    - максимален % на използване от наличния капитал (10-100) % Аз лично 99-100% в зависимост от точността на калкулация на Volum/Инвестиция/Динамика
    - степен на агресивно припокриване на свободния капитал от пазара със сигнал, (0-10) % Аз 5%.
    - IBAN за автоматичен трансфер при надхвърляне на поставените цели :о).
    9. Системата се само обучава ако не на всеки тик, то на минута, 5 мин или 1 ч, с много на брой прости статистики, невронните мрежи, не ми допадат, дори и LSTM.
    10. Един пазар - една позиция (нет акаунт)
    11. Един акаунт - един робот.
    12. Робота - унифицирана техническа и търговска част, но уникална сигнална логика.
    13. Секюритито, определено е обвързано с акаунта и още 4-5 неща, като естествено когато е нарушено, не спира търговията, а я кара на случаен принцип.
    14. Сигналния модул (май най-важния) генерира 0 за close, +1,+2,+3, ... за long и -1,-2,-3, ... за short, като нарастването на стойността увеличава вероятността.
    15. Всяка сделка се пуска със стопове отгоре и долу, като изхода й, е предимно от насрещен сигнал.
    16. Наличните класове и примерни функции, определено не вършат работа за реала, когато става въпрос за бързодействие и големи суми.
    17. За съжаление много от реалните процеси не подлежат на тестване в тестера и симулатора, да оставим, че някои са изключително рядко срещащи се, а други уж такива в последно време почнаха да се менкат през ден.
    18. Относно специалните договорки с брокера! Остават си такива! Брокерите в БГ определено са трудни на малките суми, а при по-голямите ти пробутват най-смотаните служители, които в нормални услови отговарят само за тоалетната хартия в офиса. Но със солидни финансови институции, съм достигал много добри условия, уви извън БГ.
    19. Начален капитал - поне 5 пазара да могат да отворят позиция с най-малкия обем. Контрола над Левърича, последната година се засили, та всеки да смята сам.
    20. Колкото по-малък е капитала при мулти-маркет търговията, толкова по-трудно се спазват квотите между различните пазари.

    Х. Таргета (въпроса на всеки начинаещ) х10 капитала месечно (х1.5-2 седмично), (5-20% дневно), но в действителност - всичко над х2 месечно е супер! ;о)))

    Какво мога да кажа за себе си. Имам любителски опит в ръчния трейдинг на различни платформи и инструменти от 2000 г. (по ония времена спреда на €/$ беше 7 пипса при 0.6 сега). Определено си падам по опции (едни от най-спекулативните инструменти). Печелил съм и губил неприлични суми, като печалбата е плод на много на брой сделки, а загубата само на няколко. Добре се справям с MQL и съумявам да прескачам издънки в платформата, а от някой даже да реализирам и доходност (естествено само временно). С Роботи на тестера съм постигал добри резултати, но уви на реала не! Като заключение, оказа се, че сам не съм си достатъчен за този проект, макар да съм писал различни фрагменти в годините.

    PS: Нахвърлях го набързо и ще коригирам във времето
    Този пост е редактиран от Kosyo; 18.01.2021 в 03:15.

  2. #2
    Радвам се, че някой разсъждава почти като мене. Ще допълня написаното и дори ще направя леки корекции, които мога да ги обясня защо ги правя, ако има интерес.

    1. Робота търгува с хиляди стратегии, или десетки хиляди (ако компютъра има съответните ресурси).
    2. Всяка една стратегие е 100% адаптивна и не се нуждае от никакви параметри, освен финансовия инструмент. Мисля че дори и този параметър може да се премахне.
    3. Всяка стратегия си има собствен вграден симулатор на исторически данни. Никаква предварителна симулация не е нужна - просто измисляме логиката на поредната стратегия и я пускаме да търгува на REAL.
    4. Тънкия момент за тази голяма смелост е ПРЕФЕКТНИЯ MONEY MANAGEMENT, който ако стратегията е каплпава, ще и предостави 0 (нула) лота за търговия. Това ще го обясня в друг постинг.
    5. Всяка една стратегия търгува виртуално. Започва в далечното минало с капитал 1-ца, и с течение на времето го увеличава или намалява.
    6. Стратегията не се интересува от размера на лота. Тя винаги си търгува с този абстрактен капитал, започвайки от 1-ца и стигайки до 0 или до + безкрайност.
    7. Ако стратегията стигне до 0-ла се самоизключва.
    8. Има си специален модул СУМАРИЗАТОР, който събира желанията на хилядите стратегии, сумаризира ги, и към пазара изпраща тяхната нетна позиция.
    9. Тази позиция може да се променя едва ли не на всеки тик или по-рядко, и модула СУМАРИЗАТОР се грижи да поддържа минимална разлика между ЖЕЛАНИЯТА и РЕАЛНАТА НЕТНА ПОЗИЦИЯ.

    По управлението на капитала:
    1. Всяка стратегия "разсъждава" виртуално в рамките на собствения си капитал, който винаги започва от 1-ца и се движи нагоре или надолу
    2. Този капитал може да стане много малък (напр. 0.0000000001), но въпреки това стратегията продължава виртуално да си търгува с него
    3. В процеса на своята виртуална търговия (в миналото или в реално време) стратегията поддържа статистическа информация за своето представяне. Това е dH/L на кривата на Equity-то.
    4. Процента от капитала за всяка една нова виртуална сделка на дадената стратегия също винаги е dH/L. За това чудодейно dH/L ще говорим по-нататък.
    5. Всяка минута (или дори всеки тик) СУМАРИЗАТОРА събира желанията на всичките стратегии, и след това преобразува сумата, като я мащабира от позицията на наличните средства в акаунта, и изчислява необходимите лотове. Ако реално са отворени други лотове, прави корекция посредством увеличаване или намаляване на нетната позиция към търговския сървър.
    6. Ако в акаунта се внесат нови средства, още на следващия тик сумаризатора премащабира сметките си и започва да използва новите средства.
    7. Ако се изтеглят част от средствата в акаунта, още на следващия тик сумаризатора премащабира и намалява отворената позиция по правилния начин (с правилното мащабиране).

    С описаното до момента елиминирахме няколко много важни проблема в трейдинга:
    1. Стратегиите вече не "мислят" за лотове и не се съобразяват с минималните такива. Те просто си търгуват с абстрактни единици, започвайки от 1 и стигайки до произволно положително число (голямо или малко).
    2. Стратегиите вече не "мислят" за парите в акаунта. Те винаги си търгуват виртуално дори и с части от стотинката.
    3. Стратегиите вече не "мислят" за Money Management. Той е унифициран, възможно най-оптимален, и зависи само и единствено от представянето на стратегията в миналото.
    4. Стратегиите вече няма нужда да се тестват върху исторически данни. Те сами си го правят това, и ако са калпави, dH/L много бързо ги принуждава да търгуват със суми, близки до нулата.
    5. Имаме огромно опростяване на кода на стратегиите, защото те вече не мислят за нищо друго, освен за собствената си вътрешна логика, която също е много проста - AND на няколко логически функции
    6. Няма нужда да правим развойна дейност и да търсим печеливши стратегии, защото калпавите такива се самоизключват с минимален разход на средства още на етап исторически автотест, а добрите бързо излитат в небесата още в исторически план, и след това и на Real.

    А ето как работи единичната стратегия:
    1. При тръгване на компютъра стратегията е със занулена статистика
    2. Започват да и се подават исторически тикове, които след изчерпването си преминават в тикове в реално време
    3. Стратегията дефакто не знае кога се случва събитието в т.2 - тя просто си продължава работата и си променя статуса след всеки един нов тик - исторически или в реално време.
    4. Следователно кода ще е силно опростен, защото стратегията не трябва да "мисли" кога сме в миналото и кога - в реално време
    5. Кода на стратегията ще бъде много бърз, защото тя няма да оперира със списък от истински сделки, а само с едно число, започващо от 1-ца и нарастващо/намаляващо във времето
    6. Статистиката dH/L всъщност ще представлява само 2 числа, които се манипулират на всеки един тик.
    7. Като цяло кода на единичната стратегия ще е силно опростен и ще се изпълнява светкавично.

    Ако има въпроси до момента - здавайте ги, за да можем да преминем към по-важната част - как ще се конструират самите стратегии.

  3. #3
    А сега и няколко думи за организацията на класовете в самия робот:

    1. Основния клас е е класа СУМАРИЗАТОР или каквото там име му измислим
    2. Този клас ще съдържа в себе си лист (списък) от обекти на класа на търговските стратегии
    3. Функционалноста му ще се изчерпва със сумаризиране на техните виртуални позиции, премащабиране спрямо реалните пари, и поддържането на реална сумарна позиция.
    4. Този клас ще работи с един единствен символ (финансов инструмент) и ще поддържа една единствена реална позиция по него.
    5. Обекти на този клас със същите (или с други) стратегии в него могат да бъдат пуснати и по други символи
    6. Следователно се нуждаем и от един главен клас, например TradingEngine, който ще съдържа в себе си лист от обекти на сумаризатори по различните символи.
    7. Класа TradingEngine ще се занимава и с преразпределянето на средствата в акаунта към различните сумаризатори

    Колкото до класа на една търговска стратегия - той трябва да е максимално опростен:
    1. Ще съдържа метод AddTick, и това ще е единственият метод за добавяне на информация в обекта на класа
    2. Ще съдържа методи Save и Load, за да може да се записва докъде е стигнала симулацията и при следващото пускане на компютъра да не започва от нулата, а от там, докъдето се е стигнало.
    3. Ще съдържа и един единствен метод GetSize, в който метод ще можем да попитаме какъв виртуален капитал има в текущата сделка. Ако е нула - няма сделка. Ако е положително число, класа иска Buy сделка. Ако е отрицателно - Sell сделка. Въпросът можем да го задаваме на всеки тик, и класът трябва да ни отговори, като има правото да си променя мнението буквално на всеки тик.
    4. Ще има и помощни методи за нуждите на визуализацията и статистиката, като например GetDH и GetL, GetTradesCount, и май с това се изчерпва всичко.
    5. Разбира се можем да накичим класа и с други методи, но тези по точка 1,2 и 3 са предостатъчни за пълноценното функциониране на стратегията както в исторически план, така и в реално време.

  4. #4
    Наблюдател
    Регистриран
    17.01.2021
    Мнения
    44
    *1. Може би тук ни е основното разногласие! :о) ...ако нямаше такова нещата щяха да са много подозрителни!
    Задачата е достатъчно сложна (програмно) и натоварваща (за машината) и да кажа с твоите камъни по твоята глава ха-ха! Ако имаш ДОВЕРИЕ за едно, защо да нямаш за друго! Защо подлагаш сигналния модул под съмнение!? Имаш ли на идея при няколко хиляди сигнални "схеми" какъв бъркоч ще се роди! Е не съм краен - компромисен варянт - прави се с 1на сигнална техника и като се стабилизира всичко останало, тогава да започне тестването с допълнителни сигнални логики!
    *2. Нещо подобно ми се връткаше, но не го бях изчистил, а като го прочетох, съвсем се изсветли! Пазарите с нисък рейтинг (който не се търгуват, няма значение заради рейтинга или липсата на капитал), симулират търговия - това е единствения разумен начин как да се коригира рейтинга им! Рейтинга - фактора за монетарния контрол, той е сред регулаторите на волюма. А имаме ли виртуална търговия, наистина няма значение от коректността на обема 1, 0.1, ..., 0.0000001
    * Относно всички пазари на брокера или списък от юзера!? Опита ми на живо, ме кара да ми се иска да има контрол! Защо! Защото всеки пазар навлиза в тъмен период, макар и веднъж на 10-20 г. примерно технически ограничения за дълъг период, особено когато говорим за акции (естествено опции над тях) или електронни валути, доста по-често срещани явления. Но в духа на т.2 определено може да остане на виртуална търговия или по-просто на "нашият" тестер.
    Други причини за списъка с пазари - а) да се облекчи машината; б) не всички сектори (групи) от пазари ще са алгоритмизирани с начале, а списъка е един за всички N брокера и определено не всички от тях ще поддържат всички пазари от списъка, но появи ли се, тръгва на раз, е след местният му анализ де.

    единичната стратегия
    * На всеки брокер започва от 0 (условията са му уникално дървени)
    * На всеки час или там колкото записва установените параметри и при срив (ток, нет, ...) ги зарежда на готово, защо да не ги преизчисли на ново, най-малкото защото вече има позиции и да не губи време, особено ако е кът за момента, примерно 5 мин до US close time.
    Всяка сделка => и позиция е самодостатъчна има малки стопове примерно 10-20п за €/$ да се лимитират загубите при срив (ток, нет, ...)
    * Трейд функцията правя и 10-та версия всички проверки са пред постването, след нищо не обработвам, само го принтирам за някогашни анализи за бъдещи пред проверки, а за всеки случай 3 опита да мине, а щом не е няма смисъл от анализ, това явно е проблем от нов тип.
    * Спреда е сред основните параметри и всичко което е цена, ниво, ценова дистанция е фрагментирано от спреда. Определят се няколко, нормален, максимален, добър, среден и това за всеки 15 мин или 1 ч от денонощието - много спредове, става въпрос за един пазар - около 500

  5. #5
    Наблюдател
    Регистриран
    13.12.2019
    Мнения
    22
    Интерес и въпроси ще има..
    Буквално съм потресен и едновременно впечатлен от последните два посата на Матеев..
    Няколко въпроса:
    1. Логиката на всяка стратегия отговаряща за посоките на отваряне на позициите на този робот на база на рандум генератор ли ще бъде?
    2. След като основното свойство на чистата случайност, е че всеки един маршрурут е равно вероятен, би следвало ако пуснем 1000 случайни робота поне няколко от тях със сигурност да бъдат печеливши поне за следващите 1000 сделки, и ако можем да ги отсеем да търгуваме само по тях... На базата на подобен вид разсъждения ли се гради новия метод?
    3. Какво стана с търсенето, доказването и търгуването по зависимости?
    4. Само на управлението на кипитала (ММ) ли разчитаме да ни извади от големите DrawDown ни?

  6. #6
    Наблюдател
    Регистриран
    17.01.2021
    Мнения
    44
    история и терминологията!
    МТ преди версия 3 беше олеле! Версия 3 - тук там някои брокери се престрашиха да го ползват. Версия 4 почна да става! Версия 5 - определено става! За съжаление малко брокери я предлагат...
    Хич не ми допада 4 в сравнение с 5, има толкова много бъгове, да оставим, че официално не се поддържа и ангажира от 2 до 10 пъти повече памет, с 2 думи достатъчно е сложно да се прави още по сложно!
    Символ - това животно за първи път го срещнах в МТ, толкова години още не мога да свикна, но опция, инструмент, маркет, е друго нещо! Предпочитам маркет, че е по-кратко.
    Bay, Sell - голям бъркоч! (при уорантито си е класификатор) използвам Long / Short

    Класовете - без тях не може, но където не са задължителни предпочитам структури и функции - внушил съм си, че са по-бързи.
    В МТ OnInit е малко фъни функция, рестартира се всеки път при смяна на параметър, добре е основните класовете да се декларират преди нея.
    Параметри в краен случай, инициализацията през текст файл, dll, веб пост или стрим, най-просто е с файл/ове.
    Няма да обсъждам всички класове, защото някои са прищявка, като таймерите NY/London/HK/Tokyo

    Моите Основни класове:
    Ексептион, Глобал (структ.), Маркет, Трейд_Лист, SX_Clock
    Ексептион - принтира варнингите или не и смс-ите
    Глобал - структура с много на брой глобални параметъра
    Трейд_Лист - добавя и премахва маркети, съответно ги записва и чете при старт
    Маркет - даунлоад, ъпдейт, хистори, тик, сигнал, траде, волюм, статистик
    SX_Clock - отчита отварянето и затварянето на основните борси

    метода: Маркет::сигнал - Може да се изведе като лист от сигнални функции, но както казах по-горе е доста сложно да се тества и е добре да е част от версия 2

    Най-интересното на всички тук им е именно сигналната функция, по скоро принципа
    Аз специално последно съм се спрял на анализ на последните няколко бара при тайм-фрейм 20-30 сек до 1 мин

    Таргета за Робота ми е около 20 плюсови сделки на ден за 3-8 пъти нормалния спред,
    Колко губещи? Нито една! - говоря за таргет! иначе 80:20 да е отношението печеливши губещи, ако няма такав % на прогнозата - няма сигнал, а сигнали се генерират непрекъснато и съответно се оценява, независимо дали е било реална сделка или виртуален анализ, оценката се използва за рейтингуване на пазара и корекция на параметрите

  7. #7
    Наблюдател
    Регистриран
    17.01.2021
    Мнения
    44
    Случаен фактор - 0!
    Ако 100 пъти се пусне на един и същи брокер с еднакъв хистори старт ще даде 100 еднакви резултата - говоря за една и съща версия
    Какво няма да даде!
    При една и съща ситуация (патерн) по различно време, даже и при един и същ брокер е възможно да има различни решения, като казвам различни, то един път да няма сигнал, друг път Лонг, а трети - много силен Шорт.

    Опростен Пример, колкото да се хване идеята:
    Анализираме последните 3 бара непрекъснато, като анализите от преди 7-8 дни леко, избледняват, като се следи разпределението на патерна (повторяемостта му), тези с хомогенното не представляват интерес, а на другите се прихваща модела, оценява се на виртуално и когато този модел постигне над 80% оценка, се прилага.
    Казано просто търси модели с висока степен на предсказуемост с над минималния профит, всичко това към последната седмица и СИГНАЛ!
    После в зависимост от текущата позиция, рейтинга, спреда и какво ли още не на пазара, се отваря позиция, надгражда налична такава, частично я затваря или я реверсира! - Сигнал!

    Всяка позиция има SL & TP, при това малки! Те не са за изход от позицията, те са превантивни, ако се загуби връзката със сървъра. Позицията се контролира от сигнали, като насрещния затваря или реверсира позицията, надграждащият трилва SL & TP и я увеличава.

    Волюма (ММ) - от рейтинга на пазара, като е желателно да има поне 2-3 стъпки на влизане (в случай, че няма капитала, само трилване). Това и броя пазари, определят минималния разумен капитал.
    Е ако са пуснати 20 пазара и всичките са с положителен рейтинг, а капитала е малко, се инвестира конкурентно, първо най-високите рейтинги, после конкурентно, който маркет пръв генерира сигнал, като другите се ограничават за да има 2-3те стъпки на влизане за активните пазари.

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

    Патерна (силуета) се свежда до число, търси модели, т.е. това число какви представяния е имало, като се замислям - това са различни модели, но в една функция с масив от индексите им - числото
    числото не трябва да е много голямо примерно 2^16, даже по-малко. Ами абсурдните патерни, няма значение колко са различни все дават 0
    Тук трика е в дълбочината на представяне на модела - анализ на баровете и връзките между тях. При барове над 20 сек се появява и динамична компонента

  8. #8
    Цитат Първоначално публикувано от zezo Виж публикацията
    Интерес и въпроси ще има..
    Буквално съм потресен и едновременно впечатлен от последните два посата на Матеев..
    Няколко въпроса:
    1. Логиката на всяка стратегия отговаряща за посоките на отваряне на позициите на този робот на база на рандум генератор ли ще бъде?
    2. След като основното свойство на чистата случайност, е че всеки един маршрурут е равно вероятен, би следвало ако пуснем 1000 случайни робота поне няколко от тях със сигурност да бъдат печеливши поне за следващите 1000 сделки, и ако можем да ги отсеем да търгуваме само по тях... На базата на подобен вид разсъждения ли се гради новия метод?
    3. Какво стана с търсенето, доказването и търгуването по зависимости?
    4. Само на управлението на кипитала (ММ) ли разчитаме да ни извади от големите DrawDown ни?
    1. Логиката на всяка стратегия отговаряща за посоките на отваряне на позициите на този робот на база на рандум генератор ли ще бъде?
    Не съм казал, че ще пускаме Random стратегии. Само казвам, че дори и да пуснем такива, те автоматично ще се самоизключат още в миналото, преди да започнат търговия с реални пари. Дори и да се изхитрят да излъжат системата, и тя да им даде някакви пари, то това ще са смешни стотинки, базирани на смешния положителен резултат. Истински сериозни пари за търговия имат шанса да получат само истински добрите стратегии. Самият метод за преразпределение на капитала го предполага това.

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

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

    2. След като основното свойство на чистата случайност, е че всеки един маршрурут е равно вероятен, би следвало ако пуснем 1000 случайни робота поне няколко от тях със сигурност да бъдат печеливши поне за следващите 1000 сделки, и ако можем да ги отсеем да търгуваме само по тях... На базата на подобен вид разсъждения ли се гради новия метод?
    Да, метода разчита основно на това, че Money Management-a е най-добрия възможен, който дава най-оптималния капитал за всяка една нова сделка. Защо това е така ще трябва да разкажа друг път, но повярвайте ми - това е най-ценното от цялата концепция, което освен всичко друго няма къде да го прочетете в интернет. Иначе има абсолютна гаранция, че метода е по-добър от този на Кели или от Optimal F. По-точно, ако Кели или Ралф Винс бяха доразвили методите си, щяха математически да достигнат до моя метод, който е единствения верен, и това се доказва много лесно както теоретически, така и практически (вече е проверено с много на брой сравнителни тестове).

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

    3. Какво стана с търсенето, доказването и търгуването по зависимости?
    От това не сме се отказали. То си е вярно и концепцията го отчита, само където тези зависимости се откриват автоматично в процеса на тестване на единичната стратегия.

    4. Само на управлението на кипитала (ММ) ли разчитаме да ни извади от големите DrawDown ни?[/QUOTE]
    Да, разчитаме само на ММ да ни управлява DrawDown-ите. Нещо повече - ние и нашите стратегии спираме да мислим за DrawDown-ите. Това е една от самозаблудите на повечето трейдери, че DrawDown-а в миналото има някакво значение за потенциалните такива в бъдещето.

    Трябва да се разсъждава така:
    1. Всяка една стратегия в процеса на търговията си предизвиква някакво Equity, което се подчинява на нормалното разпределение. Отместването на медианата от центъра в положителна посока има смисъл на ВЕРОЯТНОСТ, различна от 50%. С други думи - добрите стратегии генерират крива на Equity-то с вероятност, по-голяма от 50%. Тя и затова кривата расте нагоре, защото вероятноста е по-голяма от 50%.
    2. Ако тази вероятност я оставим да генерира сделки до безкрай, в полученото Equity ще има всякакви DrawDown-и, включително и много дълбоки такива, които биха занулили всеки един акаунт.
    3. Независимо колко добра е тази вероятност, тя в безкрайноста пак ще изгенерира някакво количество DrawDown-и, които биха занулили акаунта. Единствената разлика между добрите и лошите вероятности не е в дълбочината на генерираните DrawDown-и, а в честотата на тяхното срещане.
    4. А сега си представи тази безкрайна поредица от сделки, при която имаме следното:
    - Някакви сделки в миналото, които вече сме ги наблюдавали, и които се явяват само една малка ИЗВАДКА от всичките сделки на безкрайноста
    - Някакви сделки в близкото бъдеще, които все още не ги знаем какви са, и които представляват друга малка ИЗВАДКА от сделките в безкрайноста
    5. Никой обаче не ни гарантира, че едната извадка (в миналото) ще ни поскаже поведението на другата извадка (близкото бъдеще).
    6. Гарантира ни се само факта, че ВЕРОЯТНОСТА на стратегията, която вероятност генерира двете малки извадки, е една и съща в безкрайноста.
    7. На нас обаче не ни се чака цялата тази безкрайност, и затова ще се опитаме само по едната извадка (миналото) да определим вероятноста на всички сделки в безкрайноста, разбира се с някакъв ДОВЕРИТЕЛЕН ИНТЕРВАЛ. Има си строга математика, която го прави това, и която е доказано безпогрешна.

    А сега виж как се опростяват нещата:
    1. Дoкато тече историческия тест например след 30-тата сделка започваме да смятаме ВЕРОЯТНОСТТА на получилото се Equity
    2. Тази вероятност ни дава една единствена стойност на MM, така че вече знаем с какъв капитал ще отворим следващата сделка
    3. С напредването на теста се рисуват нови и нови участъци на Equity-то, които динамично променят и MM за всяка една следваща сделка
    4. Това се случва по време на историческия тест и незабелязано от стратегията продължава да се случва и по време на последвалата REAL търговия.
    5. Нещо повече - контрола на ММ може и е желателно да се разпространи не само в началото на сделката, но и по време на целия нейн живот. Тоест дори и да се направи единична сделка, която би занулила акаунта, ММ няма да го позволи това, защото със задълбочаването на DrawDown-а постепенно ще намалява броя на лотовете, и така никога няма да допусне Margin Call.

    Не забравяй, че ако се разсъждава логаритмично (а трябва така да се разсъждава), то разстоянието от цена 1-ца до цена 2-ка е равновероятно с намаляването до цената от 1 до 0.5. При това положение пътя от 1 до нула също е толкова безкрайно дълъг както и пътя от 1 до +безкрайност. И това важи не само за цените, но и за движението на нашата крива на Equity-то. Тоест зануляването на акаунта е равновероятно на увеличаването му до безкрайност, като всъщност и двете събития никога не могат да се случат. Ето това се гарантира математически от този ММ.

    Наличието на спред обърква тази идеална математическа логика, но с него ще се процедираме по друг начин, който ще го мислим на етап СУМАРИЗАТОР. Той ще се старае ЖЕЛАНИЕТО на всички стратегии да отговаря на РЕАЛНАТА СДЕЛКА, но приблизително, а не на всеки тик и не на всеки пипс. Това с цел намаляване на щетите от спреда.

    Като цяло за да разбере човек всичко написано до момента трябва да осъзнае следното:
    1. Тестовете в миналото ни дават ВЕРОЯТНОСТ, заедно с доверителен интервал.
    2. По тази вероятнот определяме оптималния ММ, и спираме да се безпокоим за DrawDown-ите.
    3. Вероятноста, създаваща Equity-то, се променя с всеки един новопостъпил тик, което динамично променя и размера на капитала, вложен в текущата сделка.
    4. Разбира се ние няма на всеки тик да променяме лотовете на сделката, а ще си оставим някакъв диапазон, в който нищо не правим, но след излизането от него променяме лотовете нагоре или надолу.

  9. #9
    Цялата идея се състои в това да създадем пирамидална йерархия от класове и техните обекти, като колкото по-ниско в йерархията се намира даден обект, толкова по-абстрактно да си представя цялата търговия. Обектите в дъното на йерархията (елементарните стратегии) на практика не знаят нищо за търговията. Те само получават някакви тикове, които дори можем да си ги изгенерираме изкуствено, и след това се опитват в тези тикове да открият някаква зависимост, и да се адаптират към нея. Как това става ще говорим по-нататък. Съществуват само 4 вида зависимости, така че ние точно и ясно знаем какво търсим и как трябва да го търсим.

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

    На всяко едно ниво от тази пирамида ние мислим и програмираме само на нивото на абстракция, на което се намираме. Забравяме за всичко отдолу и за всичко отгоре. Така кода става оптимален и всяко едно ниво (всяка една жаба) точно и ясно си знае гьола.

    Именно поради тази причина единствения лесен начин за програмиране е Обектно-ориентираното програмиране. Само то е в състояние да се справи с голямата сложност на робота и да я сведе до елементарни обекти, лесни за осмисляне и проектиране. Където е възможно ще ползваме готови библиотеки, каквито има на сайта на MetaQuotes.

    Най-интересното в моята концепция е как аз си представям функционалноста на една единична стратегия, защото там също обръщам наопаки представите на трейдерите що е това СТРАТЕГИЯ и има ли тя почва у нас. Накратко само ще нахвърлям основните моменти:

    1. Предварително режем графиката на някакви предопределени парчета посредством някаква нетърговска логика. Например 1 час или 1 сегмент от ЗИГ-ЗАГ-а или 1 ценови диапазон (напр. +/-30 пипса).
    2. Всяко едно парче представлява една сделка.
    3. Търговската логика се опитва да направи следното:
    - Да реши дали по дадено парче ще отваряме сделка или не
    - Да реши в каква посока ще е тази сделка
    4. Отпадат понятията Stop Loss и Take Profit просто защото няма нужда от тях.
    5. Сделка се отваря в началото на парчето и се затваря в неговия край, но този край се определя от нетърговската логика.
    6. Ако следващото парче е в същата посока, предишното не се затваря, а само се удължава живота на сделката.
    7. Създаваме парламент от много депутати (еднотипни микростратегии)
    8. Тези депутати гласуват от позицията на собствената си търговска логика, която е подобна на останалите, но с различни параметри
    9. Използваме факта, че ако N на брой депутати (стратегии) гласуват с ниска познаваемост (напр. 51%), то общата познаваемост на вота се вдига и може да надхвърли 55% или дори 60%.
    10. Това се случва защото при много на брой опити случайноста се подтиска, а познаваемоста (ако я има) се усилва.
    11. Нашата стратегия от най-ниско ниво всъщност ще представлява ПАРЛАМЕНТ от много на брой гласуващи депутати (микростратегии) от още по-ниско ниво.
    12. Такъв един подход силно ще натовари компютъра и ще доведе до продължителни във времето изчисления, но какво ни пука да смятаме цяла минута и само веднъж в минутата да правим търговска операция. За сметка на това обаче ще използваме силата на парламентаризма - подтискане на случайноста и усилване на познаваемоста.

    Това можете сами да си го изтествате на Excel. Създайте някаква колонка от числа (1 и 0), които ще представляват един еталон. След това създайте 100 колонки (депутати), като на всеки един от тях задайте 51% вероятност за познаване на числото от първата колонка. След това изчислете сумарния вот на всички депутати ред по ред, и сами ще видите, че познаваемоста на всеки един депутат е 51%, но на вота не е 51%, а доста по-висока - 55-60%. Точно това може много да ни помогне в търговията - стотици калпави стратегии да се изхитрят да дадат по-висока познаваемост посредством гласуване.

    Абсолютно същия ефект се получава и в СУМАРИЗАТОРА, който обединява търговиите на стотици или хиляди стратегии. При това обединение също случайноста се подтиска, а закономерностите се усилват, така че дори и на това по-високо ниво отново използваме ефекта на парламентаризма. Колкото по-малко корелират стратегиите една с друга, толкова по силен става този ефект.

  10. #10
    А сега още по-конкретно за една елементарна стратегия и един елементарен парламент:

    1. Разбиваме пазара с някаква логика на много на брой парчета. Например едно парче е +/- 30 пипа. Броя на пиповете в парчето е ПАРАМЕТЪР 1, който има стойности например от 10 до 200 през 10, или така се получават 20 разлини мащаба за изчисление/търговия.

    2. Всяко едно парче е сделка, на която нашата търговска логика трябва да определи само посоката и нищо друго.

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

    4. Обединяването на точки 2 и 3 ни дава 3 различни комбинации - BUY, SELL и вън от пазара.

    5. Имаме една базова ЕТАЛОННА СТРАТЕГИЯ, при която всички сделки са BUY от първата до последната. При тази стратегия получената крива на Equity-то ще представлява точно копие на кривата на движение на цената през целия период. Тази еталонна стратегия ще има някаква печалба/загуба за целия период. Нашите стратегии ЩЕ СЕ СРАВНЯВАТ с тази еталонна печалба/загуба. Тоест няма да гледаме дали нашите стратегии са постигнали някаква абсолютна печалба, а ще гледаме дали са постигнали по-голяма или по-малка печалба от еталонната стратегия. И в двата случая за нас е добре, и колкото по-голяма РАЗЛИКА получим, толкова по-печеливша стратегия сме намерили.

    6. Тоест тука тотално отхвърляме всички методи за анализ на печелившоста на една стратегия и ги заменяме с един единствен метод - ПО-ГОЛЯМА РАЗЛИКА ОТ ЕТАЛОНА.

    7. Измисляме си някакво логическо търговско правило, което за всяко едно парче да връща 0-ла или 1-ца. Ако е 1-ца, за следващото парче правим BUY сделка. Ако е 0-ла, за следващото парче правим SELL сделка.

    8. С това това търговско правило ние всъщност създадохме една елементарна стратегия, състояща се от един единствен програмен ред код. Познаваемостта на тази стратегия ще я измерваме посредством отклонението на крайния резултат от еталонната стратегия. Тоест това ще бъде нашето dH (Delta H или разликата във височината между нашата стратегия и еталонната).

    9. ДЪлжината на маршрута или броя на стъпките, които е направила цената (L1) и нашето Equity (L2) ще ни дадат информация за вероятността, създала цената, както и за вероятността, създала нашето Equity. Нашата вероятност трябва да е по-висока от вероятноста на цената. Тоест не е достатъчно да постигнем голяма разлика, но и голямо отклонение на нашата вероятност от еталонната такава.

    10. Тази наша елементарна стратегия става ДЕПУТАТ, който гласува със своя глас в парламента.

    11. Самият парламент се състои от много такива депутати, които се образуват от комбинаториката на стойностите на параметрите. Например ако търговското правило е RSI(N), където N се изменя от 10 do 50 със стъпка 5 (9 стойности) и параметъра за мащаба по т.1 има 20 стойности, то тогава се получават 20*9=180 депутата, всеки от които има различна стойност на RSI и различен мащаб на пипове, от които се състои един блок.

    12. Тъй като ние не знаем дали даден депутат наистина ще има някаква познаваемост, или ще гласува напълно случайно, въвеждаме ТЕГЛО НА НЕГОВИЯ ГЛАС. Тоест той няма да гласува с +/-1-ца, а с нещо по-малко, което е равно на dH/L на неговото Equity. И ако депутата има напълно случайно Equity, то той ще гласува с тегло, близко до 0-ла, и така няма да влияе на вота на другите, по-познаващи депутати.

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

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

    15. Този парламент го кръстваме например RSI парламент, и за нас той представлява една от хилядите стратегии, които ще включим в сумаризатора. Самият парламент също си води статистика за собствения си dH/L и съобразно тази статистика определя с какъв процент от капитала ще търгува.

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

    17. И последно - сега вече можем да си създадем стотици или хиляди парламенти, всеки един от които има различни базови логики - по RSI, по ADX, по MACD, по часове от денонощието, по дни от седмицата, и по милион други признаци, които фантазията ви може да измисли. Всичките тези парламенти се очаква да се самообучат и да бъдат малко по-добри от чистото 50%. Сумаризатора допълнително ще подтисне случайноста и ще засили познаваемостта, така че очакванията са робота да стане печеливш, базиран на 100% адаптивност и 0-ла броя параметри.

    18. При бъдещата експлоатация на робота ще се изясни в кои парламенти има хляб и в кои няма, така че обратната връзка ще я има, и трейдера ще знае с кои търговски логики да се занимава и с кои - не. Например от старите ми експерименти със Strategy Quant стигнах до извода, че много на брой печеливши стратегии се получават посредством използването на Bollinger Bands и/или Keltner Channel. Ами значи ще наблегна на този тип парламенти.

 

 

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

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

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

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

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