Jump to content
Co nového? Mé kurzy
Komunita:
Hledat v
  • Více možností...
Najít obsah, který ...
Hledat výsledky v ...
Diskuze Sledované příspěvky Žebříčky

Diskuze k článku: Automatická stavba super-robustních systémů


Doporučené příspěvky

Merlin007,

seminář se soustředí jen na stavbu strategií v NinjaTrader a MCH/TS. O programu AB v semináři ani nehovořím, takže určitě si na své přijdete ;) Seminář se naopak snažím zaměřovat na maximální jednoduchost a okamžitou praktikovatelnost.

Adresa příspěvku
Sdílet pomocí služby

Honza K. to napsal velice dobre - pri budovani AOS mame v podstate 2 hlavni moznosti:
1. Mame nejakou zakladni (nejlepe otestovanou a funkcni) myslenku, na zaklade ktere zacneme AOS budovat
2. Nemame vubec nic a na zaklade historickych dat nechame pocitac vyhledavat udalosti/patterny, ktere vedou k pozadovanym vysledkum (presne o tom je tento clanek)

Problem prvniho pristupu je, ze clovek musi byt schopen presne matematicky popsat veskere nuance sveho systemu. Podle mych zkusenosti tohoto neni vetsina lidstva schopna ani u jinych podstatne banalnejsich oblasti. Na druhou stranu si myslim, ze do kodu jde prevest v podstate vsechno (kdyz teda pominu hardcore veci jako simulaci pocasi na planete, kde je temer nekonecno promennych) - ale pro neprogramatora je to v podstate nemozne. Nejde ani tak o znalost syntaxe programovacich jazyku jako spis o urcite myslenkove pochody pri reseni problemu, ktere si programator casem vypestuje (nebo aspon u me to tak bylo). I impulzivni iracionalni chovani lidi ma sve duvody, ktere lze popsat urcitymi pravidly - problem je, ze vetsinou ani tito samotni lide nemaji potuchy, jaka tato pravidla jsou (viz. cela ta vec kolem psychologie obchodovani). A ikdyz to zjisti, naprogramovani techto pravidel do nejakeho "replikatoru chovani" ma pro vetsinu hrozne nizke RRR, takze to ani nema smysl (to ale neznamena, ze by to neslo)... Casto snaha o naprogramovani AOS touto cestou konci prohlasenim, ze "muj system je proste diskrecni a proto nejde naprogramovat" - v tomto kontextu chapu slovo "diskrecni" jako neschopnost jasne popsat veskera pravdila spis nez proces vkladani nejakeho osobniho "citu" do obchodovani. I tento "cit" jsou vetsinou nejaka jasna pravidla, ktera se zaryla do podvedomi nasledkem opakovaneho vystaveni urcite situaci. Jak ale tyto pravidla vydolovat z hlavy ven?

Druhy zpusob jsem nikdy nezkousel a popravde me to ani nijak extra nelaka. Mam totiz pocit (a Tomas uz se o tomto myslim taky zminoval), ze 99.9% z techto vygenerovanych systemu je naprosto nepouzitelny odpad. Je to pak hlavne o vsech tech testech robustnosti, o kterych Tomas casto pise a to uz mi prijde jednodussi konkretne popsat pravidla urciteho funkcniho systemu nez prochazet timto dlouhym workflow. Nehlede na to, ze pokud z toho nejaky funkcni system nakonec vypadne, neni vzdycky uplne jednoduche tipnout, jak dlouho to bude fungovat.

Ja jsem taky jeden z tech, co se vydali AOS cestou a vsem "diskrecnim" obchodnikum bych chtel vzkazat, ze to neni vubec zadna sranda. Ma schopnost programovat neni sama o sobe zadna vyhoda, kterou bych mohl na trzich uplatnit. Delam to sice s vidinou, ze jednou snad budu mit plno volneho casu na svoje konicky, zatimco o pozitivni cashflow se bude starat krabice plna kremikovych desticek, ale cestu za timto cilem mi ta krabice nijak nezkrati. Tomas tu taky nekolikrat zminoval, ze jeho strategie jsou vetsinou velice jednoduche na par radku. Abych pravdu rekl, vubec si neumim neco takoveho predstavit. Vec, na ktere momentalne delam, a ktera je v ranne fazi vyvoje, ma v teto chvili kolem 2 tisic radku kodu...

Adresa příspěvku
Sdílet pomocí služby

Gizmo,

za pravdu vám rozhodně dávám v tom, že to žádná sranda není, diskréční i AOS - každé má své pro i proti. Není jedno horší, nebo lepší, než druhé - obojí vyžaduje aktivní přístup a práci.
Ovšem kód na 2000 řádků si neumím představit :-) Mé strategie mají tak 20 řádků max., včetně definic proměnných, atd. A to už jsou dlouhé strategie :-) Možná, že jen na to jdete příliš složitě :S

Adresa příspěvku
Sdílet pomocí služby

> tomnes

