PDA

Виж пълната версия : Написване на собствен робот за автоматизирана търговия



Mateev
25.12.2019, 14:02
Тази тема е само за тези трейдери, които се занимават с развойна дейност по целенасочено търсене на печеливши търговски стратегии, и след това създаване на роботи, които да търгуват по тези стратегии. В темата ще опиша концепциите за създаване на такива роботи, алгоритъма им на действие, и разбира се избягването на хилядите подводни камъни, с които е осеян един или друг аспект от автоматизираната търговия.

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

От тука идва и заключението, че всеки един трейдер-програмист трябва сам да си нашише СОБСТВЕН РОБОТ, на който да има 100% доверие поради факта, че сам си го е писал и сам си знае какво е заложил като логика в него. Следователно няма как да си споделяме кодове един на друг, въпреки че не е невъзможно, но можем да си споделяме идеи и алгоритми, за което всъщност е създадена и тази тема.

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

Mateev
25.12.2019, 14:40
Започвам с най-важните ГЛОБАЛНИ ХАРАКТЕРИСТИКИ на желания от нас СОБСТВЕН РОБОТ за автоматизирана търговия. Разбира се в началния момент от време всичките тези характеристики ще са само в сферата на желанията, които ще ги удовлетворяваме едно по едно, но ако още от самото начало не си изясним всичките желания, рискуваме в бъдеще да изпаднем в ситуацията да захвърлим целия написан код и да започнем да го пишем от самото начало. Това се случва доста често при сложни софтуерни проекти, затова със съставянето на списък от ВСИЧКИ НАШИ ЖЕЛАНИЯ искам да избегна точно този проблем.

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

1. Робота трябва да е НАШ СОБСТВЕН РОБОТ и при това трябва да е ЕДИН ЕДИНСТВЕН
2. Трябва да се използва ОБЕКТНО ОРИЕНТИРАНО ПРОГРАМИРАНЕ
3. Робота трябва да работи в много нишки, независимо че е много трудно да се организира това.
4. В робота трябва да има вграден бенчмарк на бързодействието на отделните негови участъци от код, както и възможност за работа в DEBUG MODE.
5. Робота трябва да може да се компилира и да работи както под МТ4, така и под МТ5.
6. Робота трябва да поддържа подробни логове и статистики за всяка една търговска операция, включая за всеки един тик, пристигнал по всеки един финансов инструмент на брокера.
7. Тези логове и статистики се изпращат и на специален сървър, който натрупва информация за търговията на много на брой копия на робота по различни акаунти в различни брокери.
8. В робота не трябва да има никакви настройки, освен възможноста за дистанционен контрол, влизащ моментално в сила без рестарт на робота.
9. Робота трябва да може да работи правилно независимо от това на кой символ или таймфрейм го пускаме
10. В робота се съдържат хиляди стратегии или по-точно всички наши стратегии, които някога сме открили
11. Робота сам избира на кои стратегии ще даде капитал за търговия в зависимост от представянето им в миналото
12. Money Management-a на робота е напълно автоматизиран и не се нуждае от никакви настройки
13. Портфелния мениджмънт на робота е напълно автоматизиран и не се нуждае от никакви настройки
14. При добавянето или при тегленето на пари от акаунта робота трябва автоматично да се адаптира към новото състояние.
15. В свободното си време робота сам търси нови търговски стратегии по всички символи на брокера и най-добрите от тях ги включва в базата си с данни, която поддържа
16. Търговията се извършва със сумарната клиентска позиция на всички стратегии, търгуващи вътре в робота.
17. Следят се спредовете и слипиджите на брокера, прави се статистика по време, и на базата на нея се подбират оптимални точки за вход и изход.
18. Робота трябва автоматично да се адаптира към всяка една промяна в настройките на търговския сървър.
19. Робота трябва безпогрешно да отработва всяка една форсмажорна ситуация, като например спиране на връзката със сървъра или неговото временно забиване.
20. Робота трябва да има защита от копиране и/или открадване. Той трябва да работи само тогава, когато се увери, че това е наш акаунт.

Искам да спомена и за най-важната характеристика на нашия бъдещ робот, и тя е 100%-овото ДОВЕРИЕ, което ние трябва да имаме в него. Наличието на това доверие ще ни позволи да пуснем робота да търгува веднага след написването на поредния нов клас и неговото дебъгване за изчистване на софтуерните грешки.

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

shkata
25.12.2019, 18:23
Аз така като го гледам това , това са 6 месеца подбор на кадри и обучение, 50 програмиста , 10 човека поддържащ екип (пм и тестери) и 2 години работа тестове и т.н.
Само точка 15 означава да се напише нов стратеджи куант , с вграден тестер , данни, правила, оптимизации, генетични алгоритми и статистики.
В крайна сметка , когато това е готово.. ще прави точно това което правим и сега , но ще елиминира нацяло човека . Незнам дали това е добре и не мога да преценя каква бизнес стойност има този мащабен проект.


Може би аз ако имах твоите възможности бих тръгнал от създаването на собствен стратеджи куант - малко по-кадърно направен и по гъвкав.Не че и това не е сериозен проект който ще изисква екип и т.н. но не е ракетна наука и е постижимо. После бих го пуснал безплатно(или на някаква символична цена) и бих копирал всяка топ стратегия на сървъра си(както предполагам тия от SQ правят). По този начин ще се впрегне някаква огромна външна клиентска мощ за генериране. После генерирания формат може да се направи предаврително удобен за интегриране в нещо друго. И чак тогава може би бих мислил за останалите точки.

