А би ли споделил принципа на който е изграден филтъра за новини, щото аз от доста време го мисля, ама освен идеята ръчно да вкарвам часовете когато има новини нищо друго смислено не съм измислил
А би ли споделил принципа на който е изграден филтъра за новини, щото аз от доста време го мисля, ама освен идеята ръчно да вкарвам часовете когато има новини нищо друго смислено не съм измислил
Търговията на финансовите пазари е силно рискована, но може да носи допълнителни приходи с правилния подход. Избирайки надежден брокер (например ИнстаФорекс), можете да получите достъп до международните финансови пазари и да отворите пътя към финансовата си независимост. Можете да отворите акаунт точно тук.
Ами то няма какво друго да се измисли по принцип.
Специално за тестовете, аз съм си направил една функция която преди всеки опит за отваряне на сделка проверява дали в оставащите часове до 23 часа има важни новини.
Новините ги вкарвам в един файл където са подредени по часове така като са в икономическия календар. По принцип цялата ми система е базирана на цикли.
Въртят се всички валутни двойки, и се правят всички проверки.
Когато има съвпадение на дата и валута функцията ми връща false и така пропускам съответната двойка и преминавам на следващата.
А във реално време тези неща ги контролирам ръчно.
Системата се изключва автоматично в края на деня в 23 часа.
Всеки ден в този час просто проверявам за няколко минути икономическия календар и изключвам валутите за които се очакват важни новини през следващите 24 часа. В бъдеще сигурно ще направя системата сама да чете и календара, но още не съм стигнал до там. А и понякога има промени и разни други събития които ги няма в календара и за тях си трябва ръчна намеса.
Ето един скрийншот на интерфейса на системата към днешна дата. Отгоре където са бутоните за активиране на автоматична търговия и отделните системи, там са и валутите. В зелено се показва кое е включено и активно. А в оражево валутата е изключена.
Значи всички двойки в които присъства изключената валута не се търгуват.
Преди началото на всеки ден ги нагласям тези неща и после проверявам чак сутринта какво става.
Последна редакция от alphaomega : 23-11-2018 на 19:00
А при мене вижте какво направи Alpari-Nano акаунта: https://www.my**book.com/portfolio/alpari-nano/2754137
Постигна 45% доходност за 2 седмици при максимален Drawdown от 15%. Този акаунт е наблъскан догоре със Sq роботи.
При мене най-големия ми проблем към днешна дата е огромното количество роботи, които трябва да ги създавам и след това поддържам и проследявам в реалната търговия. Акаунтите станаха много, роботите също, и вече му отървах нишката. Затова засега с висш приоритет ми е създаването на софтуер, който да обединява много роботи в един. Крайната цел е в един акаунт да работят стотици роботи, но да са наблъскани в един единствен. В него ще вложа и контрол на капитала на целия акаунт и автоматично изключване на роботите, които в бъдещето направят по-голям DD от миналото. Така търговията ще я сведа до ситуацията ПУСНИ И ЗАБРАВИ. Горе долу тази ситуация си я представям така:
1. Има си директория с кода на готови роботи, които са кандидати да им дам средства за управление
2. От тях подбирам например 100 броя и ги копирам в работната директория на един скрипт
3. Този скрипт чете кодовете на всички роботи, реже, маже, копира, подменя и на изхода си изплюва кода на един единствен робот
4. Създавам поредния нов акаунт някъде в някой брокер и го захранвам с пари
5. Пускам на него да работи този един единствен робот, като акаунта освен всичко друго ще бъде на VРS сървър
6. Забравям за този акаунт и започвам да подготвям следващия
7. Веднъж в денонощие робота ще ми праща мейл с информация какво се случва с акаунта
8. Най-важната екстра ще бъде автоматичното изключване от търговия на роботите, които са се счупили. Това ми позволява акаунта да не го поглеждам месеци наред, защото ще съм спокоен, че нищо при него не може да се обърка.
Търговията на финансовите пазари е силно рискована, но може да носи допълнителни приходи с правилния подход. Избирайки надежден брокер (например ИнстаФорекс), можете да получите достъп до международните финансови пазари и да отворите пътя към финансовата си независимост. Можете да отворите акаунт точно тук.
Stefan (23-11-2018), alphaomega (23-11-2018), kypa (23-11-2018), minkov (23-11-2018), Нерегистриран (2)
Добре звучи. Ама да знаеш че винаги има какво да се обърка! Търговията винаги поднася изненади.А при мене вижте какво направи Alpari-Nano акаунта: https://www.my**book.com/portfolio/alpari-nano/2754137
Постигна 45% доходност за 2 седмици при максимален Drawdown от 15%. Този акаунт е наблъскан догоре със Sq роботи.
При мене най-големия ми проблем към днешна дата е огромното количество роботи, които трябва да ги създавам и след това поддържам и проследявам в реалната търговия. Акаунтите станаха много, роботите също, и вече му отървах нишката. Затова засега с висш приоритет ми е създаването на софтуер, който да обединява много роботи в един. Крайната цел е в един акаунт да работят стотици роботи, но да са наблъскани в един единствен. В него ще вложа и контрол на капитала на целия акаунт и автоматично изключване на роботите, които в бъдещето направят по-голям DD от миналото. Така търговията ще я сведа до ситуацията ПУСНИ И ЗАБРАВИ. Горе долу тази ситуация си я представям така:
1. Има си директория с кода на готови роботи, които са кандидати да им дам средства за управление
2. От тях подбирам например 100 броя и ги копирам в работната директория на един скрипт
3. Този скрипт чете кодовете на всички роботи, реже, маже, копира, подменя и на изхода си изплюва кода на един единствен робот
4. Създавам поредния нов акаунт някъде в някой брокер и го захранвам с пари
5. Пускам на него да работи този един единствен робот, като акаунта освен всичко друго ще бъде на VРS сървър
6. Забравям за този акаунт и започвам да подготвям следващия
7. Веднъж в денонощие робота ще ми праща мейл с информация какво се случва с акаунта
8. Най-важната екстра ще бъде автоматичното изключване от търговия на роботите, които са се счупили. Това ми позволява акаунта да не го поглеждам месеци наред, защото ще съм спокоен, че нищо при него не може да се обърка.
Този скрипт не виждам много смисъл от него. Не e ли по лесно да се направят стратегиите като унифицирани блокове при които само да се променя логиката за търговия и във всеки блок да се вкарват нужните му индикатори. Той кода от SQ по принцип за това е направен да се ползва. Уж.
Имаш един главен файл където се намират основните функции за управление на акаунта.
Всички отделни блокове(стратегии) са под формата на библиотеки .mqh които ги вграждаш във основния файл. Всяка стратегия си има уникален magic които пък освен за управление на отделните позиции на различните стратегии се ползва и във функция която да изготвя статистиките и да следи резултата на всяка стратегия. Когато на някоя стратегия пмо-то и падне до нула функцията и автоматично да забранява на тази стратегия да търгува.
Отделните стратегии ти стоят във основния файл като функции void.
Примерно:
Strategy_1();
Strategy_2();
Strategy_3();
.......
Така можеш да ги редиш и със хиляди ако искаш. Вътре във всеки блок може да сложиш и кратко описание за да знаеш за каква стратегия става въпрос.
Последна редакция от alphaomega : 23-11-2018 на 20:08
Може и по твоя начин. Него също много съм го обмислял, но другия моя си начин ми се видя по-лесен за реализация. Той всъщност проблемът не е в това дали ще се направи по твоя или по моя начин, а че това, което ще се прави, ТРЯБВА ДА БЪДЕ АВТОМАТИЗИРАНО. Едно е да сглобиш 3-4 робота в един (това вече го правих на ръка), и е съвсем друго, когато бройката е хиляди в един. Тогава искаме или не ще трябва да напишем софтуер за автоматична генерация на кода на този обединяващ робот.
На практика се сблъскваме със задачата да преобразуваме кода на един Sq експерт във клас, и той да продължи да функционира по същия начин. Правих го на ръка и ми отне 2 седмици за един единствен робот. Промените, които се наложи да направя в него, бяха повече от 200. Посмъртно няма как да ме накараш втори път да го повторя целия този процес. Докато го правех този първия робот обаче забелязах, че ми се наложи да използвам огромно количество стрингови операции от типа Search and Replase или Copy от едно място и Paste на друго. От тука дойде и идеята за автоматизиране на процеса. Първо създавам клас на новия робот и в него слагам коментари с точно определени имена, защото тези имена ще са ми ТОЧКИ НА ВМЪКВАНЕ на код, пресканиран и копиран от оригиналния робот. Например прави се приблизително следното:
1. Всички External променливи им се маха думичката External, а остатъка с присвояването остава непроменен. След това тези променливи се копират в конструктора на класа.
2. Самата декларация на тези променливи предварително се прави в макета на класа в неговата Private част
3. В Sq роботите има 2 вида функции - такива, които са различни в зависимост от логиката на експерта и такива, които са едни и същи за всички експерти
4. Първите функции се копират в тялото на класа и само отпред на името им се добавя името на класа с разделител :: и след това Copy на цялата функция
5. Вторите функции твърдо се залагат в базовия клас и остават непроменени за всички експерти
6. Прави се Replace на Bid, Ask, Open, High, Low, Close и др. със съответните i функции, позволяващи от името на един символ да се извиква информация за друг
7. Прави се Replace на Symbol() или на NULL със стринга на съответния символ, за който е направен експерта
6. Същото се прави и за таймфрейма, Digits, Point и други променливи, които по Default се отнасят за текущия символ. Те се подменят с функции за извикване на конкретен символ и таймфрейм от името на друг символ и таймфрейм.
Има и още, но това е достатъчно да разбереш, че всичко ще е една голяма игра или врътка на стрингове - търсене и копиране от едно място (от оригиналния експерт) и след това търсене и пастване на друго място (в макета на новия експерт). Може да изглежда страшно като обяснение, но реализацията няма да е чак толкова сложна, особено след като си напиша няколко базови помощни функции за специални операции със стрингове.
И сега най-интересното - всичко това го развъртам в цикъл по един за всеки един робот, пуснат във входната директория. И няма значение дали в директорията има 3 робота или 30 000 - на скрипта му е все тая. Той просто ще ги изчете всичките един по един и ще ги натъпче в изходния робот така, че да не си пречат и да работят паралелно. Тука също има особености, но почти всички съм ги обмислил и имам идея как да се разрешат. Важното е, че каквото и да измисля от този момент нататък, ще го пиша веднъж, а ще се отнася за всичките хиляди роботи, натъпкани в основния робот.
Последна редакция от Mateev : 23-11-2018 на 20:44
kypa (23-11-2018), alphaomega (23-11-2018), minkov (23-11-2018), Stefan (23-11-2018), Нерегистриран (4)
Стратегическият Кванкт ако ги изкарва да работят с отделни позиции с магически числа може и тоз блок да се замести с нещо друго, тъй че да работят с една позиция. Само вътрешно да си отчитат кога влизат и кога излизат, а основния код да добавя или затваря по малко към/от цялостната позиция.
Най-тъмно е преди да изгрее слънцето.
Можеш ли да качиш тук във форума един изходен код на стратегия генерирана от актуална версия на sq? Няма значение каква е стратегията, губеща печеливша... няма значение. Просто ми трябва примерен сорс код.може и по твоя начин. него също много съм го обмислял, но другия моя си начин ми се видя по-лесен за реализация. той всъщност проблемът не е в това дали ще се направи по твоя или по моя начин, а че това, което ще се прави, трябва да бъде автоматизирано. едно е да сглобиш 3-4 робота в един (това вече го правих на ръка), и е съвсем друго, когато бройката е хиляди в един. тогава искаме или не ще трябва да напишем софтуер за автоматична генерация на кода на този обединяващ робот.
на практика се сблъскваме със задачата да преобразуваме кода на един sq експерт във клас, и той да продължи да функционира по същия начин. правих го на ръка и ми отне 2 седмици за един единствен робот. промените, които се наложи да направя в него, бяха повече от 200. посмъртно няма как да ме накараш втори път да го повторя целия този процес. докато го правех този първия робот обаче забелязах, че ми се наложи да използвам огромно количество стрингови операции от типа search and replase или copy от едно място и paste на друго. от тука дойде и идеята за автоматизиране на процеса. първо създавам клас на новия робот и в него слагам коментари с точно определени имена, защото тези имена ще са ми точки на вмъкване на код, пресканиран и копиран от оригиналния робот. например прави се приблизително следното:
1. всички external променливи им се маха думичката external, а остатъка с присвояването остава непроменен. след това тези променливи се копират в конструктора на класа.
2. самата декларация на тези променливи предварително се прави в макета на класа в неговата private част
3. в sq роботите има 2 вида функции - такива, които са различни в зависимост от логиката на експерта и такива, които са едни и същи за всички експерти
4. първите функции се копират в тялото на класа и само отпред на името им се добавя името на класа с разделител :: и след това copy на цялата фуккция
5. вторите функции твърдо се залагат в базовия клас и остават непроменени за всички експерти
6. прави се replace на bid, ask, open, high, low, close и др. със съответните i функции, позволяващи от името на един символ да се извиква информация за друг
7. прави се replace на symbol() или на null със стринга на съответния символ, за който е направен експерта
6. същото се прави и за таймфрейма, digits, point и други променливи, които по default се отнасят за текущия символ. те се подменят с функции за извикване на конкретен символ и таймфрейм от името на друг символ и таймфрейм.
има и още, но това е достатъчно да разбереш, че всичко ще е една голяма игра или врътка на стрингове - търсене и копиране от едно място (от оригиналния експерт) и след това търсене и пастване на друго място (в макета на новия експерт). може да изглежда страшно като обяснение, но реализацията няма да е чак толкова сложна, особено след като си напиша няколко базови помощни функции за специални операции със стрингове.
и сега най-интересното - всичко това го развъртам в цикъл по един за всеки един робот, пуснат във входната директория. и няма значение дали в директорията има 3 робота или 30 000 - на скрипта му е все тая. той просто ще ги изчете всичките един по един и ще ги натъпче в изходния робот така, че да не си пречат и да работят паралелно. тука също има особености, но почти всички съм ги обмислил и имам идея как да се разрешат. важното е, че каквото и да измисля от този момент нататък, ще го пиша веднъж, а ще се отнася за всичките хиляди роботи, натъпкани в основния робот.
Търговията на финансовите пазари е силно рискована, но може да носи допълнителни приходи с правилния подход. Избирайки надежден брокер (например ИнстаФорекс), можете да получите достъп до международните финансови пазари и да отворите пътя към финансовата си независимост. Можете да отворите акаунт точно тук.
То това ми е отдавнашна стара мечта, но реализацията и ще е доста трудна. Мислил съм много по този въпрос. Трябва да се прихванат всички възможни оригинални търговски функции, и да ги пренасоча към мои функции, в които всъщност да реализирам един цял търговски сървър. Трябва да се прихванат и всички функции, с които експерта опипва ордерите - отворени или исторически. Цялото това прихващане знам как да го направя така, че експерта въобще да не разбере, че работи не с оригиналните функции, а с моите, но логиката на моите се оказа прекалено сложна дори и на етап обмисляне, а какво остава за етапа РЕАЛИЗАЦИЯ. Затова в момента тази задача е замразена в режим изчакване на по-добри времена.Стратегическият Кванкт ако ги изкарва да работят с отделни позиции с магически числа може и тоз блок да се замести с нещо друго, тъй че да работят с една позиция. Само вътрешно да си отчитат кога влизат и кога излизат, а основния код да добавя или затваря по малко към/от цялостната позиция.
Търговията на финансовите пазари е силно рискована, но може да носи допълнителни приходи с правилния подход. Избирайки надежден брокер (например ИнстаФорекс), можете да получите достъп до международните финансови пазари и да отворите пътя към финансовата си независимост. Можете да отворите акаунт точно тук.
Ето ти няколко кода на sq експерти, за да видиш кои функции са постоянни и кои се променят с логиката на експерта. Експертите са от хубавите, с които вече търгувам. Също така ти пращам и един експерт, който след много клизми успях да го преобразувам в клас. Всъщност класовете са два - базов клас, в който съм пренаписал една камара функции така, че да работят от името на един символ и таймфрейм със друг символ и таймфрейм. Втория клас е всъщност класа на всеки един експерт, който наследява базовия клас с общата функционалност и след това реализира специфичната за всеки експерт функционалност. Има и главен експерт - макет, в който ще тъпча много на брой такива експерти - класове. Има и няколко помощни файла. Въобще дал съм ти началото на целия проект. Към днешна дата е доста суров, но все пак можеш да видиш как съм започнал да организирам йерархията от класове.
https://dox.abv.bg/download?id=5263da0e93# - Линк за сваляне
Последна редакция от Mateev : 23-11-2018 на 21:31
minkov (23-11-2018), alphaomega (23-11-2018), Stefan (23-11-2018), Нерегистриран (1), kypa (25-11-2018)
Матеев, д ане кажеш, че съм злобен, ама би ли обяснил от този акаунт какво трябва да ни впечатли. Щото аз не съм впечатлен. Даже по твоите критерии изглежда зле акаунта, въпреки, че аз много не ги приемам тях, ама и по моите критерии изглежда зле.А при мене вижте какво направи Alpari-Nano акаунта: https://www.my**book.com/portfolio/alpari-nano/2754137
Постигна 45% доходност за 2 седмици при максимален Drawdown от 15%. Този акаунт е наблъскан догоре със Sq роботи.
Търговията на финансовите пазари е силно рискована, но може да носи допълнителни приходи с правилния подход. Избирайки надежден брокер (например ИнстаФорекс), можете да получите достъп до международните финансови пазари и да отворите пътя към финансовата си независимост. Можете да отворите акаунт точно тук.