Z tech 2000 radku kodu ma jen malo z nich co docineni se vstupnimi podminkami. Ale je potreba resit celou radu dalsich veci - ve kterych hodinach ma system obchodovat, co se stane s otevrenou pozici po opusteni tohoto casoveho intervalu, co s nevyplnenymi limit prikazy, omezeni poctu obchodu/ztrat na den, atd. Uz jenom implementace rozumneho money management "interface" pro ruzne nastaveni multi-kontraktu apod. je kapitola sama pro sebe. Mozna tohle TS/Multicharts resi nejak uplne jinak pres nastavitelne parametry nekde v UI, takze na to neni potreba psat vlastni kod, ale tyto veci je potreba mit osetreny, ze? Ja mam samozrejme tendence psat si plno veci tak nejak po svem, protoze jsem pak na to schopen napasovat cokoliv dalsiho, ale i tak se ten kod porad nejak rozrusta ;)

Adresa příspěvku
Sdílet pomocí služby

Souhlas, logika vstupů a výstupů samotná zabere obvykle zdaleka nejmenší část kódu, to už mám komentářů daleko více :) Nejvíc zaberou věci okolo, jak píše gizmo. Každá platforma má svůj způsob řešení situací kolem vstupů a výstupů / navázání komunikace po výpadku atd. a tohle vždycky zabere nejvíc času na vymýšlení. Nebo pokud se strategie má stát součástí portfolia a chcete jí dynamicky alokovat část účtu apod. Takříkajíc flákotu osmažíte hned, ale ta piplačka s omáčkou! :D

Adresa příspěvku
Sdílet pomocí služby

Tomáši,

byla by možnost nějak navrhnout tvůrcům jedno potenciální zlepšení? Já jsem to zkoušel na jejich fóru, ale vy na ně asi máte větší vliv. :) Navíc si myslím, že by to pomohlo hodně uživatelům.

To co mě trápí je, že když spustím Build, tak on začne, potom skončí a musím ho pouštět znova. Bylo by skvělé do programu implementovat možnost, že by po každém návrhu program uložil X nejlepších strategií dle zadaných parametrů někam bokem a udělal úplně nový Build, pak zase uložil a tak dále. Nejedná se tak o funkci Re-Build jak teď už existuje (ten vyhodnocuje po každé generaci a při nesplnění všechno zahazuje), ale umožňuje uživateli plně využít program i v době, kdy je delší dobu od počítače a nemá možnost ukládat úspěšné strategie bokem a znovu spouštět algoritmus (např. přes noc, když je v práci, nebo na dovolené, atd.). Takhle by třeby z každého buildu uložil 20 (potenciálně) nejlepších strategií a jel by třeba i týden v kuse - pak bych k tomu přišel já a vybíral bych zrna z plev :)

Myslím, že by to bylo skvělé zlepšení a navíc by to nevyžadoval žádný zásah do samotného algoritmu, tudíž by to bylo i poměrně snadné naprogramovat.

Předem díky v každém případě.

Michal

Adresa příspěvku
Sdílet pomocí služby

Honza K. Napsal:
-------------------------------------------------------
> Souhlas, logika vstupů a výstupů samotná zabere
> obvykle zdaleka nejmenší část kódu, to už mám
> komentářů daleko více Nejvíc zaberou věci okolo,
> jak píše gizmo. Každá platforma má svůj způsob
> řešení situací kolem vstupů a výstupů / navázání
> komunikace po výpadku atd. a tohle vždycky zabere
> nejvíc času na vymýšlení. Nebo pokud se strategie
> má stát součástí portfolia a chcete jí dynamicky
> alokovat část účtu apod. Takříkajíc flákotu
> osmažíte hned, ale ta piplačka s omáčkou! :D


Gizmo, Honza K. :
Mam to chapat tak, ze cele vase backtestovacie/navrhovacie prostredie je vas kod? tj. ze napriklad nepouzivate ninjatrader/ninjascript kde cela praca je naozaj len tych 20-100riadkov kodu lebo "prostredie" je uz naprogramovane?
Preto sa pytam lebo sam som si predchadzajuce 2roky vsetko sam robil vo VBA v exceli. Nerobi mi problem si veci naprogramovat(stale moj fulltime job) a cloveka to aj bavi celkom ale posledny polrok sa snazim zmigrovat stare veci z VBA a nove napady primarne riesit uz len v ninjascript-e. Aj ked co mi na takomto hotovom prostredi celkom vadi, tak to ze si nemozem do vysledkov podavat veci ktore ja chcem ale mam ponuku obmedzenu tym co poskytuje prostredie backtestovania ninjatrader (a ano dali by sa veci davat do logu a to potom importovat do excelu atd).

Adresa příspěvku
Sdílet pomocí služby

Strategie jsou napsané v EL. Základní testování provádím v TS, MCH a pomocí vlastních nástrojů v Excelu, případně si nechávám otestovat borcema, co se vyznají v MatLabu. Samotné obchodování se pak odehrává částečně v TS a částečně přes API, které je schopné komunikovat s jinými brokery.

Adresa příspěvku
Sdílet pomocí služby

> rastompk

