MetaTrader 4 - Eksempler Vise en nyhetskalender Innledning Denne artikkelen inneholder beskrivelsen av å skrive en enkel og praktisk indikator som viser i et arbeidsområde de viktigste økonomiske hendelsene fra eksterne Internett-ressurser. Indikatoroperasjonen ser slik ut: Her er en liste over krav til indikatoren: Indikatoren skal uavhengig (uten brukers hjelp) laste ned en nødvendig fil av hendelseskalenderen for den aktuelle uken. Indikatoren skal vise alle hendelser (både passerte og fremtidige) fra denne filen i form av vertikale linjer med nyhetsoverskrifter. Indikatoren skal spore hendelsesoppdateringen på den eksterne ressursen. Etter at vi har oppgitt oppgaven, kan vi analysere noen tekniske detaljer. Teknisk del La oss bruke nettstedet dailyfxcalendar som en ekstern ressurs. Denne ressursens bekvemmelighet er at den gjør det mulig å laste ned en kalender med. csv-utvidelse, slik at vi unngår vanskeligheter med å arbeide med html-filer. Her er en nyhetslink for den nåværende uken: dailyfxcalendarDailyfxGlobalEconomicCalendar. csv. La oss nå dvæle på prosessen med å laste ned filen fra Internett. Dette kan gjøres ved hjelp av et velkjent program GetRight. Den kan lastes ned på: getrightget. html eller fra listen over vedlegg til denne artikkelen. Når du har lastet ned programmet, kan du sette opp GetRight for å laste ned filer til en nødvendig katalog. Det er fileshtml-katalogen i mappen på handelsterminalen din. For å gjøre dette, trykk F8 og endre skrivingen i feltet som beskrevet nedenfor: Skrive indikatoren Nå har du svart på noen spørsmål, kan vi begynne å skrive indikatoren. Det er bare to eksterne variabler: adressen til den eksterne ressursen (faktisk, du trenger ikke å endre denne parameteren) og adressen til GetRight-programmet (hvis du har lastet ned programmet til en annen katalog, anbefaler jeg at du endrer den opprinnelige verdien i indikatoren, for ikke å endre verdien av variabelen hele tiden ved indikatorstart). For å starte filen GetRight. exe må vi bruke funksjonen WinExec som kan importeres fra Kernel32.dll-biblioteket. Biblioteket Time. mqh inneholder funksjoner for å jobbe med GMT. Som du kan se, på grunn av bruken av GetRight-programmet, virker funksjonen av å laste ned filen fra den eksterne ressursen veldig enkel. Parameter W angir at prosessen ikke vil bli returnert til programmet, med mindre filnedlastingen er fullført. Parameter O angir at hvis det er en fil med samme navn, blir det overskrevet. Husk at hvis du har endret innstillingene for GetRight riktig, blir kalenderen lastet ned til fileshtml. Og her er to tilleggsfunksjoner: Funksjonen PerviousMonday () returnerer startdato for den aktuelle uken. Funksjonen ToDate () overfører dato og klokkeslett fra kalenderformatet til datatid. Hovedprosedyren GrabNews () åpner den nedlastede filen HtmlCalendar. csv, leser alle hendelsesparametere og lager to objekter for hver nyhet: en vertikal linje og en tekst. Hendekalenderen oppdateres hvert 15. minutt: Konklusjon Artikkelen forklarte hvordan du viser en hendelseskalender fra en ekstern ressurs til et arbeidsområde i form av vertikale linjer. Indikatoren ble med vilje skrevet uten uforholdsmessige parametere som filtreringsnyheter i henhold til deres relevans eller korrespondanse av et arrangement og symbolet for det nåværende vinduet. PS! Jeg vil peke på en feil i kalenderoperasjonen dailyfxcalendar. Vær oppmerksom på at noen ganger hendelser i filen. csv fra adressen dailyfxcalendarDailyfxGlobalEconomicCalendar. csv ikke er identiske med siden dailyfxcalendar. Dette kan skje med nyheter utgitt fra 00:00 til 01:00 (GMT). I filen. csv er slike nyheter angitt 12 timer senere. Vær også oppmerksom på at indikatoren bruker ekstern dll (kernell32.dll), så ikke glem å aktivere den tilsvarende parameteren i indikatorinnstillingene. Filen CalendarArticle. mq4 skal lagres i mappens eksperter. Time. mq4 skal lagres i experslibrary, Time. mqh - in expertsinclude. MQL4 - gt R-Project - Grensesnittbibliotek Nøkkelord: mt4R. dll, mt4R. mqh, R, Metatrader, kanskje noen av dere vil eksperimentere med min MT4 - gt R-grensesnitt som gjør at man kan starte så mange R-økter (vanligvis en per løpende EA), overføre data frem og tilbake og ring R-funksjoner. R-sesjonene vil bli kjørt som separate prosesser i bakgrunnen, men API mot mql4 er synkronfunksjonssamtaler, ingen stygg tekstfiler skriving og polling. Kommunikasjon går gjennom stdio-rør til og fra hver av R-prosessene. I denne. zip-filen er de nødvendige filene (mt4R. mqh og mt4R. dll) for å kjøre denne tingen..mhq-filen inneholder også all API-dokumentasjon og annen nødvendig informasjon. mt4R-1.3.0.25.zip 101 KB 3 809 nedlastinger Uploadet 6 nov 2010 6:40 pm Og eventuelt for de som er interessert i hvordan DLL fungerer nedenfor, er dll kildekoden (den trenger FPC 2.4.2 eller nyere for å kompilere. Du bør installere et nåværende øyeblikksbilde av LazarusFPC med en 2.4.3-kompilator, finner du en gjeldende stillbildeinstallatør (IDE og Compiler i en pakke) for win32 på ftp: ftp. freepascal. orgpublazarussnapshots). Her er kilden: mt4Rsource-1.3.0.25.zip 19 KB 2,393 nedlastinger Lastet 6 Nov 2010 6:40 pm Ovennevnte filer er oppdatert til den nyeste versjonen. Glem forhåndsvisningsfilene i post 2, de er gamle. Ble medlem mar 2009 Status: Medlem 1.261 Innlegg oppdatert filene i post 1 API endret, derfor har vi en endring i versjon nummer 1.1 - gt 1.2 og en ny versjon av. mqh er nødvendig. ny: RExecuteAsync () for å utføre kode i bakgrunnen og ikke vent nye: RIsBusy () som vanligvis kalles i begynnelsen av starten () for å oppdage om det forrige anropet til RExecuteAsync () under et tidligere kryss fortsatt kjører. Disse to nye funksjonene er nyttige for å lage indikatorer. I motsetning til EAer og skript kjører en indikator i GUI-tråden i MT4 og kan ikke blokkere. Start () - funksjonen må umiddelbart returnere. Det foreslåtte mønsteret er nå å ringe RIsBusy () på begynnelsen av starten () og gjør ingenting hvis dette returnerer sant og bare hvis R er tomgang, kan du bruke R-funksjoner og det siste R-anropet i startfunksjonen skal være den som starter den lange løpende nummerkrekende oppgaven og skal gjøres med RExecuteAsync () i stedet for RExecute (). Etter det kan start () - funksjonen returnere mens R fortsetter å kjøre i bakgrunnen. De neste flåttene vil da bruke RIsBusy () for å sjekke om det er ferdig. Hvis en av R-funksjonene kalles mens den fortsatt utfører en annen kommando, vil den bare vente til den er tomgang igjen og deretter utføre kommandoen. Bare en R-kommando kan utføres om gangen, og det er en lås per R-sesjon for å sikre dette. Det vil ikke være noen feil (bare feilsøkingsmeldinger), alt vil fortsatt skje i riktig rekkefølge. Bare start () - funksjonen kan ikke returnere raskt hvis det er tvunget til å vente på låsen, så vær forsiktig med å bruke RIsBusy () og Organiserer kontrollflowen intelligent og begynner med minimal blokkering. Hvis du gjør EAer, er alt dette ikke nødvendig (eller til og med kontraproduktivt), her kan startfunksjonen () - funksjonen blokkere så lenge den vil, og for strategitesteren er dette til og med nødvendig. RExecuteAsync () er bare en løsning for indikatorer og MT4s stygge design feil i å kjøre alle indikatorer i hovedtråden, her trenger du dette for å gjøre lange løpende oppgaver asynkront for å gjøre start () alltid tilbake raskt. I morgen legger jeg inn en liten eksempelindikator. Ble medlem Sep 2010 Status: Medlem 45 Innlegg Kan du dele din auto-regresjonsindikator for MT4 Ble medlem Mar 2009 Status: Medlem 1.261 Innlegg Her er det: (lagre det som en indikator i indikatormappen) Dette vil holde CPU opptatt alle tid, men det vil ikke blokkere MT4 GUI. Start () - funksjonen vil alltid umiddelbart returnere, den eneste lange løpekommandoen er anropet til ar () og dette gjøres i RExecuteAsync (), og hele start () - funksjonen er skrevet på en måte at dette er den aller siste R-anropet før vi kommer tilbake (dette er viktig), derfor er alle ifs og på en eller annen måte vridet kontrollflyten (plott den gamle prediksjonen før vi passer på en ny modell). Denne indikatoren er en eksperimentell hurtig forsterker skitten prototype som jeg skrev for å teste async-kjøringen. Kanskje noen kode kan legges til for å sørge for at den bare kjøres på bar åpen, men da skal den gå fra 1 til baksiden og ikke fra 0 til tilbake-1 fordi på baren åpen Close0 og Close1 er fra samme tid og ikke 1 time fra hverandre og indikatorskiftet må også reduseres med 1 bar for å forutsi nåværende nært og ikke det neste. Slik ser det ut når det er knyttet til et Eurusd H1-diagram (Det virker som det fungerer best på høyere tidsrammer (H1 og lengre) som synes å vise sterk periodicitet, og eurusd virker som å fungere veldig bra): Vedlagt bilde (klikk for å forstørre) Vedlagt bilde (klikk for å forstørre) Forex Factory Nyhetsindikator MT4 Forex Factory Nyhetsindikator MT4 Forex fabrikknyhetsindikatoren MT4 er av Tim Morris. Indikatoren trekker nyhetsdata fra Forex Factory og plotter den på MT4-diagrammer. Indikatoren fungerer på bygge 600 og bygge 509 Last ned indikatoren Du må aktivere. dlls for å bruke indikatoren. Trykk ctrlO for å åpne opsjonsskjermbildet i metatrader-terminalen. Klikk på fanen Ekspertrådgivere. Merk av boksene akkurat som skjermbildet under 4. Ferdig. Dra nå indikatoren på kartet for å aktivere den. Indikatoren viser de kommende nyhetene. Here8217 er et skjermbilde av hvordan indikatoren ser ut som: At8217 er den. Jeg håper indikatoren hjelper deg langs veien til lønnsomheten. Hvis du fant våre indikatorer nyttige, la oss hjelpe deg med å redusere dine handelskostnader
Comments
Post a Comment