Autorius | Žinutė |
2017-01-31 20:58 #501583 | |
Deja, bet netgi sulyginus esant normalioms rinkos sąlygoms prekiaujančio roboto realios sąskaitos rezultatus su backtestingo už tą patį laikotarpį rezultatais, atsiranda nemaža neatitikimų. Neretai backtesteris visiškai neimituoja, tiesiog praleidžia realios sąskaitos sandorį ir priešingai - realioje sąskaitoje nėra sandorio, kurį rodo backtesteris. Tas daro didžiulę žalą - iš esmės mažina backtestingo rezultatų patikimumą. Kokios galėtų būti tokio reiškinio priežastys.
Kas pirmiausia ateina į galvą tai max. praslydimas. Pvz. EURUSD porai tas praslydimas pagal nutylėjimą paprastai būna 1-2 pipsai. Daugeliu atvejų nėra tokio nustatymo max. praslydimas, bet galbūt iš tikrųjų toks ribojimas yra suprogramuotas, tik prekiautojas negali jo koreguoti, ir todėl nustatymų skyrelyje nemato. Bet visgi - netgi tarkime, kad su latency mums yra gana prastai, kad vykdymas trunka kokias 800-900 milisekundžių. Argi labai tikėtina, kad esant normalioms rinkos sąlygoms kaina per sekundę gali spėti nueiti daugiau 2 pipsų? Nors, tas praslydimas, kuris atsitinka dėlto, kad robotui davus "market" pavedimą, kaina spėja nubėgti tolyn, iš viso nematomas. Praslydimą aktyvuojantis atidėtam pavedimui lengvai galime sužinoti pažiūrėję į log'us, bet šitą tai jau kur rasti... Pagaliau, praslydimu galbūt galima paaiškinti tuos atvejus, kai backtesteris sandorį rodo, o realioje sąskaitoje jo nėra. Na, backtesteris juk negalėjo numatyti praslydimo. Be to, gal pas vieną brokerį robotas spėtų sudadyti sandorį, pas kitą jau nebe, tai negali tas mūsų backtesteris persiplėšti. Tačiau kaip galima būtų paaiškinti atvirkščią atvejį - backtesteris sandorio nerodo, o realioje sąskaitoje toks sandoris yra. Čia jau tiesiog trūksta man fantazijos.. |
|
2017-01-31 21:35 #501587 | |
Astronautas [2017-01-31 20:58]: Tačiau kaip galima būtų paaiškinti atvirkščią atvejį - backtesteris sandorio nerodo, o realioje sąskaitoje toks sandoris yra. Čia jau tiesiog trūksta man fantazijos.. Paaiskinti galima tik zinant sistemos tikslu algoritma, ty pirmiausia reikia zinoti ar tas sandoris turi buti pagal sistema ar neturi. Tada reikia tureti roboto iseities koda ir tyrineti kodel taip yra. Bet aplamai cia kazkokia labai jautri sistema. Kad labai jau reiskia latency, praslydimai, butini market pavedimai, o ne atideti. Cia tu dar rasai apie robotus kurie "gaudo staigius judesius"? Pip pas tave 4 ar 5 skaicius po kablelio. Su 800-900 milisekundziu vykdymu tai reikia dar paieskoti tokio brokerio. The Power of Technical Analysis
Margin Call |
|
2017-02-01 00:59 #501603 | |
MT4 Backtester'is testuoja viską idealizuotu atveju - pavedimai vykdomi momentaliai ir be jokio praslydimo.
Testuodamas jautrias skalpingo strategijas, kurioms kiekviena 0.1 Pipso yra svarbi, aš praslydimą dirbtinai suimituoju papildomai "užmesdmas" didesnį Spread'ą testavimo metu... Aišku, tokiu atveju šiek tiek išsiderina prekybos logika, jei ji paremta atidėtų pavedimų naudojimu (tame tarpe, ir išėjimas iš pozicijos su TP/SL); tačiau šis trūkumas yra mažesnė blogybė, nei testuoti išvis idealizuotomis sąlygomis... |
|
2017-02-04 21:11 #501910 | |
Rašydamas pastarąjį komentarą, neturėjau mintyje robotų-ekstremalų, kurie gaudo staigius judesius. Nu, bet šiandien lyginau realių sąskaitų išrašus su backtestingu už tą patį laikotarpį. Ypač daug neatitikimų radau pas brokerį Forex4you. Pas Roboforex padėtis kiek geresnė. Ir jeigu reali sąskaita sutaptų su backtesteriu, tai prekyba būtų žymiai pelningesnė ..:-(
Dar galvoju, aš juk robotus praeityje testuoju naudodamas Tickstory programą. O Forex rinka yra decentralizuota,todėl normalu, kad pas skirtingus brokerius kotiruotės truputį skiriasi. Tas priklauso nuo to brokerio turimų likvidumo tiekėjų. Naudojant Tickstory programą, imame brokerio Dukascopy tick'ines kotiruotes. Tai backtestingo rezultatai turėtų geriausia atitikti realios prekybos pas Dukascopy rezultatus. Bet aš nesu šio brokerio prekiautojas. Nors, kita vertus, argi kotiruočių skirtumai galėtų turėti nors kiek ženklesnės įtakos rezultatams pas skirtingus brokerius. |
|
2017-02-05 01:03 #501990 | |
Astronautas [2017-02-04 21:11]: Nors, kita vertus, argi kotiruočių skirtumai galėtų turėti nors kiek ženklesnės įtakos rezultatams pas skirtingus brokerius. Priklauso nuo to, su kokio didumo tikslais (pvz., TP) dirba ta strategija... Pvz., jei strategijos veikimo tipas yra agresyvus skalpingas, o brokerio kotiruotės ganėtinai "triukšmingos", testo rezultatai gali būti pernelyg optimistiški. |
|
2017-02-05 01:10 #501993 | |
Be to. Nors naudoji Tickstory kotiruotes, bet testavimą turbūt vistiek atlieki su MT4 testeriu - kol kas dar neteko matyti ne MT softo, kuris pilnavertiškai galėtų testuoti MT robotus *.ex4 formatu. Na, o apie MT testerio Tick'inių kotiruočių problemas jau esu rašęs šioje temoje: #486467
|
|
2017-02-05 06:53 #502038 | |
Entuziazmas visada žavi. Iš Astronauto gausis geras skalperis. TickStory Lite gali korektiškai neveikti, čia skirtumai. Man neįskaičiuodavo spreado, tam tikslui reikia pradžioje šiek tiek paskanuoti su firmine brokerio kotiruote, po to su Tickstory, tada pasigauna. Bet kuriuo atveju testeryje neveiks milisekundžių režimas, Volumes, GetTickCount funkcija. Mt4 brokeriui dažnai suteikia 3-ioji pusė, kuri savo dalį pasiima haircut pavidale. Rinkis ecn FCA brokerį, geriausi sąrašai čia. Čia mano sąžiningai sukurtas tickinis skalperis. fxbot_1.ex4
Fight like ukrainians
|
|
2017-02-05 10:39 #502044 | |
Čia kalbu apie robotus, kurie pozicijas laiko bent keliolika minučių, paprastai - keletą valandų. Jie negaudo staigių judėjimų. Take-profit ir stip-loss stato didelius, bet retai juos pasiekia. Sandoriai uždaromi pagal neatskleidžiamą algoritmą. Tai nežinau, ar čia jau yra tas "agresyvus skalpingas". Ir didele dalimi atvejų testeris tiksliai (maždaug keleto punktelių tikslumu) imituoja realios sąskaitos sandorį. Bet būna, kad pvz. gerai imituoja sandorio atidarymą, bet visai neaišku pagal ką - uždarymą. Bet neretai sandorio, kurį matau backtestingo išraše, nėra realioje sąskaitoje. kartais būna priešingai - sandoris realioje sąskaitoje yra, o backtestinge nėra.
|
|
2017-02-05 10:53 #502046 | |
Galima suprogramuoti robotą, kuris testuojant ir realiai veiktų skirtingai, bet čia turbūt vis tik ne tai.
Jei robote užduotas maksimalus praslydimas, o realiai spreadas išsiplečia daugiau, sandoris neįvyksta. Dar įdomiau su fiksuoto spreado brokeriais, kas yra dirbtina. Spreadas fiksuotas, bet jis pastumiamas į brokeriui naudingą pusę. Ecn brokeriai deklaruoja, kad jie siunčia orderius į ecn tinklą ir nėra brokerio treiderio interesų konflikto. Fight like ukrainians
|
|
2017-02-05 11:18 #502048 | |
Tai įtariu aš, kad jeigu roboto nustatymuose nėra numatyto max. slippage nustatymo, tai nereiškia, kad tokio ribojimo nėra. Tiesiog nėra galimybės šitą ribojimą koreguoti. Dėl spredo, tai paprastai max. spread EURUSD būna 2.5 pip, GBPUSD 3.5 pip. ir t.t. Pažiūrėjus į myfxbook portale skelbiamus spredus, nepanašu kad esant normalioms rinkos sąlygoms spredas galėtų išsiplėsti iki tokio lygio.
|
|
2017-02-05 11:27 #502051 | |
Jei kalbant apie mt4 terminalo robotus ir ecn, tai nesvarbu ar yra nustatymas slippage ar ne, toks ribojimas neimanomas stop ir market orderiamas is principo.
The Power of Technical Analysis
Margin Call |
|
2017-02-06 20:38 #502245 | |
O ar brokeriui paprasčiau uždėti atidėtą orderį, nei įvykdyti market?
Žodžiu, yra taip, su indikatoriumi Latency Tester matuoju vidutinę latency. Indikatoriaus veikimas nesudėtingas. Tiesiog vienas po kito siunčiami atidėti orderiai, ir nedelsiant jie atšaukinėjami. Vidurkis pas mane gaunasi apie 150 ms. Bet market orderius tas pats brokeris, tomis pačiomis tech. sąlygomis jau vykdo apie 500 ms. Kiek žiūriu, kaip viena iš piktybinių brokerių praktikų yra pristatomas orderių vykdymo uždelsimas. Nors, nelabai įsivaizduoju, kokia brokeriui gali būti iš to nauda. |
|
2017-02-06 20:53 #502256 | |
Atideti orderiai nueina tik iki brokerio serverio ir kabo tik pas brokeri. Jie nesiuciami likvidumo tiekejui. Tau atsiunciams tik patvirtinimas, kad orderis priimtas brokerio serverio ir "pakabintas" jame. O tiesioginai- market orderiai siunciami i brokerio serveri, tada is jo persiunciami likvidumo tiekejui, tada gaunamas atsakymas ir persiunciamas tau. Tai yra daug ilgesnis kelias, bet vistiek 500ms visam ivykdymui yra ziauriai daug. Nesaziningam brokeriui uzdelsimas naudingas tuo, kad per ta uzdelsta laika, jis gali isrinkti pacia blogiausia kaina ir ja ivykdyti tavo orderi.
The Power of Technical Analysis
Margin Call |
|
2017-02-06 21:01 #502262 | |
O koks interesas nesąžiningam brokeriui (nekalbu apie market-makerius) prekiautojo duotą pavedimą įvykdyti jam kuo blogesne kaina?
Bet dabar lygiaverčiai nagrinėju ir kito brokerio darbą. Nugi, tikslios statistikos neturiu, rankiniu būdu labai nuobodu būtų ją suvedinėti, tačiau jam labai panašiai trunka ir atidėtą pavedimą išstatyti, ir market pavedimą įvykdyti - apytikriai imant vidutiniškai kokia 120 ms. |
|
2017-02-06 21:30 #502274 | |
Astronautas [2017-02-06 21:01]: O koks interesas nesąžiningam brokeriui (nekalbu apie market-makerius) prekiautojo duotą pavedimą įvykdyti jam kuo blogesne kaina? Tai skirtuma tarp ivykdymo kainos pas likvidumo tiekeja ir tau ivykdytos pasiima sau. Papildomi pinigai. Astronautas [2017-02-06 21:01]: Bet dabar lygiaverčiai nagrinėju ir kito brokerio darbą. Nugi, tikslios statistikos neturiu, rankiniu būdu labai nuobodu būtų ją suvedinėti, tačiau jam labai panašiai trunka ir atidėtą pavedimą išstatyti, ir market pavedimą įvykdyti - apytikriai imant vidutiniškai kokia 120 ms. Nezinau kaip ten pas tave, bet dabar specialiai pabandziau Vipro ir Admiral. Skirtumas akivaizdus. Nu aisku pas Vipro daug silpnesnes technologijos. Redaguota: youngcat (2017-02-06 22:03 ) The Power of Technical Analysis
Margin Call |
|
2017-02-07 08:20 #502329 | |
Žiūriu, pas brokerį Darwinex greitas vykdymas ne tik atidėtų, bet ir market pavedimų, labai panašiai kaip pas AdmiralMarkets.
O kad brokeris market pavedimą vykdo 500 ms, nors iš to paties VPS atidėtą pavedimą pastato per 150 ms. tai tada Neaišku, ar čia jis turi nelabai pažangias technologijas, ar piktybiškai delsia vykdyti. |
|
2017-02-07 10:10 #502352 | |
Čia brokerių greitaveika. Ir gal su mt5 būtų geresni rezultatai. mt4 palikta, nes yra "paklausa".
http://www.ultrafxvps.com/latency-to-brokers.html Fight like ukrainians
|
|
2017-02-07 12:40 #502393 | |
Astronautas [2017-02-07 08:20]: O kad brokeris market pavedimą vykdo 500 ms, nors iš to paties VPS atidėtą pavedimą pastato per 150 ms. tai tada Neaišku, ar čia jis turi nelabai pažangias technologijas, ar piktybiškai delsia vykdyti. Jei brokeris pavedima perduoda kazkokiam likvidumo tiekejui, o sis dar neaisku kur, ir kokiais keliais tai vyksta, tai uzdelsimas nuo viso sito ir pareina. Gali ir piktybiskai, o gali del neturejimo geru likvidumo kanalu ilgai vykdyti. Bet jei sutampa atidetu orderiu ir market ivykdymo laikai, tai jau yra pagrindas manyti, kad viskas vyksta tik brokerio virtuveje. Nors brokeris gali taip sukonfiguruoti savo virtuve, kad tie laikai skirtusi dirbtinai. Ir aplamai ir MetaTrader ir kiti retailo terminalai skirti gerai atlikti brokerio darba ir padidinti jo pelna. O treideriu problemos softo kurejams ir brokeriams rupi maziausiai, tiksliau - is viso nerupi, rupi tik kaip kuo daugiau isnaudoti. The Power of Technical Analysis
Margin Call |
|
2017-02-09 17:50 #502778 | |
Ne, nu rimtai, kuo atidžiau žiūriu tuo neramiau darosi. Kas iš to, jeigu backtestinge robotas rodo puikius rezultatus, kai realioje sąskaitoje jo prekyba visiškai iškraipoma. Ypač prasta padėtis su brokeriu Forex4you. Esu paleidęs pas juos keletą robotų-scalperių, bet ne ekstremalų kokių, kurie staigius judėjimus per naujienas gaudytų. Ir realioje sąskaitoje nėra ne mažiau katvirtadalio sandorių, kuriuos atome to paties laikotarpio backtestingo išraše. Dar yra atvejų, kai backtestinge ir realioje sąskaitoje sutampa sandorio atidarymas, bet nesutampa uždarymas, ir pan. Skaičiuoju, kad trečdalis backtesterio imituotos prekybos dingsta nežinia kur. O jos vietoje atsiranda sandoriai, kurių nerodo backtesteris. Tai ko galima tikėtis iš tokios prekybos ..:-( Čia aš jau nekreipiu dėmesio, jei per keletą punktelių skiriasi sandorio atidarymo ir uždarymo kainos. Skaičiuoju, kad toks sandoris atitinka realioje sąskaitoje ir backtesteryje. Tą keleto punktelių skritumą galima paaiškinti skirtingu spredu ir nuslydimais. Bet argi spredu ir nuslydimais galima paaiškinti, kad realioje prekyboje dingsta trečdalis to, kas yra backtesteryje, ir vietoje to atsiranda visai kiti sandoriai? Pas Roboforex'ą padėtis kiek geresnė, bet ten irgi yra tų neatityikimų.
Žodžiu, čia neatradau nieko naujo. Forex literatūroje siūloma susitaikyti, kad vienas kitas sandoris gali tokiu būdu nesutapti. Bet trečdalis prekybos taip, tai jau Žodžiu, gal kas žinote, koks neatitikimų procentas turėtų būti toleruojamas. Dar kilo naivi mintis, gal "virtuviniai" brokeriai, prekiaujantys prieš klientą, kai jiems long'ai ir short'ai visai nesusidengia, tyčia neleidžia atidaryti dar vieno jiems nepalankaus sandorio, arba patys savo nuožiūra koreguoja uždarymo laiką. Kita vertus, vargu ar brokeris mato, kad sandorius sudarinėja robotas, o ne prekiautojas savo rankomis. Žodžiu, gal reikėtų daryti supereksperimentą. Tą patį robotą paleisti kad ir pas 10 skirtingų brokerių, ir stebėti, pas kurį reali prekyba geriausia atitiks backtesterį. Nes dabar tai visai neįmanoma. Jeigu prekybos rezultatai atitinka backtestingą, tai viskas puiku. Net jeigu savaitė ar visas mėnuo buvo nuostolingas, tai nėra ko nerimauti. Tiesiog tokia buvo rinka pastaruoju metu. Bet jeigu didelė dalis sandorių atsiranda nežinia iš kur, tai jau... |
|
2017-02-09 17:58 #502781 | |
Egis_1974: Be to. Nors naudoji Tickstory kotiruotes, bet testavimą turbūt vistiek atlieki su MT4 testeriu - kol kas dar neteko matyti ne MT softo, kuris pilnavertiškai galėtų testuoti MT robotus *.ex4 formatu. O tai yra skirtumas ...ex4 ar ....mq4 failą naudosime testavimui? |