Programovat si cele prostredi je urcite ztrata casu. Nebo jinak - pro programatora je to samozrejme vyborne cviceni a zabava, ale je to "reinventing the wheel". Ja pouzivam Sierru, protoze podle me vyborne kombinuje uz hotove "prostredi" s moznosti temer uplne volnosti si cokoliv doprogramovat (pomoci stejnych nastroju, ve kterych je udelana Sierra samotna). Osobne nemam zkusenosti s ninjascript, ale u podobnych zakomponovanych skriptovacich jazyku je vetsinou problem v tom, ze existuje rada omezeni. Tyto jazyky slouzi urcitemu ucelu a snazi se byt co nejjednodussi, coz znamena, ze clovek, ktery chce pomoci techto nastroju vytvorit trochu komplexnejsi reseni, kolikrat narazi na to, ze to proste nejde. Tipoval bych, ze u ninjascriptu clovek muze narazit uz v pripade, ze chce mit napriklad AOS, ktery sleduje 10 trhu a na zaklade deni v techto 10ti trzich obchoduje 5 z nich zaroven. To jen pro ukazku, co jsem myslel tim "komplexnejsim resenim".

Ja jakozto programator chci mit i prehled o tom, co se deje pod poklickou. Takze si programuji i nektere low-level veci, ktere by asi jinak nekde v Sierre sly nastavit pres tlacitka a checkboxy. Kdyz ale clovek presne vi, jak veci funguji, problemy se proste dohledavaji podstatne jednoduseji - to Ti nemusim vykladat :)

Adresa příspěvku
Sdílet pomocí služby

gizmo Napsal:
-------------------------------------------------------
> > rastompk
>
> Programovat si cele prostredi je urcite ztrata
> casu. Nebo jinak - pro programatora je to
> samozrejme vyborne cviceni a zabava, ale je to
> "reinventing the wheel". Ja pouzivam Sierru,
> protoze podle me vyborne kombinuje uz hotove
> "prostredi" s moznosti temer uplne volnosti si
> cokoliv doprogramovat (pomoci stejnych nastroju,
> ve kterych je udelana Sierra samotna). Osobne
> nemam zkusenosti s ninjascript, ale u podobnych
> zakomponovanych skriptovacich jazyku je vetsinou
> problem v tom, ze existuje rada omezeni. Tyto
> jazyky slouzi urcitemu ucelu a snazi se byt co
> nejjednodussi, coz znamena, ze clovek, ktery chce
> pomoci techto nastroju vytvorit trochu
> komplexnejsi reseni, kolikrat narazi na to, ze to
> proste nejde. Tipoval bych, ze u ninjascriptu
> clovek muze narazit uz v pripade, ze chce mit
> napriklad AOS, ktery sleduje 10 trhu a na zaklade
> deni v techto 10ti trzich obchoduje 5 z nich
> zaroven. To jen pro ukazku, co jsem myslel tim
> "komplexnejsim resenim".
>
> Ja jakozto programator chci mit i prehled o tom,
> co se deje pod poklickou. Takze si programuji i
> nektere low-level veci, ktere by asi jinak nekde v
> Sierre sly nastavit pres tlacitka a checkboxy.
> Kdyz ale clovek presne vi, jak veci funguji,
> problemy se proste dohledavaji podstatne
> jednoduseji - to Ti nemusim vykladat

Neda sa inak ako s tebou iba plne suhlasit. Ninjascript, ktory je sucastou Ninjatrader napriek tomu ako to vtipne znie ten nazov, tak je to v podstate c# a c# je moj nativny jazyk, takze ked som napriklad premyslal ci zacat s EasyLanguage alebo tymto "ninjascriptom" tak volba bola jasna. A je to asi tak isto s tymto ninjascriptom ako ked pises o Sierre: [ital]"kombinuje uz hotove "prostredi" s moznosti temer uplne volnosti si cokoliv doprogramovat (pomoci stejnych nastroju, ve kterych je udelana Sierra samotna)"[/ital]

Moje doposial pouzite strategie na backtestovanie pracuju tak maximalne s 2 timeframes na jednom trhu a su celkovo dost jednoduche, takze tu som zatial na ziadne obmedzenia narazit nemohol. V podstate nemam ziadnu z nich problem dostat aj do VBA (ako pekne programatorske cvicenie hehe, to si pekne napisal).

Ale asi zbytocne tu nieco viac pisat, presne si to vystihol vo svojom prispevku. Ja som na zaciatku sice siel cestou "reinventing the wheel" vo VBA ale po case ma to zacalo obmedzovat. Hlavne nutnost dostat data z trhu do excelu a caste aktualizacie tychto dat a tom som len CL a 6E riesil. Tiez mi zacala vadit "rychlost" VBA pri backtestovani. Predsa len, VBA je urcene primarne na nieco ine. Ninjasript+Ninjatrader je navyse zadarmo na testovacie ucely, ma to podporu viac jadier a aktualne postacuje.

Adresa příspěvku
Sdílet pomocí služby
  • 2 months later...
×
×
  • Vytvořit...

Důležitá informace

Na tomto webu zpracováváme cookies potřebné pro jeho fungování a analytiku, v případě udělení souhlasu také cookies pro účely cílení reklamy.