Jump to content
Co nového? Mé kurzy
Komunita:
Diskuze Sledované příspěvky Žebříčky

Diskuze k článku: Automatické obchodování z programu Excel


Doporučené příspěvky

> fubu

Jde treba o automatizaci urciteho obchodniho systemu. TWS (a v podstate skoro kazda jina obchodni platforma) Ti umozni videt real-time market data a umozni Ti zadavat prikazy. Ale oboji manualne.

Pokud bys chtel treba naprogramovat strategii, ktera pri splneni urcitych zcela mechanickych podminek odesle urcity prikaz, tak uz na to potrebujes nejake programovatelne prostredi. A to vetsina platforem nema. Nebo teda aspon konkretne TWS od IB to nema. Ale ma neco podle me jeste lepsiho - API.

A v tuto chvili mas nekolik moznosti - pokud mas rad vyzvy, tak se muzes naucit programovat v C++ a pomoci TWS API si udelat svoji vlastni aplikaci. Ale pokud jsi nikdy nic neprogramoval, tak bych do tohoto fakt nesel. Ja jsem v C++ v urcite dobe programoval a jako prvni programovaci jazyk bych se to ucit nechtel (ikdyz teda mozna bych se to naucil radsi nez Visual Basic :)). C++ je opravdu mocny jazyk, ale nektere veci (jako reseni datovych typu a jejich prevodu) dokazou cloveka dost pozlobit.

No a pak je tu "jednoducha" cesta pouziti DDE (Dynamic Data Exchange) propojeni mezi platformou a treba Excelem. TWS tuto sluzbu nabizi a Excel vetsina lidi umi pouzivat a je tam uz vyreseno uzivatelske rozhrani. A take nepreberne mnozstvi matematickych funkci.

To je asi jeden z nejbeznejsich duvodu, proc nad timto propojenim premyslet.

Link to comment
Sdílet pomocí služby

  • Odpovědí 44
  • Vytvořeno
  • Poslední

Nejaktivnější diskutující

Nejaktivnější diskutující

Publikované obrázky

gizmo,
ty si vies realne predstavit, ze si bezny pouzivatel excelu preraba, programuje a ladi excel aby automaticky exekuoval urcity podmieneny prikaz? Ak je dany clovek dobrodruh kludne. Exekucia je kriticka cast kodu, ktora musi byt dokladne otestovana a stat na stabilnych prvkoch. Nepaci sa mi predstava, ze moj PC pripojeny cez retail internetove pripojenie by mal prostrednictvom excelu cez DDE kontrolovat a riadit moje pozicie. To je zbytocne mnozstvo komponentov, z ktorych moze kedykolvek jeden zlyhat. Excel predsa nie je stavany aby online riadil obchody.

Je tam mnozstvo situacii, ktore mozu nastat, takze vlastny soft nie dakujem. Isteze by som si vedel predstavit prisposobene prikazy, ktore by mi riadili moje opcne pozicie, ale radsej si vystacim s dobre otestovanym prostredim brokera, kde prikazy visia sa serveroch napojenych priamo na burzu s backup-om a ktore uz dlhsiu dobu vyuziva a teda testuje mnozstvo inych ludi.

Tot moj nazor.

Link to comment
Sdílet pomocí služby

> fubu

Jasne, ja jsem se Te nepokousel presvedcit, aby jsi to zacal pouzivat. Jenom mi Tvuj prvni prispevek prisel jako dotaz, proc by takove propojeni vubec clovek chtel pouzivat. Tak jsem se to snazil vysvetlit. Pokud jsem ten prispevek spatne pochopil, tak se omlouvam.

A jestli si dokazu predstavit, ze bezny uzivatel si takovy system dokaze spravovat sam? Ja mam asi trochu zkreslenou predstavu, protoze jsem programator, ale opravdu si to dokazu predstavit. Ono to totiz neni vubec nic tezkeho a staci chtit a trosku se neco naucit. A staci mit dostatek informaci. Pred dvema tydny mi zacal na kompu zvonit Skype a kdyz jsem koukal, kdo vola, tak jsem zustal zirat jak blazen. Moje 80ti leta babicka, ktera v zivote nevidela pocitac ani z dalky. Strejda ji koupil pred mesicem noutas, pripojil ji na net a ona ted vola s lidma na Skype. Ona nema absolutne tuseni, co to je nabidka Start, co to je Windows atd. Ale sedla si k tomu a uci se.