Mateev
25.12.2019, 22:03
Да, на пръв поглед проекта изглежда страшен, но никой не е казал, че трябва да го направим целия, за да го пуснем в експлоатация. Точно обратното - с някаква базова функционалност може да заработи само в рамките на 1-2 месеца, и да се пусне да търгува, а после лека полека ще се усъвършенства ако трябва години наред.

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

Много мислих по въпроса дали да ползвам готовия код на Strategy Quant или да започна да си пиша мой собствен, и стигнах до извода, че с мой код ще стане по-бързо и по-лесно. От Strategy Quant ще вземам само функцията с търговската логика, а всичко останало ще си е мое. Ще напиша един базов клас на търговска стратегия, който после ще го наследявам и с няколко реда ще дописвам само конкретните търговски правила на всяка една стратегия. И след това в бъдеще с усъвършенстването на базовия клас всъщност ще усъвършенствам и всички вече работещи стратегии.

Основната идея е всички стратегии вместо да отварят и затварят сделки, да записват в глобалното пространство само едно integer число със стойности -1, 0 и +1. Тоест Long, без позиция и Short. Всичко останало ще го прави една единствена инстанция на търговския клас, който ще изчислява сумарната позиция на всички стратегии, и ще добавя/отнема лотове към вече отворените такива. Така няма да има състезание за достъп до Trading Context на МетаТрадер-а, пък и ще се реализира икономия от спред и маржин.

shkata
25.12.2019, 22:47
Така е, плаши ме и то поради две причини :
1. Докато работят във фонов режим , те някак си не търгуват а все едно се бактестват. Трябва да обират реални слипиджи, реални спредове ,реални суапове, реални тикове. Според дори трябва да търгуват на реален сървър, в краен случай поне на демо.
2.Представи си че напишем някаква супер сложна система обаче допуснем някаква грешка някъде.Системата ще си работи , всичко уж ще е ок, но ние някога някъде при някакви условия ще правим различни неща.И може никога да не го разберем дори тъй като ще имаме хиляди системи, стотици хиляди сделки логове и т.н.

Mateev
26.12.2019, 09:06
Добре де, представи си обратната ситуация. Пак имаме хиляди стратегии с хиляди логове, но разпиляни по хиляди роботи, всеки един от които е различна версия и с различни бъгове в тази версия. Откриваме един бъг и какво - ще го поправяме на 1000 места ли с 1000 прекомпилирания и 1000 подмени на роботи по различните сървъри по света?

Аз този проблем го имам и в момента - 7-8 акаунта с по 30 SQ робота в тях, и вече изпаднах в ситуацията да не мога да ги поддържам (преглеждам, пренастройвам, подменям и т.н.). Затова съм ги изоставил на самотек, но от това губя пари, защото няма кой да следи и да подменя счупилите се стратегии.

Така или иначе искам сам да си напиша търговската логика, защото в тази на SQ има много недомислици и дори бъгове, които вече открих. Например някои параметри, които са изтеглени в променливи, въпреки това SQ на някои места в кода ги забива като константи. Променяш стойноста на параметъра в променливата, но си остава стойноста на константата в кода. Има и друг проблем на SQ роботите - те правят търговските операции така, все едно че няма други роботи в Metatrader-а. Тоест вземат контрола на нишката и на Trading Context и го държат много дълго време в много на брой повтарящи се опити да направят сделката. Ами другите роботи какво да правят в този момент? Искам да променя тази логика на друга - правиш опит за сделка и се отказваш независимо дали опита е успешен или не. Следващия опит ще е на следващия тик или дори по-късно, когато дойде по-нисък спред.

Специално за спреда аз вече съм сложил една логика, която да не допуска търговски операции при висок спред. Дотук добре, но SQ роботите въобще пропускат сделката, защото на следващите тикове вече са си загубили сигнала. Тези неща много добре трябва да се обмислят и прецизират, защото те ще са сърцето на нашата търговия, а в момента имаме сериозен проблем. Също така и със стоповете - трябва да се поддържат 2 вида стопове - далечен авариен, който ще се вижда от брокера, и по-близък реален, който ще го знае само нашата програма. Идеята е никога да не се стига до аварийния стоп, освен при форсмажор (скъсан интернет, рестарт на MetaTrader-a и други редки ситуации).

Mateev
26.12.2019, 09:17
По принцип най-лесния метод за отработка на търговски операции не в един, а в много на брой тикове с подбор на най-добрия тик, се състои именно в идеята, която вече написах. Имаме желано състояние (желан от стратегията брой лотове) и реално състояние (реален брой лотове). Желания брой лотове непрекъснато може да се променя нагоре или надолу, тъй като той представлява сума от желанията на много стратегии. Търговския алгоритъм така ще манипулира реалния брой лотове, щото той с минимални закъснение да догонва желания брой. Няма обаче да се втеляваме всичко да става в един единствен тик. Ще има закъснение и изчакване на тик с по-нисък спред.

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

