Wednesday, 20 September 2017

Kb Multi System Kaupankäynnin


MetaTrader 5 - Esimerkkejä. Multi-valuutan monitieteisen asiantuntijan neuvonantajan luominen. Mielestäni on olemassa melko harvoja kauppiaita, jotka myyvät useampia kauppasymboleja ja käyttävät useita strategioita Tämä lähestymistapa ei ainoastaan ​​anna mahdollisuutta lisätä voittoa vaan myös minimoida riskin huomattavasta vetämisestä tehokkaaseen rahanhallintaan Kun luodaan asiantuntijaneuvonantaja, ensimmäinen luonnollinen askel ohjelmastrategian tehokkuuden tarkistamisessa on optimointi parhaiden parametrien määrittämiseksi. Asiantuntijaneuvojat olisivat teknisesti valmiita määritettyjen parametrien avulla kaupankäynti kuitenkin jäisi yksi tärkeä kysymys vastaamatta Mitä testaus tuloksia olisi, jos elinkeinonharjoittaja voisi laittaa kaikki strategiat yhdessä yksi asiantuntija neuvonantaja ymmärtää, että vetäminen useita symboleja tai strategioita voisi joskus päällekkäisyyksiä ja johtaa ääneen yhteensä vetäminen tai jopa marginaalipuhelu voi joskus tulla ikävä yllätys. Tämä artikkeli esittelee käsitteen luoda monivaluutan monijärjestelmäinen asiantuntija-neuvonantaja, jonka avulla voimme löytää vastauksen tähän tärkeään kysymykseen1. Asiantuntijapalvelun rakenne. Yleisesti ottaen asiantuntijaneuvon rakenne on seuraavanlainen. monivaluutan monijärjestelmä Expert Advisor. As näet, ohjelma perustuu silmukkaan Jokainen strategia on järjestetty silmukka, jossa jokainen iterointi on vastuussa kaupankäynnin kunkin symbolin erikseen Täällä voit järjestää silmukoita rajoittamaton määrä strategioita Tärkeää on, että tietokoneesi saa riittävät resurssit tällaisen ohjelman käsittelemiseen. Sinun on pidettävä mielessä, että MetaTraderissa voi olla vain yksi asema kullekin kaupankäynnin symbolina. Tällainen sijainti edustaa aiemmin tehtyjen Buysin ja Sellsien summaa. yhden symbolin monistrategioiden testauksen tulos ei ole identtinen samojen strategioiden samojen testitulosten summan kanssa samalle symbolille. Asiantuntijan A rakenteen dvisor ottavat kaksi strategiaa, joista kumpikin käydään kahta symbolia. Buy Ask price reaches lower band of Bollinger Bands indikaattori lasketaan perustuen alhaiseen hintaan Sulkeva hintatarjous saavuttaa Bollingerin bändien alemman kaistan indeksin, laskettu perustuu High price. Sell Bid hinta saavuttaa Bollingerin kaistojen indikaattorin ylemmän kaistan perusteella lasketun korkean hinnan Sulkemiskyselyn hinta saavuttaa Bollingerin kaistan indikaattorin ylärajan, joka lasketaan perustuen alhaiseen hintaan. Rajoitukseen voidaan suorittaa vain yksi sopimus jokaisessa palkissa. laskeva lähelle auki ja Ask hinta päätyy edelliseen palkkiin korkealle Sulkemalla Stop Loss tai Take Profit. Sell edellinen palkki on nouseva lähellä auki ja Tarjoushinta saavuttaa edellisen palkin s alhainen Sulkeminen Stop Loss tai Take Profit. Restriction vain yksi sopimus voi suoritetaan jollakin tietyllä palkilla. Jotta uusista punkkeista riippumaton symboli, jolle Expert Advisoria testataan tai josta se tulee kaupankäynnin kohteeksi, on suositeltavaa käyttää OnTimer-hauskaa Multivalutaatiotarkoituksessa tapahtuvaa kaupankäyntiä varten. Tätä tarkoitusta varten, kun asiantuntija-neuvonantaja on alustettu, määrittelemme tapahtumaketjun taajuuden ohjelmalaskentakutsulle EventSetTimer-toiminnon avulla ja deinitialisoinnin jälkeen käytämme EventKillTimer-toimintoa kertoaksemme terminaalin lopettamaan sukupolven tapahtumien sijaan. EventSetTimerin sijaan voit myös käyttää EventSetMillisecondTimer - ohjelmaa, jossa taajuus asetetaan tarkalleen millisekunnille, mutta sinun ei pidä väärinkäyttää sitä liian usein ohjelman laskentakutsun avulla. Tilin, sijainnin ja symbolien asetusten sekä kaupankäyntitoimintojen käyttämiseksi käytämme CAccountInfo CPositionInfo CSymbolInfo ja CTrade-luokat, vastaavasti Anna s sisällyttää ne asiantuntijaneuvontaan. Koska Expert Advisor perustuu silmukoihin, meidän on luotava taulukot sen ulkoisille parametreille. Haluamme ensin luoda vakiot, jotka vastaavat kunkin symbolin lukumäärää Strategiaan. Luomme sitten ulkoisia parametreja Vakojen avulla määrittelemme niiden kokoisten ryhmien koot, joihin ne tulevat pied Lisäksi luodamme indikaattoreita ja muita globaaleja muuttujia. Esimerkiksi yksi symboli strategian annetaan alla. Jotta on mahdollisuus poistaa kaupan tiettyä symbolia, olemme luoneet Boolean muuttuja IsTradeA0, joka on sijoitettu alusta asti (esim. vipu). Koska vipuvaikutusta sovelletaan kaupankäyntitilillä ja sillä ei ole mitään tekemistä strategian tai symbolin kanssa, ei ole tarvetta kopioi sen arvo taulukoihin. Sitten kopioimme ulkoiset muuttujat taulukkoihin. Jos jokin ulkoinen parametri määritellään sellaisen tyypin mukaan, joka vaatii muuntamisen toiseen, tämä voidaan tehdä kätevämmällä tavalla kopioimalla ryhmiin. voimme nähdä, että BBPeriodA0 luotiin uintiksi estämään käyttäjää asettamasta negatiivista arvoa Tässä muutetaan se intiksi ja kopioimme sen taulukkoon, joka luotiin myös nimellä int Muussa tapauksessa kääntäjä antaa varoituksen, jos yrität aseta uintyyppi-parametri indikaattorikahvaan. Katsele lisäksi, onko kaupankäynnin symboli saatavilla Market Watch - ohjelmassa ja onko sitä käytetty useammin kuin yhden strategian sisällä. Jos symbolit on valittu oikein, tarkista, kukin niistä, luo indikaattoreita, saavat tarvittavat tiedot erän laskemiseen ja tarvittaessa tekemään muita määritellyn strategian mukaisia ​​asioita. Olemme toteuttaneet edellä mainitut toiminnot silmukan sisällä. Joten, asetamme parametrit kaupankäynnin strategiat A käyttäen CTrade-luokan TradeA-kohdetta. Sama proseduuri toistetaan jokaiselle strategialle, i. e. Kopioi ulkoiset muuttujat taulukkoihin. Tarkista, onko symbolit valittu oikein. Tarkista virheet, aseta indikaattorikäsittelyt, laske datan tiedot paljon ja kaiken, mitä vaaditaan tietylle strategialle. Aseta parametrit kaupankäynnin toimintoihin. Lopuksi olisi hyvä tarkistaa, käytetäänkö yhtä ja samaa symbolia useissa strategioissa esimerkki Seuraavassa on kaksi strategiaa.3 Kaupankäynti silmukoille. OnTimer-toiminnon silmukoiden kehys on seuraavanlainen. Jos yksittäisen symbolisen asiantuntijaneuvonpitäjä, joka perustuu yhteen strategiaan, on edellytys, että kaikki myöhemmät laskelmat on lopetettava, käytämme palautusoperaattori Meidän tapauksessamme meidän on vain lopetettava nykyinen iterointi ja jatkettava seuraavaa symbolien iteraatiota. Tätä tarkoitusta varten on parasta käyttää jatkuvaa operaattoria. Jos haluat parantaa monistrategiasi Expert Advisoria lisäämällä strategia jossa on silmukan, joka sisältää edellytyksen kaikkien myöhempien laskelmien lopettamiseksi, voit käyttää seuraavaa kaavaa. Luodessasi silmukoiden kehystä, yksinkertaisesti lisätään sen koodit muilta EA: sta ja korvataan sitten joitain muuttujia taulukkoelementeillä. Esimerkiksi, voimme muuttaa ennalta määritetyn muuttujan symboli SymbolA i: ksi tai Point to PointA i Näiden muuttujien arvot ovat tyypillisiä annetulle symbolille ja ne kopioitiin sitten ryhmille alustuksen yhteydessä. e, anna s löytää indikaattorin arvo. Jotta toteutetaan ostoaseman sulkeminen, kirjoitamme seuraavan koodin. Osentaessasi Osta-asema. Kuomio, että lopetat ajastimen tapahtumakohdan ja poistat indikaattorin kädensijat deinitialisoinnissa.4 Testaa tulokset. Kun asiantuntija Neuvonantaja on valmis, testaamme kunkin strategian ja kunkin symbolin erikseen ja verrataan testituloksia testitilassa saatuihin tilanteisiin, kun kaikki strategiat ja symbolit käyvät samanaikaisesti. Oletetaan, että käyttäjä on jo tunnistanut syötettyjen parametrien optimaaliset arvot. ovat Strategy Tester. Fig 2 Strategy Testerin asetuksia. Tulokset strategialle A, EURUSD. Fig 3 Testaustulokset strategialle A, EURUSD. Tulokset strategialle A, GBPUSD. Fig 4 Testaustulokset strategialle A, GBPUSD. Results for strategia B, AUDUSD. Fig 5 Testaustulokset strategialle, AUDUSD. Results for strategy B, EURJPY. Fig 6 Testaustulokset strategialle, EURJPY. Test tulokset kaikista strategioista ja symboleista. Kuva 7 Testitulokset kaikille strategioille ja symboleille. Tämän tuloksena meillä on kätevä ja yksinkertainen rakenne multi-valuutan monijärjestelmä Expert Advisor, jossa voit sijoittaa lähes minkä tahansa strategiasi. Tällainen Expert Advisor voit paremmin arvioida kaupankäynnin tehokkuutta käyttämällä kaikkia strategioita Se voi myös osoittautua hyödylliseksi siinä tapauksessa, että vain yksi asiantuntijaedustaja saa työskennellä tietylle tilille Asiantuntijaneuvon lähdekoodi on liitetty artikkeliin edellä mainittujen tietojen tutkimisen helpottamiseksi. 14.10.2011. Lisätty 29. helmikuuta 2012 lisätty huomauttaa, että tämä järjestelmä on riippuvainen siitä, että avoimet hinnat saataisiin täyttämään. Tällaisten täytteiden hankkiminen edellyttää minimaalisen vähimmäisviiveen syöttämistä ja kehittyneitä ohjelmointitaitoja kaupan automatisoinnin toteuttamiseksi.2 Kun asetetaan tulohinta hieman avatun hinnan alapuolelle, parantamaan suorituskykyä järjestelmä epäonnistuu Vaikka jopa yhden sentin hinnan parantaminen tappaa järjestelmän Tämä viittaa siihen, että suurin osa voitosta on peräisin päivistä, jolloin avoin hinta oli t o päivittäinen alhainen, eli hinta nousi avoimesta ja ei koskaan laskenut sen alapuolelle Tämä tietenkin on ilmeistä Vahvista tämä lisäsin tämän testitilan, näyttää ennalta jättävän päivämäärät, jolloin Open Low. Osta Osta ja EI O. Tämä tappaa järjestelmän ja osoittaa, että suurin osa voitosta tulee päivinä, jolloin OL edelleen vahvistavat tämän lisännyt päinvastaisen ehdon. Osta Osta ja O L. Tämä antaa lähes ääretöntä voittoa ja osoittaa, että useimmat voitot tulevat päivinä, siirtyy välittömästi Avaa ja ei koskaan palaa sen alapuolelle. Tavoitteena parantaa tulohintaa on virhe, jonka pitäisi tulla Stop-sarjalle 1-2 ct yläpuolella Avoin hintaa. Tämä poistaa päivät, jolloin hinta laskee eikä koskaan kääntyy takaisin. Tämä parantaa suorituskyky huomattavasti.3 Tämä järjestelmä liikkuu polvipituisia kauppiaiden vastauksia kuviot Tällaisia ​​malleja yleensä hukkui suuri volyymi kaupankäynnin vuoksi tämä järjestelmä toimii paljon paremmin, kun valitset tickers kanssa volyymien välillä 500000 ja 5.000.000 osaketta päivä Tämä myös parantaa per muodonmuutosta merkittävästi. Yllä mainittujen kahden ominaisuuden lisääminen johtaa tuloskehitykseen, joka on paljon parempi kuin alla esitetty. Anteeksi, minulla ei ole aikaa dokumentoida edellä yksityiskohtaisemmin Onnea. Tässä viestissä hahmotellaan hyvin yksinkertainen Pitkäkestoinen kaupankäynti-ajatus, joka ostaa prosenttiosuus alle eilen s Alhainen ja poistuu seuraavana päivänä s Avoin Ajoittain ajoittain avoin hinta saattaa olla vaikea saada. Järjestelmän korkea kannattavuus tekee siitä hyvän ehdokkaan lisää kokeilua varten. Järjestelmä toimii hyvin Watchlistien kanssa, kuten N100, SP500, SP1500, Russel 1000, jne. Suorituskyky Russel 1000: ssä, maksimi avoimet paikat, asetettu 1: ksi 12 10 2003-1210 2011, näyttää tällä tavoin. Jotkut muista katselusuosituksista antavat vähemmän altistumista voitolle, mutta tämä mukana on alhaisemmat DD: t Palkkiot asetettiin 0 005 per osake Ei marginaalia käytetty. No nimenomaista sijoitusta käytetään tickers vaihdetaan perustuu niiden aakkosjärjestykseen lajitella Watchlist Tämä voi tuntua oudolta, mutta on merkittävä kääntää tämän tyyppinen järjestelmä epäonnistuu Tämä voi tarkoittaa, että reaaliaikaisten skannausongelmien vuoksi tällaisen lajin yläpuolella luetellut symbolit voidaan vaihtaa eri tavalla kuin alhaalla luetellut symbolit. Huomio Likviditeetille haluat vaihtaa useamman kuin yhden sijainnin ja luiskahduksen. Entry on melko riskittömät, mutta poistumiset voivat olla ongelmallisia DD: t ovat merkittäviä, mutta niitä voidaan korjata parannetuilla reaaliaikaisilla kaupoilla tehdyillä merkinnöillä ja poistumisilla. Kun kaupankäynnin yhteydessä on mahdollista, voidaan OCA DAY-LMT-merkintätilaukset sijoittaa kaikkiin signaaleihin ja vain odottaa ja katsoa, ​​mitä täytöt Koska poistumiset ovat vaikeampia kuin merkinnät, voit halutessasi tutkia muita poistumisstrategioita. Parametrien oletusarvot on juuri poimittu hattasta Melkein varmasti voit Optimoida ne tai mukauttaa niitä dynaamisesti yksittäisten tunnusten avulla Olen testannut tätä järjestelmää lyhyesti Walk-Forward-tilassa ja tulokset olivat kannattavia kaikkiin testattuihin vuosiin lukuun ottamatta varastojen lukumäärän vaihtaneita parametrejä ei näytä kovin kriittisiltä. Yli-optimointi ei näytä ongelmalta tässä tapauksessa. Alla oleva koodi on hyvin yksinkertainen ja vaatii vain muutamia selityksiä. On kuitenkin tärkeää ymmärtää, että tämä järjestelmä saa pienen reunan kaupankäynnin kohteena Open ja laskee TrendMA: n samalla avoimella hinnalla. Jotkut saattavat tulkita tätä tulevana vuotamana, mutta jos käytät tätä järjestelmää reaaliaikaisesti, ei ole Monet ihmiset eivät tiedä, että jos käytät kauppaa Openin kanssa, voit myös käyttää tätä hintaa laskelmissa niin kauan kuin teet niitä reaaliaikaisesti, tässä AmiBroker ja teknologia voivat antaa sinulle mahdollisuuden Jos valitset TrendMA-palkin yhdellä palkilla, järjestelmä on edelleen erittäin kannattava, mutta DD: t nousevat joillekin katselusuosituksille. Jos käytät kiinteitä investointeja, ero on vähäpätöinen. Kaupankäynti olisi aloittaa skannaus ennen markkinoiden avaamista ja poistamalla hintatietoja että he eivät todennäköisesti täytä OpenThresh-ohjelmaa. Näin voit aloittaa 1000-symbolien skannaamisen, mutta nopeasti skannattu määrä vähenee vain kymmeniä tunnisteita. ime scan on erittäin nopea ja voit sijoittaa LMT-järjestyksen hyvin lähelle Avaa, saatat jopa pystyä parantamaan avointa hintaa. Vaikka muutamat ihmiset katselivat alla olevaa koodia ja löytäneet mitään väärää, voitot näyttävät melko korkealta tällaiselle yksinkertaiselle järjestelmälle Ilmoita virheistä, joita saatat nähdä. Kirjoitti Herman klo 07.13 Ideat Kokeelliset kommentit Pois EOD Gap-Trading Portfolio - järjestelmästä. 1. syyskuuta 2011. Tämä idea lähetettiin 161332 AmiBroker-päärekisteriin 3. heinäkuuta 2011 Listalla oli useita erinomaisia ​​kommentteja ja jos olet kiinnostunut työskentelemään tällä järjestelmällä, voit lukea ne kaikki ennen aloittamista. Lähettämisen jälkeen löysin joitain verkko-ilmoituksia, joissa keskusteltiin kaupankäynnin ideasta, jotkut väittivät olla kaupankäynnin vastaava järjestelmä, jossa on hyvä menestys. Olen viitannut tähän järjestelmään Gap Trading-järjestelmä, mutta tämä voi olla hieman väärinkäyttäjä, Keskimääräinen palauttaminen saattaa olla parempi luokittelu Googling sillä saat paljon enemmän osumia samankaltaisiin järjestelmiin Tässä ovat muutama li nks. Et näyttää olevan melko laajasti keskusteltu kaupankäynnin ideasta ja ehdotan, että teet jotain Googling omasta oppia uusimpia Kuten Amibroker käyttäjä sinulla on parempia työkaluja kuin useimmat kauppiaat ja sinulla on paremmat mahdollisuudet kuin useimmat keksimään muunnelma, joka toimii Ehkä hieman vähemmän voittoa ja huomattava määrä lisäkoodeja se voittanut olla nopea hanke. Jotkut ihmiset kommentoivat, että tämä järjestelmä ei toimi todellisen kaupankäynnin, vaikka he voivat olla oikeassa toiset sanovat tällaisia ​​järjestelmiä työtä en tehnyt järjestelmää loppuun ja en voi väittää, onko se kaupattava vai ei. Järjestelmä ostaa tietyn prosenttiosuuden alla eilen s Pieni, LMT-järjestyksessä ja poistuu samana päivänä Close. Filed by Herman Kello 6: 53, Ideat Kokeellinen kommentit pois Pitkästä EOD Gap kaupankäynnin ideasta. Käytän pieniä asetuskriteerejä skannaamaan minun stocks. MACD oletus, etsin Histogram 4 alas palkit ja 1 up bar ostaa signaali Olen histogrammi asetetaan punaiseksi alas ja siniseksi ylöspäin, joten minä c katso selvästi MACD edellä Zero Line RSI Yli 30 Tämä järjestelmä perustuu trendi kaupankäynnin Vedonlyönti, kun markkinat jatkuvat ylös trendi. Voit etsiä MACD Trend asetukset 1. Lisää seuraava kaava kaavioon.2 Suorita Scan in AA käyttämällä SMACDTrend-järjestelmiä Kaikki symbolit n viimeisinä päivinä n 1 ja Synkronointikaavio valikoitujen asetusten mukaan. Kriteerit täyttävät kentät ilmoitetaan tuloslistassa. Huomautus Jotkin asetussäännösten muunnelmat voivat määrittää melko harvinaisia ​​ja pieniä tietokantoja on mahdollista, että mitään päivityksiä ei esiinny, joten tarkistuksessa ei raportoida varastosta.3 Napsauta mitä tahansa symbolia Results-ruudusta nähdäksesi kyseisen symbolin graafin taustalla. Nuora Tässä esimerkissä Koulutustietokanta, joka sisältää ainoastaan ​​tietoja 5.11.2007 saakka, on käytetty. Bill WaveMechanicin kehittämä ajatus protraderincmentsin ja kaavan avulla. Brianzin kirjoittama kello 11.00 Ideat Kokeellinen kommentti pois MACD Trend Systemistä. 14.10.2007. brianz klo 10 43 ideoita Kokeellinen kommentit pois 15 päivän Performers Trading Systemin 19. elokuuta 2007. Tämä on ensimmäinen sarjassa, joka on pois KISSistä. Se on yksinkertainen, typerä kaupankäynti ideoita, joita voit pelata. Kaikki tässä esitetyt järjestelmäesitykset eivät ole todistettuja, keskeneräisiä ja voivat sisältää virheitä Heidän on tarkoitus näyttää mahdollisia malleja jatkotutkimuksille Kuten aina, sinua pyydetään esittämään kommentteja ja lisäämään omia ideoita tähän sarjaan. Mieluummin reaaliaikaiset järjestelmät, jotka käyvät nopeasti kaupan, ovat automatisoituja ja puuttuvat perinteisistä indikaattoreista. heillä ei pitäisi olla optimoivia parametreja, mutta en välttämättä aina kykene täyttämään tätä tavoitetta. Kaikki järjestelmät eivät ole niin yksinkertaisia, että jotkut käyttävät yksinkertaisia ​​keskiarvonmäärityksiä tai HHV LLV - tyyppitoimintoja. Alla oleva ensimmäinen järjestelmä on kopio demosta Käytän kehittää Trade-Automation rutiineja muualla tällä sivustolla. Real-Time Gap-Trading Nähdäksesi, miten tämä toimii, sinun pitäisi Backtest sen 1 minuutin tiedot säännöllisesti vaihteluvälillä 5-60 minuuttia Ensimmäinen imp että nämä voitot johtuvat yksinkertaisesti markkinoiden noususta, mutta se, että pitkä ja lyhyt voitto ovat suunnilleen samanlaisia, viittaa siihen, että siitä on enemmän. Koska kaikki kaupat 98 ovat 9-30 ja 10 30 välillä, tämä järjestelmä on mukava, jos haluat vain lyhyen ajan kaupasta joka päivä Tämä vähentää riskiä suhteessa markkinoiden altistumiseen ja antaa sinulle enemmän aikaa nauttia muista toiminnoista. Testataan tämä NASDAQ-100: n tarkkailulistalla yksittäisiä takaisintutkimuksia, 15 min Jaksotus antaa voitot alla 1 MAR 2007 - 17 AUG 2007 Tilikauden nimet on jätetty pitämään taulukon kompaktissa kaaviossa yksinkertaisesti nettotulospalkki kullekin testattavalle tickerille Keskimääräinen altistuminen tästä järjestelmästä on noin 15, joten voit ehkä kaupata salkkuja kasvattaa voittoja ja tasata tasoituskäyriä Huomaa, että raaka-aineistossa ei ole hyväksyttävää vetäytymistä ja että monet tickerit saattavat olla tilavuusrajoituksia. Koska järjestelmässä on alhainen altistuminen, se voi olla markkinoiden ehdokas sijoittaminen ja sijoittaminen kaupankäynnin kohteeksi RAR-arvot merkitsisivät absoluuttisia enimmäispalkkioita, jotka voitiin saada, jos onnistuttiin lisäämään altistumista lähimpään 100. Kuitenkin hintakäyttäytyminen eri tickereista voi olla korreloitu ja kaupankäynti eri tickereista voi olla päällekkäistä Jos monet ticker-kaupat samanaikaisesti olisi vaikea lisätä järjestelmän altistumista. Odited by Al Venosa. Filed Herman klo 1.50 pm Ideat Kokeellinen kommentit pois KISS-001 Päivänsisäinen Gap Trading. August 17, 2007.You kutsutaan lähettämään linkkejä järjestelmän ideoita kommentit tähän post. Gap Trading strategiat Stockcharts päivänsisäinen liikkuvat keskimäärin crossover kanssa sijainti mitoitus NeoTicker volatiliteetti-Breakout-järjestelmät kauppiaiden loki Kymmenen päivän High Low järjestelmä StockWeblog Reversion Systems SeekingAlpha Systems Traders Club Trader Club Bulletins. July 16, 2007.This luokka on varattu reaalisten kaupankäyntijärjestelmien, eli että olet käynyt kauppaa jonakin ajankohtana tai harkitsisi kaupankäyntiä Koska kriteerit tr adaptiivisuus vaihtelee henkilöstä toiseen, ja koska järjestelmät saattavat toimia riippuen siitä, miten ne ovat kaupankäynnin kohteena, on vaikea tarkastella maksuja täällä. Jälkeen, mitä lähetetään täällä, pitää avoin mielessä ja katsoa, ​​että juliste pitää järjestelmää vaihdettavissa . Voit osallistua lähettämällä kirjautuneena kirjautumisen yhteydessä tai kommentoidessasi tähän viestiin. Lähettänyt Herman klo 11.00 alle Käytännöllinen kannattava kommentti pois käytöstä Johdatus kaupankäyntijärjestelmät käytännön. Tämä on paikka, jossa voit jakaa kaupankäyntijärjestelmät, jotka ovat marginaalisesti kannattavia , eli niitä, joita ei pidä käydä kauppaa sellaisina kuin ne ovat, mutta joilla on potentiaalia. Tyypillisesti tämä olisi perusjärjestelmä, joka on kannattavaa, mutta kokemuksia 50: stä. Tällaisia ​​järjestelmiä voidaan usein parantaa lisäämällä pysähdyksiä, tavoitteita, rahanhallintaa, salkutekniikoita jne. Tosiasia on se, että vaikka sinulla ei ehkä ole asiantuntemusta tehdä se toimimaan jonkun toisen voi. Lähes me kaikki löytää kauppajärjestelmä ideoita kirjoja ja lehtiä, että me sitten koodi AFL arviointia varten Jotkin näistä järjestelmistä ovat olleet olleet monta vuotta, kun taas toiset ovat uusia ideoita koodaamisen jälkeen melkein aina pettyneitä ja heiluttamaan järjestelmän toimintaa. Työn hylkäämistä kutsutaan lähettämään järjestelmä tänne anna toinen kehittäjä mahdollisuuden korjata se. Sinut on kutsuttu osallistumaan kirjoittajana, joka vaatii rekisteröintiä tai kommentti tähän viestiin. Hermanin kirjoittama kello 11.00 Idean kokeellisten kommenttien poistamisesta kaupankäyntijärjestelmien ideoista. MetaTrader 5 - Esimerkkejä. Grafiset liitännät IV monitoimintatapa ja prioriteettijärjestelmä Luku 2. Ensimmäinen artikkeli Graafiset liitännät I Kirjastojen rakenteen valmistelu Luku 1 selittää yksityiskohtaisesti, mitä kirjasto on Löydät luettelon artikkeleista, joiden linkit ovat lopussa jokainen luku Voit myös ladata täydellisen version kirjastosta nykyisessä kehitysvaiheessa. Tiedostot on sijoitettava samaan hakemistoon kuin ne sijaitsevat arkistossa. I n edellisessä luvussa keskustelimme graafisen käyttöliittymän tilarivistä ja työkaluvuorista. Tässä luvussa laajennamme kirjaston toteutusta mahdollisuuteen luoda useita ikkunoita rajapintoja MQL-sovelluksiin. Tämän lisäksi kehitämme hiiren vasemmanpuoleisen painikkeen painallusjärjestelmä klikkaa graafisia objekteja niin, että se voi ilmetä, että ohjaimet eivät vastaa käyttäjän toimintoihin. Monen ikkunan tila. Katsomme kirjaston graafisen käyttöliittymän moninäytön tilaa kehityksessä Tähän mennessä ENUMWINDOWTYPE-luetteloinnissa on käytetty kahta tunnistetta tärkeimmille WMAIN - ja valintaikkunoille WDIALOG-ikkunoille Yksinikkunatila oli ainoa käytössä oleva tila Kun olemme ottaneet käyttöön joitain lisäyksiä, monitakkumoodin mahdollistaminen edellyttää yksinkertaisesti luomista ja lisäystä vaaditusta määrästä ohjausmuotoja tukiasemaan. Pääluokassa tapahtumien käsittelyyn CWndEvents luo kentän tällä hetkellä aktiivisen indeksin tallentamiseksi window. Let nähdä, miten aktiivisen ikkunan indeksi on määritettävä Esimerkiksi käyttäjä määrittelee WDIALOG-valintaikkunan avaamisen johonkin painikkeeseen Kun painiketta painetaan, muodostetaan ONCLICKBUTTON-muokatun tapahtuman Tämä tapahtuma voidaan seurata Mukautetun luokan OnEvent-tapahtumakäsittelijän CP-ohjelmassa Käytämme myös näytettävän lomakkeen CWindow Show - menetelmää. Tämä ei ole riittävä kirjaston nykyisessä toteutuksessa, ja esitämme tarpeelliset lisäykset. Mukautetun tapahtuman on oltava lähetetään CWindow Show - menetelmästä, joka osoittaa, että ikkuna on avattu, joten graafisen käyttöliittymän järjestelmän parametriarvot on päivitettävä. Tällainen tapahtuma vaatii erillisen tunnisteen. Soita se ONOPENDIALOGBOX: lle ja laita se tiedostoon, johon muut kirjaston tunnisteet ovat. Lisää viiva CWindow Show - menetelmän lopussa alla olevan koodin mukaisesti. Tämä on menetelmän lyhennetty versio Yksinkertaisen tasaisen tunnisteen t aloituskohta, elementtunniste ja ohjelman nimi on lähetettävä tapahtumatunnisteen lisäksi. Tämä tapahtuma käsitellään CWndEvents-luokassa Ennen käsittelytavan menetelmän käyttöönottoa, meidän on luotava kolme muuta menetelmää CWindow-luokassa Nämä ovat kaksi tapaa tallentaa ja saada lomakkeen indeksi, josta avautuu valintaikkuna sekä menetelmä lomakkeen tilan hallitsemiseksi. Aiemmin aktiivisen ikkunan hakemisto on tallennettava, koska useat ikkunat voidaan avata samanaikaisesti. on syy, kun suljetaan valintaikkunan, on tärkeää tietää, kumpi niistä on palautettava aktiiviseen tilaan. Muodon tilan hallitsemiseksi deaktivoiduilla lomakkeilla on eri otsikkoväri, jonka voi muuttaa käyttäjä Elementtien väri ei muutu, kun hiiren osoitin liikkuu niiden päälle, kun lomake on estetty. Lisätään siihen, että lomakkeen deaktivoinnin hetkellä syntyy mukautettu tapahtuma. Ilmoita, että lomake on estetty ja sen elementtien kohdat ja värit on nollattava Kun lomake on estetty, elementeihin kohdistamista ei seurata. Avattaessa valintaikkunaa ikkunan nostavan elementin väri tulee olemaan kuin hiiren kohdistin vielä liikkumaan sen yli. ONRESETWINDOWCOLORS-tunniste luodaan tiedostossa tällaiselle tapahtumalle. Lomakkeen tilan hallintamenetelmä on esitetty alla olevassa koodissa. Palaamme käskyn käsittelyyn. ONOPENDIALOGBOX-tapahtuma Pääluokka graafisen käyttöliittymän tapahtumien käsittelyssä CWndEvents luo CWndEvents OnOpenDialogBox - menetelmän, jota kutsutaan CWndEvents ChartEventCustom - menetelmällä kaikkien mukautettujen tapahtumien käsittelyyn. CWndEvents OnOpenDialogBox - menetelmä alkaa kahdella tarkistuksella yhden tapahtumatunnisteen ja yksi ohjelman nimi Jos ne on siirretty, sitten iterate kaikkien ikkunoiden selvittää, mikä ikkuna tuottaa tapahtuman Elementti tunniste, joka on c Tässä lomakkeessa lparam helpottaa tätä. Lomakkeet, joilla ei ole vastaavia tunnisteita, estetään yhdessä kaikkien niihin liitettyjen elementtien kanssa. Kaikkien kohteiden prioriteetit nollataan ResetZorders-menetelmän avulla, eivätkä reagoi vasemman hiiren napsautukseen Kun olet tehnyt sen lomakkeeseen, jolla on vastaavia tunnisteita, tallenna aktiivisen ikkunan hakemisto aiemmin aktiivisen ikkunan hakemistoksi Aktivoi tämä lomake ja palauta vasemman hiiren napsautuksen prioriteetti kaikkiin sen kohteisiin Tallenna tämän ikkunan hakemisto tällä hetkellä aktivoida Tämän jälkeen kaikki tämän lomakkeen elementit näkyvät ja palauttavat hiiren napsautuksen painopisteet, jättäen lomakkeen elementin näkyviin ja pudotuselementteihin. Jos ikkuna on auki, kun työkalupalkki on näkyvissä, työkalupakki on piilotettava Se ei katoa itsestään, koska lomake, johon se on liitetty, on jo estetty. Työkaluille on luotu yksityinen taulukko, joka on aiemmin luotu tällaisiin tapauksiin. CWndEvents-pääluokassa tapahtuvan tapahtumakäsittelyn yhteydessä voidaan vastaanottaa menetelmiä minkä tahansa elementin elementeille. Nyt käsitellään aiemmin tässä artikkelissa luotua ONRESETWINDOWCOLORS-tunnistetta. Ennen kuin kirjoitat tämän tapahtuman käsittelytavan, vielä yksi standardi Virtuaalinen menetelmä on lisättävä kaikkien elementtien CElementin perusluokkaan, jotka nimetään värin nollaamiseksi. Nimeää se CElement ResetColorsiksi. ResetColors-menetelmät, joilla on kunkin elementin ominaispiirteet, on luotava kaikkiin johdettuihin luokkiin. Alla oleva koodi esittää esimerkin kuvake-elementille CIconButton ResetColors-menetelmä kaikille muille elementeille löytyy tämän artikkelin liitteistä. Näin ollen elementtien perusluokkaan virtuaalinen menetelmä ja sen omissa versioissa johdetut luokat tarjoavat mahdollisuuden nollata kaikki elementit yhdestä silmukasta kirjaston pääluokan CWndEvents. tapahtuman käsittelijältä. Kirjoita CWndEvents OnResetWindowColors-menetelmä käsin ONRESETWINDOWCOLORS-tapahtuman tapahtuma on melko yksinkertainen Etsi lomake, joka on juuri poistettu elementti-tunnisteen avulla, joka on juuri vastaanotettu viestissä. Jos on olemassa yksi, säilytä sen indeksi Jos hakemisto on tallennettu, kaikki tämän elementin värit lomake Tämän menetelmän yksityiskohdat löytyvät alla olevasta koodista. Olemme selventäneet ikkunoiden avaamista Nyt meidän on toteutettava menetelmät aiemmin aktiivisen ikkunan sulkemiseksi ja palauttamiseksi Tämän tapahtuman käsittelemiseksi meidän on luotava ONCLOSEDIALOGBOX-tunniste tiedosto. CWindow-luokassa käytämme CWindow CloseWindow - menetelmää lomakkeen ja ohjelman sulkemiseen yhdessä sen kanssa Tässä menetelmässä osio, joka sulkee ikkunat WDIALOG ei ole vielä toteutettu Anna kirjoittaa lisämenetelmä, joka tuottaa tapahtuman sulkemisikkunan ikkunat Tapahtumatunnisteen 1 lisäksi sanoma sisältää myös 2 elementtitunnisteen, 3 aikaisemmin aktiivisen ikkunan indeksin ja 4 tekstin h eader Soita meille tätä menetelmää CWindow CloseDialogBox Myöhemmin käytämme tätä myös monimutkaisissa komennoissa, joissa ikkunan sulkeminen suoritetaan muilla elementeillä kuin sulkemispainikkeella. CWindow-luokassa CWindow CloseDialogBox - menetelmä on kutsuttu CWindow CloseWindow - menetelmä, joka näkyy alla olevan koodin lyhennetyssä versiossa. Täydellinen versio löytyy tämän artikkelin liitteistä. Kun ONCLOSEDIALOGBOX-tunnisteen viesti on lähetetty, sitä on seurattava ja käsitettävä käsittelijässä. CWndEvents-luokka Kirjoita tähän CWndEvents OnCloseDialogBox - menetelmä Iterate kaikkiin tukiaseman ikkunoihin ja etsi se tunnuksella, joka vastaa tunnisteen viestiä Jos tällainen ikkuna on löydetty, se on deaktivoidut. Piilota se sitten yhdessä kaikkien siihen liitettyjen elementtien kanssa ja aktivoi lomake viestissä annettuun indeksiin. Tämän jälkeen tallennetaan aktiivisesti aktiivisen ikkunan hakemisto ja palautetaan vasemmalle hiiren napsautuksella elementtejä varten. Nyt kaikki on valmis monipuudutustestin testaamiseen. Monen ikkunan tilan testaus. Luo kaksi CWindow-luokan esimerkkiä EA: ssa, jota käytimme informaation käyttöliittymän elementtien testaamiseen Tulos tulee olemaan kolme lomaketta EA: n graafisessa käyttöliittymässä Ensimmäinen muoto on tärkein WMAIN ja kaksi muuta on rooli valintaikkunoissa WDIALOG Liitä ensimmäinen valintaikkuna jollekin päämuodon painikkeista Luo kolme painiketta ensimmäisessä valintaikkunassa ja liitä toinen valintaikkuna johonkin äskettäin luotuista painikkeista Tällä tavalla meillä on kolme lomaketta, jotka avautuvat samanaikaisesti ja vain yksi niistä on aktiivinen käytettävissä. Alla oleva koodi osoittaa, mitä lisättäisiin CPG-ohjelmaan sovelluksen luokka kehityksen nykyisessä vaiheessa. Näiden menetelmien kutsuminen kehitteillä olevan sovelluksen graafisen käyttöliittymän päämenetelmässä Alla on lyhennetty versio tästä menetelmästä od. Olemme harkitse menetelmää vain ensimmäisen valintaikkunan toisen lomakkeen Muistatusti, sinun on käytettävä CWndContainer AddWindow - menetelmää lomakkeen lisäämiseen tukikohtaan Huomaa, kuinka lomakekokoordinaatit määritellään alla olevassa koodissa Koska oletuskoordinaatit ovat nolla, kun ohjelma ladataan kaavioon, sopivaksi katsotut koordinaatit asetetaan Tässä esimerkissä arvot ovat x 1, y 20 Tämän jälkeen lomaketta voidaan siirtää ja sitten kaavion aikakausi tai symboli voidaan vaihdettu Alla oleva koodi osoittaa, että lomake pysyy siellä, missä se oli viimeinen Jos haluat, että lomake sijaitsee missä se oli ohjelman ensimmäisellä lataamisella kaavioon, poista nämä ehdot Tässä esimerkissä kaikki kolme lomaketta the graphical interface of the program will have the same conditions. Let us arrange that the dialog forms can be moved over the chart The window type should be set as dialog WDIALOG , otherwise you will encounter incorrect work of the graphical interface Th e window icon can be redefined using the CWindow IconFile method In case of dialog windows, same icon can be used as the one of the element that brings up this window. Let me remind you about some details of how to attach controls to a certain dialog window As an example, let us consider one of the button methods designated for this form I would like to highlight only two things. You need to remember that. The element must be passed the pointer to the form to which it is to be attached. When the element pointer is saved in the base, specify the index of the form to which the element is to be attached In this case it is index 1.It is up to the developer of the application to manage the display of windows Track the pressing on any control in the event handler of the CProgram custom class and show the relevant window Assign the call of the first dialog window to the button on the main window of the EA second form , and the call of the second dialog window to the button on the first dialog win dow third form. Desired result is shown in the screenshot below Please note the ellipsis in the button names Icon Button 1 and Icon Button 6 This is a usual way of letting the user know that pressing of this element will open a dialog window. Fig 1 Testing of the multi-window mode. If you switch the symbol or the timeframe of the chart when several forms are open, you will encounter a problem Dialog windows will disappear as they are supposed to but the management will not be passed over to the main window The form will not respond to the user s actions The solution to this is simple As you remember, the CWndEvents Destroy method is called in the CProgram OnDeinitEvent method for uninitialization of the custom class The graphical interface of the application is deleted in this method The management has to be given to the main window at the moment of deleting the graphical interface Therefore, some additions must be introduced to the CWndEvents Destroy method. Set the index of the main wind ow as active. Activate the main window and deactivate the rest. Below is the code of the current version of the CWndEvents Destroy method. The first version of the multi-window mode is implemented Everything turned out to be less complicated than it could have seemed initially. Enhancement of the System of Priorities of the Left Mouse Button. Up until now, the management of priorities of the left mouse click on the interface elements has been carried out by the events with the ONOPENDIALOGBOX and ONCLOSEDIALOGBOX identifiers The reason for that was that when the next drop-down element was developed, it was up to the user to assign the priority value for each object of this element Priorities of other elements that could happen to be beneath it were taken into account However, when it came to creating complex compound controls, this system was awkward and easy to confuse To make things easier, let us create two more identifiers for such events. ONZEROPRIORITIES zeroing priorities. ONSETPRIORIT IES restoring priorities. Add them to the file. Generation of events with these identifiers must be located in the classes of the elements that are or can be drop-down ones At the current stage of development, in the present interface set, context menu is such an element Therefore, add the code to the Show and Hide methods of the CContextMenu class as shown below in the shortened versions of the code. We will receive these messages in the main class for handling all messages CWndEvents For that, we will write a separate handling method for each identifier These methods will be called in the main method for handling custom events CWndEvents ChartEventCustom. In the CWndEvents OnZeroPriorities method, iterate over all elements of the active window and zero priorities of all of them except the one with the element identifier contained in the message lparam - parameter as well as except menu items and context menus The reason why we exclude menu items and context menus is that several context m enus can be opened at the same time one from another. If the received message contains the ONSETPRIORITIES event identifier, then restore priorities of the left mouse button click for all the elements of the active window. The library for creating graphical interfaces at the current stage of development looks like in the schematic below. Fig 2 Library structure at the current stage of development. This is the final article of the fourth part of the series about graphical interfaces In the first chapter of this part, the status bar and tooltip informational interface elements were realized In the second chapter, the multi-window mode and a priority system of the left mouse click were discussed. You can find and download all the material of the first part or the series in the attached files so you can test how it works If you have questions on using the material presented in those files, you can refer to the detailed description of the library development in one of the articles from the list below or ask your question in the comments of this article. List of the articles chapters of the fourth part.

No comments:

Post a Comment