Tim nechci srovnavat programovani ve VBA s dvojklikem na ikonku na plose a pak vybranim jmena a stisknutim tlacitka "Volat" :) Chtel jsem jenom rict, ze kdyz se chce, vsechno jde. A pokud mas strategii, ktera ma absolutne mechanicke vstupy a vicemene mechanicke vystupy, tak bych tomuto tematu venoval pozornost. Protoze ze vsech tech komponent Te spis zradi internetove pripojeni nez TWS a Excel.

Jednu vec nechapu. Napsal jsi "radsej si vystacim s dobre otestovanym prostredim brokera, kde prikazy visia sa serveroch napojenych priamo na burzu s backup-om". Excel je pouze nastroj, ktery pripravuje prikazy pro TWS platformu. To znamena, ze pokud vysles prikaz z Excelu na nakup 100 akcii MSFT za LIMIT $30, ma to uplne stejny efekt jako kdybys klikl do TWS a zadal tam prikaz na nakup 100 akcii MSFT za LIMIT $30. Akorat z Excelu to muzes udelat v kodu, ktery treba zavisi na splneni urcite podminky. Excel sam o sobe nedokaze obchodovat na burze, jenom predava prikazy platforme, ktera to zpracovava stejnym stylem, jako by sis tam klikal na tlacitka.

Link to comment
Sdílet pomocí služby

fubu:

v některých případech to může být i zjednodušení. Např. já jsem svého času byl u brokera OEC a jelikož jsem se v DOMu pořád překlikával, tak jsem využil také DDE a jejich vzorového excelu s příkazy a udělal jsem si v excelu tlačítka pro vstup, zadávání PT a SL a posun na BE. A to nejsem žádný programátor, jenom jsem využil jejich vzorových příkladů a fungovalo to k mé naprosté spokojeností. Ale to byly futures.

Láďa

Link to comment
Sdílet pomocí služby

gizmo & yax,
> Akorat z Excelu to muzes udelat v kodu, ktery treba zavisi na splneni urcite podminky. Excel sam o sobe nedokaze obchodovat na burze, jenom predava prikazy platforme, ktera to zpracovava stejnym stylem, jako by sis tam klikal na tlacitka.

Treba rozlisovat 2 veci. Prva, automaticke vykonanie prikazu po splneni urcitej podmienky a druha, manualne zadavanie prikazov. Yaxov priklad si viem predstavit. Sedim za pocitacom spravim si svoj nastroj na klikanie, ktory mi ulahci vykonanie prikazu. Rozhodujem JA nie soft.

Druhy pripad je zlozitejsi, rozhoduje PROGRAM kedy co vykonat (na zaklade aj jednoduchych podmienok) a tu sa mi nepaci pouzitie Excelu a tvorba (alebo uprava) kodu neprogramatorom. Ide o real-time aj ked jednoduche vypocty (mozno len na vonok, pretoze API TWS vykonana zlozite operacie, neviem), sledovanie rozhodovanie a konanie. Dalej len subjetivny nazor, mam par sheetov prepojenych s TOS pomocou DDE a uz neraz sa mi stalo, ze spojenie spadlo a musel som restartovat aj jedno aj druhe. TWS mozno spolupracuje lepsie. Ale opat, bezny clovek si do dosledkov nedomysli vsetky drobnosti, ktore treba riesit. Napr. na zaciatku obchodneho dna (mozno len par sekund) nie je vynimkou,ze ceny opcii lietaju hore-dole. Treba to otestovat ako sa to sprava, co mozem cakat. Spravi to bezny clovek, asi nie.

Na zaver: gizmo, aj ja mam len subjetivny nazor. Kedysi som robil na vyvoji API ovladajuce hardware mobilnych zariadeni, ktore real-time nasavali napr. stav kamiona. A neveril by si, co boli programatori schopni napachat kravin pri vyvoji aplikacii, ktore pouzivali nase API. Takze som skepticky a neodporucam neskusenemu cloveku montovat sa do tvorby kritickych riadiacich prvkov (aj jednoduchych) bez dokladnych testov a odladovania.