Ако приемем, че например имаме стратегия със сделки със средна продължителност от 24 часа, и ПМО-то на стратегията е 24 пипа, то тогава ние имаме средностатистически ръст от 1 пип на час. Е как тогава едно закъснение от 20-30 секунди или дори 5 минути може да повлияе на крайния статистически резултат?

Това мое разсъждение е изтествано на практика още преди 15 години. Тогава Иво Сеизов караше дилърите да покриват големите сделки буквално на секундата, а аз твърдях, че няма смисъл толкова да бързаме. И за да разрешим спора, накарахме дилърите да записват цената на сделката на клиента и цената, на която те са успели да я покрият със закъснение, стигащо до 1 минута, че и повече. И след около 100 сделки се оказа, че средностатистическата разлика е по-малка от 1 пип, въпреки че при някои единични сделки имаше разлика от по 20-30 пипа.

В заключение:
Аз твърдя и съм дълбоко убеден, че известно закъснение при отваряне или затваряне на сделките няма да промени средностатистическия резултат от търговията, но за сметка на това може да ни даде редица екстри и най-вече облегчения при написването на кода на търговската логика. Като цяло кода ще стане по-прост, по-разбираем и по-лесен за дебъгване. Неговата логика ще е елементарна - прави се опит за търговска операция и се приключва, независимо дали операцията е успешна или не. Следващия опит ще е не на следващия тик, а например след 50 милисекунди. Въобще нашите роботи няма да работят на OnTick(), а на OnTimer() с период 50 ms.

shkata
26.12.2019, 10:27
Ние ще имаме 1000 робота генерирани и тествани с техните си кодове и те ще работят с техните си кодове.Т.е. всичко това се очаква да работи. Съгласен съм че кодовете са им абсурдно написани но...

Търговската логика за която говориш също е страшничка.
1.трябва да имаш всички системи като обекти .
2.всичките им сделки с цени на отваряне стоплос тейкпрофит , меджик нъмбъри и т.н.
3.Всичките им исторически сделки
4.Всички суапове
5.Всичките им логове
6.някакъв интерфейс за управление и мониторинг

Първо очевидно че това ще ангажира голям брой обекти, голям брой памети , не е ясно МТ как заема и освобождава памети нищо чудно да се окаже че всички тия обекти остават завинаги в паметта и нищо не ги чисти.
Втория момент е че ние постоянно ще имаме някакви списъци от сделки които трябва да се пазят и в бази данни тъй като във всеки момент може нещо да стане със системата.Погледнато реално това си е направо 1:1 с един трейдинг сървър.Посто клиентите са заменени с експерти , и евентуално ще отсъства комуникационната логика тъй като всичко ще е на едно място.Преди време работих в една компания, където един доста солиден екип прави трейдинг сървър в продължение на 2 години докато го изчисти да работи добре.

Но най- главния проблем пак остава екзекюшъна.
Ясно е че ако ще се търгува сериозно , ще трябва да се договорят условия с конкретен брокер всичко да излиза на бридж към ЛП.Тогава обаче маркет екзекюшъна винаги ще ти дава различен резултат.
твоята система : идва тик-> изпълнява се логиката-> отваря се сделка на този тик
в реалната ситуация : идва тик->изпълнява се логиката и се изпраща рекуест за позиция->отива в брокера->изпраща се към ЛП ->сключва се сделка на цената която е там в момента->връща се към брокера инфо за сделката->връща се към нас инфо за сделката.
Само при супер спокоен пазар опен цената при теб ще е = опен цената в брокера.Но кръглия час при който търгъва SQ никога не е спокоен защото се отварят различни борси, излизат новини ..
Абсолютно същото се случва и с екзекюшъна на всички стопове и тейкпрофити.

Mateev
26.12.2019, 11:18
Напълно съм съгласен с тебе. За съжаление автоматизираната търговия наистина представлява нещо много сложно, ако трябва да я направим дурако устойчива и способна да се справи с всеки един сложен аспект от реалноста. Но така или иначе ние сме се хванали на хорото и се опитваме да го играем колкото се може по-добре.

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

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

shkata
26.12.2019, 12:28
По принцип най-лесния метод за отработка на търговски операции не в един, а в много на брой тикове с подбор на най-добрия тик, се състои именно в идеята, която вече написах. Имаме желано състояние (желан от стратегията брой лотове) и реално състояние (реален брой лотове). Желания брой лотове непрекъснато може да се променя нагоре или надолу, тъй като той представлява сума от желанията на много стратегии. Търговския алгоритъм така ще манипулира реалния брой лотове, щото той с минимални закъснение да догонва желания брой. Няма обаче да се втеляваме всичко да става в един единствен тик. Ще има закъснение и изчакване на тик с по-нисък спред.

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

Ако приемем, че например имаме стратегия със сделки със средна продължителност от 24 часа, и ПМО-то на стратегията е 24 пипа, то тогава ние имаме средностатистически ръст от 1 пип на час. Е как тогава едно закъснение от 20-30 секунди или дори 5 минути може да повлияе на крайния статистически резултат?

