2009. augusztus 7. (péntek)
H-RSI 1 és 5 perces eredmények a NinjaTraderben – kereskedési költségekkel számolva
A backtest során a NinjaTrader nem veszi figyelembe a beállított kereskedési költségeket. Kifejlesztettünk egy olyan scriptet, melynek használata során a NinjaTrader számolja a kereskedés költségeit a múltbeli tesztek során: a költség értékével feljebb indítja a longot, és short esetében a költség értékével lejjebb indítja a pozíciót. A kötések összes – azaz nyitási és zárási - kereskedési költségét tudatosan a nyitásra terheljük. Mivel a kötések nyitáskor felvették az összes költséget, záráskor nem terheljük a pozíciót a kötési költséggel, mert így a PnL alapú zárási technikák teszteredményei nem módosulnak. A historikus költségszámoló scriptet és a PnL típusú stratégia elveket a szombati előadáson részletesen bemutatom. Az alábbiakban részletes eredmények olvashatók 1 és 5 perces devizapárokra és amerikai részvényekre. Az eredmények mindenhol tartalmazzák a spreadeket illetve a brókerdíjakat.
Íme az eredmények részletesen:
A. 1 perces grafikonok eredményei (EURUSD, USDJPY, MSFT, INTC, DELL)
1. EURUSD 1 perces grafikon – 2008. 07. 31 – 2009. 08. 06.
Kötési időkorlát: 0-24 óra, azaz a nap teljes szakaszában köti az üzleteket.
Spread: 1.4 pont
Kötések a spread (1.4 pont) figyelembevételével - EURUSD
Üzletkötések összesítése - EURUSD
A spread beállítása - EURUSD
Vagyonnövekedési görbe - EURUSD
Üzletkötési lista - EURUSD
Napi nyereségek – EURUSD
Heti nyereségek – EURUSD
Nyereségek havi bontásban - EURUSD
2. USDJPY 1 perces grafikon – 2008. 07. 31 – 2009. 08. 06.
Kötési időkorlát: 0-24 óra, azaz a nap teljes szakaszában köti az üzleteket.
Spread: 1.6 pont
Kötések a spread (1.6 pont) figyelembevételével - USDJPY
Üzletkötések összesítése - USDJPY
A spread beállítása - USDJPY
Vagyonnövekedési görbe - USDJPY
Üzletkötési lista - USDJPY
Napi nyereségek – USDJPY
Heti nyereségek – USDJPY
Nyereségek havi bontásban - USDJPY
3. MSFT 1 perces grafikon – 2008. 10. 01 – 2009. 08. 06.
Kötési időkorlát: 15:30 – 22:00 óra, azaz az amerikai tőzsde nyitva tartása alatt köti az üzleteket. A stratégia kiszűri a tőzsdenyitás előtti (pre-market) és a tőzsdezárás utáni (post-market) időszakokat.
Brókerdíj: 2x0.5 cent/részvény.
Kötések a brókerdíj (2x0.5 cent/részvény) figyelembevételével - MSFT
Üzletkötések összesítése - MSFT
Vagyonnövekedési görbe - MSFT
Üzletkötési lista - MSFT
Napi nyereségek – MSFT
Heti nyereségek – MSFT
Nyereségek havi bontásban - MSFT
4. INTC 1 perces grafikon – 2008. 10. 31 – 2009. 08. 06.
Kötési időkorlát: 15:30 – 22:00 óra, azaz az amerikai tőzsde nyitva tartása alatt köti az üzleteket. A stratégia kiszűri a tőzsdenyitás előtti (pre-market) és a tőzsdezárás utáni (post-market) időszakokat.
Brókerdíj: 2x0.5 cent/részvény.
Kötések a brókerdíj (2x0.5 cent/részvény) figyelembevételével - INTC
Üzletkötések összesítése - INTC
Vagyonnövekedési görbe - INTC
Üzletkötési lista - INTC
Napi nyereségek – INTC
Heti nyereségek – INTC
Nyereségek havi bontásban - INTC
5. DELL 1 perces grafikon – 2008. 10. 01 – 2009. 08. 06.
Kötési időkorlát: 15:30 – 22:00 óra, azaz az amerikai tőzsde nyitva tartása alatt köti az üzleteket. A stratégia kiszűri a tőzsdenyitás előtti (pre-market) és a tőzsdezárás utáni (post-market) időszakokat.
Brókerdíj: 2x0.5 cent/részvény.
Kötések a brókerdíj (2x0.5 cent/részvény) figyelembevételével - DELL
Üzletkötések összesítése - DELL
Vagyonnövekedési görbe - DELL
Üzletkötési lista - DELL
Napi nyereségek – DELL
Heti nyereségek – DELL
Nyereségek havi bontásban - DELL
---------------------------------------------------------
B. 5 perces grafikonok eredményei (EURUSD, USDJPY, MSFT, INTC, DELL)
1. EURUSD 5 perces grafikon – 2006. 05. 09 – 2009. 08. 06.
Kötési időkorlát: 0-24 óra, azaz a nap teljes szakaszában köti az üzleteket.
Spread: 1.4 pont
Vagyonnövekedési görbe - EURUSD
Üzletkötések összesítése - EURUSD
Üzletkötési lista - EURUSD
Napi nyereségek – EURUSD
Heti nyereségek – EURUSD
Nyereségek havi bontásban - EURUSD
2. USDJPY 5 perces grafikon – 2006. 05. 09 – 2009. 08. 06.
Kötési időkorlát: 0-24 óra, azaz a nap teljes szakaszában köti az üzleteket.
Spread: 1.6 pont
Vagyonnövekedési görbe - USDJPY
Üzletkötések összesítése - USDJPY
Üzletkötési lista - USDJPY
Napi nyereségek – USDJPY
Heti nyereségek – USDJPY
Nyereségek havi bontásban - USDJPY
3. MSFT 5 perces grafikon – 2008. 10. 01 – 2009. 08. 06.
Kötési időkorlát: 15:30 – 22:00 óra, azaz az amerikai tőzsde nyitva tartása alatt köti az üzleteket. A stratégia kiszűri a tőzsdenyitás előtti (pre-market) és a tőzsdezárás utáni (post-market) időszakokat.
Brókerdíj: 2x0.5 cent/részvény.
Vagyonnövekedési görbe - MSFT
Üzletkötések összesítése - MSFT
Üzletkötési lista - MSFT
Napi nyereségek – MSFT
Heti nyereségek – MSFT
Nyereségek havi bontásban - MSFT
4. INTC 5 perces grafikon – 2008. 10. 01 – 2009. 08. 06.
Kötési időkorlát: 15:30 – 22:00 óra, azaz az amerikai tőzsde nyitva tartása alatt köti az üzleteket. A stratégia kiszűri a tőzsdenyitás előtti (pre-market) és a tőzsdezárás utáni (post-market) időszakokat.
Brókerdíj: 2x0.5 cent/részvény.
Vagyonnövekedési görbe - INTC
Üzletkötések összesítése - INTC
Üzletkötési lista - INTC
Napi nyereségek – INTC
Heti nyereségek – INTC
Nyereségek havi bontásban - INTC
5. DELL 5 perces grafikon – 2008. 10. 01 – 2009. 08. 06.
Kötési időkorlát: 15:30 – 22:00 óra, azaz az amerikai tőzsde nyitva tartása alatt köti az üzleteket. A stratégia kiszűri a tőzsdenyitás előtti (pre-market) és a tőzsdezárás utáni (post-market) időszakokat.
Brókerdíj: 2x0.5 cent/részvény.
Vagyonnövekedési görbe - DELL
Üzletkötések összesítése - DELL
Üzletkötési lista - DELL
Napi nyereségek – DELL
Heti nyereségek – DELL
Nyereségek havi bontásban - DELL
Horváth András
tőzsdeszakértő, oktató
Horváth András | 2009-08-06 23:51:30 | Módosítva: 2009-08-07 14:17:19
117 hozzászólás
| 1159 megtekintés
Kedves Péter!
Először is köszönöm a válaszodat, legalább a Draw Down fogalmával tisztában vagyok. Ez ezért elég érdekes paraméter, amire azt hiszem érdemes figyelni egy stratégia készítésekor.
Ahhoz is szeretnék hozzászólni, amit a Ninja és a historikus adatbázis hiányosságairól írtál!
Kicsit feljebb (#14) én is ilyeneket kérdeztem, de mind máig nem kaptam választ senkitől sem.
Amit Zsolt említett, az az opció nekem egyáltalán nem kiválasztható, és a repair és a reset DB sem segít.
Amit a ninják írnak, az mindössze annyi, hogy a NT adatbázisát átnevezheted, törölheted, hogy a NT újat (tisztát, frisset és üreset) generáljon helyette.
Az adatbázist megtalálod a My Documents\NinjaTrader 6.5\db könyvtárban, NinjaTrader.mdb és NinjaTrader.Old.mdb fájlok azok. Ezeket átnevezheted, vagy akár ki is törölheted, vagy másik mappába átrakhatod, a NT következő indításakor némi panaszkodás után újra legenerálja őket és "tiszta lappal" indulhatsz neki mindennek. DE VIGYÁZZ! Az Instrument List is elveszik minden beállítással együtt!!!
(Ezek egyébként közönséges MS Access adatbázis fájlok, amiket MS Access-szel meg is nyithatsz és meg is nézheted mi van benne, ha érdekel.)
Törlés és átnevezés előtt természetesen lépj ki a NT-ből.
Már túl vagyok ezen, de nem segített. Végig néztem a config beállításait is a NT-nek amit letárol a My Documents\NinjaTrader 6.5\Config.xml file-ban, de ott sem találtam arra vonatkozó beállítást, hogy újra lekérje a NT szerverekről a historikus adatokat.
Egyetlen egyszer egy friss install után sikerült lekérni majdnek két évnyi 1 perces forex adatokat, amiket gyorsan ki is exportáltam file-ba, ezt bármikor vissza lehet importálni, viszont ezen adatok frissítése esélytelen, hacsak egy napot is kihagysz és nem indítod el a NT-t, ami ezekhez a historikus adatokhoz hozzácsapja az aktuális adatokat.
Nem tudom, hogy hogyan lehet rábírni a NT-t, hogy ismételten letöltse a historikus adatokat, de sajnos éppen emiatt használhatatlan számomra a NT. Két különféle gépen két teljesen megegyező konfigurációval is két TELJESEN különböző historikus adat mennyiséget szed le és ezért a backtest is és az optimalizáció is teljesen más eredményeket hoz. Fejlesztési szempontból ez így tökéletesen használhatatlan és nem találkoztam senkivel sem, akinek ez ne okozott volna gondot, vagy esetleg talált volna rá megoldást.
Már korábban is feltettem ezt a kérdést Andrásnak is és Zsoltnak is, de egyikük sem tudott olyan választ adni, ami működne. Igaz, azt sem mondták, hogy nem tudják a megoldást... :)
Talán Zsolt minden nap ezzel foglalkozik, ezért neki nincsenek ilyen problémái, vagy esetleg nála valami csoda folytán működik a dolog, de akkor meg azt lenne jó tudni, hogy mitől megy Zsoltnak.
Attól tartok, nekünk ez elég nagy falat... A Ninja-sok meg nem tudnak válaszolni erre!
Jani
#106 | Antal János | 2009-08-27 09:57:18 | Módosítva:: 2009-08-27 10:02:00
Kedves Péter!
Nem elég az adatbázis reset.
Egér jobb gomb a grafikonon, majd válaszd ki a
Reload Historical Data lehetőséget, vagy CTR Shift R billentyű kombinációt használd és megfog jelenni a hiányzó nap.
Mojzes Zsolt
programozó
Tőzsdeiskola Kft.
#105 | Mojzes Zsolt | 2009-08-27 09:27:27
kedves Gábor;
"Hogy a gyertyák is hiányoznak az elég hihetetlen"
Remélem ezzel nem a szavahihetőségemet kérdőjelezed meg.
"azért mert a scriptben benne van a "Historical" feltétel?"
Nem, mindkét script a teljes év folyamán köt, (sokat), de az előadás napja erről a gépről egyszerűen hiányzik.
http://www.ninjatrader-support2.com/vb/showthread. ... azt ugyan nemtudom, hogy hogy kell rename-elni, de sebaj, megkérdezem. aki pedig Linuxos szerverben gondolkodott, az is olvassa el a linket:(((
#104 | Boci Boci Tarka | 2009-08-27 08:24:17 | Módosítva:: 2009-08-27 08:24:47
Hello Péter!
Hogy a gyertyák is hiányoznak az elég hihetetlen,de hogy nem volt tegnap kötés az nem lehet azért mert a scriptben benne van a "Historical" feltétel?
-Gábor-
#103 | Vincze Gábor | 2009-08-26 22:40:17 | Módosítva:: 2009-08-26 22:43:49
szevasztok, itt vagyok megint.
Mindkettőn windows XP fut.
Mindkettőn minden jogtiszta.
Mindkettőn a NInjaTrader szerverét használva kapom az adatokat, nem pedig a gain Capital szervert.
Mindkettőn elvégeztem a a repairDB-t és a reset DB-t.
Mindezekkel együtt, a Toshiba laptomomról teljességgel hiányoznak a 2009.08.25-ei nap gyertyái.(azt nem tudom, hogy csak ez az egyetlen nap a differencia, most nincs türelmem átszámolni 365*24*12 gyertyát. ez a nap azonban bizonyosan hiányzik) Ez volt az előadás napja, és én aznap a másik, a HP laptopomat használtam. A HP laptomon rajta vannak a kérdéses nap gyertyái. Hogyan lehetséges ez?
Most megyek és megkérdezem a ninjákat is erről.
Üdv.
RP
#102 | Boci Boci Tarka | 2009-08-26 22:13:55 | Módosítva:: 2009-08-26 22:16:14
Kedves Zsolt,András,
Sajnos biztosan állíthatom, nem ez az oka.
Reset database megtörtént, többször is.
Ninja szervert használok mindkét esetben.
A jelenség ennek ellenére fennáll.
Kilenc óra után ismét megpróbálom. Amint változást észlelek, leírom ide.
#101 | Boci Boci Tarka | 2009-08-26 19:42:38 | Módosítva:: 2009-08-26 19:43:25
Kedves Péter!
A Options menüpontban, Misk fül, RepairDB, ResetDB.
Utána leellenőrizni, hogy a NinjaTrader szerverre kapcsolódsz-e, majd újra betölteni az instumetumot.
A GainCapital csak 24 óra historikus adatot garantál, ezért teszteléshez a NinjaTrader szervérét használjuk.
Mojzes Zsolt
programozó
Tőzsdeiskola Kft.
#100 | Mojzes Zsolt | 2009-08-26 18:08:23 | Moderálta: Horváth András | 2009-08-26 18:12:46
Szevasztok,
Számítógéphez értő emberek véleményére vagyok kiváncsi.
Két laptopom van. Az egyiket tegnap bevittem az előadásra, ott rátetttem egy stratégiát, (demo) amely a tegnapi nap során kötött néhányat. (András xxxBBADX stratégiájáról van szó egyébként, de ez mellékes)
Ugyanezt a stratégiát az itthoni laptomora is rátettem. A stratégia ugyanaz, minden paraméter, a slippage rovatba beírt érték, a változók ugyanazok, a devizapár ugyanaz, az időtáv ugyanaz, de ezen a laptopon valamiért a tegnapi napon nem köt. Miért lehet ez?
Üdv
RP
Ps: a windosw óráját mindkettő esetében igazítottam az internet időhöz.
#99 | Boci Boci Tarka | 2009-08-26 16:51:54 | Módosítva:: 2009-08-26 16:53:08
Szevasz Jani,
Hogy egyszerű legyek, egyenlőre nekem a "slippage" csak az a rubrika a Ninja Traderben ahova a back test során be kell írni a spread mértékét, amikor a stratégiát rárakod a chartra. (tudod, különben nem számolná)
Pesze a slippagenek van eredeti jelentése is Limitorderek esetében, de én nem foglalkozom vele egyenlőre, mert market order esetében nincs slippage, én meg jelenleg csak market orderes stratégiákat írok.
drawdown = mennyit esik vissza a stratégiád eredménye. (jó esetben csak időszakosan).
max drawdown= a legnagyobb visszaeseés mérete. ez legyen minél kisebb, ugyebár
üdv,
RP
#98 | Boci Boci Tarka | 2009-08-26 16:42:13 | Módosítva:: 2009-08-26 16:53:55
Sziasztok!
Lenne egy tiszteletteljes kérésem!
Elég sokat látok néhány kifejezést, amit - szégyen ide, szégyen oda - nem értek.
Tehát kérlek Benneteket magyarázzátok el nekem, mit jelent a
slippage, vagy a
drawdown?
Ezekkel elég sokat találkozom más oldalakon is, de sehol nem látok rá értelmes magyarázatot, míg a spread-et ismerem, addig ezeket nem.
Várom a válaszaitokat!
Üdv,
Jani
#97 | Antal János | 2009-08-26 14:23:46