Link to comment
Sdílet pomocí služby

> fubu

A prave presne proto jsem navrhl, ze bych se pokusil udelat jednoduchy tutorial, ve kterem bych popsal, jak ty veci funguji a jak je pouzit v praxi. Kazdy si to pak muze vyzkouset treba na demo uctu a zjistit, jestli je to neco, co je pro nej zajimave nebo je to pro nej naprosto nepochopitelna vec a nechce uz o tom ani slyset. A nebo treba muze mit kamarada programatora, kteremu ten tutorial da a on mu to napise.

Nechci tady resit, jestli je urcita strategie plne automatizovatelna nebo ne. Tvoje evidentne neni a tak rozhodovani nechces nechat na pocitaci. To je naprosto v poradku. Ale ostatni treba automatizovatelne strategie maji a byla by skoda je o tuto moznost pripravit tim, ze jim hned na zacatku reknu, ze pokud nejsou programatori, tak at na to rovnou radsi zapomenou. Visual Basic je jazyk, kteremu podle me musi porozumnet snad kazdy, kdo umi aspon trochu anglicky a projevi trochu snahy. Samozrejme kod musi byt srozumitelny. Ten sample XLS od IB neni neco, co by podle me neprogramator mohl jednoduse rozlustit. Volaji se tam navzajem ruzne funkce, vsechno je reseno pres promenne a plno veci je resenych na uplne jinych mistech, nez by i programator cekal. Proto z toho cerpam informace, abych je mohl transformovat do srozumitelne podoby.

Nehlede na to, ze clovek nemusi hned zacit programovat automat na penize, kdyz se mu dostane API k nejake platforme. Yaxuv priklad je take perfektni vyuziti API a pro vetsinu lidi urcite praktictejsi.

Vsem co projevili zajem: tutorial bude :)

Link to comment
Sdílet pomocí služby

gizmo,

>Nechci tady resit, jestli je urcita strategie plne automatizovatelna nebo ne. Tvoje evidentne neni a tak rozhodovani
>nechces nechat na pocitaci. To je naprosto v poradku. Ale ostatni treba automatizovatelne strategie maji a byla by
>skoda je o tuto moznost pripravit tim, ze jim hned na zacatku reknu, ze pokud nejsou programatori, tak at na to
>rovnou radsi zapomenou.

Mam taky pocit, ze si kazdy rozpravame svoje :). Este raz a inak.

To nie je o type strategie, ale o rieseni vsetkych moznych scenarov aj pre tie najjednoduchsie prikazy typu ak cena > XY, potom kup Z. Poskladanie prikazov aby bol skript spustitelny a robil to co ma je len uplny zaciatok. Pokracuje zdlhave testovanie az ktore sravi skript pouzitelnym.

Napr. aka je pravdepodobnost, ze pride zly udaj? 1 k 36000? Mala pravdepodobnst? Ani nie ak moj system prijima udaj kazdu sekundu, takze raz za 10h nastane chyba. Ber to ako priklad, predpokladam, ze API maju IBckari dokladne otestovane a urcite filtrovane. Musim poznat dokladne vlastnosti modulov ktore pouzivam ak chcem vytvorit system, ktory real-time nieco testuje a priestor na chyby je minimalny.

Naviac, priklad s opciami je ilustracny, vseobecne znamy ako chytanie automatov pri otvoreni burzy a btw clanok spomina automaticke riadenie strategie IC pomocou excelu.

Link to comment
Sdílet pomocí služby

> fubu

No ja jsem stabilitu a spolehlivost zatim nijak extra netestoval, ale na zadny problem jsem jeste nenarazil. V dnesni dobe dvoujadrovych (a vice) procesoru neni ani rychlost nejmensi problem. Ve chvili, kdy se zmeni cena v TWS, vidis stejnou zmenu v Excelu. Zkousel jsem sledovat, jestli je tam i nejaka, byt minimalni prodleva, ale pouhym okem se to zjistit neda :). Ani ve vypoctech na tech datech (nejsou slozite) nebyla ani znamka nejake prodlevy. Pokud to nekdo bude chtit pouzivat na Pentiu 266 Mhz a 32 MB RAM s Windows 95, pustenym Winampem a Firefoxem s 30ti tabama, tak to asi moc dobre nepojede. Ale tam uz je problem jinde :)