Това мое разсъждение е изтествано на практика още преди 15 години. Тогава Иво Сеизов караше дилърите да покриват големите сделки буквално на секундата, а аз твърдях, че няма смисъл толкова да бързаме. И за да разрешим спора, накарахме дилърите да записват цената на сделката на клиента и цената, на която те са успели да я покрият със закъснение, стигащо до 1 минута, че и повече. И след около 100 сделки се оказа, че средностатистическата разлика е по-малка от 1 пип, въпреки че при някои единични сделки имаше разлика от по 20-30 пипа.

В заключение:
Аз твърдя и съм дълбоко убеден, че известно закъснение при отваряне или затваряне на сделките няма да промени средностатистическия резултат от търговията, но за сметка на това може да ни даде редица екстри и най-вече облегчения при написването на кода на търговската логика. Като цяло кода ще стане по-прост, по-разбираем и по-лесен за дебъгване. Неговата логика ще е елементарна - прави се опит за търговска операция и се приключва, независимо дали операцията е успешна или не. Следващия опит ще е не на следващия тик, а например след 50 милисекунди. Въобще нашите роботи няма да работят на OnTick(), а на OnTimer() с период 50 ms.

Пракиката е показала че забавянето понякога дори може да подбри резултата.
Мен ме притеснява обаче че съм се сблъсквал с доста експерти които печелят на бактест а за същия период губят на реален акаунт и всичко това е от екзекюшъна.

Mateev
26.12.2019, 15:54
Пракиката е показала че забавянето понякога дори може да подбри резултата.
Мен ме притеснява обаче че съм се сблъсквал с доста експерти които печелят на бактест а за същия период губят на реален акаунт и всичко това е от екзекюшъна.

Точно от екзекюшъна както го наричаш ме е страх най-много, и нямам вяра на нито един готово написан код. Брокерите могат да играят десетки курвенски номера по време на екзекюшъна, и аз искам да съм на 100% сигурен, че моя код ще се справя с тях. И понеже няма как този код да се дебъгне на демо акаунт, ще се наложи да се тества на Real, с ясното съзнание, че ще се загубят живи пари в процеса на усъвършенстване на този клас.

Тъй като този клас (за екзекюшъна) е най-важният клас от всички останали, на него трябва да му се отдели много време, много внимание и разбира се много загубени пари. Ще трябва да го обзаведем с милисекунден логер на всичко, което се случва около екзекюшъна, за да можем всеки един проблем да го анализираме и да намерим възможно най-доброто решение.

Ще трябва в класа да заложим и някои хитрости, които заобикалят един или друг проблем, предизвикан от брокера. Например брокерите, които не разрешават пипсоване, искат всяка една сделка да има продължителност минимум N минути (при Инстафорекс N е равно на 5). Това изискване може да се заобиколи като вместо затваряне на позицията се отвори друга насрещна позиция, и в някякъв по-късен момент се направи CloseBy.

shkata
26.12.2019, 19:52
Брокера изобщо не е проблем. Докарваш един месечен оборот от 50М и директно се договаряш да те вадят на бридж при много по добри спредове и забравяш за брокерски номера и тем подобни.

Mateev
26.12.2019, 20:32
Брокера изобщо не е проблем. Докарваш един месечен оборот от 50М и директно се договаряш да те вадят на бридж при много по добри спредове и забравяш за брокерски номера и тем подобни.

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

shkata
27.12.2019, 09:19
Не те разбирам какво искаш да кажеш с това....

Mateev
27.12.2019, 09:25
Не мога да разбера какво искаш да кажеш.

Ами това, че ако докарваме 50 милиона месечен оборот, брокера ще ни даде специални условия за търговия. Аз не съм убеден в това, но докато не го пробваме, няма как да разберем. Живот и здраве да започнем да имаме по 50 милиона месечен оборот във всеки един брокер, и тогава ще разберем дали те въобще са склонни да дават допълнителни отстъпки или не. Може да се случи и точно обратното - да започнат да ни влошават условията за търговия, когато разберат, че нашите стратегии са печеливши, и като такива намаляват печалбата на брокера.

shkata
27.12.2019, 09:40
Т.е. не ми вярваш и трябва да се убедиш сам.

Mateev
27.12.2019, 09:55
Т.е. не ми вярваш и трябва да се убедиш сам.

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

K_W
28.12.2019, 14:55
Пракиката е показала че забавянето понякога дори може да подбри резултата.
Мен ме притеснява обаче че съм се сблъсквал с доста експерти които печелят на бактест а за същия период губят на реален акаунт и всичко това е от екзекюшъна.

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

Това не е много добра новина ако възнамеряваш да използваш 10-тки да не говорим 100тици системи.


Относно брокерите и с по-малко от 50 милиона оборот може да си осигуриш доста по-добри условия. Това си е до политиката на всеки брокер, общо взето почти всеки е готов да договаря условия щом носиш пари.

shkata
28.12.2019, 19:44
Като закачиш SQX на 10 машини , и като почнат да ти генерират всеки по 1500 експерта на ден... ще те видя как ще направиш 15000 бактеста и какво ще гледаш.
Знаеш ли един познат казваше че ... тия дето търсят система ръчно са като тия с дето търсят злато с легенчетата в реката.При SQX е като тия дето добиват с багерите. Не можеш с мисленето с легенчето да добиваш с багери , както и не може и обратното. Просто трябва да се адаптираш към средата и да промениш мисленето и стратегията си.

