<?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; Modelare financiara</title>
	<atom:link href="http://mqlmagazine.com/ro/category/modelare-financiara/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>O metoda statistica pentru autoreglarea sistemelor de trading</title>
		<link>http://mqlmagazine.com/ro/modelare-financiara/o-metoda-statistica-pentru-autoreglarea-sistemelor-de-trading/</link>
		<comments>http://mqlmagazine.com/ro/modelare-financiara/o-metoda-statistica-pentru-autoreglarea-sistemelor-de-trading/#comments</comments>
		<pubDate>Mon, 24 May 2010 21:35:41 +0000</pubDate>
		<dc:creator>Bogdan Caramalac, MQLmagazine sr.editor</dc:creator>
				<category><![CDATA[Modelare financiara]]></category>

		<guid isPermaLink="false">http://mqlmagazine.com/ro/?p=1574</guid>
		<description><![CDATA[[English version] [MQLmagazine.com in english] [Editia romaneasca]
Incep sa scriu acest articol in ideea ca ar putea deveni folositor intr-un interval de timp nu prea indepartat. M-am gandit la asta de ceva vreme. Ideea de autoreglare a aparut de ceva vreme, dar complexitatea extrema a sistemelor de retail trading au facut-o imposibil de aplicat. Totusi, sistemele [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mqlmagazine.com/financial-modelling/a-statistical-method-for-self-tuning-trading-systems" 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>Incep sa scriu acest articol in ideea ca ar putea deveni folositor intr-un interval de timp nu prea indepartat. M-am gandit la asta de ceva vreme. Ideea de autoreglare a aparut de ceva vreme, dar complexitatea extrema a sistemelor de retail trading au facut-o imposibil de aplicat. Totusi, sistemele HFT sunt in general simple, si reguli similare sunt aplicate pe sute de titluri, intr-o maniera parametrizata. De aceea, daca regulile ar fi simple si ar putea fi scrise gen &#8220;<strong>cand</strong> apare asta, <strong>faci</strong> asta, <strong>rezultand</strong> asta&#8221;, in loc de logica de labirint a sistemelor de retail, atunci un set de statistici optime pe datele de intrare (intinzandu-se pe un tablou de cotatii, date de orderbook s.a.m.d.) este premisa pentru operatii gen cotare, primire de executii, take profit sau stop loss in doar cativa ticksi. Asa cum s-a vazut in articolul despre Progress Apama, acesti algoritmi sunt foarte instabili, fiind o continua cautare pentru algoritmi mai noi. </p>
<p>Acum poti intreba, de ce am incerca autoreglarea sistemelor de trading din moment ce institutionalii nu o fac (cel putin la nivelul HFT). Chestia e ca algoritmii lor sunt atat de rapizi incat <strong>pot sa nici nu aiba timp suficient de a inregistra datele in baza de date</strong>, incat autoreglarea, care necesita analiza suplimentara, ar fi o completa pierdere de timp, aducand prea putine imbunatatriri algoritmilor comparata cu latenta suplimentara care se formeaza. <strong>Ce va veni in aceste articole are de aceea o natura experimentala si nu trebuie luata ca solutie, ci ca incercare &#8211; nu pot spune sigur daca exista vreun sens in a incerca sa gasesti, cu statistici obisnuite, parametri recurenti ai unui proces stochastic.</strong></p>
<p>Asa ca, sa presupunem ca un tablou de parametri (cum ar fi volatilitati individuale, medii mobile, volume de executii) va fi inregistrat intr-o baza de date sau un tablou. Trebuie sa luam in considerare si faptul ca un semnal de trading poate exista permanent, la fiecare tick. Presupunand volumul a fi constant, acelasi semnal poate fi in doua directii : cumparare sau vanzare. Fiecare semnal poate avea doua rezultate, unul pentru cumparare, unul pentru vanzare. Putem crea totusi reguli separate pentru vanzare.</p>
<p>De exemplu, un semnal cuprinse de volatilitate si distanta dintre cotatia mediana si media mobila a cotatiei mediene este de : 0.03 stddev si 2 ticksi. Ca sa-l rasucim putin , introducem cotarea, si notam 0 pentru situatia fara executii. Pusa intr-un buy cu 3 ticksi take profit si 2 ticksi stop loss, la un anumit moment, face 2 ticksi profit, pusa intr-un sell, nu are executii. Deci bazei de date cu cumparari va fi adaugata inregistrarea (0.03 ; 2 ; 2), iar celei cu vanzari (0.03 ; 2 ; 0).</p>
<p>Si acum lucrurile devin interesante. La sfarsit, dupa ce datele sunt stranse pentru o masa de semnale care constituie &#8220;numarul mare&#8221; pentru statistici, ne uitam prin baza de date. Mai intai, la o prima privire vom grupa baza de date dupa actiune si rezultat. In acest caz, avem sase stari finale:</p>
<p>1. BUY: coteaza, executie, take profit (BQFT)<br />
2. BUY: coteaza, executie, stop loss (BQFS)<br />
3. BUY: coteaza, fara executie, anulare ordin (BQC)<br />
4. SELL: coteaza, executie, take profit (SQFT)<br />
5. SELL: coteaza, executie, stop loss (SQFS)<br />
6. SELL: coteaza, fara executie, anulare ordin (SQC)</p>
<p>Avem deci sase cazuri. Analizand BUY cu cotatie, executie si take profit, este doar una din cele sase stari si va consta intr-o parte mare a datelor, la fel ca si celelalte stari. Scopul analizei statistice e de a avea o statistica pregatita pentru fiecare caz. De exemplu, cazul nostru ar trebui sa arate, la sfarsit, cam asa:</p>
<p>0.03, 2 :  45% BQFT, 35% BQSL, 20% BQC ; 30% SQFT, 30% SQSL, 40% SQC</p>
<p>Dupa ce masa initiala de semnale impreuna cu rezultatele este colectata, statisticile trebuie sa fie lansate pentru fiecare combinatie de parametri. Avand numere reale ca parametri, cu multe zecimale, va conduce la faptul de a avea un numar mare de cazuri, egal cu numarul de semnale de input, facand statistica imposibila. Asa ca e nevoie de agregarea datelor. De exemplu, pentru fiecare set de parametri, pot fi calculate quartilele si apoi numarul de grupuri cu formula Freedman-Diaconis (e doar un exemplu, alte metode pot fi aplicate). Aceasta va conduce la un numar diferit de grupuri pentru fiecare dintre parametri. Apoi un nou tabel va fi creat, iar fiecare caz va avea o eticheta cu numarul de grupuri. De exemplu stddev 0.03 poate fi denumita ca &#8220;Grupul 1&#8243; pe scara stddev si cei 2 ticksi distanta pot fi &#8220;Grupul 2&#8243; pe scala distantelor in ticksi. Numarul total de cazuri poate fi mai mic sau egal decat produsul grupurilor per fiecare criteriu. Daca ai 3 criterii de 10 grupuri fiecare, pot fi si mai mult de 1000 de cazuri. Mai mult ca sigur, cazurile din miez vor avea un numar mare de situatii inregistrate, iar celelalte de-abia vor avea cate una. Totusi, cu cat mai platykurtica este repartitia situatiilor per cazuri, cu atat mai mare nevoia pentru un &#8220;numar mai mare&#8221; de situatii. Dupa aplicarea statisticilor, statistica bazei de date va arata cam asa:</p>
<p>Grupul 1, Grupul 2 :  45% BQFT, 35% BQSL, 20% BQC ; 30% SQFT, 30% SQSL, 40% SQC</p>
<p>Ce e important e ca trebuie sa fie extrase <strong>statistici relevante</strong>. Daca asa stau lucrurile, care ar fi decizia de trading? Mergi pe o cumparare cu o sansa de profit in 45% din cazuri? Numai ca sa suporti 35% stop losses&#8230; Pentru ca pe latura de vanzari e mult mai rau, cu situatii de stop loss aproape egale cu cele de profit. In acest caz, decizia este una de <strong>cumparare</strong>, dar totusi <strong>cu rezerve</strong>. Daca profiturile nu sunt destul de relevante, nicio decizie nu trebuie sa se ia. Totusi, <strong>este necesar ca algoritmul sa aiba un modul de decizii care sa aleaga numai cazurile relevante pentru trading.</strong>. Dar <strong>cat de rapida trebuie sa fie masina</strong>, intrucat dupa ce datele initiale sunt stranse, cu fiecare nou semnal (care poate fi si un tick, intr-un algoritm gen HFT) va fi lansata o masiva recalculare a marimilor grupurilor pe intreaga baza de date, <strong>pentru a aduce statistica la zi, si in acelasi timp de a veni cu decizia de trading si executia in timp real ?</strong></p>
<p><em>Amintiti-va articolul meu despre motorul CEP. CEP este vazut acolo ca un modul de recunoastere &#8211; lansare, dar daca CEP poate fi utilizat ca dispozitiv de inregistrare ? Daca CEP poate fi legat de motorul statistic? Cata latenta va adauga calculului? Mai putem vorbi de timp real?</em></p>
<div class='dd_after'><table><tr><td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://mqlmagazine.com/ro/modelare-financiara/o-metoda-statistica-pentru-autoreglarea-sistemelor-de-trading/&amp;t=O+metoda+statistica+pentru+autoreglarea+sistemelor+de+trading&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/modelare-financiara/o-metoda-statistica-pentru-autoreglarea-sistemelor-de-trading/&amp;title=O+metoda+statistica+pentru+autoreglarea+sistemelor+de+trading&amp;t=2' height='18' width='120' frameborder='0' scrolling='no'></iframe></td><td><script type='text/javascript'><!--yahooBuzzArticleHeadline=O+metoda+statistica+pentru+autoreglarea+sistemelor+de+trading;//--></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/modelare-financiara/o-metoda-statistica-pentru-autoreglarea-sistemelor-de-trading/&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/modelare-financiara/o-metoda-statistica-pentru-autoreglarea-sistemelor-de-trading/',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/modelare-financiara/o-metoda-statistica-pentru-autoreglarea-sistemelor-de-trading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anatomia unui motor CEP simplu</title>
		<link>http://mqlmagazine.com/ro/modelare-financiara/anatomia-unui-motor-cep-simplu/</link>
		<comments>http://mqlmagazine.com/ro/modelare-financiara/anatomia-unui-motor-cep-simplu/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 19:36:43 +0000</pubDate>
		<dc:creator>Bogdan Caramalac, MQLmagazine sr.editor</dc:creator>
				<category><![CDATA[Modelare financiara]]></category>

		<guid isPermaLink="false">http://mqlmagazine.com/ro/?p=1367</guid>
		<description><![CDATA[[English version] [MQLmagazine.com in english] [Editia romaneasca]
Daca n-ar fi acea abreviere CEP probabil ati intreba cum ceva inerent complex ar putea deveni simplu. Chestia e ca totul incepe mai intai a fi simplu inainte de a evolua in ceva complicat.
Chiar si daca mi-ati citit articolul despre Progress Apama, va reamintesc definitia data CEP de Dan [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mqlmagazine.com/financial-modelling/anatomy-of-a-simple-cep-engine/" 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>Daca n-ar fi acea abreviere CEP probabil ati intreba cum ceva inerent complex ar putea deveni simplu. Chestia e ca totul incepe mai intai a fi simplu inainte de a evolua in ceva complicat.</p>
<p>Chiar si daca mi-ati citit articolul despre <a title="Progress Apama" href="http://mqlmagazine.com/ro/alte-platforme/progress-apama-cat-de-adanca-e-gaura-de-iepure-a-hft/" target="_top">Progress Apama</a>, va reamintesc definitia data CEP de Dan Hubscher : <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>Deci, dat fiind ca trebuie sa se formeze conexiuni intre evenimente, avand o constrangere temporala, <strong>trebuie sa existe o coada de evenimente, care stocheaza evenimente individuale</strong> pe masura ce acestea sunt receptionate. Desigur, <strong>stocarea nu are loc la infinit</strong> intr-o coada in continua crestere; marimea cozii trebuie sa fie dinamica, dar lungimea ei in timp trebuie sa nu depaseasca un interval de timp predeterminat, sa zicem 5 minute. De aceea un motor CEP, care este in principal pentru HFT si trading de Nivel II, nu trebuie sa fie amestecat cu evenimente de Nivel I, deoarece acestea se intind pe un interval de timp mult mai larg, ceea ce ar face nu numai ca stiva de evenimente sa creasca pana la o marime necontrolabila, ci ar si reduce viteza motorului.</p>
<p><strong>Intervalul de timp acoperit</strong> este prima limitare a motorului. </p>
<p>A doua, este legatura dintre evenimentele simple. <strong>Evenimentele simple nu sunt complet independente</strong>, asa cum ar reiesi din webinarul Progress Apama. De exemplu, ai putea considera o intersectie a unei Benzi Bollinger superioare ca si eveniment, dar si intersectia Benzii Bollinger inferioare. Aceste evenimente sunt complet opuse. Daca s-ar intampla amandoua, cand al doilea are loc, primul ar trebui eliminat din coada de evenimente, dupa cum se vede in schema de mai jos, evenimentul 4 este sters. Se poate opta pentru doua cai : o varianta in care evenimentele opuse sunt cautate pe o perioada in coada de evenimente &#8211; <em>perioada dificil de estimat</em> &#8211; sau o alta in care inainte de validarea unui eveniment complex sunt cautate evenimente opuse aflate dupa evenimentele simple care constituie evenimentul complex.</p>
<p>In al treilea rand, este <strong>evitarea redundantei</strong>. Implementarile proaste pot cauza redundanta, adica acelasi eveniment sa fie raportat in continuu.  De exemplu, &#8220;MSFT este sub media mobila de 5 minute&#8221;. O paranteza aici &#8211; <em>nu ma refer la chartul de 5 minute, ci la media mobila a ticksilor care au aparut in ultimele 5 minute, de aceea am zis ca MetaTrader ar trebui sa aibe istoric la nivel de tick si perioada tick activata.</em> Cand aceasta se intampla, e un eveniment. Dar in secunda urmatoare, la tickul urmator, va fi raportata din nou, iar motorul trebuie sa o respinga, pentru ca este deja in coada de evenimente, asa cum e cazul cu evenimentul colorat in portocaliu din schema, care nici nu ia un numar, pentru ca este respins de la inceput. Asemenea situatii ar trebui evitate din start &#8211; motorul nu ar trebui sa piarda timp cu verificarea redundantei, altfel ar trebui sa filtreze aceste evenimente, dar e mai bine ca fluxul de evenimente sa fie curatat dinainte.</p>
<p><a href="http://mqlmagazine.com/ro/modelare-financiara/anatomia-unui-motor-cep-simplu/attachment/motor-cep-simplu/" rel="attachment wp-att-1363"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Motor-CEP-Simplu.jpg" alt="" title="Motor CEP Simplu" width="898" height="531" class="alignnone size-full wp-image-1363" /></a></p>
<p>Aceasta e schema de functionare a motorului. Evenimentele de tick, sau evenimente mai complexe provin din evenimentul OnChart() care este declansat de mai multi EA Tick Event, asa cum am descris in articolul <a title="Evenimente de tick in MQL5 : complicate deocamdata, dar functionale" href="http://mqlmagazine.com/ro/programarea-in-mql/evenimente-de-tick-in-mql5-complicate-deocamdata-dar-functionale/" target="_top">Evenimente de tick in MQL5 : complicate deocamdata, dar functionale</a> .</p>
<p>Prima coloana este numarul evenimentului din coada, de la cel mai recent la cel mai vechi. Fiecare eveniment simplu, care este legat la date, are un numar alocat. Acelasi eveniment, cand are loc pe un instrument diferit, are alocat un alt numar, asa ca aceeasi secventa de evenimente care formeaza un eveniment complex va fi construit din aceleasi evenimente simple dar cu alti identificatori. Motorul trebuie sa stie <strong>ce evenimente sunt opuse</strong>, de exemplu 1 si 3, de asemenea caror evenimente le este permis sa apara de mai multe ori in lant, pentru ca unora le va fi permis (de exemplu evenimentele de executie (cele care incep cu E in schema)). Tuturor celorlalte evenimente li se interzice sa apara de mai multe ori &#8211; dar toturi nu de catre motorul propriu-zis, care anima coada de evenimente &#8211; ci chiar din faza de preprocesare.</p>
<p>In acelasi timp, motorul CEP trebuie sa recunoasca fiecare eveniment complex cunoscand toate aranjamentele de evenimente simple.<br />
De exemplu, daca un eveniment complex pentru Microsoft (MSFT) consta in &#8220;10 urmat de (11 sau (12 si 13))&#8221; in 3 minute, atunci motorul va cauta , in 3 minute : 10, 11 ; 10, 12, 13 ; 10, 13, 12 insemnand toate caile alternative. Daca acelasi eveniment ar fi mapat pentru SP500 (^GSPC) , dat fiind ca toate subevenimentele au numere diferite, conditia va arata gen &#8220;5 urmat de (15 sau (16 si 17))&#8221;, avand aranjamentele ; 5, 15 ; 5, 16, 17 ; 5, 17, 16. Asemenea aranjamente pot fi date direct motorului, scrise direct in interior, sau generate cu un algoritm, transformand expresia binara, cu diferenta notabila ca <strong>&#8220;URMAT DE&#8221; e un &#8220;SI&#8221; necomutativ.</strong>. Pentru ca regulile sunt construite ca serii de evenimente ce apar intr-o anumita ordine, negatia nu poate exista la fel ca intr-o expresie binara. Poate fi implementata doar ca si interdictie de aparitie a anumitor evenimente pe parcursul restrictiei temporale sau in anumite secvente , drept simple evenimente interzise intre evenimentele cerute.</p>
<p>Se poate vedea ca am inclus in schema doua coloane de asociere. Adica, <strong>un eveniment simplu poate fi asociat la mai mult decat un eveniment complex</strong>, pentru ca altfel anumite reguli nu s-ar declansa niciodata. Evenimentele complexe trebuie sa aiba un set diferit de ID-uri la evenimente, pentru a nu se intersecta cu cele simple. Motorul va trimite evenimentele complexe spre a fi procesate de utilizator in EventsCallback(), dar in acelasi timp, userul le poate trimite printr-o <strong>conducta</strong> la un alt motor CEP.</p>
<p>Algoritmul de potrivire incepe cu constructia evenimentelor simple per fiecare eveniment complex. Matricea evenimentelor simple va contine pe fiecare linie cate un aranjament. Pentru ca verificarea este facuta invers, de la evenimentele recente catre evenimentele mai vechi, <strong>aranjamentele trebuie sa fie scrise invers in matrice</strong>. Fiecare eveniment complex va necesita o trecere prin coada de evenimente numai cata vreme se intinde constrangerea temporala, intr-o maniera verticala: prima trecere va verifica evenimentele de pe prima coloana, si evenimentele simple gasite in acest fel vor fi pre-asociate. Urmatoarea trecere va fi pe a doua coloana numai pentru aranjamentele care au avut o pre-asociere pe prima. Cand nu mai au loc pre-asocieri noi, cautarea este anulata pentru evenimentul complex in cauza. Totusi, pentru a minimiza timpul necesar, fiecare trecere va privi toate evenimentele pana are loc inceperea urmatoarei treceri. Cand cautarile sunt anulate pentru toate evenimentele, algoritmul se termina.<br />
Cand un aranajament are toate evenimentele simple pre-asociate, e timpul pentru verificarea negatiilor. Mai intai, se verifica toata perioada pentru negatiile globale &#8211; evenimentele interzise pe toata perioada evenimentului complex, apoi pentru evenimentele interzise intre evenimentele pre-asociate, si in final verificarea de timp pentru a ne asigura ca ele inca respecta constrangerea temporala, evenimentele simple sunt asociate evenimentului complex, <em>exceptie atunci cand in tabelul de asocieri al evenimentului simplu nu se gaseste deja aceasta asociere &#8211; pentru a evita re-asocierea lui la acelasi eveniment complex</em>.<br />
Evenimentul complex rezultat este pus intr-o coada si transmis la EventsCallback(). <em>Trimiterea evenimentelor la EventsCallback() trebuie sa aiba loc dupa terminarea algoritmului altfel ar putea aparea apelari recursive ale motorului care nu isi vor inceta executia.</em>Pentru evenimentele simple care sunt asociate, pozitia in tabelul de asocieri va fi completata cu evenimentul complex, si pozitia va incrementata cu o unitate.</p>
<p>Aici e un exemplu cu doua evenimente complexe is stagii difererite de pre-asociere:</p>
<p><a href="http://mqlmagazine.com/ro/modelare-financiara/anatomia-unui-motor-cep-simplu/attachment/prebinding-of-simple-events/" rel="attachment wp-att-1366"><img src="http://mqlmagazine.com/ro/wp-content/uploads/2010/03/Prebinding-of-Simple-Events.jpg" alt="" title="Prebinding of Simple Events" width="486" height="469" class="alignnone size-full wp-image-1366" /></a></p>
<p>Pentru evenimentul de MSFT, motorul gaseste evenimentul 12 la prima trecere, si il pre-asociaza pe al treilea aranjament. La a doua trecere, gaseste evenimentul 13, si il pre-asociaza pe al doilea aranjament. Mai gaseste si 12 inca o data, dar nu il pre-asociaza pe al doilea aranjament pentru ca a aparut inainte de 13. Daca la urmatoarea trecere gaseste evenimentul mai vechi, 10, al treilea aranjament este complet, si, in lipsa negatiilor, daca restrictia temporala inca e aplicabila, in conditiile in care evenimentul complex 1 nu a fost asociat inca, atunci evenimentele simple de pe al treilea aranjament sunt asociate evenimentului complex 1, contorul de asocieri incrementat, evenimentul pus in coada de asocieri. Pentru evenimentul de ^GSPC (evenimentul complex 2), motorul a completat deja primul aranjament. Evenimentul 5 nu apare verificat pentru al doilea si al treilea aranjament intrucat evenimentele de pe coloanele precedente nu au fost verificate.</p>
<p>Cat despre evenimentele de executie, acestea sunt trimise de EnumCallbacks(), eveniment al clasei DealHandler din articolul a title=&#8221;Distingirea executiilor cvasisimultane – clasa de raportare a ultimelor tranzactii&#8221; href=&#8221;http://mqlmagazine.com/ro/programarea-in-mql/distingirea-executiilor-cvasisimultane-clasa-de-raportare-a-ultimelor-tranzactii/&#8221; target=&#8221;_top&#8221;>Distingirea executiilor cvasisimultane – clasa de raportare a ultimelor tranzactii</a>. Evenimentele simple de executie pot fi mapate in evenimente mai complex de executie deoarece tranzactiile au numere magice si comentarii, si daca ar fi sa cumperi de doua ori aceleasi 1000 de actiuni, vei stie fiecare din ce eveniment complex face parte. De aceea asemenea evenimente pot fi tratate ori separat ori in combinatie cu evenimentele de piata.</p>
<p>Vom veni cu un exemplu de cod intr-un articol viitor.</p>
<div class='dd_after'><table><tr><td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://mqlmagazine.com/ro/modelare-financiara/anatomia-unui-motor-cep-simplu/&amp;t=Anatomia+unui+motor+CEP+simplu&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/modelare-financiara/anatomia-unui-motor-cep-simplu/&amp;title=Anatomia+unui+motor+CEP+simplu&amp;t=2' height='18' width='120' frameborder='0' scrolling='no'></iframe></td><td><script type='text/javascript'><!--yahooBuzzArticleHeadline=Anatomia+unui+motor+CEP+simplu;//--></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/modelare-financiara/anatomia-unui-motor-cep-simplu/&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/modelare-financiara/anatomia-unui-motor-cep-simplu/',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/modelare-financiara/anatomia-unui-motor-cep-simplu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metode virtuale in MQL5 &#8211; aplicatie asupra optiunilor</title>
		<link>http://mqlmagazine.com/ro/programarea-in-mql/metode-virtuale-in-mql5-aplicatie-asupra-optiunilor/</link>
		<comments>http://mqlmagazine.com/ro/programarea-in-mql/metode-virtuale-in-mql5-aplicatie-asupra-optiunilor/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 15:25:40 +0000</pubDate>
		<dc:creator>Bogdan Caramalac, MQLmagazine sr.editor</dc:creator>
				<category><![CDATA[Modelare financiara]]></category>
		<category><![CDATA[Programarea in MQL]]></category>
		<category><![CDATA[metode]]></category>
		<category><![CDATA[mql5]]></category>
		<category><![CDATA[virtuale]]></category>

		<guid isPermaLink="false">http://mqlmagazine.com/ro/?p=430</guid>
		<description><![CDATA[[English version] [MQLmagazine.com in english] [Editia romaneasca]
Acesta este o continuare a articolului nostru Introducere in optiuni. Partea a II-a : Evaluarea optiunilor si coeficientii lor . Totusi, poate fi vazut si inteles separat, pentru se axeaza pe partea de programare.
Modelele de evaluare a optiunilor sunt extrem de complicate din punct de vedere matematic. Scopul acestui [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mqlmagazine.com/mql-programming/virtual-methods-in-mql5-an-application-on-options/" 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>Acesta este o continuare a articolului nostru <a href="http://mqlmagazine.com/ro/trading-cu-optiuni/introducere-in-optiuni-partea-a-ii-a-evaluarea-optiunilor-si-coeficientii-lor/" target="_top">Introducere in optiuni. Partea a II-a : Evaluarea optiunilor si coeficientii lor</a> . Totusi, poate fi vazut si inteles separat, pentru se axeaza pe partea de programare.</p>
<p>Modelele de evaluare a optiunilor sunt extrem de complicate din punct de vedere matematic. Scopul acestui articol este de a prezenta o implementare a modelului de evaluare Black-Scholes, introducand totodata <strong>metodele virtuale</strong>.</p>
<p>Una dintre functiile care apar mereu si mereu in matematica financiara, inclusiv in modelul Back-Scholes, este<br />
<strong>functia distributiei cumulate</strong> (<em>cummulative distribution function</em>).</p>
<p>Functia care descrie forma de clopot a distributiei se numeste <strong>functia densitatii de probabilitate</strong> (<em>probability density function</em>). Zona care este sub ea, adica integrala ei definita, este <strong>functia distributiei cumulate</strong>. Si pentru cazul cu medie 0 si deviatie standard 1 (fara balans,  The area that is below it, meaningly the defined integral , is the <strong>cummulative distribution function</strong>. And for the case with 0 mean and 1 standard deviation, (de asemenea fara balans, mezokurtica), aceasta distributie este numita si <strong>normala</strong>.</p>
<p>Integrala definita, cunoscuta ca si suma Riemann, calculeaza zona de sub graficul unei functii adaugand arii infinitezimale care se intind intre functie si axa x. Evident, procedura Riemann este intotdeauna aceeasi, pe cand functia este definita de utilizator. Atat Pascal cat si C++ permit definirea tipurilor functie. De exemplu, o declaratie C++ ar fi aratat asa:<br />
A C++ declaration would have looked like this:</p>
<pre lang="c++">
typedef  double (*SingleVarFunction) (double) ;
double Riemann(SingleVarFunction pFunc,double a, double b, int divisions)
</pre>
<p>In acest caz in C++, Riemann ar fi primit ca parametru orice functie care ar fi acceptat ca parametru un double si ar fi returnat un double ca rezultat. Totusi, acest mecanism nu exista in MQL5.</p>
<p>Aici intra in joc &#8220;metodele virtuale&#8221;. Obiectele au proprietati. Proprietati care sunt proiectate sa fie publice pentru a fi accesate din afara obiectelor, si apoi metodele apelate din nou. De exemplu, utilizatorul poate schimba raza unui cerc si rechema metoda de de redesenare. Dar in cazul sumei Riemann, ceea ce trebuie trimis ca si valoare este chiar o metoda. <strong>Metodele definite de utilizator care sunt apelate de metode mostenite se numesc <em>metode virtuale</em></strong>.</p>
<p>Aceasta este implementarea MQL5 pentru suma Riemann:</p>

<div class="wp_codebox"><table width="100%" ><tr id="p4308"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
</pre></td><td class="code" id="p430code8"><pre class="mql5" style="font-family:monospace;"><span style="color: #0000ff;">class</span> RiemannSumCalculus
    <span style="color: #008000;">&#123;</span>
     <span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>
     <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">double</span> IntegratableFunction<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> x<span style="color: #008000;">&#41;</span>
       <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">return</span> <span style="color: #008000;">&#40;</span>0.0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
       <span style="color: #008000;">&#125;</span>     
     <span style="color: #0000ff;">double</span> Riemann<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> a,<span style="color: #0000ff;">double</span> b,<span style="color: #0000ff;">uint</span> divisions<span style="color: #008000;">&#41;</span>
       <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">double</span> sum,swap,stepsize,x<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">long</span> istep<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>a<span style="color: #000080;">&gt;</span>b<span style="color: #008000;">&#41;</span> 
          <span style="color: #008000;">&#123;</span>
           swap<span style="color: #000080;">=</span>a<span style="color: #008080;">;</span>
           a<span style="color: #000080;">=</span>b<span style="color: #008080;">;</span>
           b<span style="color: #000080;">=</span>swap<span style="color: #008080;">;</span>
          <span style="color: #008000;">&#125;</span>
        sum<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>divisions<span style="color: #000080;">==</span>0<span style="color: #008000;">&#41;</span>
          divisions<span style="color: #000080;">=</span><span style="color: #008000;">1</span><span style="color: #008080;">;</span>
        stepsize<span style="color: #000080;">=</span><span style="color: #008000;">&#40;</span>b<span style="color: #000040;">-</span>a<span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span>divisions<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>istep<span style="color: #000080;">=</span><span style="color: #008000;">1</span><span style="color: #008080;">;</span>istep<span style="color: #000080;">&lt;=</span>divisions<span style="color: #008080;">;</span>istep<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
           <span style="color: #008000;">&#123;</span>
            x<span style="color: #000080;">=</span>a<span style="color: #000040;">+</span><span style="color: #008000;">&#40;</span>istep<span style="color: #000040;">-</span>0.5<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>stepsize<span style="color: #008080;">;</span>
            sum<span style="color: #000080;">=</span>sum<span style="color: #000040;">+</span>IntegratableFunction<span style="color: #008000;">&#40;</span>x<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>stepsize<span style="color: #008080;">;</span>
           <span style="color: #008000;">&#125;</span>
        <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>sum<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
       <span style="color: #008000;">&#125;</span>
     <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>Dupa cum se vede, metoda IntegratableFunction este specificata ca <strong>virtual</strong>. Functia in sine nu face nimic, intoarce intotdeauna un zero. Ea joaca rolul unui loc liber pentru functii IntegratableFunction definite de utilizator care sa fie apelate de metoda Riemann.</p>
<p>Urmatorul pas este sa avem distributia cumulata Gauss.</p>

<div class="wp_codebox"><table width="100%" ><tr id="p4309"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code" id="p430code9"><pre class="mql5" style="font-family:monospace;"><span style="color: #0000ff;">class</span> GaussCummulativeFunction <span style="color: #008080;">:</span> <span style="color: #0000ff;">public</span> RiemannSumCalculus          
  <span style="color: #008000;">&#123;</span> 
    <span style="color: #0000ff;">private</span><span style="color: #008080;">:</span> <span style="color: #0000ff;">double</span> sigma<span style="color: #008080;">;</span>  
    <span style="color: #0000ff;">public</span><span style="color: #008080;">:</span>                                 
    <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">double</span> IntegratableFunction<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> x<span style="color: #008000;">&#41;</span>
       <span style="color: #008000;">&#123;</span> 
        <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span> <span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>x<span style="color: #000040;">*</span>x<span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>2<span style="color: #000040;">*</span>sigma<span style="color: #000040;">*</span>sigma<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
       <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">double</span> CummulativeDistribution<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> stddev,<span style="color: #0000ff;">double</span> l1,<span style="color: #0000ff;">double</span> l2,<span style="color: #0000ff;">uint</span> divisions<span style="color: #008000;">&#41;</span>
       <span style="color: #008000;">&#123;</span>
        sigma<span style="color: #000080;">=</span>stddev<span style="color: #008080;">;</span>
        <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span> <span style="color: #008000;">&#40;</span>1<span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>stddev<span style="color: #000040;">*</span><span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>2<span style="color: #000040;">*</span><span style="color: #333399;">M_PI</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">*</span> Riemann<span style="color: #008000;">&#40;</span>l1,l2,divisions<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
       <span style="color: #008000;">&#125;</span>
  <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></pre></td></tr></table></div>

<p>Dupa cum se poate vedea, clasa este mostenita din RiemannSumCalculus. Functia IntegratableFunction este redefinita, si functia CummulativeDistribuition din interior apeleaza metoda Riemann mostenita, care, la randul ei, apeleaza functia locala IntegratableFunction in loc de cea mostenita care intoarce numai zerouri. Si pentru ca aceasta este o clasa, putem crea un mod mai facil de a accesa aceasta functie, apeland metoda dintr-o functie:</p>

<div class="wp_codebox"><table width="100%" ><tr id="p43010"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p430code10"><pre class="mql5" style="font-family:monospace;"><span style="color: #0000ff;">double</span> cum_norm<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> x<span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
   GaussCummulativeFunction normaldistribution<span style="color: #008080;">;</span>      
   <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>normaldistribution.<span style="color: #007788;">CummulativeDistribution</span><span style="color: #008000;">&#40;</span>1,<span style="color: #000040;">-</span>7.0,x,1000000<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>   
  <span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Poate ca 1.000.000 de diviziuni e cam mult, dar e necesar pentru a pastra corectitudinea rezultatelor.</p>
<p>Ceea ce urmeaza este versiunea MQL5 a procedurii Black-Scholes scrisa de George Levy in cartea sa , &#8220;Computational finance using C and C++&#8221;, pagina 76 (cu mici modificari):</p>

<div class="wp_codebox"><table width="100%" ><tr id="p43011"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
</pre></td><td class="code" id="p430code11"><pre class="mql5" style="font-family:monospace;"><span style="color: #0000ff;">struct</span> Greeks
  <span style="color: #008000;">&#123;</span>
   <span style="color: #0000ff;">double</span> delta<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> gamma<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> vega<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> theta<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> rho<span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span>  
&nbsp;
<span style="color: #0000ff;">void</span> black_scholes<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span><span style="color: #000040;">&amp;</span> value, Greeks <span style="color: #000040;">&amp;</span>greeks, <span style="color: #0000ff;">double</span> s0, <span style="color: #0000ff;">double</span> x, <span style="color: #0000ff;">double</span> sigma, <span style="color: #0000ff;">double</span> t, <span style="color: #0000ff;">double</span> r, <span style="color: #0000ff;">double</span> q, <span style="color: #0000ff;">bool</span> iscall, <span style="color: #0000ff;">long</span> <span style="color: #000040;">&amp;</span>iflag<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
     <span style="color: #ff0000; font-style: italic;">/* 
     Input parameters:
     =================
     s0 - the current price of the underlying asset
     x - the strike price
     sigma - the volatility
     t - the time to maturity
     r - the interest rate
     q - the continuous dividend yield
     iscall - true if option is a call
&nbsp;
     Output parameters:
     ==================
     value - the value of the option
     greeks[] - the hedge statistics output;
     iflag - an error indicator
     */</span>
&nbsp;
     greeks.<span style="color: #007788;">delta</span><span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
     greeks.<span style="color: #007788;">gamma</span><span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
     greeks.<span style="color: #007788;">vega</span><span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
     greeks.<span style="color: #007788;">theta</span><span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
     greeks.<span style="color: #007788;">rho</span><span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
     <span style="color: #0000ff;">double</span> one<span style="color: #000080;">=</span>1.0,two<span style="color: #000080;">=</span>2.0,zero<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
     <span style="color: #0000ff;">double</span> eps,d1,d2,temp,temp1,temp2,np<span style="color: #008080;">;</span>
     <span style="color: #ff0000; font-style: italic;">/* Check if any of the the input arguments are too small */</span>
     eps<span style="color: #000080;">=</span><span style="color:#800080;">1.0e-16</span><span style="color: #008080;">;</span>
     <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span> <span style="color: #008000;">&#40;</span>x <span style="color: #000080;">&lt;</span> eps<span style="color: #008000;">&#41;</span> <span style="color: #000040;">||</span> <span style="color: #008000;">&#40;</span>sigma <span style="color: #000080;">&lt;</span> eps<span style="color: #008000;">&#41;</span> <span style="color: #000040;">||</span> <span style="color: #008000;">&#40;</span>t <span style="color: #000080;">&lt;</span> eps<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#41;</span> 
       <span style="color: #008000;">&#123;</span> 
        iflag <span style="color: #000080;">=</span> <span style="color: #008000;">2</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">return</span><span style="color: #008080;">;</span>
       <span style="color: #008000;">&#125;</span>
     temp <span style="color: #000080;">=</span> <span style="color: #8a2be2;">log</span><span style="color: #008000;">&#40;</span>s0<span style="color: #000040;">/</span>x<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     d1 <span style="color: #000080;">=</span> temp<span style="color: #000040;">+</span><span style="color: #008000;">&#40;</span>r<span style="color: #000040;">-</span>q<span style="color: #000040;">+</span><span style="color: #008000;">&#40;</span>sigma<span style="color: #000040;">*</span>sigma<span style="color: #000040;">/</span>two<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>t<span style="color: #008080;">;</span>
     d1 <span style="color: #000080;">=</span> d1<span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>sigma<span style="color: #000040;">*</span><span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>t<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     d2 <span style="color: #000080;">=</span> d1<span style="color: #000040;">-</span>sigma<span style="color: #000040;">*</span><span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>t<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     <span style="color: #ff0000; font-style: italic;">/* evaluate the option price */</span>
     <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>iscall<span style="color: #000080;">==</span><span style="color: #333399;">true</span><span style="color: #008000;">&#41;</span>
       value <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>s0<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span>d1<span style="color: #008000;">&#41;</span><span style="color: #000040;">-</span> x<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>r<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span>d2<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     else
       value <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>s0<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>d1<span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> x<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>r<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>d2<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     <span style="color: #ff0000; font-style: italic;">/* then calculate the Greeks */</span>
     temp1 <span style="color: #000080;">=</span> <span style="color: #000040;">-</span>d1<span style="color: #000040;">*</span>d1<span style="color: #000040;">/</span>two<span style="color: #008080;">;</span>
     d2 <span style="color: #000080;">=</span> d1<span style="color: #000040;">-</span>sigma<span style="color: #000040;">*</span><span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>t<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     np <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>one<span style="color: #000040;">/</span><span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>two<span style="color: #000040;">*</span><span style="color: #333399;">M_PI</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">*</span> <span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span>temp1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>iscall<span style="color: #000080;">==</span><span style="color: #333399;">true</span><span style="color: #008000;">&#41;</span> 
       <span style="color: #008000;">&#123;</span> 
        <span style="color: #ff0000; font-style: italic;">/* a call option */</span>
        greeks.<span style="color: #007788;">delta</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>cum_norm<span style="color: #008000;">&#40;</span>d1<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> 
        greeks.<span style="color: #007788;">theta</span> <span style="color: #000080;">=</span> <span style="color: #000040;">-</span>s0<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>np<span style="color: #000040;">*</span>sigma<span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>two<span style="color: #000040;">*</span><span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>t<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> q<span style="color: #000040;">*</span>s0<span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span>d1<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">-</span> r<span style="color: #000040;">*</span>x<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>r<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span>d2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> 
        greeks.<span style="color: #007788;">rho</span> <span style="color: #000080;">=</span> x<span style="color: #000040;">*</span>t<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>r<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span>d2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
       <span style="color: #008000;">&#125;</span>
     else 
       <span style="color: #008000;">&#123;</span> 
        <span style="color: #ff0000; font-style: italic;">/* a put option */</span>
        greeks.<span style="color: #007788;">delta</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>cum_norm<span style="color: #008000;">&#40;</span>d1<span style="color: #008000;">&#41;</span> <span style="color: #000040;">-</span> one<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        greeks.<span style="color: #007788;">theta</span> <span style="color: #000080;">=</span> <span style="color: #000040;">-</span>s0<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>np<span style="color: #000040;">*</span>sigma<span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>two<span style="color: #000040;">*</span><span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>t<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">-</span> q<span style="color: #000040;">*</span>s0<span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>d1<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span> <span style="color: #000040;">+</span> r<span style="color: #000040;">*</span>x<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>r<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>d2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> 
        greeks.<span style="color: #007788;">rho</span> <span style="color: #000080;">=</span> <span style="color: #000040;">-</span>x<span style="color: #000040;">*</span>t<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>r<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>cum_norm<span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>d2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
       <span style="color: #008000;">&#125;</span>
     greeks.<span style="color: #007788;">gamma</span> <span style="color: #000080;">=</span> np<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>s0<span style="color: #000040;">*</span>sigma<span style="color: #000040;">*</span><span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>t<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> 
     greeks.<span style="color: #007788;">vega</span> <span style="color: #000080;">=</span> s0<span style="color: #000040;">*</span><span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>np<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">return</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Si urmatoarea, din aceeasi carte, pentru a obtine volatilitatea implicita:</p>

<div class="wp_codebox"><table width="100%" ><tr id="p43012"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
</pre></td><td class="code" id="p430code12"><pre class="mql5" style="font-family:monospace;"><span style="color: #0000ff;">void</span> implied_volatility<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> value, <span style="color: #0000ff;">double</span> s0, <span style="color: #0000ff;">double</span> x, <span style="color: #0000ff;">double</span><span style="color: #000040;">&amp;</span> sigma<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,<span style="color: #0000ff;">double</span> t, <span style="color: #0000ff;">double</span> r, <span style="color: #0000ff;">double</span> q, <span style="color: #0000ff;">bool</span> iscall, <span style="color: #0000ff;">long</span><span style="color: #000040;">&amp;</span> iflag<span style="color: #008000;">&#41;</span>
   <span style="color: #008000;">&#123;</span>
    <span style="color: #ff0000; font-style: italic;">/* Input parameters:
    =================
    value - the current value of the option
    s0 - the current price of the underlying asset
    x - the strike price
    sigma[] - the input bounds on the volatility: sigma[0], the lower bound and, sigma[1],the upper bound
    t - the time to maturity
    r - the interest rate
    q - the continuous dividend yield
    iscall - true if option is a call;
&nbsp;
    Output parameters:
    ==================
    sigma[] - the element sigma[0] contains the estimated implied volatility
    iflag - an error indicator
    */</span>
    <span style="color: #0000ff;">double</span> zero<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> fx, sig1, sig2<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> val,tolx<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> temp,eps,epsqrt,temp1,v1<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">long</span> max_iters, i, ind, ir<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> c<span style="color: #008000;">&#91;</span>20<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> sig,vega<span style="color: #008080;">;</span>
    Greeks greeks<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">long</span> done<span style="color: #008080;">;</span>
    tolx <span style="color: #000080;">=</span> eps<span style="color: #008080;">;</span>
    eps<span style="color: #000080;">=</span><span style="color:#800080;">1.0e-16</span><span style="color: #008080;">;</span>
    epsqrt <span style="color: #000080;">=</span> <span style="color: #8a2be2;">sqrt</span><span style="color: #008000;">&#40;</span>eps<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>iscall <span style="color: #000080;">==</span> <span style="color: #333399;">true</span><span style="color: #008000;">&#41;</span> <span style="color: #ff0000; font-style: italic;">/* a call option */</span>
      temp1 <span style="color: #000080;">=</span> <span style="color: #8a2be2;">MathMax</span><span style="color: #008000;">&#40;</span>s0<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">-</span>x<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>r<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span>,zero<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    else <span style="color: #ff0000; font-style: italic;">/* a put option */</span>
      temp1 <span style="color: #000080;">=</span> <span style="color: #8a2be2;">MathMax</span><span style="color: #008000;">&#40;</span>x<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>r<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span><span style="color: #000040;">-</span>s0<span style="color: #000040;">*</span><span style="color: #8a2be2;">exp</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>q<span style="color: #000040;">*</span>t<span style="color: #008000;">&#41;</span>,zero<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    v1 <span style="color: #000080;">=</span> <span style="color: #8a2be2;">fabs</span><span style="color: #008000;">&#40;</span>value<span style="color: #000040;">-</span>temp1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>v1 <span style="color: #000080;">&lt;=</span> epsqrt<span style="color: #008000;">&#41;</span> 
      <span style="color: #008000;">&#123;</span> <span style="color: #ff0000; font-style: italic;">/* the volatility is too small */</span>
       iflag <span style="color: #000080;">=</span> <span style="color: #008000;">3</span><span style="color: #008080;">;</span>
       <span style="color: #0000ff;">return</span><span style="color: #008080;">;</span>
      <span style="color: #008000;">&#125;</span>
   iflag <span style="color: #000080;">=</span> <span style="color: #008000;">0</span><span style="color: #008080;">;</span>
   i <span style="color: #000080;">=</span> <span style="color: #008000;">0</span><span style="color: #008080;">;</span>
   max_iters <span style="color: #000080;">=</span> <span style="color: #008000;">50</span><span style="color: #008080;">;</span>
   done <span style="color: #000080;">=</span> <span style="color: #008000;">0</span><span style="color: #008080;">;</span>
   sig <span style="color: #000080;">=</span> sigma<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> <span style="color: #ff0000; font-style: italic;">/* initial estimate */</span>
   val <span style="color: #000080;">=</span> value<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>i <span style="color: #000080;">&lt;</span> max_iters<span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;&amp;</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>done<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> 
        <span style="color: #008000;">&#123;</span> <span style="color: #ff0000; font-style: italic;">/* Newton iteration */</span>
         black_scholes<span style="color: #008000;">&#40;</span>val,greeks,s0,x,sig,t,r,q,iscall,iflag<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #ff0000; font-style: italic;">/* compute the Black-Scholes option value, val */</span>
         vega <span style="color: #000080;">=</span> greeks.<span style="color: #007788;">vega</span><span style="color: #008080;">;</span> <span style="color: #ff0000; font-style: italic;">/* and vega. */</span>
         sig1 <span style="color: #000080;">=</span> sig <span style="color: #000040;">-</span> <span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>val <span style="color: #000040;">-</span> value<span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span>vega<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #ff0000; font-style: italic;">/* compute the new estimate of sigma using Newton’s method */</span>
         <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>tolx <span style="color: #000080;">&gt;</span> <span style="color: #8a2be2;">fabs</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>sig1 <span style="color: #000040;">-</span> sig<span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span>sig1<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span> 
           <span style="color: #008000;">&#123;</span> <span style="color: #ff0000; font-style: italic;">/* check whether the specified accuracy has been reached */</span>
             done <span style="color: #000080;">=</span> <span style="color: #008000;">1</span><span style="color: #008080;">;</span>
           <span style="color: #008000;">&#125;</span>
         sig <span style="color: #000080;">=</span> sig1<span style="color: #008080;">;</span> <span style="color: #ff0000; font-style: italic;">/* up date sigma */</span>
         <span style="color: #000040;">++</span>i<span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
   sigma<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> sig1<span style="color: #008080;">;</span> <span style="color: #ff0000; font-style: italic;">/* return the estimate for sigma */</span>
   <span style="color: #0000ff;">return</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Acum, pastrand acestea ca pe inceputul unui script, vom completa scriptul pentru a testa modelul Black-Scholes.</p>

<div class="wp_codebox"><table width="100%" ><tr id="p43013"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
</pre></td><td class="code" id="p430code13"><pre class="mql5" style="font-family:monospace;"><span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #808080;">//| Script program start function                                    |</span>
<span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #0000ff;">void</span> OnStart<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
   <span style="color: #0000ff;">double</span> StockPrice<span style="color: #000080;">=</span><span style="color:#800080;">100.00</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> SelectedStrike<span style="color: #000080;">=</span><span style="color:#800080;">100.00</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> r<span style="color: #000080;">=</span><span style="color:#800080;">0.1</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> sigma<span style="color: #000080;">=</span><span style="color:#800080;">0.3</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> q<span style="color: #000080;">=</span><span style="color:#800080;">0.06</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">ObjectsDeleteAll</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">ChartID</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,<span style="color: #000040;">-</span>1,<span style="color: #000040;">-</span>1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">int</span> s0<span style="color: #008080;">;</span>
   Greeks greeks<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> value<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> t<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">int</span> T<span style="color: #008080;">;</span>   
   <span style="color: #0000ff;">long</span> iflag<span style="color: #008080;">;</span>
&nbsp;
&nbsp;
   <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>T<span style="color: #000080;">=</span><span style="color: #008000;">10</span><span style="color: #008080;">;</span>T<span style="color: #000080;">&gt;=</span><span style="color: #008000;">1</span><span style="color: #008080;">;</span>T<span style="color: #000040;">--</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
       t<span style="color: #000080;">=</span>0.1<span style="color: #000040;">*</span>T<span style="color: #008080;">;</span>
       black_scholes<span style="color: #008000;">&#40;</span>value, greeks, StockPrice, SelectedStrike, sigma, t, r, q, <span style="color: #333399;">true</span>, iflag<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>       
       <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>t,<span style="color: #008000;">1</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; :: &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>value,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">delta</span>,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">gamma</span>,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">vega</span>,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">theta</span>,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">rho</span>,3<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      <span style="color: #008000;">&#125;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Time    Value     Delta    Gamma    Vega    Theta      Rho&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Calls&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>T<span style="color: #000080;">=</span><span style="color: #008000;">10</span><span style="color: #008080;">;</span>T<span style="color: #000080;">&gt;=</span><span style="color: #008000;">1</span><span style="color: #008080;">;</span>T<span style="color: #000040;">--</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
       t<span style="color: #000080;">=</span>0.1<span style="color: #000040;">*</span>T<span style="color: #008080;">;</span>
       black_scholes<span style="color: #008000;">&#40;</span>value, greeks, StockPrice, SelectedStrike, sigma, t, r, q, <span style="color: #333399;">false</span>, iflag<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>       
       <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>t,<span style="color: #008000;">1</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; :: &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>value,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">delta</span>,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">gamma</span>,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">vega</span>,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">theta</span>,<span style="color: #008000;">3</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot; &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>greeks.<span style="color: #007788;">rho</span>,3<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      <span style="color: #008000;">&#125;</span>      
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Time    Value     Delta    Gamma    Vega    Theta      Rho&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>   
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Puts&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>  
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Continuous dividend yield: &quot;</span>,q<span style="color: #000040;">*</span><span style="color: #008000;">100</span>,<span style="color: #008080;">&quot;%&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>  
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Implied volatility: &quot;</span>,sigma<span style="color: #000040;">*</span><span style="color: #008000;">100</span>,<span style="color: #008080;">&quot;%&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Riskless rate: &quot;</span>,r<span style="color: #000040;">*</span><span style="color: #008000;">100</span>,<span style="color: #008080;">&quot;%&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Selected strike: &quot;</span>,SelectedStrike<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Stock price: &quot;</span>,StockPrice<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;ASSUMPTIONS: &quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>         
  <span style="color: #008000;">&#125;</span>
<span style="color: #808080;">//+------------------------------------------------------------------+</span></pre></td></tr></table></div>

<p>Si iesirea va arata in felul urmator:</p>
<p><img src="http://mqlmagazine.com/ro/wp-content/uploads/2009/12/optionsdemo.jpg" alt="Iesire la testul Black-Scholes" title="Iesire la testul Black-Scholes" width="289" height="664" class="alignnone size-full wp-image-434" /></p>
<p>Acum sterge liniile adaugate mai inainte care au completat scriptul, si adauga-le pe urmatoarele, pentru a testa functia volatilitatii implicite:</p>

<div class="wp_codebox"><table width="100%" ><tr id="p43014"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td class="code" id="p430code14"><pre class="mql5" style="font-family:monospace;"><span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #808080;">//| Script program start function                                    |</span>
<span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #0000ff;">void</span> OnStart<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
  <span style="color: #0000ff;">double</span> S <span style="color: #000080;">=</span> <span style="color:#800080;">10.0</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">double</span> X <span style="color: #000080;">=</span> <span style="color:#800080;">10.5</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">double</span> r <span style="color: #000080;">=</span> <span style="color:#800080;">0.1</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">double</span> sigmat <span style="color: #000080;">=</span> <span style="color:#800080;">0.5</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">double</span> q <span style="color: #000080;">=</span> <span style="color:#800080;">0.04</span><span style="color: #008080;">;</span>  
  Greeks greeks<span style="color: #008080;">;</span>
  <span style="color: #0000ff;">double</span> sigma<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">double</span> value, T<span style="color: #008080;">;</span>
  <span style="color: #0000ff;">long</span> i, ifail, put<span style="color: #008080;">;</span>
  <span style="color: #0000ff;">double</span> origsigma<span style="color: #000080;">=</span>sigmat<span style="color: #008080;">;</span>
  <span style="color: #0000ff;">long</span> flag<span style="color: #008080;">;</span>
  ifail <span style="color: #000080;">=</span> <span style="color: #008000;">0</span><span style="color: #008080;">;</span>
  <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i <span style="color: #000080;">=</span> <span style="color: #008000;">5</span><span style="color: #008080;">;</span>i <span style="color: #000080;">&gt;=</span> <span style="color: #008000;">1</span><span style="color: #008080;">;</span> i<span style="color: #000040;">--</span><span style="color: #008000;">&#41;</span> 
    <span style="color: #008000;">&#123;</span>
     T <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span><span style="color: #008000;">&#41;</span>i<span style="color: #000040;">*</span><span style="color:#800080;">0.5</span><span style="color: #008080;">;</span>
     black_scholes<span style="color: #008000;">&#40;</span>value,greeks,S,X,sigmat,T,r,q,<span style="color: #333399;">true</span>,flag<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     sigma<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color:#800080;">0.05</span><span style="color: #008080;">;</span>
     sigma<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color:#800080;">1.0</span><span style="color: #008080;">;</span>
     implied_volatility<span style="color: #008000;">&#40;</span>value,S,X,sigma,T,r,q,<span style="color: #333399;">true</span>,flag<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     <span style="color: #8a2be2;">printf</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;%8.4f %15.4f    %15.4f     (%8.4e) &quot;</span>,T,value,sigma<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span>,<span style="color: #8a2be2;">fabs</span><span style="color: #008000;">&#40;</span>sigmat<span style="color: #000040;">-</span>sigma<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>  
     sigmat <span style="color: #000080;">=</span> sigmat <span style="color: #000040;">-</span> <span style="color:#800080;">0.1</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
  <span style="color: #8a2be2;">printf</span> <span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot; Time(years)  Option value  True sigma   Error&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Underlying= &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>S,2<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Strike= &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>X,2<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Continuous dividend yield= &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>q<span style="color: #000040;">*</span><span style="color: #008000;">100</span>,<span style="color: #008000;">2</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot;%&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Implied volatility= &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>origsigma<span style="color: #000040;">*</span><span style="color: #008000;">100</span>,<span style="color: #008000;">2</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot;%&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Riskless rate= &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>r<span style="color: #000040;">*</span><span style="color: #008000;">100</span>,<span style="color: #008000;">2</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot;%&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;x= &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>X,2<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;S= &quot;</span>,<span style="color: #8a2be2;">DoubleToString</span><span style="color: #008000;">&#40;</span>S,2<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;ASSUMPTIONS&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>  
  <span style="color: #0000ff;">return</span><span style="color: #008080;">;</span>
 <span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Scriptul pune niste valori in modelul Black-Scholes, obtine valoarea optiunilor, seteaza un iunterval de estimare si apeleaza functia volatilitatii implicite, care da rezultate destul de corecte:</p>
<p><img src="http://mqlmagazine.com/ro/wp-content/uploads/2009/12/Ivdemo.jpg" alt="Iesire la testul volatilitatii implicite" title="Iesire la testul volatilitatii implicite" width="275" height="319" class="alignnone size-full wp-image-435" /></p>
<div class='dd_after'><table><tr><td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://mqlmagazine.com/ro/programarea-in-mql/metode-virtuale-in-mql5-aplicatie-asupra-optiunilor/&amp;t=Metode+virtuale+in+MQL5+-+aplicatie+asupra+optiunilor&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/programarea-in-mql/metode-virtuale-in-mql5-aplicatie-asupra-optiunilor/&amp;title=Metode+virtuale+in+MQL5+-+aplicatie+asupra+optiunilor&amp;t=2' height='18' width='120' frameborder='0' scrolling='no'></iframe></td><td><script type='text/javascript'><!--yahooBuzzArticleHeadline=Metode+virtuale+in+MQL5+-+aplicatie+asupra+optiunilor;//--></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/programarea-in-mql/metode-virtuale-in-mql5-aplicatie-asupra-optiunilor/&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/programarea-in-mql/metode-virtuale-in-mql5-aplicatie-asupra-optiunilor/',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/programarea-in-mql/metode-virtuale-in-mql5-aplicatie-asupra-optiunilor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analiza volatilitatii : de la previziunea volatilitatii la previziunea pretului</title>
		<link>http://mqlmagazine.com/ro/programarea-in-mql/analiza-volatilitatii-de-la-previziunea-volatilitatii-la-previziunea-pretului/</link>
		<comments>http://mqlmagazine.com/ro/programarea-in-mql/analiza-volatilitatii-de-la-previziunea-volatilitatii-la-previziunea-pretului/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 17:59:18 +0000</pubDate>
		<dc:creator>Bogdan Caramalac, MQLmagazine sr.editor</dc:creator>
				<category><![CDATA[Modelare financiara]]></category>
		<category><![CDATA[Programarea in MQL]]></category>
		<category><![CDATA[Benzi Bollinger]]></category>
		<category><![CDATA[deviatia standard]]></category>
		<category><![CDATA[mql4]]></category>
		<category><![CDATA[mql5]]></category>
		<category><![CDATA[volatilitate]]></category>

		<guid isPermaLink="false">http://mqlmagazine.com/ro/?p=104</guid>
		<description><![CDATA[[English version] [MQLmagazine.com in english] [Editia romaneasca]
Volatilitate. Un cuvant care genereaza panica pentru investitori, ca si batai de inima mai accelerate pentru traderi. De cate ori inainte n-ai incercat sa tranzactionezi numai pietele in trend si sa prinzi momentum-ul ?
Dupa InvestorWords.com, volatilitatea este rata relativa la care pretul unei valori mobiliare se misca in sus [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mqlmagazine.com/mql-programming/volatility-analysis-bridging-the-gap-from-volatility-forecasting-to-price-forecasting/" 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>Volatilitate. Un cuvant care genereaza panica pentru investitori, ca si batai de inima mai accelerate pentru traderi. De cate ori inainte n-ai incercat sa tranzactionezi numai pietele in trend si sa prinzi momentum-ul ?</p>
<p>Dupa InvestorWords.com, volatilitatea este <strong><em>rata relativa la care pretul unei valori mobiliare se misca in sus si in jos. Volatilitatea este gasita calculand deviatia standard anualizata a schimbarilor zilnice de pret. Daca pretul unei actiuni se misca in sus sau in jos rapid in perioade scurte de timp, are volatilitate ridicata. Daca pretul aproape ca nu se schimba deloc, are volatilitate redusa.</em></strong> Deci volatilitatea este masurata de deviatia standard (notata cu litera greceasca sigma mica). Si care e cel mai popular indicator bazat pe deviatia standard? Ati ghicit, faimoasele Benzi Bollinger. Benzile Bollinger (BB) sunt printre primii indicatori pe care ai invatat sa-i folosesti in trading. Ti s-a spus ca, un semnal de cumparare sau de vanzare cand piata atinge una dintre benzi, este urmat de un posibil mers pe langa una dintre benzi, dupa care se intoarce, si va merge asa pana cand atinge media mobila. Regula asta nu spune prea mult. Nu exista nimic care sa spuna cat anume va merge pe langa banda pana cand se intoarce. Lucru care il vei descoperi foarte frustrant&#8230; pe contul propriu. Daca reprezinti grafic baza acestui indicator, deviatia standard, vei gasi un chart sinusoidal. Volatilitatea se misca in sus si in jos <em>intr-o maniera relativ continua, fara miscari bruste.</em> Din moment ce nu face miscari bruste, inseamna ca volatilitatea e mai predictibila decat pretul. Daca e predictibila, de ce sa nu folosim BB peste volatilitate ? Dar stai. Deviatia standard e relativa. Ea masoara dispersia pe perioada analizata. Daca adaugam BB peste deviatia standard, inseamna ca vom folosi deviatia standard a deviatiei standard pentru a prinde miscarile volatilitatii. De data asta nu e nevoie sa ne temem de <img class="alignleft size-full wp-image-6" title="example1_bboverstd" src="http://mqlmagazine.com/ro/wp-content/uploads/2009/11/example1_bboverstd.jpg" alt="example1_bboverstd" width="995" height="513" />semnale false, pentru ca setul analizat de date, deviatia standard calculata asupra pretului, este o functie continua. In al doilea rand, chiar daca semnalul este gresit si volatilitatea se intoarce inapoi si se misca pe un trend descrescator, nu mai produce stricaciuni prea mari, pentru ca volatilitatea este deja jos cand un semnal este preluat si o miscare in jos a volatilitatii va insemna o miscare mai mica a pretului . Linia albastruie este deviatia standard a pretului de deschidere a ultimelor 20 de bare. Semnalele in care suntem interesati sunt cele in care volatilitatea intersecteaza propria bara Bollinger de sus. Bineinteles, nu suntem interesati in intersectiile in jos, pentru ca acestea inseamna ca volatilitatea se reduce mai repede decat ar fi normal. In timpul unui trend, o puternica contramiscare va fi reflectata printr-o miscare a volatilitatii in jos. Cele mai bune semnale apar atunci cand intersectiile cu BB de sus apar la o volatilitate istorica foarte redusa &#8211; sub 20% din intervalul de pe ecran. Daca e sa compari cu celelalte semnale de pe chart, BB peste pret intersectata cu pretul, vei vedea ca pot aparea intersectii chiar cand volatilitatea este in interiorul propriei ei BB, asadar acesta este un mod de a elimina afinitatea pentru erori a semnalelor date de intersectia pretului cu BB.  Un criteriu bun intrare-iesire este atunci cand distanta dintre BB de sus a volatilitatii si volatilitate este sub 2% din intervalul de fluctuare a volatilitatii. Mai jos este <strong>versiunea MQL4 a indicatorului Benzi Bollinger peste Deviatia Standard</strong>.</p>

<div class="wp_codebox"><table width="100%" ><tr id="p10419"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
</pre></td><td class="code" id="p104code19"><pre class="mql4" style="font-family:monospace;"><span style="color: #666666;">//+------------------------------------------------------------------+</span>
<span style="color: #666666;">//|                                                    BBoverSTD.mq4 |</span>
<span style="color: #666666;">//|                                                 Bogdan Caramalac |</span>
<span style="color: #666666;">//|                                     mailto:fxeconomist@yahoo.com |</span>
<span style="color: #666666;">//+------------------------------------------------------------------+</span>
<span style="color: #339900;">#property copyright &quot;Bogdan Caramalac&quot;</span>
<span style="color: #339900;">#property link      &quot;mailto:fxeconomist@yahoo.com&quot;</span>
&nbsp;
<span style="color: #339900;">#property indicator_separate_window</span>
<span style="color: #339900;">#property indicator_buffers 4</span>
<span style="color: #339900;">#property indicator_color1 LightSeaGreen //STDDEV</span>
<span style="color: #339900;">#property indicator_color2 Blue          //MA</span>
<span style="color: #339900;">#property indicator_color3 Yellow        //Upper BB</span>
<span style="color: #339900;">#property indicator_color4 Yellow        //Lower BB</span>
&nbsp;
<span style="color: #666666;">//---- input parameters</span>
<span style="color: #0000ff;">extern</span> <span style="color: #0000ff;">int</span>       STDLEN<span style="color: #000080;">=</span><span style="color: #0000dd;">20</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">extern</span> <span style="color: #0000ff;">int</span>       BBLEN<span style="color: #000080;">=</span><span style="color: #0000dd;">10</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">extern</span> <span style="color: #0000ff;">double</span>    BBMULT<span style="color: #000080;">=</span><span style="color:#800080;">2.0</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">extern</span> <span style="color: #0000ff;">string</span>    MATYPE<span style="color: #000080;">=</span><span style="color: #008080;">&quot;SMA&quot;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">extern</span> <span style="color: #0000ff;">int</span>       MALEN<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">extern</span> <span style="color: #0000ff;">int</span>       Logarithm<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">double</span> ExtMapBuffer1<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">double</span> ExtMapBuffer2<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">double</span> ExtMapBuffer3<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">double</span> ExtMapBuffer4<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #666666;">//+------------------------------------------------------------------+</span>
<span style="color: #666666;">//| Custom indicator initialization function                         |</span>
<span style="color: #666666;">//+------------------------------------------------------------------+</span>
<span style="color: #0000ff;">int</span> init<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
<span style="color: #666666;">//---- indicators</span>
   <span style="color: #8a2be2;">SetIndexStyle</span><span style="color: #008000;">&#40;</span>0,<span style="color: #333399;">DRAW_LINE</span>, 0, 1, <span style="color: #0000ff;">indicator_color1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexBuffer</span><span style="color: #008000;">&#40;</span>0, ExtMapBuffer1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexStyle</span><span style="color: #008000;">&#40;</span>1,<span style="color: #333399;">DRAW_LINE</span>, 0, 1, <span style="color: #0000ff;">indicator_color2</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexBuffer</span><span style="color: #008000;">&#40;</span>1, ExtMapBuffer2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexStyle</span><span style="color: #008000;">&#40;</span>2,<span style="color: #333399;">DRAW_LINE</span>, 0, 1, <span style="color: #0000ff;">indicator_color3</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexBuffer</span><span style="color: #008000;">&#40;</span>2, ExtMapBuffer3<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexStyle</span><span style="color: #008000;">&#40;</span>3,<span style="color: #333399;">DRAW_LINE</span>, 0, 1, <span style="color: #0000ff;">indicator_color4</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexBuffer</span><span style="color: #008000;">&#40;</span>3, ExtMapBuffer4<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #666666;">//----</span>
   <span style="color: #8a2be2;">SetIndexDrawBegin</span><span style="color: #008000;">&#40;</span>0,STDLEN<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
&nbsp;
   <span style="color: #8a2be2;">SetIndexDrawBegin</span><span style="color: #008000;">&#40;</span>1,STDLEN<span style="color: #000040;">+</span>BBLEN<span style="color: #000040;">-</span>1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexDrawBegin</span><span style="color: #008000;">&#40;</span>2,STDLEN<span style="color: #000040;">+</span>BBLEN<span style="color: #000040;">-</span>1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexDrawBegin</span><span style="color: #008000;">&#40;</span>3,STDLEN<span style="color: #000040;">+</span>BBLEN<span style="color: #000040;">-</span>1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #666666;">//+------------------------------------------------------------------+</span>
<span style="color: #666666;">//| Custom indicator iteration function                              |</span>
<span style="color: #666666;">//+------------------------------------------------------------------+</span>
<span style="color: #0000ff;">int</span> start<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
   <span style="color: #008000;">&#123;</span>
   <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #ff00ff;">Bars</span><span style="color: #000080;">&lt;=</span><span style="color: #8a2be2;">MathMax</span><span style="color: #008000;">&#40;</span>STDLEN<span style="color: #000040;">+</span>BBLEN,MALEN<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span>      
      <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>    
   <span style="color: #0000ff;">int</span> pos<span style="color: #000080;">=</span>Bars<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>    
   <span style="color: #8a2be2;">ArraySetAsSeries</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1,<span style="color: #0000ff;">true</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>    
   <span style="color: #0000ff;">while</span> <span style="color: #008000;">&#40;</span>pos<span style="color: #000080;">&gt;=</span>0<span style="color: #008000;">&#41;</span>
     <span style="color: #008000;">&#123;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;SMA&quot;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
         ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iStdDev</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">Symbol</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,<span style="color: #8a2be2;">Period</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,STDLEN,0,<span style="color: #333399;">MODE_SMA</span>,<span style="color: #333399;">MODE_OPEN</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Logarithm<span style="color: #000080;">==</span>1<span style="color: #000040;">&amp;&amp;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000040;">!</span><span style="color: #000080;">=</span>0.00<span style="color: #008000;">&#41;</span>
           ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #8a2be2;">MathLog</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;EMA&quot;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
         ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iStdDev</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">Symbol</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,<span style="color: #8a2be2;">Period</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,STDLEN,0,<span style="color: #333399;">MODE_EMA</span>,<span style="color: #333399;">MODE_OPEN</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Logarithm<span style="color: #000080;">==</span>1<span style="color: #000040;">&amp;&amp;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000040;">!</span><span style="color: #000080;">=</span>0.00<span style="color: #008000;">&#41;</span>
           ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #8a2be2;">MathLog</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;SMMA&quot;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
         ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iStdDev</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">Symbol</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,<span style="color: #8a2be2;">Period</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,STDLEN,0,<span style="color: #333399;">MODE_SMMA</span>,<span style="color: #333399;">MODE_OPEN</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Logarithm<span style="color: #000080;">==</span>1<span style="color: #000040;">&amp;&amp;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000040;">!</span><span style="color: #000080;">=</span>0.00<span style="color: #008000;">&#41;</span>
           ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #8a2be2;">MathLog</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;LWMA&quot;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
         ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iStdDev</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">Symbol</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,<span style="color: #8a2be2;">Period</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,STDLEN,0,<span style="color: #333399;">MODE_LWMA</span>,<span style="color: #333399;">MODE_OPEN</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Logarithm<span style="color: #000080;">==</span>1<span style="color: #000040;">&amp;&amp;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000040;">!</span><span style="color: #000080;">=</span>0.00<span style="color: #008000;">&#41;</span>
           ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #8a2be2;">MathLog</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
       pos<span style="color: #000040;">--</span><span style="color: #008080;">;</span>
     <span style="color: #008000;">&#125;</span>
   pos<span style="color: #000080;">=</span>Bars<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>pos<span style="color: #000080;">&gt;=</span>0<span style="color: #008000;">&#41;</span>
     <span style="color: #008000;">&#123;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;SMA&quot;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
         <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MALEN<span style="color: #000040;">!</span><span style="color: #000080;">=</span>0<span style="color: #008000;">&#41;</span>
           ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iMAOnArray</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1,0,MALEN,0,<span style="color: #333399;">MODE_SMA</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         <span style="color: #0000ff;">else</span>
           ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #333399;">EMPTY_VALUE</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;EMA&quot;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
         <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MALEN<span style="color: #000040;">!</span><span style="color: #000080;">=</span>0<span style="color: #008000;">&#41;</span>
           ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iMAOnArray</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1,0,MALEN,0,<span style="color: #333399;">MODE_EMA</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         <span style="color: #0000ff;">else</span>
           ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #333399;">EMPTY_VALUE</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;SMMA&quot;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
         <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MALEN<span style="color: #000040;">!</span><span style="color: #000080;">=</span>0<span style="color: #008000;">&#41;</span>
           ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iMAOnArray</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1,0,MALEN,0,<span style="color: #333399;">MODE_SMMA</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         <span style="color: #0000ff;">else</span>
           ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #333399;">EMPTY_VALUE</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;LWMA&quot;</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
         <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MALEN<span style="color: #000040;">!</span><span style="color: #000080;">=</span>0<span style="color: #008000;">&#41;</span>
           ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iMAOnArray</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1,0,MALEN,0,<span style="color: #333399;">MODE_LWMA</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
         <span style="color: #0000ff;">else</span>
           ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #333399;">EMPTY_VALUE</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span>
       pos<span style="color: #000040;">--</span><span style="color: #008080;">;</span>
     <span style="color: #008000;">&#125;</span>
   pos<span style="color: #000080;">=</span>Bars<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>pos<span style="color: #000080;">&gt;=</span>0<span style="color: #008000;">&#41;</span>
     <span style="color: #008000;">&#123;</span>
      ExtMapBuffer3<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #333399;">EMPTY_VALUE</span><span style="color: #008080;">;</span>
      ExtMapBuffer4<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #333399;">EMPTY_VALUE</span><span style="color: #008080;">;</span>
      ExtMapBuffer3<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iBandsOnArray</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1,0,BBLEN,BBMULT,0,<span style="color: #333399;">MODE_HIGH</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      ExtMapBuffer4<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #008000;">iBandsOnArray</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1,0,BBLEN,BBMULT,0,<span style="color: #333399;">MODE_LOW</span>,pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      pos<span style="color: #000040;">--</span><span style="color: #008080;">;</span>
     <span style="color: #008000;">&#125;</span>
   <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Parametri:</p>
<p>STDLEN &#8211; perioada pentru care deviatia standard este calculata;</p>
<p>BBLEN &#8211; pentru care sunt calculate Benzile Bollinger;</p>
<p>BBMULT &#8211; multiplicatorul deviatiei standard pentru Benzile Bollinger;</p>
<p>MATYPE &#8211; o medie mobila ajutatoare este creata, de acest tip ; acelasi tip este aplicat la constructia deviatiei standard in primul moment;</p>
<p>MALEN &#8211; perioada mediei mobile ajutatoare (este dezactivata cu 0);</p>
<p>Logarithm &#8211; folosit logaritmarea deviatiei standard ; pentru 0, dezactivata, pentru 1, logaritm natural;</p>
<p>Multumiri lui Irtron si Ruptor de pe forumul mql4.com pentru reparatii aduse acestui indicator.</p>
<p>Functia iMAOnArray are probleme ; un indicator MQL4 trebuie sa contina mai mult decat un singur loop de calculatie daca foloseste aceasta functie.</p>
<p><strong><em>Sa ne uitam la anatomia unui indicator MQL4.</em></strong></p>
<p>Liniile 9 &#8211; 15 formeaza preambulul indicatorului ; este specificat daca indicatorul este intr-o <strong>fereastra separata</strong> , numarul de buffere si culoarea pentru fiecare.</p>
<p>Liniile 17 &#8211; 22 includ definitiile parametrilor ; ceea ce-i face sa fie parametri, spre deosebire de cele ce sunt cunoscute sub numele de variabile globale in alte limbaje de programare (de exemplu declaratiile Public in Visual Basic) este cuvantul <strong>extern </strong> in fata tipului ; cand indicatorul este instalat (tras cu mouse-ul pest chart) , acesti parametri pot fi modificati . De asemenea, acesti parametri poti fi modificati oricand de catre utilizator ; dar nici un expert sau script nu se poate atinge de parametri indicatorului care ruleaza intr-o fereastra.</p>
<p>Liniile 24 &#8211; 27 cuprind definitiile bufferelor ; intrucat 4 sunt specificate, 4 sunt definite. Bufferele indicatorului sunt numere care specifica tablouri in interiorul indicatorului, care contin date. De exemplu, daca un indicator ar copia datele OHLC in buffere, 0 ar fi pentru preturile de deschidere, 1 pentru high, 2 pentru low, 3 pentru inchidere. In cazul nostru, asa cum o sa vezi mai jos, 0 este pentru deviatia standard, 1 pentru media mobila ajutatoare, 2 pentru BB superioara si 3 pentru BB inferioara.</p>
<p>Liniile 31 &#8211; 49 constituie functia <strong>init() </strong> . Functia este apelata de fiecare data cand parametrii chartului sunt schimbati (simbol, periodicitate) sau conexiunea, intrerupta, revine. Functia defineste stilul de desenare pentru fiecare dintre buffere si asigneaza tablouri bufferelor indicatorului. De asemenea specifica unde incepe desenarea pentru fiecare buffer. Punctul de desenare trebuie sa fie ales cu grija, astfel incat datele care sunt la baza sa fie deja calculate la momentul respectiv. De exemplu, daca e sa calculezi media mobila pentru 10 elemente, punctul de incepere trebuie sa nu fie mai mare de 10 elemente sub numarul maxim de bare.</p>
<p>Liniile 54 &#8211; 131 constituie functia <strong>start() </strong>. Aceasta este apelata dupa functia la fiecare cotatie sosita. Incepe cu o conditie in care verifica daca sunt suficiente bare (<strong>Bars</strong>) ca sa deseneze indicatorul. Apoi seteaza pozitia de inceput a desenarii. Pozitia este un index de bara. Indicatorul este calculat de la o pozitie pozitiva care zero (bara curenta). Functia <strong>ArraySetAsSeries()</strong> altereaza modul de functionarea al unui tablou, facandu-l sa functioneze ca o serie temporala. Nu afecteaza tabloul per se. Ci spune unor functii speciale care lucreza cu tablouri sa-l trateze inversat. Functiile care calculeaza indicatori peste tablouri (ca <strong>iMAOnArray()</strong> , <strong>iStdDevOnArray</strong>() s.a.m.d.) traverseaza tabloul de la stanga spre dreapta, de la indecsi mai mici spre indecsi mai mari. Functia <strong>ArraySetAsSeries</strong>() aplicata unui tablou fac ca aceste functii sa traverseze tabloul de la dreapta la stanga, de la indecsi mai mari la indecsi mai mici, exact cum face bucla principala a unui indicator. Ce urmeaza apoi sunt buclele. Un indicator simplu calculeaza cam totul intr-o singura bucla, dar aici sunt necesare trei pentru a rezolva problemele. Primul loop va calcula deviatia standard ; al doilea va calcula media mobila ajutatoare, iar al treilea va calcula Benzile Bollinger. </p>
<p><strong>Acelasi indicator, versiunea MQL5</strong></p>

<div class="wp_codebox"><table width="100%" ><tr id="p10420"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
</pre></td><td class="code" id="p104code20"><pre class="mql5" style="font-family:monospace;"><span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #808080;">//|                                                    BBoverSTD.mq5 |</span>
<span style="color: #808080;">//|                                       Copyright Bogdan Caramalac |</span>
<span style="color: #808080;">//|                                                  mqlmagazine.com |</span>
<span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #339900;">#property copyright &quot;Bogdan Caramalac&quot;</span>
<span style="color: #339900;">#property link      &quot;mqlmagazine.com&quot;</span>
<span style="color: #339900;">#property version   &quot;1.02&quot;</span>
&nbsp;
<span style="color: #339900;">#property indicator_separate_window</span>
<span style="color: #339900;">#property indicator_buffers 4</span>
<span style="color: #339900;">#property indicator_applied_price PRICE_OPEN</span>
&nbsp;
<span style="color: #339900;">#property indicator_plots   4</span>
<span style="color: #339900;">#property indicator_type1 DRAW_LINE</span>
<span style="color: #339900;">#property indicator_label1 &quot;Stddev&quot;</span>
<span style="color: #339900;">#property indicator_color1 LightSeaGreen //STDDEV</span>
<span style="color: #339900;">#property indicator_type2 DRAW_LINE</span>
<span style="color: #339900;">#property indicator_label2 &quot;Helper MA&quot;</span>
<span style="color: #339900;">#property indicator_color2 Blue          //MA</span>
<span style="color: #339900;">#property indicator_type3 DRAW_LINE</span>
<span style="color: #339900;">#property indicator_label3 &quot;Upper BB&quot;</span>
<span style="color: #339900;">#property indicator_color3 Yellow        //Upper BB</span>
<span style="color: #339900;">#property indicator_type4 DRAW_LINE</span>
<span style="color: #339900;">#property indicator_label4 &quot;Lower BB&quot;</span>
<span style="color: #339900;">#property indicator_color4 Yellow        //Lower BB</span>
&nbsp;
<span style="color: #808080;">//---- input parameters</span>
<span style="color: #0000ff;">input</span> <span style="color: #0000ff;">int</span>       STDLEN<span style="color: #000080;">=</span><span style="color: #008000;">20</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">input</span> <span style="color: #0000ff;">int</span>       BBLEN<span style="color: #000080;">=</span><span style="color: #008000;">10</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">input</span> <span style="color: #0000ff;">double</span>    BBMULT<span style="color: #000080;">=</span><span style="color:#800080;">2.0</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">input</span> <span style="color: #0000ff;">string</span>    MATYPE<span style="color: #000080;">=</span><span style="color: #008080;">&quot;SMA&quot;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">input</span> <span style="color: #0000ff;">int</span>       MALEN<span style="color: #000080;">=</span><span style="color: #008000;">2</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">input</span> <span style="color: #0000ff;">int</span>       Logarithm<span style="color: #000080;">=</span><span style="color: #008000;">0</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #0000ff;">double</span> ExtMapBuffer1<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">double</span> ExtMapBuffer2<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">double</span> ExtMapBuffer3<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
<span style="color: #0000ff;">double</span> ExtMapBuffer4<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
&nbsp;
<span style="color: #339900;">#include &lt;MovingAverages.mqh&gt;</span>
&nbsp;
<span style="color: #0000ff;">int</span> StdDevHandle<span style="color: #008080;">;</span>
&nbsp;
<span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #808080;">//| Custom indicator initialization function                         |</span>
<span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #0000ff;">int</span> OnInit<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
<span style="color: #808080;">//--- indicator buffers mapping</span>
   <span style="color: #8a2be2;">SetIndexBuffer</span><span style="color: #008000;">&#40;</span>0, ExtMapBuffer1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexBuffer</span><span style="color: #008000;">&#40;</span>1, ExtMapBuffer2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexBuffer</span><span style="color: #008000;">&#40;</span>2, ExtMapBuffer3<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">SetIndexBuffer</span><span style="color: #008000;">&#40;</span>3, ExtMapBuffer4<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #808080;">//----</span>
   <span style="color: #8a2be2;">PlotIndexSetInteger</span><span style="color: #008000;">&#40;</span>0,<span style="color: #333399;">PLOT_DRAW_BEGIN</span>,STDLEN<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">PlotIndexSetInteger</span><span style="color: #008000;">&#40;</span>1,<span style="color: #333399;">PLOT_DRAW_BEGIN</span>,STDLEN<span style="color: #000040;">+</span>BBLEN<span style="color: #000040;">-</span>1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">PlotIndexSetInteger</span><span style="color: #008000;">&#40;</span>2,<span style="color: #333399;">PLOT_DRAW_BEGIN</span>,STDLEN<span style="color: #000040;">+</span>BBLEN<span style="color: #000040;">-</span>1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">PlotIndexSetInteger</span><span style="color: #008000;">&#40;</span>3,<span style="color: #333399;">PLOT_DRAW_BEGIN</span>,STDLEN<span style="color: #000040;">+</span>BBLEN<span style="color: #000040;">-</span>1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
<span style="color: #808080;">//---</span>
   <span style="color: #808080;">//we create iStdDev handler for use in main cycle;</span>
   <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;SMA&quot;</span><span style="color: #008000;">&#41;</span>
     StdDevHandle<span style="color: #000080;">=</span><span style="color: #008000;">iStdDev</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">Symbol</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,<span style="color: #8a2be2;">Period</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,STDLEN,0,<span style="color: #333399;">MODE_SMA</span>,<span style="color: #333399;">PRICE_OPEN</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;EMA&quot;</span><span style="color: #008000;">&#41;</span>
     StdDevHandle<span style="color: #000080;">=</span><span style="color: #008000;">iStdDev</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">Symbol</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,<span style="color: #8a2be2;">Period</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,STDLEN,0,<span style="color: #333399;">MODE_EMA</span>,<span style="color: #333399;">PRICE_OPEN</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> 
   <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;LWMA&quot;</span><span style="color: #008000;">&#41;</span>
     StdDevHandle<span style="color: #000080;">=</span><span style="color: #008000;">iStdDev</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">Symbol</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,<span style="color: #8a2be2;">Period</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,STDLEN,0,<span style="color: #333399;">MODE_LWMA</span>,<span style="color: #333399;">PRICE_OPEN</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> 
   <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;SMMA&quot;</span><span style="color: #008000;">&#41;</span>
     StdDevHandle<span style="color: #000080;">=</span><span style="color: #008000;">iStdDev</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">Symbol</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,<span style="color: #8a2be2;">Period</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>,STDLEN,0,<span style="color: #333399;">MODE_SMMA</span>,<span style="color: #333399;">PRICE_OPEN</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>  
   <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span>
<span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #808080;">//| Custom indicator iteration function                              |</span>
<span style="color: #808080;">//+------------------------------------------------------------------+</span>
<span style="color: #0000ff;">int</span> OnCalculate<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> rates_total,
                <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span> prev_calculated,
                <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">datetime</span><span style="color: #000040;">&amp;</span> time<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,
                <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">double</span><span style="color: #000040;">&amp;</span> open<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,
                <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">double</span><span style="color: #000040;">&amp;</span> high<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,
                <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">double</span><span style="color: #000040;">&amp;</span> low<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,
                <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">double</span><span style="color: #000040;">&amp;</span> close<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,
                <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">long</span><span style="color: #000040;">&amp;</span> tick_volume<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,
                <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">long</span><span style="color: #000040;">&amp;</span> volume<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,
                <span style="color: #0000ff;">const</span> <span style="color: #0000ff;">int</span><span style="color: #000040;">&amp;</span> spread<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>
   <span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">double</span> res<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> <span style="color: #808080;">//array to hold current iStdDev value;</span>
    <span style="color: #0000ff;">double</span> buffer_helper<span style="color: #008000;">&#91;</span>500<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> stddevonstddev<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>    <span style="color: #808080;">//current stddev on stddev</span>
    <span style="color: #0000ff;">double</span> squaredsum<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>        <span style="color: #808080;">//current squared sum</span>
    <span style="color: #0000ff;">double</span> bbma<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>              <span style="color: #808080;">//current ma for bollinger bands calculus</span>
    <span style="color: #0000ff;">double</span> bbsum<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>             <span style="color: #808080;">//current sum for calculus of bbma</span>
    <span style="color: #0000ff;">double</span> prevma<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>            <span style="color: #808080;">//previous helper moving average value, for use with SMMA or LWMA   </span>
    <span style="color: #0000ff;">int</span> buff_stddevs<span style="color: #000080;">=</span><span style="color: #008000;">0</span><span style="color: #008080;">;</span>           <span style="color: #808080;">//used length of stddevs buffer</span>
    <span style="color: #0000ff;">int</span> buff_helper_len<span style="color: #000080;">=</span><span style="color: #008000;">0</span><span style="color: #008080;">;</span>        <span style="color: #808080;">//used length of helper buffer   </span>
    <span style="color: #0000ff;">int</span> startpos<span style="color: #000080;">=</span><span style="color: #8a2be2;">MathRound</span><span style="color: #008000;">&#40;</span><span style="color: #8a2be2;">MathMin</span><span style="color: #008000;">&#40;</span>prev_calculated,rates_total<span style="color: #000040;">-</span>1<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> <span style="color: #808080;">//this is the start position ; it goes UPWARD, we are on an array, not on series</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>rates_total<span style="color: #000080;">&lt;</span>STDLEN<span style="color: #008000;">&#41;</span>
      <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>rates_total<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>startpos<span style="color: #000080;">&lt;</span>STDLEN<span style="color: #008000;">&#41;</span>
      startpos<span style="color: #000080;">=</span>STDLEN<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> pos<span style="color: #000080;">=</span>startpos<span style="color: #008080;">;</span>pos<span style="color: #000080;">&lt;</span>rates_total<span style="color: #008080;">;</span>pos<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #808080;">//main cycle, going from startpos to rates_total</span>
       <span style="color: #008000;">&#123;</span>
        <span style="color: #808080;">//Reads 1 element from position rates_total-pos, buffer 0 of StdDevIndicator calculus designated by StdDevHandle</span>
        <span style="color: #808080;">//rates_total-pos to convert position ; buffers are time series (curent value has index 0)</span>
        <span style="color: #8a2be2;">CopyBuffer</span><span style="color: #008000;">&#40;</span>StdDevHandle,0,rates_total<span style="color: #000040;">-</span>pos,1,res<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>res<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><span style="color: #808080;">//copy value from temporary res[0] array index to final ExtMapBuffer1        </span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Logarithm<span style="color: #000080;">==</span>1<span style="color: #008000;">&#41;</span>
          ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #8a2be2;">MathLog</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>Logarithm<span style="color: #000080;">==</span>2<span style="color: #008000;">&#41;</span>
          ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #8a2be2;">MathLog10</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
        <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>pos<span style="color: #000080;">&gt;</span>STDLEN<span style="color: #000040;">+</span>BBLEN<span style="color: #008000;">&#41;</span>
          <span style="color: #008000;">&#123;</span>
           <span style="color: #808080;">//enough values to calculate Bollies over volatility</span>
           squaredsum<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
           bbsum<span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
           <span style="color: #808080;">//calculating the moving average for bollinger bands</span>
           <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j<span style="color: #000080;">=</span>pos<span style="color: #000040;">-</span>BBLEN<span style="color: #000040;">+</span><span style="color: #008000;">1</span><span style="color: #008080;">;</span>j<span style="color: #000080;">&lt;=</span>pos<span style="color: #008080;">;</span>j<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
              bbsum<span style="color: #000080;">=</span>bbsum<span style="color: #000040;">+</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
           bbma<span style="color: #000080;">=</span>bbsum<span style="color: #000040;">/</span>BBLEN<span style="color: #008080;">;</span>
           <span style="color: #808080;">//calculating the squared sum for the stddev over stddev needed for bollinger bands</span>
           <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j<span style="color: #000080;">=</span>pos<span style="color: #000040;">-</span>BBLEN<span style="color: #000040;">+</span><span style="color: #008000;">1</span><span style="color: #008080;">;</span>j<span style="color: #000080;">&lt;=</span>pos<span style="color: #008080;">;</span>j<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
              squaredsum<span style="color: #000080;">=</span>squaredsum<span style="color: #000040;">+</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #000040;">-</span>bbma<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span><span style="color: #000040;">-</span>bbma<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
           <span style="color: #808080;">//stddev on stddev and bollinger bands</span>
           stddevonstddev<span style="color: #000080;">=</span><span style="color: #8a2be2;">MathSqrt</span><span style="color: #008000;">&#40;</span>squaredsum<span style="color: #000040;">/</span>BBLEN<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
           ExtMapBuffer3<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>bbma<span style="color: #000040;">+</span>BBMULT<span style="color: #000040;">*</span>stddevonstddev<span style="color: #008080;">;</span>
           ExtMapBuffer4<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>bbma<span style="color: #000040;">-</span>BBMULT<span style="color: #000040;">*</span>stddevonstddev<span style="color: #008080;">;</span>
           <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>pos<span style="color: #000080;">&gt;</span>MALEN<span style="color: #000040;">+</span>BBLEN<span style="color: #000040;">+</span>STDLEN<span style="color: #008000;">&#41;</span>
             <span style="color: #008000;">&#123;</span>
              <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MALEN<span style="color: #000040;">!</span><span style="color: #000080;">=</span><span style="color: #008000;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #808080;">//goes in only if helper moving average is indeed enabled</span>
                <span style="color: #008000;">&#123;</span>
                 <span style="color: #808080;">//making buffer for helper MA</span>
                 <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j<span style="color: #000080;">=</span><span style="color: #008000;">1</span><span style="color: #008080;">;</span>j<span style="color: #000080;">&lt;=</span>MALEN<span style="color: #008080;">;</span>j<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>    
                    buffer_helper<span style="color: #008000;">&#91;</span>MALEN<span style="color: #000040;">-</span>j<span style="color: #000040;">+</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>ExtMapBuffer1<span style="color: #008000;">&#91;</span>pos<span style="color: #000040;">-</span>j<span style="color: #000040;">+</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>            
                 <span style="color: #808080;">//calculating different kinds of moving averages, by calling moving average methods from MovingAverages.mqh</span>
                 <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;SMA&quot;</span><span style="color: #008000;">&#41;</span>
                   ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>SimpleMA<span style="color: #008000;">&#40;</span>MALEN,MALEN,buffer_helper<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                 <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;EMA&quot;</span><span style="color: #008000;">&#41;</span>
                   <span style="color: #008000;">&#123;</span>
                    ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>ExponentialMA<span style="color: #008000;">&#40;</span>MALEN,MALEN,prevma,buffer_helper<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                    prevma<span style="color: #000080;">=</span>ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
                   <span style="color: #008000;">&#125;</span>
                 <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;SMMA&quot;</span><span style="color: #008000;">&#41;</span>
                   <span style="color: #008000;">&#123;</span>
                    ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>SmoothedMA<span style="color: #008000;">&#40;</span>MALEN,MALEN,prevma,buffer_helper<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
                    prevma<span style="color: #000080;">=</span>ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
                   <span style="color: #008000;">&#125;</span>
                 <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>MATYPE<span style="color: #000080;">==</span><span style="color: #008080;">&quot;LWMA&quot;</span><span style="color: #008000;">&#41;</span>
                   ExtMapBuffer2<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>LinearWeightedMA<span style="color: #008000;">&#40;</span>MALEN,MALEN,buffer_helper<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>      
                <span style="color: #008000;">&#125;</span><span style="color: #808080;">//if (MALEN!=0)</span>
             <span style="color: #008000;">&#125;</span><span style="color: #808080;">//if (pos&gt;MALEN+STDLEN)                           </span>
          <span style="color: #008000;">&#125;</span><span style="color: #808080;">//else if if (buff_stddevs&lt;BBLEN)</span>
       <span style="color: #008000;">&#125;</span><span style="color: #808080;">//for (pos=startpos;pos&lt;rates_total;pos++)</span>
   <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>rates_total<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span>
<span style="color: #808080;">//+------------------------------------------------------------------+</span></pre></td></tr></table></div>

<p>Ei bine, programarea in MQL5 este semnificativ mai dificila. MQL5 are un mod total diferit de gandire a indicatorilor, asa incat comparatiile cu MQL4 nu si-ar avea sensul. Indicatorul incepe intr-o maniera similara, cu un intro mai larg, liniile 10-26. Acest intro are un mult mai mare numar de setari comparativ cu MQL4. Apoi urmeaza parametrii, liniile 29-34, si in final bufferele, liniile 36-39. Observa in liniile 29-34 inlocuirea lui <strong>extern</strong> cu <strong>input</strong> , care-i ia locul in MQL5. <strong>extern</strong> ramane valabil in MQL5, dar are un alt rol.</p>
<p>Pana aici nu pare prea complicat, deoarece codul este similar cu MQL4. Dar de aici, ia o cu totul diferita turnura&#8230;<br />
Mai intai, o includere a MovingAverages.mqh pe linia 41. Aceasta va fi necesara mai jos, deoarece diferitele calculatii de medii mobile sunt realizate prin apeluri la rutine din aceasta biblioteca. Apoi, pe linia 43, o declaratie publica a <strong>handlerului pentru indicatorul Standard Deviation (numai unul, pentru ca alegem in functie de tipul mediei mobile).</strong>. In MQL5, apelurile la indicatori nu intorc valori, asa cum faceau in MQL4. Ci, intorc un handler. Acest handler este necesar ulterior pentru a intoarce valorile indicatorului, prin apeluri la <strong>CopyBuffer()</strong>. <strong>OnInit()</strong>, intinzandu-se pe liniile 48-71, este similar cu <strong>init()</strong> din MQL4, cel putin pe liniile 50-59, unde incep asignarile bufferelor si setarile desenelor. <strong>OnInit()</strong> se termina cu apeluri la <strong>iStdDev</strong> ; indicatorul va fi folosit in bucla principala, dar handlerul este generat o singura data! Patru apeluri catre <strong>iStdDev</strong>, generand un handler unic in functie de tipul de mobila specificat de parametrul MATYPE. </p>
<p>Evenimentul <strong>OnCalculate()</strong> este practic noua bucla principala. Functia are un prototip destul de misterios. Detaliile de implementare nu sunt cunoscute complet, deci functia permite o serie larga de prototipuri. Cel pe care l-am folosit in indicator este cel pe care il obtii ca default creezi indicatorul. Spre deosebire de MQL4, unde barele sunt descendente de la <em>Bars</em> la 0, bara curenta, in MQL5, indecsii barelor sunt ascendenti de la <em>prev_calculated</em>-1 to <em>rates_total</em>-1.</p>
<p>Urmand declaratiile variabilelor, bucla incepe la linia 100. Primul lucru de facut, e sa primim valoarea curenta a deviatiei standard. Pentru ca avem handlerul, apelam <strong>CopyBuffer()</strong> ca sa obtinem prima valoare a deviatiei standard. Pozitia curenta este variabila de ciclu <em>pos</em>. Totusi, CopyBuffer() intelege pozitia ca o pozitie intr-o serie temporala, nu ca o pozitie intr-un tablou. De aceea, vom copia o valoare de la <em>rates-total-pos</em>, din prima serie, 0. Daca indicatorul ar fi returnat mai multe valori, de exemplu Heiken Ashi, de exemplu, care intoarce informatii de bare, am fi avut mai mult decat o serie, adresand seriile 0,1,2 si 3 pentru a obtine preturile barelor Heiken Ashi. Valorile pe care le obtinem cu <strong>CopyBuffer()</strong> sunt puse intr-un tablou. Dar avem nevoie de un singur numar, deci tabloul in care punem datele, <em>res</em> va detine o singura valoare, res[0] , care este copiata catre primul nostru buffer, ExtIndexBuffer1, si apoi logaritmarea este aplicata, in functie de parametrul Logarithm, liniile 106-109 (acum logaritmul zecimal este inclus si el, pe langa cel natural).</p>
<p>Ce urmeaza e destul de usor de urmarit. Numaram daca avem destule valori pentru a incepe calculul Benzilor Bollinger peste deviatia standard. Cand avem destule date (ramura de &#8220;if&#8221; de la linia 110) , ne intoarcem inapoi BBLEN valori si calculam media, apoi mai facem bucla o data si calculam deviatia standard peste deviatia standard, si incele din urma Benzile Bollinger, liniile 124-125.</p>
<p>La fel ca inainte, dar acum conditia este sa avem o deviatie standard peste deviatia standard calculata, verificam daca avem MALEN valori din acestea, pentru a calcula prima medie mobila ajutatoare. Dar spre deosebire de data trecuta, acum copiem valorile deviatiei standard initiale intr-un buffer. Bufferul se va intinde de la MALEN catre 1, cu indecsi mai mari pentru valorile mai vechi. Motivul pentru a face asta e ca vom transmite acest buffer drept parametru catre metodele de calcul ale mediilor mobile importate din MovingAverages.mqh, si implementarea lor interna este trecerea in acest fel prin tablouri. Acestea sunt functii simple. Spre deosebire de indicatori, rezultatele lor sunt raspunsuri la calculele interne, nu handlere. Si aceste rezultate sunt scrise in bufferul mediei mobile ajutatoare, ExtMapBuffer2. Dupa calculul mediei mobile ajutatoare, toate calculele sunt terminate si bucla se inchide.</p>
<p><strong>Previziunea volatilitatii</strong></p>
<p>De aceea am inclus in indicator o medie mobila ajutatoare : pentru a ajuta la previziunea volatilitatii. As pune accentul, totusi, ca anumite cerinte cheie sa fie intrunite inainte de a trece la analiza:<br />
<strong>1. Distanta dintre Benzile Bollinger sa fie sub 2% din intervalul istoric al deviatiei standard </strong> &#8211; asta va asigura ca semnalul nu are loc accidental atunci cand Benzile Bollinger sunt prea departe una de alta.<br />
<strong>2. Deviatia standard curenta sa fie sub 5% din maximul deviatiei standard istorice</strong> -asta va asigura ca e o sansa ridicata sa urmeze o explozie a volatilitatii dupa ce semnalul se produce.</p>
<p>Semnalul normal va fi o intersectie cu BB superioara. Semnalul de iesire va fi determinarea unei slabiri in viteza volatilitatii. Si aceasta se intampla cand volatilitatea isi atinge varful in timp ce BB superioara continua sa creasca. Pentru a determina aceasta foarte rapid, vom folosi o medie mobila rapida &#8211; cu o perioada de 2. Odata ce se intersecteaza cu volatilitatea, deja se poate considera semnalul de iesire. Dar poate fi determinat chiar si mai repede, cand exista o distanta prea mare intre BB superioara si deviatia standard. Una din cele mai bune interpretari ale chartului se va face convertind data &#8211; BB , deviatia standard, media mobila, etc. in echivalentele lor grafice &#8211; coordonate punct pe chart. Asta iti va spune de exemplu cand deviatia standard <em>atinge</em> BB superioara.</p>
<p>Intrucat calculezi BB pentru un numar fix de bare &#8211; poate <strong>WindowBarsPerChart() </strong> &#8211; care da numarul total de bare din fereastra unde ruleaza expertul sau indicatorul , sau un numar dat de bare, si extragi valoarea maxima a BB superioara , si valoarea minima a BB inferioara , sa le numim <em>bbmax </em>si <em>bbmin</em>  &#8211; poti calcula o pozitie grafica a oricarei valori (fie ea BB, deviatie standard sau medie mobila ajutatoare) , folosind o <em>inaltime</em> a unui ecran ipotetic (sa zicem 300 de pixeli &#8220;virtuali&#8221;). Sa numim aceasta valoare <em>testvalue</em>. Atunci <em>pozitia</em> lui <em>testvalue</em> pe ecran va fi :</p>
<pre>
double pozitie=MathRound( inaltime*(testvalue-bbmin)/bbmax );
</pre>
<p>In acest fel, o conditie compozita ar fi ca, dupa ce conditiile 1. si 2. sunt indeplinite, sa existe o incrucisare <em>ori</em>o atingere.<br />
Criteriul de iesire va fi : deviatia standard este sub BB superioara si nu mai exista nici o atingere. Totusi, la primul semn de slabiciune a volatilitatii, semnalul de iesire va fi lansat, si s-ar putea intampla prea devreme. Ar trebui verificat statutul atingerii folosind o rezolutie mai mica.</p>
<p>Exista doua situatii posibile care contribuie la cresterea deviatiei standard : <strong>ori preturile se duc in sus sau in jos intr-o maniera accelerata</strong> ori <strong>preturile schimba directia de la sus la jos si viceversa cu o amplitudine crescatoare</strong>.</p>
<p>Daca volatilitatea ultimelor bare continua sa creasca, putem presupune prima conditie : preturile sunt in trend. In acest caz, verificam ultimele 2-3 preturi de deschidere pentru a vedea directia si a o tranzactiona, daca e stabila. <strong>Dar, indiferent daca directia e stabila sau nu</strong>, volatilitatea se poate duce in sus. Fluctuatiile de pret pot urmari o schema sus-jos cu o <strong>amplitudine crescatoare</strong>, pana cand directia se stabilizeaza. Totusi, volatilitatea este in continuare coborata. Fiind coborata, inseamna ca preturile <strong>nu se misca suficient de mult &#8211; ne putem permite sa pierdem</strong> . Nu conteaza ce directie tranzactionam, verificam la fiecare bara daca directia a fost corecta. Daca nu, taiem pierderile si tranzactionam din nou. Pentru ca daca semnalul e corect si volatilitatea va traversa intre 30% si 70% din intervalul sau istoric, ne asteptam la bani multi!</p>
<p>Previziunea volatilitatii e destul de simpla, si e mai mult manuala decat automata. Din moment ce ne asteptam ca volatilitatea sa &#8220;treaca prin acoperis&#8221;, putem face o previziune liniara sau parabolica. <strong>Modelul liniar</strong> e simplu. Daca avem deviatia curenta pe bara 0 (<em>s0</em>) si deviatia standard asteptata pentru bara m (<em>sm</em>)<em>, </em> atunci avem volatilitatea previzionata per bara dupa functia f(bar)=so+(sm-so)*bar/m.</p>
<p><strong>Modelul parabolic</strong> este mai dificil, pentru ca necesita un punct in plus pentru definirea curburii. Acesta este rezolvabil cu un sistem de ecuatii. Fiind date 3 puncte (b1,stddev1) , (b2,stddev2) , (b3,stddev3) unde b1, b2, b3 sunt indecsii barelor, iar stddev1,stddev2,stddev3 sunt deviatiile standard estimate :<br />
<img src="http://mqlmagazine.com/ro/wp-content/uploads/2009/11/three-points-quadratic-function.jpg" alt="three-points-quadratic-function" title="three-points-quadratic-function" width="370" height="299" class="alignleft size-full wp-image-11" /></p>
<p>Odata ce avem parametrii functiei de gradul al II-lea care descrie deviatia standard trecand prin punctele estimate, putem genera deviatia standard pe fiecare bara , vezi scriptul MQL4 :</p>

<div class="wp_codebox"><table width="100%" ><tr id="p10421"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
</pre></td><td class="code" id="p104code21"><pre class="mql4" style="font-family:monospace;"><span style="color: #0000ff;">double</span> Determinant<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>origa<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,<span style="color: #0000ff;">int</span> l1,<span style="color: #0000ff;">int</span> c1,<span style="color: #0000ff;">int</span> l2,<span style="color: #0000ff;">int</span> c2,<span style="color: #0000ff;">int</span> jumpline,<span style="color: #0000ff;">int</span> jumpcol<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
    <span style="color: #0000ff;">double</span> a<span style="color: #008000;">&#91;</span>50,50<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> degree,i,j,ip,jp,dets<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> result<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> reshere<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">double</span> r<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">string</span> image<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">int</span> ipm,jpm<span style="color: #008080;">;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>i<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">50</span><span style="color: #008080;">;</span>i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
       <span style="color: #008000;">&#123;</span>
       <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>j<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>j<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">50</span><span style="color: #008080;">;</span>j<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
          a<span style="color: #008000;">&#91;</span>i,j<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color:#800080;">0.0</span><span style="color: #008080;">;</span>
       <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>l1<span style="color: #000080;">==</span>0<span style="color: #008000;">&#41;</span>
       l1<span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>c1<span style="color: #000080;">==</span>0<span style="color: #008000;">&#41;</span>
       c1<span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
    degree<span style="color: #000080;">=</span>c2<span style="color: #000040;">-</span>c1<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>jumpcol<span style="color: #000040;">!</span><span style="color: #000080;">=</span>0<span style="color: #008000;">&#41;</span>
       degree<span style="color: #000080;">=</span>degree<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
    ip<span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span>l1<span style="color: #008080;">;</span>i<span style="color: #000080;">&lt;=</span>l2<span style="color: #008080;">;</span>i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
      ipm<span style="color: #000080;">=</span>ip<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>       
      jp<span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
      <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>i<span style="color: #000040;">!</span><span style="color: #000080;">=</span>jumpline<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
        <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>j<span style="color: #000080;">=</span>c1<span style="color: #008080;">;</span>j<span style="color: #000080;">&lt;=</span>c2<span style="color: #008080;">;</span>j<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
          <span style="color: #008000;">&#123;</span>
          jpm<span style="color: #000080;">=</span>jp<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
          <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>j<span style="color: #000040;">!</span><span style="color: #000080;">=</span>jumpcol<span style="color: #008000;">&#41;</span>
             <span style="color: #008000;">&#123;</span>
             r<span style="color: #000080;">=</span>origa<span style="color: #008000;">&#91;</span>i<span style="color: #000040;">-</span>1,j<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span><span style="color:#800080;">1.0</span><span style="color: #008080;">;</span>                          
             a<span style="color: #008000;">&#91;</span>ipm,jpm<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>r<span style="color: #008080;">;</span>             
             jp<span style="color: #000080;">=</span>jp<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
             <span style="color: #008000;">&#125;</span>
          <span style="color: #008000;">&#125;</span><span style="color: #666666;">//for (j=c1;j&lt;=c2;j++c2)              </span>
        ip<span style="color: #000080;">=</span>ip<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
        <span style="color: #008000;">&#125;</span><span style="color: #666666;">//if (i!=jumpline)</span>
      <span style="color: #008000;">&#125;</span><span style="color: #666666;">//for (i=l1;i&lt;=l2;i++)</span>
    result<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>degree<span style="color: #000080;">==</span>1<span style="color: #008000;">&#41;</span>
       result<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>  
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>degree<span style="color: #000080;">==</span>2<span style="color: #008000;">&#41;</span>
       result<span style="color: #000080;">=</span>a<span style="color: #008000;">&#91;</span>1<span style="color: #000040;">-</span>1,1<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>a<span style="color: #008000;">&#91;</span>2<span style="color: #000040;">-</span>1,2<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span><span style="color: #000040;">-</span>a<span style="color: #008000;">&#91;</span>2<span style="color: #000040;">-</span>1,1<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>a<span style="color: #008000;">&#91;</span>1<span style="color: #000040;">-</span>1,2<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>degree<span style="color: #000080;">==</span>3<span style="color: #008000;">&#41;</span>
       result<span style="color: #000080;">=</span>a<span style="color: #008000;">&#91;</span>1<span style="color: #000040;">-</span>1,1<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>2<span style="color: #000040;">-</span>1,2<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>3<span style="color: #000040;">-</span>1,3<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 
              a<span style="color: #008000;">&#91;</span>1<span style="color: #000040;">-</span>1,2<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>2<span style="color: #000040;">-</span>1,3<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>3<span style="color: #000040;">-</span>1,1<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 
              a<span style="color: #008000;">&#91;</span>1<span style="color: #000040;">-</span>1,3<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>2<span style="color: #000040;">-</span>1,1<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>3<span style="color: #000040;">-</span>1,2<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">-</span> 
              a<span style="color: #008000;">&#91;</span>1<span style="color: #000040;">-</span>1,3<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>2<span style="color: #000040;">-</span>1,2<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>3<span style="color: #000040;">-</span>1,1<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">-</span> 
              a<span style="color: #008000;">&#91;</span>1<span style="color: #000040;">-</span>1,2<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>2<span style="color: #000040;">-</span>1,1<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>3<span style="color: #000040;">-</span>1,3<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">-</span> 
              a<span style="color: #008000;">&#91;</span>1<span style="color: #000040;">-</span>1,1<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>2<span style="color: #000040;">-</span>1,3<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">*</span> a<span style="color: #008000;">&#91;</span>3<span style="color: #000040;">-</span>1,2<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #008080;">;</span>    
    <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>degree<span style="color: #000080;">&gt;</span>3<span style="color: #008000;">&#41;</span>
       <span style="color: #008000;">&#123;</span>
       <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>dets<span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>dets<span style="color: #000080;">&lt;=</span>degree<span style="color: #008080;">;</span>dets<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
           <span style="color: #008000;">&#123;</span>
           reshere<span style="color: #000080;">=</span>Determinant<span style="color: #008000;">&#40;</span>origa,1,1,degree,degree,1,dets<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
           result<span style="color: #000080;">=</span>result <span style="color: #000040;">+</span> <span style="color: #8a2be2;">MathPow</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>1,1<span style="color: #000040;">+</span>dets<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>origa<span style="color: #008000;">&#91;</span>1<span style="color: #000040;">-</span>1,dets<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>reshere<span style="color: #008080;">;</span>
           <span style="color: #008000;">&#125;</span>
       <span style="color: #008000;">&#125;</span>
    <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>result<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> EstablishStddevFunction<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> b1,<span style="color: #0000ff;">double</span> stddev1,<span style="color: #0000ff;">int</span> b2,<span style="color: #0000ff;">double</span> stddev2,<span style="color: #0000ff;">int</span> b3,<span style="color: #0000ff;">double</span> stddev3,<span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>a, <span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>b, <span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>c<span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
   <span style="color: #0000ff;">double</span> d,da,db,dc<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> barray<span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> stddev<span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> det_d<span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> det_da<span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> det_db<span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">double</span> det_dc<span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>3<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>b1<span style="color: #000040;">*</span><span style="color:#800080;">1.0</span><span style="color: #008080;">;</span>
   barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>b2<span style="color: #000040;">*</span><span style="color:#800080;">1.0</span><span style="color: #008080;">;</span>
   barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>b3<span style="color: #000040;">*</span><span style="color:#800080;">1.0</span><span style="color: #008080;">;</span>
   stddev<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev1<span style="color: #008080;">;</span>
   stddev<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev2<span style="color: #008080;">;</span>
   stddev<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev3<span style="color: #008080;">;</span>
   det_d<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_d<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_d<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>   
   det_d<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_d<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_d<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
   det_d<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_d<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_d<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
&nbsp;
   det_da<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_da<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_da<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>   
   det_da<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_da<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_da<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
   det_da<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_da<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_da<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
&nbsp;
   det_db<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_db<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_db<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>   
   det_db<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_db<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_db<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
   det_db<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_db<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_db<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
&nbsp;
   det_dc<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_dc<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_dc<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   
   det_dc<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_dc<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_dc<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
   det_dc<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>  det_dc<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>barray<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>   det_dc<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>stddev<span style="color: #008000;">&#91;</span>2<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
&nbsp;
   d<span style="color: #000080;">=</span>Determinant<span style="color: #008000;">&#40;</span>det_d,1,1,3,3,0,0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   da<span style="color: #000080;">=</span>Determinant<span style="color: #008000;">&#40;</span>det_da,1,1,3,3,0,0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   db<span style="color: #000080;">=</span>Determinant<span style="color: #008000;">&#40;</span>det_db,1,1,3,3,0,0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   dc<span style="color: #000080;">=</span>Determinant<span style="color: #008000;">&#40;</span>det_dc,1,1,3,3,0,0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>   
   a<span style="color: #000080;">=</span>da<span style="color: #000040;">/</span>d<span style="color: #008080;">;</span>
   b<span style="color: #000080;">=</span>db<span style="color: #000040;">/</span>d<span style="color: #008080;">;</span>
   c<span style="color: #000080;">=</span>dc<span style="color: #000040;">/</span>d<span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #666666;">//+------------------------------------------------------------------+</span>
<span style="color: #666666;">//| script program start function                                    |</span>
<span style="color: #666666;">//+------------------------------------------------------------------+</span>
<span style="color: #0000ff;">int</span> start<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
   <span style="color: #0000ff;">double</span> aa,bb,cc<span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Standard Deviation parabolic forecasting example&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>        
   EstablishStddevFunction<span style="color: #008000;">&#40;</span>0,0.003,3,0.006,9,0.1,aa,bb,cc<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;Forecasted standard deviations&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> bar<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>bar<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">10</span><span style="color: #008080;">;</span>bar<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
       <span style="color: #8a2be2;">Print</span><span style="color: #008000;">&#40;</span><span style="color: #008080;">&quot;bar &quot;</span>,<span style="color: #8a2be2;">DoubleToStr</span><span style="color: #008000;">&#40;</span>bar,<span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span>,<span style="color: #008080;">&quot;  stddev=&quot;</span>,<span style="color: #8a2be2;">DoubleToStr</span><span style="color: #008000;">&#40;</span>aa<span style="color: #000040;">*</span>bar<span style="color: #000040;">*</span>bar<span style="color: #000040;">+</span>bb<span style="color: #000040;">*</span>bar<span style="color: #000040;">+</span>cc,4<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      <span style="color: #008000;">&#125;</span>
   <span style="color: #0000ff;">return</span><span style="color: #008000;">&#40;</span>0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span>
<span style="color: #666666;">//+------------------------------------------------------------------+</span></pre></td></tr></table></div>

<p>De observat ca functia Determinant are o aplicatie recursiva, pana la gradul 3, unde se aplica regula lui Sarrus. Astfel poti folosi functia pentru a calcula determinanti de ordinul n &#8211; dar atentie la timp si cerintele de alocare a memoriei. Un prototip MQL5 al functiei<br />
Determinant va arata in felul urmator:</p>
<pre>double Determinant(double &#038;origa[][50],ushort l1,ushort c1,ushort l2,ushort c2,ushort jumpline,ushort jumpcol)</pre>
<p>De observat ca a doua dimensiune este fixata la 50. MQL5 nu suporta dimensiuni mai mari decat unu cu marime nespecificata.</p>
<p>Toate acestea pot suna bine, dar nu uitati ca <em>nu tranzactionam volatilitatea</em> . Nu avem inca o directie a pretului.</p>
<p>Dar <strong>directia pretului poate fi extrasa din evolutia volatilitatii</strong>.</p>
<p><strong>Previziunea pretului din previziunea volatilitatii</strong></p>
<p>Trebuie sa consideram ca la fiecare bara, un pret iese din analiza si altul intra in loc. Daca avem <em>Vechiul </em>pentru cel mai vechi pret si <em>Noul </em>pentru pretul care intra, avem:</p>
<p>Noua Medie = Vechea Medie &#8211; Vechiul/N + Noul/N ;</p>
<p>Acum, dat fiind faptul ca am trasat deja deviatiile standard care vor veni, intrebarea este <em>care este noul pret care va da noua deviatie standard</em> la rand ?</p>
<p>Asa ca luam deviatia standard, obtinuta cu modelul de previziune, si o ridicam la patrat. Avem astfel dispersia. Inmultind dispersia cu N (numarul de preturi din analiza) , incepem sa formam ecuatia pentru membrul cel mai nou. Luand in consideratie <em>n</em> , elemente, de la <em>P1</em> (elementul care va iesi din analiza) , la <em>Pn</em> (ultimul element), <em>Pn+1</em> (noul pret care trebuie sa fie determinat) si media mobila curenta, formam ecuatia deviatiei standard, ridicand la patrat si inmultind-o cu n, care da suma patratelor <em>Pi</em> &#8211; noua medie, care este calculata ca mai sus, scotand influenta lui <em>P1</em> si adaugand influenta lui <em>Pn+1</em>. Folosim o variabila ajutatoare, <em>avgc</em> , care este media curenta fara influenta lui P1: <em>(Nu mai e nevoie sa o zicem, ecuatia este scrisa pentru cazul in care deviatia standard este calculata folosind media aritmetica simpla)</em><br />
<img src="http://mqlmagazine.com/ro/wp-content/uploads/2009/11/stddev-equation.jpg" alt="stddev-equation" title="stddev-equation" width="816" height="472" class="alignleft size-full wp-image-10" /></p>
<p>Deci ce se poate vedea e ceea ce era de asteptat. Fiecare deviatie standard apare ca rezultat al unui nou pret, care poate fi ori in sus, ori in jos, iar acestea sunt bineinteles radacinile ecuatiei de gradul al II-lea. Am grupat elementele ca sa se vada clar coeficientii lui Pn+1, Pn+1 la patrat si termenul liber. Fiind date <em>m</em> deviatii standard previzionate, avem 2^m preturi previzionate dupa <em>m</em> bare. Desigur, acestea nu pot fi generate direct ; ele formeaza un arbore . Astfel, in urma primei calculatii vor rezulta doua preturi ; fiecare dintre ele va fi baza unui nou calcul si asa mai departe. Astfel vom avea 2, 4, 8, 16&#8230; 2^m preturi pana la sfarsit. Cel mai probabil, pretul nu va avea o miscare sus-jos si viceversa cu o amplitudine in crestere pentru toate cele m bare. Ci, ne putem astept doar la cateva bare sa aiba o astfel de miscare, dupa care directia se va stabiliza. Putem avea cateva semnale directionale gresite la inceput, in timpul catorva balansari, dar dupa acestea miscarile pretului vor fi mult mai puternice. Sfatul meu este ca metoda sa fie folosita mai ales pentru timeframe-uri(<em>perioada ocupata de o singura bara</em>) mai mari decat patru ore.<br />
Se poate lucra si cu timeframe-uri mai mici, dar semnalele de volatilitate prinse pe timeframe-uri mari pot produce rezultate spectaculoase.</p>

<div class="wp_codebox"><table width="100%" ><tr id="p10422"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td class="code" id="p104code22"><pre class="mql4" style="font-family:monospace;"><span style="color: #0000ff;">void</span> CalculateStats<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>data<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,<span style="color: #0000ff;">int</span> lastindex,<span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>avg, <span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>stddev<span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
   <span style="color: #0000ff;">double</span> sum<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">int</span> i<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>i<span style="color: #000080;">&lt;=</span>lastindex<span style="color: #008080;">;</span>i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
       sum<span style="color: #000080;">=</span>sum<span style="color: #000040;">+</span>data<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span>
      <span style="color: #008000;">&#125;</span>
   avg<span style="color: #000080;">=</span>sum<span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>lastindex<span style="color: #000040;">+</span>1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   sum<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>
   <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span>i<span style="color: #000080;">&lt;=</span>lastindex<span style="color: #008080;">;</span>i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
      <span style="color: #008000;">&#123;</span>
       sum<span style="color: #000080;">=</span>sum<span style="color: #000040;">+</span><span style="color: #008000;">&#40;</span>data<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #000040;">-</span>avg<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>data<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #000040;">-</span>avg<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      <span style="color: #008000;">&#125;</span>
   stddev<span style="color: #000080;">=</span><span style="color: #8a2be2;">MathSqrt</span><span style="color: #008000;">&#40;</span>sum<span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>lastindex<span style="color: #000040;">+</span>1<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0000ff;">void</span> CalculateNextPrices<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>p<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span>,<span style="color: #0000ff;">int</span> lastindex,<span style="color: #0000ff;">double</span> newstddev,<span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>newprice1,<span style="color: #0000ff;">double</span> <span style="color: #000040;">&amp;</span>newprice2<span style="color: #008000;">&#41;</span>
  <span style="color: #008000;">&#123;</span>
   <span style="color: #0000ff;">double</span> avg,avgc,stddev,suma2pi,sumapi2,sumapimavgc,sumapimavgc2,delta,a,b,c<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">int</span> n,i<span style="color: #008080;">;</span>
   CalculateStats<span style="color: #008000;">&#40;</span>p,lastindex,avg,stddev<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   n<span style="color: #000080;">=</span>lastindex<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>
   avgc<span style="color: #000080;">=</span>avg<span style="color: #000040;">-</span>p<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #000040;">/</span>n<span style="color: #008080;">;</span>
   <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span>i<span style="color: #000080;">&lt;=</span>lastindex<span style="color: #008080;">;</span>i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span>
     <span style="color: #008000;">&#123;</span>
      suma2pi<span style="color: #000080;">=</span>suma2pi<span style="color: #000040;">+</span><span style="color: #008000;">&#40;</span>2<span style="color: #000040;">*</span>p<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      sumapi2<span style="color: #000080;">=</span>sumapi2<span style="color: #000040;">+</span><span style="color: #008000;">&#40;</span>p<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #000040;">*</span>p<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      sumapimavgc<span style="color: #000080;">=</span>sumapimavgc<span style="color: #000040;">+</span><span style="color: #008000;">&#40;</span>p<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #000040;">-</span>avgc<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
      sumapimavgc2<span style="color: #000080;">=</span>sumapimavgc2<span style="color: #000040;">+</span><span style="color: #008000;">&#40;</span>p<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #000040;">-</span>avgc<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #008000;">&#40;</span>p<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #000040;">-</span>avgc<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
     <span style="color: #008000;">&#125;</span>
   a<span style="color: #000080;">=</span>1<span style="color: #000040;">-</span><span style="color: #008000;">&#40;</span>1.0<span style="color: #000040;">/</span>n<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   b<span style="color: #000080;">=</span><span style="color: #008000;">&#40;</span>2.0<span style="color: #000040;">*</span>avgc<span style="color: #000040;">/</span>n<span style="color: #008000;">&#41;</span><span style="color: #000040;">-</span><span style="color: #008000;">&#40;</span>2.0<span style="color: #000040;">/</span>n<span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span>sumapimavgc<span style="color: #000040;">-</span>2.0<span style="color: #000040;">*</span>avgc<span style="color: #008080;">;</span>
   c<span style="color: #000080;">=</span>sumapimavgc2<span style="color: #000040;">+</span>avgc<span style="color: #000040;">*</span>avgc<span style="color: #000040;">-</span>newstddev<span style="color: #000040;">*</span>newstddev<span style="color: #000040;">*</span>n<span style="color: #008080;">;</span>
&nbsp;
   delta<span style="color: #000080;">=</span>b<span style="color: #000040;">*</span>b<span style="color: #000040;">-</span>4.0<span style="color: #000040;">*</span>a<span style="color: #000040;">*</span>c<span style="color: #008080;">;</span>
   newprice1<span style="color: #000080;">=</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>b<span style="color: #000040;">-</span><span style="color: #8a2be2;">MathSqrt</span><span style="color: #008000;">&#40;</span>delta<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>2.0<span style="color: #000040;">*</span>a<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
   newprice2<span style="color: #000080;">=</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span>b<span style="color: #000040;">+</span><span style="color: #8a2be2;">MathSqrt</span><span style="color: #008000;">&#40;</span>delta<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">/</span><span style="color: #008000;">&#40;</span>2.0<span style="color: #000040;">*</span>a<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>
  <span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Prima functie calculeaza parametrii statistici: media si deviatia standard . A doua functie calculeaza noile preturi care se potrivesc cu noua deviatie standard. Ambele tablouri pleaca de la indexul zero. Parametrul <em>lastindex </em>parameter este ultimul index care contine date. Se observa utilizarea constantelor intregi in formule care calculeaza variabile double. Aceste constante trebuie scrise intr-o maniera double : 1.0 in loc de 1, 2.0 in loc de 2 s.a.m.d., altfel rezultatele sunt expuse la erori.</p>
<p>Aveti grija cand folositi calculul parabolic pentru deviatia standard. Daca primul punct este ales inainte de varful parabolei, deviatia standard pe parcurs poate deveni zero sau negativa, iar ecuatia va avea o radacina sau niciuna &#8211; radacinile complexe nu au sens aici!</p>
<p><img src="http://mqlmagazine.com/ro/wp-content/uploads/2009/11/Previziunea-volatilitatii.jpg" alt="Previziunea volatilitatii" title="Previziunea volatilitatii" width="993" height="566" class="alignleft size-full wp-image-175" /></p>
<div class='dd_after'><table><tr><td><iframe src='http://digg.com/api/diggthis.php?w=new&amp;u=http://mqlmagazine.com/ro/programarea-in-mql/analiza-volatilitatii-de-la-previziunea-volatilitatii-la-previziunea-pretului/&amp;t=Analiza+volatilitatii+%3A+de+la+previziunea+volatilitatii+la+previziunea+pretului&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/programarea-in-mql/analiza-volatilitatii-de-la-previziunea-volatilitatii-la-previziunea-pretului/&amp;title=Analiza+volatilitatii+%3A+de+la+previziunea+volatilitatii+la+previziunea+pretului&amp;t=2' height='18' width='120' frameborder='0' scrolling='no'></iframe></td><td><script type='text/javascript'><!--yahooBuzzArticleHeadline=Analiza+volatilitatii+%3A+de+la+previziunea+volatilitatii+la+previziunea+pretului;//--></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/programarea-in-mql/analiza-volatilitatii-de-la-previziunea-volatilitatii-la-previziunea-pretului/&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/programarea-in-mql/analiza-volatilitatii-de-la-previziunea-volatilitatii-la-previziunea-pretului/',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/programarea-in-mql/analiza-volatilitatii-de-la-previziunea-volatilitatii-la-previziunea-pretului/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

