Pracovní skupina poskytovaná tradery pro tradery. Naleznete v ní odpovědi na své technické otázky týkající se programů Amibroker, Python, InteractiveBrokers TWS a TradeStation Global.
Research OS 1.0 - Práce s historickým složením indexu
V tutoriálu si ukážeme, jak v Research OS pracovat s historickým složením indexu a spustit portfolio backtest pouze na firmách, které byly jeho členy v daném období.
Odstraníme tím survivorship bias a získáme realističtější pohled na to, jak by strategie fungovala v minulosti.
Skript pro export Norgate dat ndu_export_1_6.zip
Doplňky pro testování hist. složení membership.zip
S Martinem jsme situaci podrobně zkoumali po emailu a jelikož jde o replikovatelnou záležitost, publikuji zde sumář:
Došlo k souběhu uzavírání opcí botem a současně likvidaci pozice risk managementem IBKR.
Na malých účtech, které si kvůli marginu nemohou dovolit přiřazení opcí na podklad, IBKR likviduje zejména ITM opce samo. A je to z mého pohledu trochu náhodný proces. Někdy se to děje 10 minut před koncem, někdy pár minut před koncem (IBKR v dokumentaci uvádí "že k tomu může dojít až dvě hodiny před close"). Na vašem účtu se to strefilo zrovna do okamžiku kdy pozici uzavíral bot.
19:58:00 - bot zadává příkazy k uzavření QQQ pozice
19:58:01- IB vytváří příkaz k likvidaci QQQ s informací "YOUR ORDER IS NOT ACCEPTED. PROJECTED POST EXPIRATION MARGIN DEFICIT IS ..."
19:58:02 - prodejní příkazy QQQ z bota jsou vyplněny.
19:58:03 - bot si ověřuje, že jeho pozice jsou zavřeny a vypne se
19:58:13 - Je vyplněn IB příkaz (autolikvidace zahájena v 19:58:01) - výsledkem je short 2x QQQ strike 719C
Bot si bez problémů poradí se situací, kdy IBKR likviduje opce první. To je to, co se mi na účtu zatím vždy dělo.
Tento souběh ale posunul pořadí - bot nejprve pozice uzavřel sám, a IBKR opce zlikvidovalo potom. Toto bot neřešil a přestože se mi toto v livetradingu nestalo, může to reálně nastat.
Jedno z řešení může být obchodování cashsettled opcí (bot podporuje například XPS), tam jsem ale zatím netestoval poplatky/likviditu.
Jak bot upravíme - bot se nebude vypínat poté, co uzavře všechny své opce. Ale počká až do konce obchodování (QQQ/SPY se obchodují do 22:15). Pokud by došlo k podobné situaci, tak krátké opce sám uzavře. I ve vašem případě zde bylo dost času.
V tuto chvíli je tak potřeba mít čas uzavírání pozic pod dohledem a pokud by k podobnému souběhu došlo, tak pozici uzavřít ručně ještě večer.
Připravujeme nový tutoriál, ve kterém navážeme na portfolio backtest a poprvé ho spustíme na skutečném historickém složení indexu.
Ve videu si ukážeme, jak z datafeedu Norgate Data získat historické složení S&P 500 a jak ho zapojit do portfolio backtestu v našem Research OS.
Poznatky z vývoje:
Když testujeme strategii na dnešním složení indexu, díváme se zpětně jen na firmy, které jsou jeho členy dnes. V historii ale bylo složení indexu jiné, některé firmy z něj mezitím vypadly a jiné se jeho členy staly až později. Výsledkem je survivorship bias, který v naší ukázce zvýšil vykázaný výnos téměř o 20 procent oproti testu na skutečném historickém složení.
Zdravím,
u mne na irském účtu vše funguje bez chyby, stačilo jen upravit cestu
BASE_URL = ("https://www.clientam.com/AccountManagement/"
"FlexWebService")
B.
Váhy pro NDX SMO (100K účet):
buy 2 (4.50605%) SNDK
buy 8 (8.16995%) MU
buy 4 (4.18394%) LITE
buy 7 (5.90459%) STX market on open
buy 11 (5.11379%) WDC market on open
Dobrý den,
ověřte si formát base_url na řádku č. 55 skriptu
# step 2: GetStatement -> either "not ready yet" or the statement itself
BASE_URL = ("https://ndcdyn.interactivebrokers.com/AccountManagement/"
"FlexWebService")
musí se shodovat s url u správy účtu, kde Flex nastavujete
Pokud jste měl účet otevřený přes TS Global, pak ta cesta může být jiná.
B.
K tomuto ještě tutoriál není. Čekám až se ustálí vývoj a tutoriál připravím. Nevím jestli hledáte návod na samotné spuštění Python skriptu nebo spíš jeho nastavení? Coby obecný návod pro spuštění Python skriptu můžete použít tento: https://www.financnik.cz/forum/topic/5107-finwin-autotrader-skript/#comments
Pište na čemkoliv se zaseknete a nasměruji. Plus tutoriál připravím.
Zdravím,
snažím se rozchodit skript, který @petr sdílel v posledním tutoriálu. A hází mi to chybu viz. screen.
Navíc při snaze vytvořit Flex query v IB mi nejde měnit period. Nesetkal se s tím někdo?
T.
RRR je negativní - typické pro tento typ strategie. Konkrétně 1: 1:56 (riskuji 1.56 abych vydělal 1). Úspěšnost cca 70%. SL vidím také jako rozhodující faktor. Nevystupuji klasicky stop příkazem, ale sekvencí limitních příkazů (ukončující celý spread ideálně za mid). A plnění na této sekvenci bude klíčové. Proto jsem strategii zas tolik nepiloval a spíše ji rychle dostal do live trading protypu. Chci nasbírat cca 100 výstupů na stop-lossu a dál se odpíchnout od toho, jak konkrétně budou plněním vycházet.
Dobrý večer, asi je zbytečné to nějak komplikovat. Už jsem minulý týden přešel na stahování MR3000 signálů z nového dashboardu a zvykl jsem si. Díky za reakci.
Aleš
Zajímavé ... co si pamatuji tak u spreadů se SL byl trochu problém se skluzem, ale to určitě testujete taky.
Jak Vám vychází % úspěšnost a RRR u této strategie?
Ano, přijde mi, že právě ten stop-loss je to, co dělá z výpisů reálně použitelnou strategii. Toto je porovnání mého backtestu se stop-lossem a bez:
Samozřejmě u jinak nastavené testu to bude vycházet jinak. Nicméně v zásadě mi to i u option omega vycházelo stále dost podobně. U stop-lossů je pak otázka plnění. Já vypisuji call vertikály - tedy ztráta nastává v momentě, kdy trhy rostou. Tento pohyb nebývá tak dynamický jako poklesy, takže se jeví, že by to mohlo fungovat solidně. Ostatně to je hlavní důvod, proč tu strategii jedu živě - abych získával informace o tom, jak konkrétně probíhá plnění.
Zdravím,
ten 2x SL prémia vám vychází nějak lépe v backtestech? Není to trochu zbytečný když máme SL již definovaný v tom samotném spreadu. A jaká je Win úspěšnost obchodů v backtestu?
Díky za reakci.
T.
Aleši, přemýšlím o tom. Asi by se to dalo aplikovat, ale na druhou stranu - u signálů je vždy datum, pro jaký den jsou publikovány. To mi přijde jako dostatečné. Plus systém posílá email v momentě, kdy se ty signály zprocesují.
Server od roku 2003 vydává
Centrum finančního vzdělávání, s.r.o. info@financnik.cz
Upozornění: Všechny informace poskytované na Financnik.cz jsou určeny výhradně ke studijním účelům témat týkajících se obchodování na burze a neslouží v žádném případě coby konkrétní investiční či obchodní doporučení. Provozovatel serveru ani jednotliví autoři nejsou registrovanými brokery či investičním poradcem ani makléřem. Jsou-li na stránkách zmiňovány konkrétní finanční produkty, komodity, akcie, forex či opce, vždy a pouze za účelem studia obchodování na burze. Vydavatel serveru není zodpovědný za konkrétní rozhodnutí jednotlivých uživatelů. Burzovní obchodování a investování s finančními instrumenty (a komoditami obzvláště) je vysoce rizikové. Rozhodnutí obchodovat komodity a akcie je odpovědností každého jednotlivce a jedině on sám nese za svá rozhodnutí plnou odpovědnost. Nikdy se nepouštějte do obchodů, jejichž podstatě plně nerozumíte. Pamatujte, že burza má svá pravidla, kterým je třeba porozumět, než začnu riskovat své vlastní peníze!