K_W
29.12.2019, 00:09
Сравнението със златото не е уместно. С една добра стратегия е по-вероятно да печелиш повече отколкото с 15 000 посредствени.
Да не говорим, че при 1500 сигурно реално имаш вариации на само няколко стратегии, а може да се окаже, че релано експлоатираш един и същ еджд, от едни и същи движения.

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

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

Друг е въпроса, че от 1500 1, 2 я стават реално за нещо...я нула. Ако завишиш критериите за подбора лесно стигаш до нулата и след 100-200 хиляди намерени стратегии.


Ако се направим аналогия с миньорството, по-добре да намериш един диаманд с легенче, отколкото да добиеш 10 тона лъскав чакъл с багера :laughing:

shkata
29.12.2019, 01:48
Знаеш ли на теория трябва да си прав.И аз точно това очаквах преди време.
Обаче днес говоря за количество..Матеев също ти говори за количество... За хиляди експерти. И знаеш ли защо...Практика, резултати и статистика....Ползвали сме коренно различни подходи но сме стигнали до един и същ извод.

Mateev
29.12.2019, 02:13
......Ако се направим аналогия с миньорството, по-добре да намериш един диаманд с легенче, отколкото да добиеш 10 тона лъскав чакъл с багера :laughing:

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

Ще го кажа и по друг начин - ако не беше SQ, как щеше да разбереш, че най-добри индикатори са Bolinger Bands и Keltner Channel? Как щеше да разбереш, че AUDCAD е най-податлив на прогнозиране?

Както и да го въртим, сляпото стреляне в различни посоки е най-добрият метод случайно да се нацели нещо добро, пък след това вече може по-подробно да се изследва цялата област около него. И понеже вселената на потенциалните търговски стратегии е почти безкрайна, ще падне голяма пукотевица, докато се нацели нещо наистина добро. Да ти припомня ли онзи експерт по йената, който ми го подариха от SQ, и който продължаваше да работи добре няколко години след неговото откриване? Ако тогава му бях обърнал подобаващо внимание и му бях дал правилния ММ, досега щеше да е направил милиони.

K_W
29.12.2019, 10:36
Знаеш ли на теория трябва да си прав.И аз точно това очаквах преди време.
Обаче днес говоря за количество..Матеев също ти говори за количество... За хиляди експерти. И знаеш ли защо...Практика, резултати и статистика....Ползвали сме коренно различни подходи но сме стигнали до един и същ извод.
Според мен и на практика е същото. Поради една проста причина, лимитирания downside. Посредствените стратегии могат да ти спечелят по-малко пипсове, срещу повече дроудаун, супер стратегиите могат да ти спечелят много повече пипсове срещу същото количество дроудаун, а както знаем ДД за всички стратегиии които може да си позволим е 99% (и то ако търгуваме със супер ефективен и добър активен ММ който да може да ни измъкне от такъв ДД, въпреки че и това е постижимо само със супер стратегия )

Относно изводите до които сте достигнали и двамата, до колкото знам все още сте на етап разработване, ако някой има 5 години исторя със тази тактика и с 1500(примерно) търгуващи
системи, които имат супер стабилна крива и страхотно съотношение печалба/дд изказването ще има друга тежест.

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

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

Ще го кажа и по друг начин - ако не беше SQ, как щеше да разбереш, че най-добри индикатори са Bolinger Bands и Keltner Channel? Как щеше да разбереш, че AUDCAD е най-податлив на прогнозиране?

Както и да го въртим, сляпото стреляне в различни посоки е най-добрият метод случайно да се нацели нещо добро, пък след това вече може по-подробно да се изследва цялата област около него. И понеже вселената на потенциалните търговски стратегии е почти безкрайна, ще падне голяма пукотевица, докато се нацели нещо наистина добро. Да ти припомня ли онзи експерт по йената, който ми го подариха от SQ, и който продължаваше да работи добре няколко години след неговото откриване? Ако тогава му бях обърнал подобаващо внимание и му бях дал правилния ММ, досега щеше да е направил милиони.
Не сме на различно мнение.
Аз не отричам идеята на SQ, напротив, убеден съм, че това е най-смисления начин да се търсят стратегии и зависимости.

Примера ти с експерта на йената (ако го качиш ще ми е интересно да го тествам) е това което и аз казвам. Не ти трябват 1500 посредствени експерта, трябват ти няколко добри.

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

shkata
29.12.2019, 11:08
Според мен и на практика е същото. Поради една проста причина, лимитирания downside. Посредствените стратегии могат да ти спечелят по-малко пипсове, срещу повече дроудаун, супер стратегиите могат да ти спечелят много повече пипсове срещу същото количество дроудаун, а както знаем ДД за всички стратегиии които може да си позволим е 99% (и то ако търгуваме със супер ефективен и добър активен ММ който да може да ни измъкне от такъв ДД, въпреки че и това е постижимо само със супер стратегия )


Ще споделиш ли каква праткика имаш със SQX? Kакво точно правиш ?

K_W
29.12.2019, 11:14
Ще споделиш ли каква праткика имаш със SQX? Kакво точно правиш ?


Х не съм ползвал, само по-старата версия, която също бълва хиляди стратегии.

shkata
29.12.2019, 11:50
Е то разликата между двете е от земята до небето ...

K_W
29.12.2019, 12:08
Е то разликата между двете е от земята до небето ...

