Indicatore tutorial per Expert Advisor piacere a nessuno tipo me per la conversione del codice indicatori personalizzati per codice EA Grazie. proprietà indicatorchartwindow indicatorbuffers immobili 5 immobili indicatorcolor1 immobili dimgray indicatorcolor2 immobili Red indicatorcolor3 immobili limegreen indicatorcolor4 immobili Red indicatorcolor5 proprietà Blu indicatorstyle1 STYLEDOT stringa extern TimeFrame quotcurrent tempo framequot extern int HalfLength 56 extern int Prezzo PRICEWEIGHTED doppie BandsDeviations extern 2,5 extern Bool Interpola vero extern bool alertson falso extern bool alertsOnCurrent falso extern bool alertsOnHighLow vero extern bool alertsMessage vero bool extern alertsSound falso bool extern alertsEmail falsa doppia tmBuffer doppia upBuffer doppia dnBuffer doppia wuBuffer doppia wdBuffer doppia upArrow doppia dnArrow stringa IndicatorFileName bool calculatingTma falsi returningBars BOOL FALSE int lasso di tempo int init () periodo di tempo stringToTimeFrame ( TimeFrame) HalfLength MathMax (HalfLength, 1) IndicatorBuffers (7) SetIndexBuffer (0, tmBuffer) SetIndexDrawBegin (0, HalfLength) SetIndexBuffer (1, upBuffer) SetIndexDrawBegin (1, HalfLength) SetIndexBuffer (2, dnBuffer) SetIndexDrawBegin (2, HalfLength) SetIndexBuffer (3, dnArrow) SetIndexStyle (3, DRAWARROW) SetIndexArrow (5.242) SetIndexBuffer (4, upArrow) SetIndexStyle (4, DRAWARROW) SetIndexArrow (6.241) SetIndexBuffer (5, wuBuffer) SetIndexBuffer (6, wdBuffer) IndicatorFileName WindowExpertName ritorno () (0 ) int deinit () int start () int countedbarsIndicatorCounted () int i, limite se (countedbarslt0) ritorno (-1) se (countedbarsgt0) countedbars-- limitMathMin (Bar-1, Bar-countedbarsHalfLength) se (returningBars) se (calculatingTma ) se (Periodo lasso di tempo GT ()) limitare MathMax (limite, MathMin (Bar-1, iCustom (NULL, lasso di tempo, IndicatorFileName, quotreturn Barsquot, 0,0) timeFramePeriod ())) per (i limitare i Gt 0 I-- ) int shift1 iBarShift (NULL, lasso di tempo, timei) datetime time1 iTime (NULL, lasso di tempo, shift1) tmBufferi iCustom (NULL, lasso di tempo, IndicatorFileName, quotcalculat eTmaquot, HalfLength, Prezzo, BandsDeviations, 0, shift1) upBufferi iCustom (NULL, lasso di tempo, IndicatorFileName, quotcalculat eTmaquot, HalfLength, Prezzo, BandsDeviations, 1, shift1) dnBufferi iCustom (NULL, lasso di tempo, IndicatorFileName, quotcalculat eTmaquot, HalfLength, Prezzo, BandsDeviations, 2, shift1) upArrowi EMPTYVALUE dnArrowi EMPTYVALUE se (Highi1gtupBufferi1 ampamp Closei1gtOpeni1 ampamp CloseiltOpeni) upArrowi HighiiATR (NULL, 0,20, i) se (Lowi1ltdnBufferi1 ampamp Closei1ltOpeni1 ampamp CloseigtOpeni) dnArrowi Highi-IATR (NULL, 0,20, i) se (periodo di tempo lt Periodo () shift1iBarShift (NULL, lasso di tempo, timei-1)) continua if (Interpola) proseguire per (int n 1 in bar lt ampamp timein gt time1 n) continuare doppio fattore 1,0 n for (int k 1 k lt nk) tmBufferik kfactortmBufferin (1,0-KFactor) tmBufferi upBufferik kfactorupBufferin (1,0-KFactor) upBufferi dnBufferik kfactordnBufferin (1,0-KFactor) dnBufferi se (alertson) se (alertsOnCurrent) int forBar 0 altro forBar 1 se (alertsOnHighLow) se (HighforBar GT upBufferforBar ampamp HighforBar1 lt upBufferforBar1) doAlert (quothigh barquot superiore penetrato) se (LowforBar lt dnBufferforBar ampamp LowforBar1 gt dnBufferforBar1) doAlert (quotlow penetrato barquot inferiore) else if (CloseforBar GT upBufferforBar ampamp CloseforBar1 lt upBufferforBar1) doAlert (quotclose barquot superiore penetrato) se (CloseforBar lt dnBufferforBar ampamp CloseforBar1 gt dnBufferforBar1) doAlert (quotclose penetrato barquot inferiore) vuoto calculateTma (limite int) int i, j, k doppio 2.0HalfLength1.0 FullLength per (ilimit igt0 i--) doppia sum (HalfLength1) iMA (NULL, 0,1,0, MODESMA, Prezzo, i) doppio sumw (HalfLength1) per (J1, kHalfLength jltHalfLength j, k--) sum Kima (NULL, 0,1,0, MODESMA, Prezzo, ij) sumw k se (jlti) sum Kima (NULL, 0,1,0, MODESMA, Prezzo, ij) sumw k tmBufferi sumsumw doppio diff iMA (NULL, 0,1,0, MODESMA, Prezzo, i) - tmBufferi se (IGT (Bar-HalfLength-1)) continuare se (i (Bar-HalfLength-1)) upBufferi tmBufferi dnBufferi tmBufferi se (diffgt0) wuBufferi MathPow (diff, 2) wdBufferi 0 altrimenti wdBufferi MathPow (diff, 2) wuBufferi 0 continuare se (diffgt0) wuBufferi (wuBufferi1 (FullLength-1) MathPow (diff, 2)) FullLength wdBufferi wdBufferi1 (FullLength-1) FullLength altro wdBufferi (wdBufferi1 (FullLength-1) MathPow (diff, 2)) FullLength wuBufferi wuBufferi1 (-1 FullLength) FullLength upBufferi tmBufferi BandsDeviationsMathSqrt (wuBufferi) dnBufferi tmBufferi - BandsDeviationsMathSqrt (wdBufferi) vuoto doAlert (string alloggioL'alloggio Curiosità) stringa statica previousAlertquotquot datetime statica previousTime messaggio stringa se il messaggio (previousAlertdoWhat previousTimeTime0) previousAlert alloggioL'alloggio Curiosità previousTime Time0 StringConcatenate (Simbolo (), quot a quot, TimeToStr (TimeLocal (), TIMESECONDS), quot THA. quot, alloggioL'alloggio Curiosità) se (alertsMessage) Alert (messaggio) se (alertsEmail) sendmail (StringConcatenate (Simbolo (), quotTMA quot), messaggio) se (alertsSound) PlaySound (TFS quotalert2.wavquot) int stringToTimeFrame (stringa) for (int l StringLen (TFS) -1 l gt 0 L--) int char StringGetChar (TFS, L) if ((GT 96 ampamp char lt 123 char) (char GT 223 ampamp char lt 256)) TFS StringSetChar (TFS, 1, char - 32) else if (char GT -33 ampamp char lt 0) TFS StringSetChar (TFS, 1, char 224) int TF0 se (tfsquotM1quot tfsquot1quot) tfPERIODM1 se (tfsquotM5quot tfsquot5quot) tfPERIODM5 se (tfsquotM15quot tfsquot15quot) tfPERIODM15 se (tfsquotM30quot tfsquot30quot) tfPERIODM30 se (tfsquotH1quot tfsquot60quot) tfPERIODH1 se (tfsquotH4quot tfsquot240quot) tfPERIODH4 se (tfsquotD1quot tfsquot1440quot) tfPERIODD1 se (tfsquotW1quot tfsquot10080quot) tfPERIODW1 se (tfsquotMNquot tfsquot43200quot) tfPERIODMN1 se (TF0 tfltPeriod ()) tfPeriod () ritorno (TF) si tratta di una due parte MQL4 codice esercitazione discutere come creare un semplice consulente esperto Metatrader utilizzando l'RSI che commercia solo una volta per bar. Alla fine della parte 2, un modello RSI EA pienamente funzionante può essere scaricato. Inoltre, il codice farà riferimento un grafico temporale diverso per la RSI. Quindi, se siete interessati ad imparare come fare riferimento a un diverso periodo di tempo all'interno di un EA, questo tutorial dovrebbe rivelarsi informativo. Questo codice MQL4 tutorial è il sequel di Come posizionare un solo commercio al bar su un forex MT4 Expert Advisor. Questo articolo si espanderà su tale concetto semplice e presente codice che può essere utilizzato come modello in molte diverse applicazioni consulente esperto e con diversi tipi di indicatori, tra cui la RSI. Come è stato discusso nella precedente esercitazione MQL4, la chiave per la negoziazione solo una volta al bar è per incapsulare la logica di scambio all'interno di un blocco condizionale che utilizza una variabile livello di modulo per tenere traccia del numero di bar utilizzando le barre variabile. MQL4 ha molte funzioni indicatrici integrate che possono essere utilizzati nella costruzione del sistema. Utilizzando la funzione di RSI in MQL4 Il iBarShift restituisce il passaggio bar per un dato tempo. Nel codice qui sotto, la barra di corrente Time0 viene fatto riferimento. Se questo codice viene utilizzato su un grafico diverso grafico 1 ora la sequenza bar potrebbe essere imprevedibile. IBarShift permette per la determinazione della barra corretto, o il bar più vicino se l'ultimo periodo è impostata su false. Il valore di ritorno può essere inserito ovunque sia necessario un parametro di spostamento, come nella funzione IRSI. Il Strength Index RSI o relativa può essere fatto riferimento nel codice MQL4 ed è dichiarato come segue: (.... Simbolo stringa int lasso di tempo int periodo int turno int appliedprice) doppia Irsi Il primo termine è simbolo e se si riferisce al simbolo corrente può essere inserito come NULL o simbolo (). o anche con successo come 0 (anche se le migliori prassi suggerisce si dovrebbe usare NULL invece di 0) tutte con significato equivalente. Il secondo termine è periodo di tempo e può essere inserito come 0 per i grafici periodo di tempo selezionato, o come uno dei valori di enumerazione periodo precedentemente costruito (a visualizzare i tuoi file di aiuto in Irsi per maggiori dettagli). In questo esempio la variabile PERIODH1 viene utilizzato per fare riferimento ai dati da un grafico 1 ora. Il periodo terzo termine si riferisce alla lunghezza della RSI in cui viene utilizzata la RSILength variabile (sotto). appliedprice si riferisce al bar i prezzi come vicino (PRICECLOSE) o alto (PRICEHIGH). spostamento riferisce al numero di barre di spostare la RSI per il calcolo. Per esempio, per calcolare l'RSI di 5 bar fa si usa 5 nella 5a. Per questo esempio non scorrimento viene utilizzato in modo viene utilizzato 0 (sotto). Dopo la creazione di un ingresso esterno per RSILength e due ingressi per acquistare e vendere le soglie per il valore RSI a 70 e 30, rispettivamente, il codice è simile al seguente: extern int RSILength 14 extern int BuyThreshold 70 extern int SellThreshold 30 extern doppie sacco 0.01Forex Blog 4 . Aprire la cartella MQL4 (o MQL5 se si sta installando un indicatore MT5): 5. cartella di Open Indicatori: 6. incollare il file indicatore qui: 7. Se si tratta di un file già compilato (.ex4 o. ex5), allora bene. Tutto quello che devi fare è tornare al vostro MetaTrader, fare clic destro sugli indicatori di Navigator sottofinestra, e fare clic su Aggiorna. Il nuovo indicatore apparirà nella stessa Navigator sottofinestra: 8. Se non si tratta di un file compilato, ma un file sorgente (.mq4 o. mq5), quindi è necessario fare doppio clic sulla sua icona 8212 si aprirà in MQL Editor (che è incluso nel pacchetto MetaTrader). Ora, o premere F7 o fare clic sul pulsante Compile: Normalmente, non ci dovrebbe essere alcun errore durante la compilazione. Tuttavia, se alcuni errori appaiono nella sottofinestra Toolbox, è possibile provare a risolverli o contattare lo sviluppatore indicator8217s per aiutare con il problema. Di solito, ci vuole una certa conoscenza MQL e codifica le competenze per risolvere tali errori. Nessuna uscita errori è simile al seguente: errori di compilazione simile a questa: 9. Dopo aver compilato o copiare un file eseguibile MetaTrader (.ex4 o. ex5), è possibile iniziare a utilizzare l'indicatore nella vostra piattaforma. Tutto quello che dovete fare è collegarlo al grafico: Se si sa cosa si sta facendo, si potrebbe anche voler cambiare alcuni dei parametri di input indicator8217s: OK. Ora si può godere il vostro nuovo indicatore MetaTrader e, auspicabilmente, 8212 meglio Forex risultati commerciali. Se avete domande sull'installazione di indicatori personalizzati in MetaTrader, liberi prego per chiedere utilizzando il modulo commento qui sotto.
No comments:
Post a Comment