Co se tyce spatnych dat - myslis tim, ze by Excel zobrazil jinou hodnotu, nez je v TWS? Protoze to jsem jeste nevidel a myslim, ze to ani neni mozne. Pokud teda samozrejme nezkolabuje nejakym zpusobem DDE vrstva nebo jeden z programu. Chystam se udelat nejake load testy, ale budu je delat na naprosto ciste masine. Ono taky zalezi, jak "cisty" pocitac clovek ma. Ja mam v praci buildovaci masinu, na ktere mam Windows XP a ten pocitac bezi 3 roky skoro bez restartu (a nebyt Windows Update, tak asi uplne). Ale neni na nem skoro nic, jenom Perl, par nastroju, skripty a data. Ale jeste se mi fakt za ty roky nestalo, aby to bylo nestabilni a musel jsem to restartovat. Takze predpokladam, ze na ciste masine to pojede rozumne. Kazdopadne podam hlaseni, az budou nejake vysledky ;)

Nejkrasnejsi na programovani je to, ze ten stroj udela uplne presne, co mu clovek rekne (nebo spis napise :)). A pokud to nefunguje, tak je problem jen a jen mezi zidli a klavesnici ;)

Link to comment
Sdílet pomocí služby

este poznamka k
> Protoze to jsem jeste nevidel a myslim, ze to ani neni mozne. Pokud teda samozrejme nezkolabuje nejakym zpusobem > DDE vrstva nebo jeden z programu. Chystam se udelat nejake load testy, ale budu je delat na naprosto ciste masine.
Co znamena "nevidel"? Predstav si, ze tvoj Excel bude bezat cez cca 220dni (# obchodnych dni)/rok, 8hodin/denne, kontrolovat stav kazdu sek. ok mozno kazdych 5sek. Spocitaj si pocet rozhodnuti. Tu hra sakramensku ulohu spolahlivost jednotlivych komponentov a este raz, na toto excel nie je stavany ani testovany!

+
ja ako bezny pouzivatel si do toho zahram warcraft, nakreslim nieco v CADe a k tomu pustim internetove radio.

Link to comment
Sdílet pomocí služby

> fubu

"nevidel" znamena, ze jsem v zivote jeste nikdy nezazil, aby API zmenilo zdrojova data z jednoho programu nez je preda do druheho. Pokud se to stane, tak je API spatne napsane a prvni clovek, ktery to zazije, zada bug vyvojarum a oni to opravi. TWS API neni na svete prvni rok...

Zminil jsi Warcraft - nevim ted teda jaky Warcraft mas presne na mysli, ale budu predpokladat Warcraft 3 (nebo World of Warcraft - to ma myslim podobny engine). To je hra, ktera je udelana kompletne ve 3D v DirectX. Kdyz mi bylo zhruba 17 let, tak jsem pracoval s par nadsenci na jedne RPG hre, kterou jsme psali taky v DirectX (ikdyz to bylo z isometrickeho pohledu jako treba Diablo). A muzu Ti rict, ze Excel s automatickym obchodnim systemem slozenym treba i z 30ti ruznych podminek potrebuje zlomek vypocetniho vykonu, co jakakoliv hra. Hral jsi nekdy Warcraft 8 hodin v kuse? Ja teda asi jo :). A nepamatuju se, ze by mi to spadlo. A pokud jo, tak to spadlo mozna ojedinele, ale rozhodne to nepadalo pravidelne.

Pokud spadne Warcraft, pustis ho znovu. Pokud spadne automaticky obchodni system, muze to mit nasledky horsi. Proto ale broker drzi stop lossy u sebe na serverech. Nebo aspon IB to myslim dela. Takze co? Program vstoupi do obchodu, zada stop loss a pokud spadne, tak to musis nahodit znovu a muzou nastat pouze dva scenare:
- vyhodilo Te to na stop lossu
- jsi v zisku (pokud jsi teda nezadal profit target a nevyhodilo Te to na nem, coz by byla treti moznost)