Поясни каква?

Нещата за които пиша според мен са фундаментални и не се влияят от метода на майнинг.

Mateev
29.12.2019, 14:07
Поясни каква?

Нещата за които пиша според мен са фундаментални и не се влияят от метода на майнинг.

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

Въпреки това ако си представим цялата вселена от потенциални стратегии, SQ3.8 търсеше в тази вселена в един тесен сектор, обхващащ само 1% от тази вселена. SQX вече търси в по-голям сектор, но пак не надхвърля 10% от цялата възможна вселена.

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

shkata
29.12.2019, 15:48
Как така да няма средства за описване на патърни? не можеш ли да си добавяш и променяш индикатори , патърни, изходен код и т.н. през код едитора?
Може би най сериозния недостатък е че не можеш да направиш вътрешна мрежа и едновременно да ползваш ресурса на няколко компютъра - както оптимизатора на MT5 а трябва ръчно да го пускаш на всяка машина.

Mateev
29.12.2019, 17:53
Истинската структура на сегментите, които се образуват от вероятностните процеси (и от пазарите), представлява рекурсивно вложени един в друг ABC сегменти. И истинските зависимости трябва да ги търсим именно в логиката на подредбата и на вложеността на тези сегменти.

Иначе това със зигзаците е само една линейна интерпретация на едно единствено ниво от многото нива на вложеност на ABC вълните. Не че не може и на това ниво да се намерят зависимости, но те ще са само някакво бледо отражение (следствие или лошо копие) на истинските зависмиости, присъстващи в рекурсивната структура.

Още по-зле стои въпроса с баровете, които целия свят се е юрнал да анализира. Те още повече изкривяват първичната информация дори и от зиг-заците. Баровете са вече трето ниво на изкривяване на първичната рекурсивна информация, и всички по света, включая и SQ, търсят зависимости именно в това изкривено ниво. Е как тогава да се намерят хубави зависимости на това ниво, след като те вече са силно повредени и почти незабележими.

zezo
29.12.2019, 20:55
Факт е че и SQ и Forex Strategy Builder (FSB) не предлагат опция за тестване и създаване на зигзаци или ренко графики. FSB ги пях питал преди време но ми отговориха че тяхната програма не поддржа такива функции и до клкото виждам не могат да я направят да поддржа, но и двете програми предлагат импорт на графики от МТ4. Затова се насочих към вариянт за сздаване на ренко в МТ4 и експорт в някоя от другите две програми (с FSB имам доста повече опит). Единствените ренко индикатори които създават реални графики без гапове и в които всеки следващ сегмент започва точно където завршва предишния са тези двата
1. https://www.forexfactory.com/showthread.php?t=535170 с опция rail to rail


2. https://www.az-invest.eu/renko-tick-chart-plug-in-for-metatrader4 с опция pointO

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

Mateev
29.12.2019, 22:20
Точно така - дискретата на зигзаците и дължината на сегментите трябва да е в проценти на промяна спрямо началната точка, а не в абсолютни пипове. По този начин всички финансови инструменти ще станат съизмерими, независимо дали цената им в момента е около 1-цата, около 300 или около 10000.

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

Иначе зигзаците се смятат така:
1. Взема се първичната тикова графика
2. От нея се пренахват всички точки, които са междинни в даден сегмент. Оставят се само върховете на сегментите.
3. Получава се графика, която аз я наричам ZZ0 или това е зигзаг с нулеви пренебрегнати откати.

Ако искаме да започнем да окрупняваме зигзага на принципа на окрупняване на баровете, трябва да направим следното:
1. Приемаме, че не ни интересуват сегменти, по-малки от дадена стойност. Например по-малки от 1 пип или от 1 десетохилядна от промяната.
2. Изхвърляме от графиката всички сегменти, които са по-къси или равни на 1 пип.
3. Това, което остане, аз го наричам ZZ1
4. По същия начин може да се получи например ZZ5 (не ни интересуват сегменти, по-малки от 5 пипа), или ZZ10, ZZ50, ZZ200 и т.н.

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

shkata
30.12.2019, 07:53
Дори да успеете да преобразувате графиката в нещо и да я вкарате в SQ там ще загубите представа за времето , а от там ще изпуснете зоната със разширени спредове. Дори това да кажем да не е проблем при някои експерти, тогава идва следващия момент че генерирания експерт трябва да се преработят тотално до положение в което няма да сме сигурни дали теста в SQ e минал по начина по който ще търгуваме.
Не е ли по добре да се придържаме към работещия софтуер който имаме и да изкоментираме примерно как да настроим генетичния алгоритъм правилно ?

Mateev
30.12.2019, 09:13
Дори да успеете да преобразувате графиката в нещо и да я вкарате в SQ там ще загубите представа за времето , а от там ще изпуснете зоната със разширени спредове. Дори това да кажем да не е проблем при някои експерти, тогава идва следващия момент че генерирания експерт трябва да се преработят тотално до положение в което няма да сме сигурни дали теста в SQ e минал по начина по който ще търгуваме.
Не е ли по добре да се придържаме към работещия софтуер който имаме и да изкоментираме примерно как да настроим генетичния алгоритъм правилно ?

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

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

