<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MQLmagazine.com &#187; Alte platforme</title>
	<atom:link href="http://mqlmagazine.com/ro/category/alte-platforme/feed/" rel="self" type="application/rss+xml" />
	<link>http://mqlmagazine.com/ro</link>
	<description>Sursa ta de MetaTrader</description>
	<lastBuildDate>Sat, 10 Jul 2010 16:10:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Progress Apama : Cat de adanca e gaura de iepure a HFT ?</title>
		<link>http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/</link>
		<comments>http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 19:39:04 +0000</pubDate>
		<dc:creator>Bogdan Caramalac, MQLmagazine sr.editor</dc:creator>
				<category><![CDATA[Alte platforme]]></category>
		<category><![CDATA[apama]]></category>
		<category><![CDATA[hft]]></category>
		<category><![CDATA[platforma]]></category>
		<category><![CDATA[progress]]></category>
		<category><![CDATA[studio]]></category>

		<guid isPermaLink="false">http://mqlmagazine.com/ro/?p=1162</guid>
		<description><![CDATA[[English version] [MQLmagazine.com in english] [Editia romaneasca]
Luna aceasta, in timp ce asteptam noul Strategy Tester, m-am simtit destul de lipsit de idei. Am realizat ca ce incercam noi sa producem aici &#8220;se usuca&#8221;. Backtestul este crezul traderului, ceea ce-i da incredere in strategiile de trading pe care le incearca.
Pe la mijlocul lui martie am dat [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mqlmagazine.com/other-platforms/progress-apama-how-deep-does-hft-rabbit-hole-go/" target="_top">[English version]</a> <a title="[MQLmagazine.com in english]" href="http://mqlmagazine.com" target="_top">[MQLmagazine.com in english]</a> <a title="[Editia romaneasca]" href="http://mqlmagazine.com/ro" target="_top">[Editia romaneasca]</a></p>
<p>Luna aceasta, in timp ce asteptam noul Strategy Tester, m-am simtit destul de lipsit de idei. Am realizat ca ce incercam noi sa producem aici &#8220;se usuca&#8221;. Backtestul este <strong>crezul</strong> traderului, ceea ce-i da <strong>incredere</strong> in strategiile de trading pe care le incearca.</p>
<p>Pe la mijlocul lui martie am dat peste doua webinarii inregistrate despre Progress Apama intitulate <strong>&#8220;Construieste Repede, Executa Repede&#8221;</strong> (<em>Build Quickly, Run Fast</em>) si <strong>&#8220;De la concept la profit, imediat&#8221;</strong> (<em>From Concept to Profit in No Time Flat</em>) . Sigur, obiectul nostru de studiu nu este platforma Progress Apama. Aceasta e o platforma HFT (<em>high frequency trading</em> &#8211; trading de viteza inalta) institutionala, pe care n-o sa punem mana niciodata, dar este interesant totusi sa vedem modul lor de abordare a HFT, ca si unele dintre conceptele lor atat despre dezvoltarea sistemelor cat si despre executie. Nici macar marii jucatori de piata nu o folosesc, este pentru o elita foarte mica, <em>la crème de la crème</em>, din moment ce au doar in jur de 120 de clienti la nivel global.</p>
<p>Problema e ca HFT devine mainstream in tradingul institutional. Si cand institutionalii fac ceva, e bine sa-ti deschizi urechile mai larg, pentru ca ei iau intotdeauna banii si probabil au dreptate! Dupa un studiu al Tabb Group, <strong>firmele HFT din SUA sunt doar 2% din cele 20.000 de firme de trading, si fac in jur de 73% din volumul total al actiunilor tranzactionate.</strong> Se pare ca toata piata de actiuni e sub o &#8220;preluare ostila&#8221; din partea HFT, si procesul nu se va opri. Din ce in ce mai multe firme de trading isi achizitioneaza tehnologii HFT, sau, daca nu e posibil, cel putin algoritmi in genul HFT care sa ruleze pe platformele proprii, asa ca trendul nu se va opri. Este important ca mediul de retail sa ramana constient de ce se intampla acolo, pentru a nu avea o perceptie asupra pietei alterata de paradigme prea vechi care nu se mai aplica dezvoltarilor din prezent.</p>
<p>Se pare ca, de la inceputul pietelor, traderii s-au luptat intotdeauna pentru latenta, sa fie primii in a avea o anumita tranzactie. Primul exemplu care imi vine in minte e Nathan Rothschild, care a aflat primul ca Napoleon a fost infrant la Waterloo si a facut ca toata piata sa creada ca Napoleon a fost victorios ca sa poata cumpara totul pe nimic. Alt exemplu mai apropiat de zilele noastre e personajul din <strong>Reminiscences of a stock operator</strong> care isi pierde legatura cu piata si isi reduce latenta folosind noua tehnologie a vremii, telexul. Cu fiecare inovatie majora in comunicatii si computing, un nivel s-a adaugat, si ceea ce era cunoscut in anii dinainte ca <strong>piete de nivel II</strong>, unde traderii umani cotau si executau tranzactii, e acum domeniul masinilor de trading de frecventa inalta. La inceput, totul a fost despre secunde &#8211; asa cum e cazul acum cu userii MetaTrader &#8211; apoi a inceput sa se mearga din ce in ce mai adanc, la milisecunde, microsecunde, si chiar nanosecunde, la care se gandesc acum. <strong>Asta s-a intamplat pentru tehnologiile HFT s-au adaptat, si au modificat comportamentul pietei la fiecare nivel de timp: cand milisecundele au devenit disponibile, algoritmii ce rulau pe statii bazate pe secunde au inceput sa dea gres, iar acum, cand e vremea microsecundelor, statiile curente bazate pe milisecunde sunt in curs de upgrade, iar maine, statii bazate pe nanosecude le vor inlocui pe cele de la nivelul milisecundelor.</strong> </p>
<p><em>Sa fiu putin sarcastic: o microsecunda e 10^-6 dintr-o secunda, iar o nanosecunda e 10^-9. E un lung drum tehnologic pana la timpul Planck, care pare a fi intervalul minim de timp : 5.4 x 10^-44 s. La rata curenta, ar trebui sa ne asteptam la o reducere a latentei de 2 puteri ale lui 10 pe an, daca ceva nu se intampla ca sa schimbe curbura reducerii latentei.</em></p>
<p>Ce se intampla cu algoritmii datorita imbunatatirilor aduse in executie si expansiunii birourilor HFT ? Louis Lovas, Chief Architect pentru Progress Apama, explica <strong>&#8220;ori devin invechite, ori li se descopera mecanismul de functionare, ori spreadurile devin prea mari si nu mai sunt profitabile apoi&#8221;</strong>.</p>
<p>Dan Hubscher, Principal Product Marketing Manager &#8211; Capital Markets pentru Progress Apama citand dintr-o cercetare a AITE Group research, spune ca <strong>&#8220;si intr-un mediu relativ stabil, durata de viata a unui algoritm poate sa fie chiar si trei luni&#8221;</strong>. Acesta a fost motivul pentru dezvoltarea Progress Apama Studio, un mediu de dezvoltare rapida a strategiilor. Pentru ca durata de viata a unui algoritm e limitata, e logic ca daca-i reduci timpul de dezvoltare obtii profituri suplimentare ruland acel sistem pentru mai mult timp, timpul extra fiind castigat in timp ce altii se lupta sa-l replice pe platforme cu medii de dezvoltare mai proaste.</p>
<p>Ceea ce urmeaza e un exemplu din demo-ul lor. Strategia e un arbitraj statistic intre doua actiuni. O medie este calculata, impreuna cu Benzi Bollinger la 1.8 deviatii standard. Ecranul urmator arata strategia ruland intr-o instanta selectata (Bank of America vs Citigroup) , iar fereastra Scenario Instances arata ce face algoritmul in fiecare instanta (prima line e Caterpillar vs Chevron, a doua e Bank of America vs Citigroup). E o strategie predefinita, vine ca si template odata cu statia, nu e nimic secret si important in legatura cu ea.</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/apama-algorithmic-trading-accelerator/" rel="attachment wp-att-1164"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Apama-Algorithmic-Trading-Accelerator.jpg" alt="" title="Apama Algorithmic Trading Accelerator" width="660" height="718" class="alignnone size-full wp-image-1164" /></a></p>
<p><strong>Cateva observatii asupra strategiei<br />
1. Asa cum se poate vedea, numai un singur spread a fost setat sa fie afisat &#8211; si veti vedea mai jos, in mod ciudat, au ales spreadul dintre preturile mediene. Daca strategia s-ar baza numai pe executii la piata, ar trebui monitorizate cel putin doua spreaduri, iar criteriul de iesire ar fi opusul celui de intrare; daca strategia s-ar baza pe cotare, ar fi patru spreaduri de monitorizat.<br />
2. Cantitatile sunt predeterminate, ca si parametri, prima e 10, a doua 20. Algoritmul nu pare a le ajusta dupa ratia de hedge.<br />
3. Nu vad niciun contor de ticksi sau perioada folosita pentru calculul Benzilor Bollinger.<br />
4. Campurile de cantitate maxima se folosesc pentru controlul pozitiei. Da, acea pozitie detestata pe care o are si MT5 acum. Daca te uiti in fereastra Scenario Instances, in campurile Current Position, vezi ca valorile nu sunt 10 si 20, nu are numai aceste cantitati la un moment dat, ci pozitiile sunt insumate cu noi si noi ordine de 10 si 20, pana la inchidere sau la atingerea valorii maxime specificate de parametru. Asemenea cumulare a ordinelor poate aparea daca una din Benzile Bollinger se incruciseaza cu piata de mai multe ori, dar fara atingerea celeilalte bare.<br />
5. Campul de timeout pare a avea rolul de depreciere a pozitiei, de a comanda inchiderea pozitiilor dupa 20 de secunde. Nu poate fi un timeout de executie pentru ca acum o secunda e un secol in HFT, iar sa astepti 20 sec pentru o confirmare a unui ordin nu-mi pare a fi HFT deloc. Sau am gresit ue in legatura cu HFT ? Vezi articolul nostru despre MetaTrader, <a href="http://mqlmagazine.com/ro/metatrader5/tick-data-charting-de-ce-nu-un-metatrader-de-nivel-ii/" target="_top">Tick Data &#038; Charting : De ce nu un MetaTrader de Nivel II ?</a> !<br />
6. Priveste scala timpului. Sunt 12 secunde intre timpii etichetati, si sunt intre 3 si 7 executii pe interval. Stii vreun EA care tranzactioneaza asa?</strong></p>
<p>Ce e interesant in Progress Apama e cum sunt construite strategiile. Strategiile pot fi construite chiar fara cod, dar spre deosebire de mediile din alte campuri de activitate care incearca dezvoltare fara cod, Progress Apama reuseste cu un concept complex, dar simplu de folosit. Dupa cum spune Dan Hubscher, <strong>&#8220;conform AITE Group, timpul necesar dezvoltarii unui nou algoritmul, de la achizitia datelor si analiza, pana la dezvoltarea strategiei si pana in productie e de la 10 la 28 de saptamani&#8221;.</strong> Deci un mediu de dezvoltare rapida a aplicatiilor a fost o necesitate naturala, pentru ca asta este problema care loveste competitorii directi de pe piata platformelor institutionale, si pune Progress Apama intr-o pozitie mai favorabila. In sistemul lor de dezvoltare, toate variabilele care trebuie urmarite direct sau calculate, isi au originea in &#8216;blocuri inteligente&#8217; intr-o diagrama de blocuri. Fiecare bloc ia datele ori din piata ori din alt bloc, si le scoate ca si input pentru un alt bloc, generand in acelasi timp variabile interne (care se pot vedea in panoul verde din dreapta).</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/apama-event-modeler/" rel="attachment wp-att-1165"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Apama-Event-Modeler.jpg" alt="" title="Apama Event Modeler" width="949" height="711" class="alignnone size-full wp-image-1165" /></a></p>
<p>Strategia e apoi proiectata ca si diagrama de flux, intr-un mod similar diagramelor folosite cand invatam algoritmica. Fiecare bloc contine conditii si comenzi <strong>scrise in engleza</strong>, toate conditiile, comenzile si varibilele fiind selectabile dintr-un meniu care apare la un clic pe butonul drept.</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/apama-event-modeler-diagrams/" rel="attachment wp-att-1166"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Apama-Event-Modeler-Diagrams.jpg" alt="" title="Apama Event Modeler - Diagrams" width="950" height="709" class="alignnone size-full wp-image-1166" /></a></p>
<p>Dupa cum se vede, are un mediu de dezvoltare aratos, care raspunde rapid ideilor si complexitatii in continua expansiune a algoritmilor de trading, dar adevarata putere a statiei se dezlantuie cand ruleaza strategiile. Asta o face sa fie o platforma de top.</p>
<p>Exemplul cu arbitrajul statistic e destul de simplu, dupa cum urmeaza spreadul ca si conditie. Dar strategiile HFT adevarate sunt mai complicate, fiecare strategie putand urma evenimente asincrone care au loc pe active multiple:</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/progress-apama-algorithmic-trading-rule/" rel="attachment wp-att-1168"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Progress-Apama-Algorithmic-Trading-Rule.jpg" alt="" title="Progress Apama - Algorithmic Trading Rule" width="973" height="729" class="alignnone size-full wp-image-1168" /></a></p>
<p><em>Regula de Trading Algoritmic</em></p>
<pre>
CAND
  pretul MSFT se misca in afara mediei mobile cu 2%
URMATA DE (
        Cosul meu creste cu 0.5%
        SI  (
              Pretul HPQ creste cu 5%
              SAU
              Pretul MSFT scade cu 2%
             )
        )
TOATE INTR-O PERIODA
   de 2 minute, oricand

ATUNCI
    Cumpara MSFT
    Vinde HPQ
</pre>
<p><em></p>
<ul>
<li> streamuri multiple de date</li>
<li> secventiere temporala</li>
<li> secvente de evenimente complexe</li>
<li> constrangeri in timp real</li>
<li> actiuni automate</li>
</ul>
<p></em></p>
<p><strong>Cand am avut noi vreodata o asemenea abordare? Cand a a contat vreodata <strong>restrictia temporala</strong> in care semnalele trebuiau sa vina? Of, am uitat, nici macar nu aveam backtesterul&#8230;</strong>. O observatie interesanta despre viziunea lor, este <strong>CAND</strong>. In repetate randuri, Dan Hubscher si Louis Lovas explica cum <strong>CAND nu e acelasi lucru ca DACA</strong>. Fara comentarii.</p>
<p>Pentru a face acest gen de conditii utilizabile de catre proiectantul strategiei, Progress Apama vine cu o chestie inteligenta numita Procesarea Evenimentelor Complexe:</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/progress-apama-complex-event-processing/" rel="attachment wp-att-1169"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Progress-Apama-Complex-Event-Processing.jpg" alt="" title="Progress Apama - Complex Event Processing" width="973" height="729" class="alignnone size-full wp-image-1169" /></a></p>
<p><em><br />
Procesarea Evenimentelor Complexe:<br />
&#8220;Daca un articol de stiri referitor la IBM e urmat de o crestere cu 5% a pretului actiunii pe orice perioada de 10 secunde si e corelata cu o crestere a indicelui de semiconductori (n.tr. simbol SOX) atunci cumpara 1000 de actiuni IBM&#8221;<br />
</em></p>
<p>Dan Hubscher defineste Procesarea Evenimentelor Complexe ca <strong>&#8220;abilitatea de a lega doua sau mai multe evenimente, chiar daca acestea apar intr-un interval de timp, si de a le determina semnificatia din acea relatie imediat, cum ar fi detectia unui semnal de trading, sau a unei oportunitati de genera alfa.&#8221;</strong></p>
<p><strong>Dar noi nici macar nu avem OnNews(), asa e?</strong>&#8230;</p>
<p>E clar, cuvantul <strong>&#8220;imediat&#8221;</strong> inseamna ca trebuie sa ai cea mai redusa latenta posibila. Eu cred ca CEP poate fi tradusa in MetaTrader, incepand cu implementarile OnChart() si OnTrade() din articolele mele anterioare, si transformarea acestor metode in Procesoare de Evenimente Complexe, care traduc evenimentele de tick si tranzactie in evenimente inteligibile , gen &#8220;MSFT peste Banda Bollinger de 10 secunde&#8221;, urmate de o stampila temporala, si asezate intr-o coada. Coada poate fi preluata de o alta procedura, care aplica restrictiile temporale, genereaza semnale, si le transmite modulelor decizionale. Cititi articolul nostru <a href="http://mqlmagazine.com/ro/modelare-financiara/anatomia-unui-motor-cep-simplu/" target="_top">Anatomia unui motor CEP simplu</a>.</p>
<p>Totusi, ce face Progress Apama sa fie &#8220;masina de un milion de dolari&#8221; nu e niciunul dintre aceste lucruri, pentru ca sunt simple unelte, care pot fi folosite si de statiile de retail, daca developerii ar include asemenea facilitati. Sigur, uneltele de dezvoltare rapida conteaza atunci cand e comparata cu competitorii. Ci, este abilitatea de a rula sute de instante, bazandu-se pe infrastructurile multicore, fara a piede din avantajul de latenta. Si aceasta se face de catre Corelator(ii) de Evenimente.</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/progress-apama-scalability-features/" rel="attachment wp-att-1170"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Progress-Apama-Scalability-Features.jpg" alt="" title="Progress Apama - Scalability Features" width="974" height="730" class="alignnone size-full wp-image-1170" /></a></p>
<p><em><br />
Progress Apama &#8211; Facilitati de Scalare</p>
<ul>
<li> Iesire si latenta</li>
<ul>
<li>Hiperarbore si Secventiator de Evenimente Complexe</li>
<ul>
<li>Milioane de reguli rulate concurent prin algoritmi inteligenti</li>
<li>Determinism</li>
</ul>
<li>Corelator Paralel</li>
<ul>
<li>Utilizeaza optim structuri multicore</li>
</ul>
</ul>
<li> Mai multe instante Apama intr-o retea</li>
<ul>
<li>Corelatorii pot fi imbinati in configuratii CEP arbitrare (conducte, ochiuri de retea, grile)</li>
<li>Router de evenimente</li>
<ul>
<li> Instalare in medii multiprocesor intinse</li>
</ul>
<li>Monitorizare si management enterprise</li>
<ul>
<li> Configurare grafica printr-o consola de management</li>
</ul>
</ul>
</ul>
<p></em></p>
<p>In Progress Apama exista si posibilitatea de a programa. Vine cu limbajul MonitorScript, un limbaj similar Java, dar mai simplu, simultan cu o implementare completa Java:</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/progress-apama-programming-languages/" rel="attachment wp-att-1238"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Progress-Apama-Programming-Languages.jpg" alt="" title="Progress Apama - Programming Languages" width="973" height="730" class="alignnone size-full wp-image-1238" /></a></p>
<p><em><br />
Limbaje de programare in Apama</p>
<ul>
<li> MonitorScript : Apama EPL (Limbaj de Procesare a Evenimentelor)</li>
<ul>
<li> Potrivire declarativa + procesare imperativa</li>
<ul>
<li><strong> &#8220;monitoarele&#8221;</strong> vin cu incapsularea</li>
<ul>
<li> instalate/dezinstalate dinamic</li>
</ul>
<li><strong> &#8220;ascultatorii&#8221;</strong> potrivesc, ruteaza si emit evenimente</li>
<ul>
<li> potrivesc secventele de evenimente incluzand constrangerile temporale</li>
<li> sunt setate/eliminate prin <strong>expresii de evenimente</strong></li>
</ul>
<li><strong> &#8220;contextele&#8221;</strong> suporta procesarea paralela</li>
</ul>
</ul>
<li> Suport complet pentru Java</li>
<ul>
<li>Masina virtuala Java incarcata in motorul CEP</li>
<li>interoperabila cu MonitorScript prin rutarea de evenimente</li>
</ul>
</ul>
<p></em></p>
<p>Asa cum am zis mai sus, includ aici parti din codul arbitrajului statistic, cele care cred eu ca explica cel mai bine miezul strategiei, gasite in webinar:</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/progress-apama-statistical-arbitrage-begintrading-action/" rel="attachment wp-att-1305"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Progress-Apama-Statistical-Arbitrage-beginTrading-action.jpg" alt="" title="Progress Apama - Statistical Arbitrage beginTrading action" width="690" height="507" class="alignnone size-full wp-image-1305" /></a></p>
<p>Aceasta este actiunea beginTrading(), care arata dulciurile din MonitorScript. Dupa cum se poate vedea,<br />
<em>route</em> in acest caz, preia datele din piata. Dar ce e mai important aici, consta in declaratiile <em>on</em>. AceThis statement defines <strong>ascultatorii</strong>, cu o sintaxa de tipul:</p>

<div class="wp_codebox"><table width="100%" ><tr id="p11622"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p1162code2"><pre class="mql5" style="font-family:monospace;">on <span style="color: #008000;">&#91;</span>all<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&lt;</span>expresie de eveniment<span style="color: #000080;">&gt;</span> <span style="color: #000080;">&lt;</span>parte de actiune<span style="color: #000080;">&gt;</span></pre></td></tr></table></div>

<p>Primul <em>on</em> pe care il vezi verifica distrugerea instantei de catre utilizator (intr-o maniera similara lui WM_CLOSE trimis catre WindowProc() ), apoi elimina variabilele si inchide instanta. Al doilea <em>on</em> e mai interesant. Aici, al doilea si al treilea sunt scrise intr-o maniera relativ redundanta, pentru ca prima conditie este un <em>and</em> iar a doua este <em>or</em>. Dupa cum noteaza Louis Lovas in comentariu, <em>sa fim siguri ca avem cel putin un tick de la fiecare inainte de a trece mai departe</em>, ar reiesi ca evenimentul Depth() este declansat de un nou tick, dar se pare ca Depth() este declansat cand <em>structura orderbook se schimba</em>, adica atunci cand cel putin un volum se schimba pe Bid sau pe Ask, nu numai cand vine un nou tick (schimbare a Bid sau Ask). Depth() pare a fi declansat similar cu OnBookEvent() care nu a fost completat inca de MetaQuotes, pe care l-am explicat in alte articole unde am spus ca va declansa mult mai frecvent decat OnTick(). Lasand comparatia la o parte si continuand cu codul, vedem a doua conditie, scrisa de Louis numai ca sa arate cat de flexibila e sintaxa, si ceea ce lanseaza, actiunea processNextSpread().<br />
Un lucru interesant e de remarcat in legatura cu ascultatorii. Uitandu-ne la ascultatori vedem o sintax destul de avansata, mult indepartata de rigiditatea sistemului bazat pe evenimente pe care MetaQuotes se chinuie sa-l faca, si care exista deja in alte statii. Mai intai, <strong>ascultatorii se aplica oricarui fel de eveniment</strong> care este legat de datele subscrise. Dincolo de asta, descrierea evenimentului apare chiar in corpul ascultatorului, si poate fi oricare. Chiar si daca vrei sa preiei un tick pe un alt instrument, trebuie sa rulezi un expert separat (daca nu cumva va fi posibil prin OnBookEvent() ), pentru ca OnTick() raspunde numai de instrumentul curent. In acelasi timp, <strong>fiecare ascultator este o conditie de eveniment &#8211; implementare de actiune</strong>, instalabil aproape in orice parte a codului, dand un grad ridicat de libertate programatorului, pe cand in sistemul bazat pe evenimente tratarea fiecarui tip de eveniment este restransa la un singur corp de cod, unde analizeaza toate evenimentele de acelasi tip, si care daca ar fi tradus in MonitorScript ar insemna ca toti ascultatorii lucrand cu acelasi tip de eveniment sa se afle intr-un singur corp de cod.</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/progress-apama-statistical-arbitrage-monitor-core/" rel="attachment wp-att-1297"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Progress-Apama-Statistical-Arbitrage-Monitor-Core.jpg" alt="" title="Progress Apama - Statistical Arbitrage Monitor Core" width="614" height="512" class="alignnone size-full wp-image-1297" /></a></p>
<p>Dupa cum se poate vedea, spreadul e calculat chiar cu preturile de mijloc. Ce e mai important, e ca metoda incapsuleaza toata strategia, si se poate vedea cum trimite ordine, fara sa verifice ordinele precedente, demonstrand inca o data sistemul pozitional.</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/progress-apama-statistical-arbitrage-submit-order-action/" rel="attachment wp-att-1298"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Progress-Apama-Statistical-Arbitrage-Submit-Order-Action.jpg" alt="" title="Progress Apama - Statistical Arbitrage Submit Order Action" width="526" height="476" class="alignnone size-full wp-image-1298" /></a></p>
<p>Se pare ca toata actiunea SubmitOrder() a fost scrisa cu scopul de a face update la variabilele strategiei. Probabil intregul cod ar fi putut sta in processNextSpread(). Ciudat, variabilele de pozitie sunt calculate, prin adaugare sau scadere de volum, in loc sa se foloseasca o functie pentru a pozitia pe fiecare instrument, acolo unde ar fi necesar. Ce nu e clar in cod e unde sunt aplicate constrangerile de pozitie maxima precum si timeout-ul ordinelor.</p>
<p>Ceea ce e esential la Progress Apama e ca poate rula <strong>milioane de reguli concurente</strong> si <strong>face uz de mediile multicore</strong>.</p>
<p>Aici se poate vedea o strategie ruland cu date simulate in 500 de instante pe o masina quad core:</p>
<p><a href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/attachment/progress-apama-500-instances/" rel="attachment wp-att-1167"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Progress-Apama-500-instances.jpg" alt="" title="Progress Apama - 500 instances" width="1063" height="523" class="alignnone size-full wp-image-1167" /></a></p>
<p>Deci, daca Louis Lovas spune ca merge pe o masina quad core, si nu avem niciun motiv sa nu-l credem, inseamna ca Irene Aldridge a avut dreptate, si <strong>cerintele din ce in ce mai ridicate ale gamerilor au impins tehnologia pana la punctul la care calculatoare care pot rula HFT se gasesc in fiecare casa</strong> ; dar, <strong>ce broker iti va da latenta redusa pentru contul tau sarac de retail</strong> si cine iti va da o platforma care sa nu <strong>risipeasca</strong> resursele procesorului ?</p>
<p>Desigur, n-o sa putem niciodata sa facem asa ceva. Userii MetaTrader nici macar nu au bani suficienti pentru cerintele de marja necesare rularii portofoliilor care reconstruiesc indecsi cu greutatile specifice necesare, asa ca tradingul low latency se scoate din discutie. MetaTrader nu va avea niciodata latenta redusa. Totusi, anumite elemente de HFT, cum ar algoritmii sau procesarea evenimentelor complexe pentru cateva strategii cu o scalare redusa, care se intind pe un numar foare limitat de active, pot fi aduse in MetaTrader. Scopul acestui articol a fost de a introduce cititorii in lumea HFT a problemelor specifice ei.</p>
<div class='dd_after'><table><tr><td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/&amp;t=Progress+Apama+%3A+Cat+de+adanca+e+gaura+de+iepure+a+HFT+%3F&amp;s=compact' height='18' width='120' frameborder='0' scrolling='no'></iframe></td><td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/&amp;title=Progress+Apama+%3A+Cat+de+adanca+e+gaura+de+iepure+a+HFT+%3F&amp;t=2' height='18' width='120' frameborder='0' scrolling='no'></iframe></td><td><script type='text/javascript'><!--yahooBuzzArticleHeadline=Progress+Apama+%3A+Cat+de+adanca+e+gaura+de+iepure+a+HFT+%3F;//--></script><script type='text/javascript' src='http://d.yimg.com/ds/badge2.js' badgetype='small-votes'></script></td><td><iframe src='http://api.tweetmeme.com/button.js?url=http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/&amp;source=&amp;style=compact' height='20' width='90' frameborder='0' scrolling='no'></iframe></td><td><script type='text/javascript'> var fbShare = {url: 'http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/',size:'small'}</script> <script type='text/javascript' src='http://widgets.fbshare.me/files/fbshare.js'></script></td></tr></table></div><!-- Generated by Digg Digg plugin, 
    Author : Yong Mook Kim
    Website : http://www.mkyong.com/blog/digg-digg-wordpress-plugin/ -->]]></content:encoded>
			<wfw:commentRss>http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AlgoDeal &#8211; companionul de cariera pentru quantul de retail</title>
		<link>http://mqlmagazine.com/ro/job-cariera/algodeal-companionul-de-cariera-pentru-quantul-de-retail/</link>
		<comments>http://mqlmagazine.com/ro/job-cariera/algodeal-companionul-de-cariera-pentru-quantul-de-retail/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 20:30:41 +0000</pubDate>
		<dc:creator>Bogdan Caramalac, MQLmagazine sr.editor</dc:creator>
				<category><![CDATA[Alte platforme]]></category>
		<category><![CDATA[Job & Cariera]]></category>

		<guid isPermaLink="false">http://mqlmagazine.com/ro/?p=822</guid>
		<description><![CDATA[[English version] [MQLmagazine.com in english] [Editia romaneasca]
Cand am numit acest site &#8220;MQLmagazine&#8221;, m-am gandit, bineinteles, la MetaTrader. Dar nu sunt un fundamentalist. Daca apare vreo noua unealta de backtesting multiasset, este binevenita la MQLmagazine. Si am fost placut surprins sa gasesc AlgoDeal&#8230; Niciodata nu uita sa navighezi pe grupurile LinkedIn, nu stii niciodata ce se [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mqlmagazine.com/job-career/algodeal-the-career-companion-for-the-retail-quant/" target="_top">[English version]</a> <a title="[MQLmagazine.com in english]" href="http://mqlmagazine.com" target="_top">[MQLmagazine.com in english]</a> <a title="[Editia romaneasca]" href="http://mqlmagazine.com/ro" target="_top">[Editia romaneasca]</a></p>
<p>Cand am numit acest site &#8220;MQLmagazine&#8221;, m-am gandit, bineinteles, la MetaTrader. Dar nu sunt un fundamentalist. Daca apare vreo noua unealta de backtesting multiasset, este binevenita la MQLmagazine. Si am fost placut surprins sa gasesc AlgoDeal&#8230; <em>Niciodata nu uita sa navighezi pe grupurile LinkedIn, nu stii niciodata ce se ascunde pe acolo.</em></p>
<p>AlgoDeal vine cu un model de business interesant, care este bine primit, mai ales de noi, quantii ghinionisti din retail. Cred ca ar putea fi numit <strong><em>prop trading online</em></strong>. Similar cu automatizarea facuta de grupurile avansate de prop trading, iti poate tranzactiona strategia, cu banii lor, si-ti va da o parte din profit, desigur, daca strategia e selectata de ei. In acelasi timp activitatea nu e inchisa intr-o cladire undeva intr-un oras civilizat din vest, unde primesti acces daca reusesti sa treci de un HR arogant, e ceva ce poti lucra acasa. Platforma este proiectata pentru quanti, astfel incat ar trebui sa-ti dea toata puterea unei platforme de backtesting pentru quanti, pe care n-ai putea altfel sa pui mainile decat daca ai lucra intr-un hedge fund, lucru care stim ca e imposibil pentru quantii uitati de Dumnezeu (si care au devenit quali (<em>de la qualitative trading</em>) din aceste motive ) din Europa de Est.</p>
<p><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/02/AlgoDeal.jpg" alt="AlgoDeal" title="AlgoDeal" width="752" height="552" class="alignnone size-full wp-image-828" /></p>
<p>Totusi, Market Runner (asa se numeste platforma) nu este o platforma de trading. Pentru ca nu-l vei folosi niciodata pentru trading. Este o <strong>platforma de multiasset backtesting</strong>. Nu e chiar usor de instalat. Sectiunea de suport a site-ului lor acopera destul de bine instalarea, dar probleme pot aparea. Pentru ca Market Runner e scris in Java. Trebuie sa ai JDK instalat, plus un IDE, si cel de recomandat de echipa lor este Eclipse (ai detalii destul de extinse de instalare in sectiunea de suport, iar echipa e gata sa te ajute daca ai probleme). De asemenea fisierele din interiorul backtesterului sunt pregatite sa fie folosite impreuna cu Eclipse.</p>
<p>Conceptul este interesant. Diferit fata de alte instrumente pentru quanti, <strong><em>nu are nevoie de download separat de date, pentru ca vine cu datele proprii</em></strong>. De asemenea, pe langa testarea locala, are si <strong><em>testare la distanta, facuta pe serverele lor</em></strong>. Alte instrumente care sunt pe piata nu numai ca sunt scumpe, dar si extrem de dependente de calitatea datelor. In al doilea rand, Market Runner nu este un pachet de matematica sau statistica, precum MatLab, S-Plus sau R, unde ar trebui sa aproximezi procesul de backtesting, Market Runner este intr-adevar un motor de backtesting, si ceea ce scrii sunt direct strategii. Strategiile sunt clase, iar programul principal este chiar backtesterul, deja scris:</p>
<p><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/02/AlgoDeal-Sample.jpg" alt="AlgoDeal Sample" title="AlgoDeal Sample" width="594" height="268" class="alignnone size-full wp-image-963" /></p>
<p>Vezi buy(1) si sell(1) ? Nu e nicio inchidere aici&#8230; ceea ce inseamna ca acestea nu sunt &#8220;ordine&#8221;, ci &#8220;tranzactii incheiate&#8221;. Buy deschide pozitia, la deschiderea barei (evenimentul <strong>onBarOpen()</strong>) si Sell inchide pozitia la inchiderea barei (evenimentul <strong>onBarClose()</strong>). Iti aduci aminte o discutie triviala, despre cum a fost MT5 prostit din &#8220;motive conspirative&#8221; prin &#8220;eliminarea hedgingului&#8221; ? Ei, se pare ca si platformele de hedge fund se supun acelorasi reguli ale lumii civilizate a pietelor, detestatul <strong>sistem pozitional</strong>.</p>
<p>Si backtestul arata cam asa:</p>
<p><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/02/AlgoDeal-Backtester.jpg" alt="AlgoDeal Backtester" title="AlgoDeal Backtester" width="648" height="460" class="alignnone size-full wp-image-962" /></p>
<p>Asa ca Market Runner are cateva avantaje:<br />
1. Backtesting multiasset <strong>care nu e inca disponibil pe MetaTrader</strong>. <em>Ca observatie, <strong>noi cerem de patru ani un backtester multiasset de la MetaQuotes</strong> , si niste tipi de care nici n-am auzit l-au facut in cateva luni!</em><br />
2. Este bazat pe Java, asa ca iti permite sa-ti formezi abilitati de programare in Java, care sunt bune pentru cariera, caci hedge funds cauta intotdeauna programatori Java. Java e totusi o sabie cu dublu tais, ceea ce castigi in termeni de abilitati pierzi pe linia de acomodare cu limbajul.<br />
3. E gratuit &#8211; deci castiga interoperabilitate cu MetaTrader. Probabil in viitor ceea ce MetaTrader nu va putea verifica in backtest va fi verificabil prin AlgoDeal si ce AlgoDeal nu va tranzactiona va fi tranzactionabil pe MetaTrader.</p>
<p>Totusi, limita pare a fi similara cu cea de la MetaTrader, date de un minut. Nu sunt complet convins de aceasta limita, stiu ca se aplica la futures. Asa ca trebuie sa ai minte sursa de date inainte de a incerca sa faci pe backtesting la strategii cu actiune sub 1 minut.</p>
<p>In concluzie, AlgoDeal se adauga la arsenalul quantului de retail alaturi de MetaTrader5 avand rol dublu, de unealta de backtesting cat si de unealta de cariera. HR-ii ultra selectivi ar putea sa-ti arunce CV-ul la gunoi daca vad MetaTrader5 si MQL, dar daca AlgoDeal si Java apar, atunci norocul ti se poate schimba. In acelasi timp, poti vedea acelasi strategii din MetaTrader5 prin ochii unui backtester diferit. Pana atunci, iti poti chiar planifica strategiile MetaTrader5 direct pe AlgoDeal, evitand pierderea timpului in timp ce astepti backtesterul MT5.<br />
Viziteaza <a title="site-ul lor" href="http://www.algodeal.com/" target="_top">site-ul lor</a> sau <a title="discutia pe LinkedIn" href="http://www.linkedin.com/e/vaq/14045391/1813979/12117966/view_disc/" target="_top">discutia pe LinkedIn</a>.</p>
<div class='dd_after'><table><tr><td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://mqlmagazine.com/ro/job-cariera/algodeal-companionul-de-cariera-pentru-quantul-de-retail/&amp;t=AlgoDeal+-+companionul+de+cariera+pentru+quantul+de+retail&amp;s=compact' height='18' width='120' frameborder='0' scrolling='no'></iframe></td><td><iframe src='http://widgets.dzone.com/links/widgets/zoneit.html?url=http://mqlmagazine.com/ro/job-cariera/algodeal-companionul-de-cariera-pentru-quantul-de-retail/&amp;title=AlgoDeal+-+companionul+de+cariera+pentru+quantul+de+retail&amp;t=2' height='18' width='120' frameborder='0' scrolling='no'></iframe></td><td><script type='text/javascript'><!--yahooBuzzArticleHeadline=AlgoDeal+-+companionul+de+cariera+pentru+quantul+de+retail;//--></script><script type='text/javascript' src='http://d.yimg.com/ds/badge2.js' badgetype='small-votes'></script></td><td><iframe src='http://api.tweetmeme.com/button.js?url=http://mqlmagazine.com/ro/job-cariera/algodeal-companionul-de-cariera-pentru-quantul-de-retail/&amp;source=&amp;style=compact' height='20' width='90' frameborder='0' scrolling='no'></iframe></td><td><script type='text/javascript'> var fbShare = {url: 'http://mqlmagazine.com/ro/job-cariera/algodeal-companionul-de-cariera-pentru-quantul-de-retail/',size:'small'}</script> <script type='text/javascript' src='http://widgets.fbshare.me/files/fbshare.js'></script></td></tr></table></div><!-- Generated by Digg Digg plugin, 
    Author : Yong Mook Kim
    Website : http://www.mkyong.com/blog/digg-digg-wordpress-plugin/ -->]]></content:encoded>
			<wfw:commentRss>http://mqlmagazine.com/ro/job-cariera/algodeal-companionul-de-cariera-pentru-quantul-de-retail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