Tragedie se nekona. Ja do tohoto vlakna prispivam tolik, protoze je to tema, kde muzu lidem pomoct nebo poradit. Tomas s Petrem napsali mnoho vybornych clanku a maji muj respekt za to, co se pro lidi snazi delat. A minimum, co za to muzu nabidnout, jsou moje programatorske zkusenosti a rady z teto oblasti.

Abysme si rozumneli. Ja nechci nikoho podporovat v tom, aby si stahl TWS, sample XLS od IB, povolil DDE v TWS, spatlal dohromady jednu podminku a posilani prikazu a pustil to na ostrem uctu. To snad ale zadny rozumny clovek neudela. Ja chci lidem ukazat, ze je toto vec, ktera jim muze urcite veci usnadnit. Nekomu treba ne, to uz si musi rozhodnout kazdy sam.

Link to comment
Sdílet pomocí služby

gizmo,
pocet vyhodnoteni za rok som uviedol vzhladom na potrebu testovania a nie ze to bude mat retail PC problem spracovat. inak povedane "hodinka" sledovania, ci hodnoty sedia a ako sa system sprava su nedostatocne.

Excel je vyborny nastroj na sledovanie stavu portfolia, pomocne vypocty, alerty. Ale!! pre lailka realizovat cez excel automaticke prikazy velmi velmi nebezpecne.

BTW (trosku off-topic): co obchodujes?

Link to comment
Sdílet pomocí služby

> fubu

Ja jsem zacatecnik a jeste se ucim. Mam nejake zkusenosti s akciemi, ale nic extra. Venoval jsem se intradennimu obchodovani a udelal jsem nejake backtesty, ale porad jsem nebyl schopen si tak nejak predstavit, jak to budu delat pri praci. A odejit z prace si ted nemuzu dovolit, protoze ja potrebuju vydelat mesicne trochu vyssi castky, nez jsou potreba pro zivot v Cesku a na Slovensku. Takze ted je moje pozornost uprena spise na pozicni obchodovani a taky si ctu dost o opcich (ty dostavame v praci a tak uz konecne vim, co to vlastne dostavame :)). Ikdyz ID jsem uplne nezatratil a az bude cas, tak zkusim udelat z 10K dolacu 1M jako Larry :) sranda... (ale stejne to udelam :))

Nicmene ted zrovna programuju jednu automatickou strategii v Excelu s DDE propojenim na TWS. A kdyz uz to delam a musim rozlustit to TWS DDE tak jako tak, rozhodl jsem se, ze napisu navod i pro neprogramatory, jak na to. Protoze to opravdu neni nic sloziteho. Co je trochu slozitejsi je pochopit z toho jejich sample XLS, jak se ty DDE reference konstruuji a to je prace, kterou udelam ja. Jedna z definici, ktera vystihuje mou profesi, by mohla znit "Reverse engineering specialist" ;)

Link to comment
Sdílet pomocí služby

Pro vsechny, kdo projevili zajem o jednoduchy tutorial, jak toto propojeni pouzivat:

Mate nejake specialni prani, jakou jednoduchou automatickou strategii bychom si mohli ukazkove naprogramovat? Myslel jsem, ze by ten tutorial mohl mit nasledujici dily:
1. Vytvoreni "tickeru" a zobrazovani real-time ceny financnich instrumentu v Excelu
2. Vytvareni nakupnich/prodejnich prikazu
3. Naprogramovani jednoduche strategie, ktera by sledovala a vyhodnocovala real-time ceny
4. Automaticke vytvareni nakupnich/prodejnich prikazu na zaklade nami naprogramovane strategie

Bylo by totiz lepsi to vsechno nazorne ukazovat na konkretnim prikladu, nez to vysvetlovat jenom ve vseobecne rovine. Puvodne jsem si myslel, ze bych udelal treba ukazkovou strategii krizeni MA (cena protne MA smerem vzhuru -> nakup, cena protne MA smerem dolu -> prodej), ale tam se musi pocitat ten klouzavy prumer z urcite periody a tak by to mohlo byt na jednoduchy priklad az moc komplexni...

Nebo myslite, ze prvni dva dily by stacily a automaticka strategie uz je neco nejspis moc sloziteho? Jakekoliv navrhy jsou vitany!

Link to comment
Sdílet pomocí služby

  • 2 týdny později...

×
×
  • Vytvořit...