shkata
30.12.2019, 09:37
Незнам дали няма да се объркат нещата в SQ като в един ден имате не 24 а 50 часови бара. Със сигурност ще се вкарате в приключение.

Mateev
30.12.2019, 12:09
Незнам дали няма да се объркат нещата в SQ като в един ден имате не 24 а 50 часови бара. Със сигурност ще се вкарате в приключение.

Аз зиг-заг симулатора ще си го напиша на MQL4/5 и там ще си го ползвам. Няма да е чак толкова сложен, защото в него ще се търсят само 4 вида статистически зависимости, които стоят в основата на всички други зависимости от барово ниво. Тези 4 вида зависимости ще ги пресканирам на 100% само за няколко часа, и затова написах, че е възможно този симулатор да стане част от всеки един експерт, и да работи във фонов режим. Например ако пускам търговската логика веднъж на 50 милисекунди, и тя работи 1 милисекунда, през останалите 49 милисекунди (ако ги има свободни) ще работи зиг-заг симулатора. Така той под никаква форма няма да прречи на търговските операции.

shkata
30.12.2019, 12:47
Всеки сам си решава къде да хвърля усилията си. Според мен SQX e достатъчно добър и всеки който разбира поне малко може да изгради едно пофтфолио от експерти което сумарно да печели.Ще е грехота вместо да се надгражда това , да се залита в някакви други посоки където нищо не е ясно...

zezo
30.12.2019, 17:49
Дори да успеете да преобразувате графиката в нещо и да я вкарате в SQ там ще загубите представа за времето , а от там ще изпуснете зоната със разширени спредове. Дори това да кажем да не е проблем при някои експерти, тогава идва следващия момент че генерирания експерт трябва да се преработят тотално до положение в което няма да сме сигурни дали теста в SQ e минал по начина по който ще търгуваме.
Не е ли по добре да се придържаме към работещия софтуер който имаме и да изкоментираме примерно как да настроим генетичния алгоритъм правилно ?
За разширяването на спредовете ще използвам брокер с фиксиран спред, идеята ми е да напрвя баровете с големина поне 40 - 50 пипса (точно колкото ще е размера на сделката стоп = таргет) за да намаля влянито на спреда, което пък от своя стана ще намали броя на сделките, но ако има достатъчно добро ПМО ще има ефект. В FSB няма проблем да се импортнат баровете и работеше нормално когато правих тези изследвания, за SQ не знам как ще е защото като гледам е доста по-сложна от FSB.

K_W
30.12.2019, 21:08
За разширяването на спредовете ще използвам брокер с фиксиран спред, идеята ми е да напрвя баровете с големина поне 40 - 50 пипса (точно колкото ще е размера на сделката стоп = таргет) за да намаля влянито на спреда, което пък от своя стана ще намали броя на сделките, но ако има достатъчно добро ПМО ще има ефект. В FSB няма проблем да се импортнат баровете и работеше нормално когато правих тези изследвания, за SQ не знам как ще е защото като гледам е доста по-сложна от FSB.

Извинявай, че може да ти прозвучи малко грубо, но това което си написал ми звучи меко казано нелепо. Правилно ли разбирам че мислиш да ползваш брокер за трейдинга с фиксиран спред, или аз не те разбрах? Защото да използваш брокер с 2-3 пипса фиксиран спред (5 вечер) е все едно да хвърляш пари през прозореца. Вече има не малко брокери с нулев брокер ниска комисиоона като средния спред им около 0.1 пипса 0.45 пипса с комисионна. Лесно може ш да видиш ефекта върху дори и най добрите системи каот направиш един тест с по-нисък спред.

Относно FSB преди няколко месеца си направих труда да иницирам дискусия във форумът им, на тема резултати и работещи релано системи. Такива няма! Държах се много възпитано но ми заключиха темата след доста овъртане. След това дискусията продължи на лични съобщения, като стана ясно, че реално работещи създадени от този софтуер системи НЯМА. Писаха ми още няколко човека на ЛС, за да кажат че от години са там, няма такива системи но не искат да говорят публично.

shkata
30.12.2019, 22:19
Относно FSB преди няколко месеца си направих труда да иницирам дискусия във форумът им, на тема резултати и работещи релано системи. Такива няма! Държах се много възпитано но ми заключиха темата след доста овъртане. След това дискусията продължи на лични съобщения, като стана ясно, че реално работещи създадени от този софтуер системи НЯМА. Писаха ми още няколко човека на ЛС, за да кажат че от години са там, няма такива системи но не искат да говорят публично.

В интерес на истината и аз не успях да подкарам нищо от него...Пуснах го прави там нещо и ми генерира една единствена система която не ми хареса.

Mateev
31.12.2019, 10:50
За разширяването на спредовете ще използвам брокер с фиксиран спред, идеята ми е да напрвя баровете с големина поне 40 - 50 пипса (точно колкото ще е размера на сделката стоп = таргет) за да намаля влянито на спреда, което пък от своя стана ще намали броя на сделките, но ако има достатъчно добро ПМО ще има ефект. В FSB няма проблем да се импортнат баровете и работеше нормално когато правих тези изследвания, за SQ не знам как ще е защото като гледам е доста по-сложна от FSB.

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

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

Аз това съм си го мислил и като стратегия за събиране на тройния суап в сряда срещу четвъртък. Да, повечето брокери силно увеличават спреда около полунощ, но в статистически план движението на цената тогава е около нулата. Следователно ние можем да отворим позиция с минимален спред в периода около 21-22 часа и да я затворим в периода около 2-3 часа. Такава стратегия би била печеливша, ако тройния суап е по-голям поне 2 пъти от минималния спред на брокера.

zezo
31.12.2019, 11:36
Извинявай, че може да ти прозвучи малко грубо, но това което си написал ми звучи меко казано нелепо. Правилно ли разбирам че мислиш да ползваш брокер за трейдинга с фиксиран спред, или аз не те разбрах? Защото да използваш брокер с 2-3 пипса фиксиран спред (5 вечер) е все едно да хвърляш пари през прозореца. Вече има не малко брокери с нулев брокер ниска комисиоона като средния спред им около 0.1 пипса 0.45 пипса с комисионна. Лесно може ш да видиш ефекта върху дори и най добрите системи каот направиш един тест с по-нисък спред.

Относно FSB преди няколко месеца си направих труда да иницирам дискусия във форумът им, на тема резултати и работещи релано системи. Такива няма! Държах се много възпитано но ми заключиха темата след доста овъртане. След това дискусията продължи на лични съобщения, като стана ясно, че реално работещи създадени от този софтуер системи НЯМА. Писаха ми още няколко човека на ЛС, за да кажат че от години са там, няма такива системи но не искат да говорят публично.
Признавам си че след падането на границата на швецарския франк не съм търгувал (след големи загуби/печлаби се почива) но тогава имаше брокери при които търгувах успешно с фиксиран спред и те най-добрият вариант за мен. Сега след няколко години нещата явно са се променили доста, но мисля че доста бързо ще вляза в час. Наясно съм че спреда и другите разходи по сделките намаляват драстично ПМО на всяка една стратегия. Имено с FSB бях открил една ваисимст при всички кросове на еврото която биеше 2-3 пъти фиксирания спред от 2 пипса. Просто открих, е в диапазона от 02 часа до около 04 часа еврото поскъпва спрямо всички валути и го използвах, като стратегията отваряше само дълги позиции с 30 пипса таргет=стоп, не съм я проверявал дали още работи, но ще се заема и стова, ако на някой му е интесно може да я пробва. Не знам сега как стоят нещата с това разкрачване на спреда което го правят брокерите, и как ще отрази на стратегията, тогава нямаше такова нещо.

K_W
31.12.2019, 14:49
Аз им нямам вяра на брокерите с фиксиран спред. Те не са глупаци и много добре знаят, че фиксирания спред може да ги убие по време на новини. Така че те са принудени да играят някакъв курвенски номер, за да се предпазят. Следователно фиксирания спред винаги върви в комплект с курвенски номера, и от такива брокери човек трябва да се пази.

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

Аз това съм си го мислил и като стратегия за събиране на тройния суап в сряда срещу четвъртък. Да, повечето брокери силно увеличават спреда около полунощ, но в статистически план движението на цената тогава е около нулата. Следователно ние можем да отворим позиция с минимален спред в периода около 21-22 часа и да я затворим в периода около 2-3 часа. Такава стратегия би била печеливша, ако тройния суап е по-голям поне 2 пъти от минималния спред на брокера.


Прав си, в момента единствено разни скапани брокери и 100%тови маркет мейкъри предлагат фиксиран спред. Аз поне не съм срещнал читав брокер който да предлага такъв

kompira
01.01.2020, 17:20
Преди години (до 2009-та) и аз скалпирах през нощта EURCHF при брокер с фиксиран спред от 3 пипса. Беше екстра, но не продължи дълго, защото фалира. :laughing: Фиксирания спред вече е отживелица, читавите брокери не го предлагат.

BOBI
14.03.2020, 19:22
Ами това, че ако докарваме 50 милиона месечен оборот, брокера ще ни даде специални условия за търговия. Аз не съм убеден в това, но докато не го пробваме, няма как да разберем. Живот и здраве да започнем да имаме по 50 милиона месечен оборот във всеки един брокер, и тогава ще разберем дали те въобще са склонни да дават допълнителни отстъпки или не. Може да се случи и точно обратното - да започнат да ни влошават условията за търговия, когато разберат, че нашите стратегии са печеливши, и като такива намаляват печалбата на брокера.

50 милиона на месец!!! Абе кви филми гледате? Ако сте отворили сметката с 5 милярда вероятно бихте си позволили да търгувате с обем правещ милиони на месец. Тогава нямаше да ви пука кой е брокера защото с такива пари Вие най-вероятно щяхте да сте брокер. Стотици стратегии работещи едновременно с милиони индикатори в тях – пълно мазало. Трябват ви само 2. Една трендова и една рейнджова с правилните настройки и нужните тестове за тяхното периодично изменение спрямо характеристиките на съответния инструмент. Интересно ми е какво за Вас значи добър ЕА? ПРИМЕР: Колко трябва да вади на месец един-ЕА стартиращ със сметка с 1000$. Каква възвръщаемост очаквате

Mateev
17.03.2020, 10:55
Забравяш, че това са маржин сметки, при които такъв оборот (изтъргувани лотове) си е напълно възможен за хора с 20-30к акаунти и интензивна интрадневна търговия.