Sunday 19 November 2017

Crossing Mobile Media Esperto Consulente


Semplice Expert Advisor Problema 29. Creare un trading Expert Advisor. Argomenti preliminari Prima di iniziare a programmare una negoziazione Expert Advisor, è necessario definire i principi generali di un programma futuro. Non ci sono rigoroso programma la creazione di regole. Tuttavia, una volta creato un programma, un programmatore di solito continua a migliorarla. Per essere in grado di comprendere facilmente il programma in futuro, deve essere creato secondo un ben pensato e facile da capire schema (è particolarmente importante se il programma sarà ulteriormente migliorato da un altro programmatore). Il programma più conveniente è quella che consiste di blocchi funzionali, ciascuno dei quali è responsabile di una parte dei calcoli propria. Per creare un algoritmo di un trading Expert Advisor, consente di analizzare ciò che un programma di funzionamento dovrebbe fare. Uno dei dati più importanti nella formazione di ordini commerciali è l'informazione sugli ordini già esistenti in un terminale del cliente. Alcune delle strategie di trading consentono solo un ordine unidirezionale. Generalmente, se una strategia di trading permette, parecchi ordini possono essere aperti in un terminale, allo stesso tempo, se il loro numero dovrebbe essere ragionevolmente limitato. Quando si utilizza qualsiasi strategia, decisioni commerciali devono essere effettuate tenendo conto della situazione attuale. Prima di una decisione commerciale è in un programma, è necessario sapere quali ordini di negoziazione sono già stati aperti o immesse. Innanzitutto un programma deve contenere un blocco di ordini contabile che è tra i primi ad essere eseguito. Durante un EA decisioni esecuzione di trading devono essere effettuate, la cui attuazione porta alla esecuzione delle operazioni commerciali. parte del codice responsabile della formazione degli ordini commerciali, è meglio scritto in un blocco separato. Un Expert Advisor può formare una richiesta di commercio per aprire un nuovo ordine in corso o di mercato, chiudere o modificare qualsiasi di ordini esistenti o eseguire alcuna operazione. Un EA deve anche calcolare i prezzi di ordine a seconda di una utenti desiderano. decisioni commerciali devono essere effettuate in un programma sulle basi di criteri del commercio. Il successo di tutto il programma dipende dalla correttezza di rilevare criteri commerciali nel programma. Quando si calcola criteri del commercio un programma può (e deve) tener conto di tutte le informazioni che possono essere utili. Ad esempio, un consulente esperto in grado di analizzare combinazione di valori degli indicatori tecnici, tempo di importanti comunicati stampa, ora corrente, i valori di alcuni livelli di prezzo, ecc Per comodità, la parte di programma responsabile per il calcolo dei criteri di trading dovrebbe essere scritto in un separato bloccare. Una negoziazione Expert Advisor deve necessariamente contenere errori blocco di elaborazione. Analizzando errori che possono verificarsi nell'esecuzione di operazione di commercio permette, da un lato, per ripetere una richiesta commercio e, dall'altro, per informare un utente di una possibile situazione di conflitto. Struttura di un semplice consulente esperto seguito è uno schema strutturale di un semplice consulente esperto costruito sulla base di diversi blocchi funzionali, in ciascun blocco una certa parte staccata di calcoli. Il successivo stadio di sviluppo di EA non vi è ancora il codice del programma. Allo stesso tempo, l'algoritmo di un programma è in gran parte formata. Come l'EA costruito sulle basi del regime offerto opererà può essere facilmente comprensibile semplicemente a guardare il programma e orientare su nomi di blocchi e array di relazioni (il controllo di passaggio) tra di loro. Dopo l'avvio del programma di controllo viene passato al blocco del trattamento preliminare. In questo blocco di alcuni parametri generali possono essere analizzati. Ad esempio, se non ci sono abbastanza bar in una finestra (barre necessarie per il calcolo dei parametri di indicatori tecnici), EA non sarà in grado di funzionare adeguatamente. In tal caso un EA deve terminare il funzionamento preliminarmente informare un utente su di esso e la segnalazione circa la causa della cessazione. Se non ci sono contraindicatons di carattere generale, il controllo passa al blocco ordinare contabile. Nel blocco della contabilità ordina il numero e la qualità degli ordini esistenti in un terminale client per una sicurezza (alla finestra di cui la EA è allegata) viene rilevato. In questo blocco devono essere eliminati gli ordini di altri titoli. Se una strategia di trading programmato richiede utilizzando solo gli ordini di mercato (e non fa uso di ordini pendenti) il fatto della presenza di ordini in sospeso deve essere rilevato. Se una strategia ammette un solo ordine di mercato e ci sono effettivamente diversi ordini, questo fatto dovrebbe essere noto. Il compito del blocco dell'ordine contabile (in questo schema) è nel definire se la situazione commerciale attuale corrisponde con quello atteso, ossia quella in cui l'AE può adeguatamente operare. Se la situazione corrisponde, il controllo deve essere passato al blocco successivo per continuare l'operazione EA in caso contrario, l'operazione di EA deve essere terminato e questo fatto deve essere segnalato a un utente. Se non ci sono ordini nel terminale o il numero e la qualità degli ordini esistenti corrisponde a quanto ci si aspettava, il controllo viene passato al blocco di definizione dei criteri di trading. In questo blocco sono calcolati tutti i criteri necessari per prendere decisioni commerciali, vale a dire i criteri per l'apertura, la chiusura e modifica degli ordini. Inoltre il controllo viene passato al blocco di ordini di chiusura. E 'facile capire perché nello schema offerto il blocco di ordini di chiusura viene eseguito prima del blocco di apertura di ordini. E 'sempre più ragionevole per elaborare primi ordini esistenti (vicino o modificare) e solo dopo che per aprire nuovi ordini. In generale, è giusto essere guidati dal desiderio di avere come piccoli ordini come possibile. Durante l'esecuzione di questo blocco tutti gli ordini, per cui è stato attivato il criterio di chiusura, devono essere chiusi. Dopo tutti gli ordini necessari è stato chiuso, il controllo passa ad un blocco di nuovo calcolo ordini dimensioni. Ci sono molti algoritmi per calcolare un volume dell'ordine. Il più semplice di loro sta usando una dimensione costante sacco fissa. È conveniente utilizzare questo algoritmo in un programma di strategie di test. metodo più popolare di definire un formato di ordine è l'impostazione del numero di lotti a seconda della quantità di margine libero, ad esempio 30-40 di esso. Se margine libero non è sufficiente, il programma cessa la sua attività dopo aver informato l'utente circa la ragione. Una volta definito il numero di lotti per l'apertura di nuovi ordini, il controllo viene passato per ordinare blocco di apertura. Se uno qualsiasi dei criteri calcolata punti precedenti per la necessità di aprire un ordine di un certo tipo, una richiesta commercio per aprire un ordine è formato in questo blocco. C'è anche l'errore di blocco analizzando in un Expert Advisor. Se una qualsiasi operazione di commercio riuscita, controllo (solo in questo caso) viene passato al blocco di elaborazione di errore. Se un errore restituito da un server o terminale del cliente non è cruciale, un ulteriore tentativo di eseguire un'operazione di scambio. Se viene restituito un errore cruciale (ad esempio, un account è bloccato), EA deve terminare il suo funzionamento. Ricordate, in MQL4 non vi è alcuna possibilità di programma di terminare un'operazione EA in una finestra di sicurezza (da non confondersi con gli script, vedere Funzioni speciali). Cosa si può fare in modo programma è la cessazione di start (). In un nuovo inizio della funzione start () su un nuovo tick il valore di un trading vieta certa variabile bandiera (in questo caso attivata come risultato di un errore critico) può essere analizzato e controllo può essere passato per la cessazione della operazione funzione speciale così la formazione di nuova richiesta di commercio non è permesso. Nello schema offerto il valore del flag viene analizzato nel blocco del trattamento preliminare. prezzi Trading strategia di mercato sono in continuo movimento. stato del mercato in qualsiasi momento del tempo può essere condizionalmente caratterizzato sia come tendenza - forte variazione di prezzo unidirezionale (aumento o una diminuzione), o come un piatto - movimento laterale dei prezzi con deviazioni deboli da una certa media. Queste caratteristiche sono proprie condizionale, perché non ci sono criteri chiari, in base al quale tendenza o appartamento possono essere identificati. Ad esempio, i movimenti laterali lunghe con forti deviazioni che possono essere ricondotti né ad una TV né di una tendenza. Generalmente si presume che il mercato è principalmente nello stato di movimento laterale e andamento generalmente avvengono 15-20 di tempo. Tutte le strategie di trading possono anche essere convenzionalmente divisi in due gruppi principali. Il primo gruppo comprende le strategie di piatti-oriented. L'idea principale di tali strategie è che dopo un prezzo deviazione evidente deve tornare alla posizione precedente, ecco perché ordini vengono aperti in direzione contraria al ultimo movimento prezzo. Il secondo strategie di gruppo sono strategie di tendenza, quando gli ordini sono aperti nella stessa direzione del movimento di prezzo sale. Ci sono più complicati (combinato) strategie. Tali strategie prendono in considerazione molti fattori diversi che caratterizzano mercato come un trading risultato può essere eseguito sia in piano e di tendenza. Non è difficile da attuare negoziazione secondo questa o quella strategia tecnicamente - MQL4 contiene tutto il necessario per mezzo di esso. Il lavoro principale nella creazione di una propria strategia consiste nella ricerca di criteri commerciali. Criteri di negoziazione In questo esempio cercheremo di costruire una tendenza Expert Advisor, vale a dire quella che si aprirà gli ordini nella direzione del movimento dei prezzi. Quindi, abbiamo bisogno di trovare tra i vari indicatori tecnici quelli che rilevano una tendenza che inizia. Uno dei metodi più semplici di ricerca criteri di trading si basa sull'analisi della combinazione di Mas con diversi periodi medi. Figura. 111 e Fig. 112 mostra la posizione di due differenti MA (con periodi di media 11 e 31) su differenti parti di mercato. Medie con piccolo periodo medio (linee rosse) sono più vicini ad un grafico dei prezzi, tortuoso e mobile. Medie mobili con grande periodo di calcolo della media (linea blu) sono più inerti, hanno lag più grande e si trovano lontano dai prezzi di mercato. Consente di prestare attenzione ai luoghi dove Mas con diversi periodi medi si incrociano e cercare di decidere, se il fatto di attraversamento MA può essere utilizzato come criterio di lettura. Figura. 111. Crossing di MA (11) e MA (31) quando il prezzo cambi di direzione del movimento. In Fig. 111 vediamo una parte di mercato in cui l'apertura di ordini nella direzione del movimento dei prezzi al passaggio MA è giustificata. Nel punto A la linea rossa attraversa la blu dal basso verso l'alto, dopo che il prezzo di mercato continua a crescere per qualche tempo. Ulteriore passaggio MA inverso indica la variazione di prezzo direzione del movimento. Se apriamo un ordine di acquisto nel punto A e chiuderlo in B, avremo proporzionale profitto a differenza di prezzi A e B. Figura. 112. Crossing di MA (11) e MA (31) quando il prezzo cambi di direzione del movimento. Allo stesso tempo ci sono altri momenti del mercato quando MA croce, ma ciò non porta ad un'ulteriore considerevole aumento dei prezzi o caduta (Fig. 112). Gli ordini aperti al passaggio MA in quei momenti porterà a perdite. Se vendere è aperto in A e chiuso a B, come ad esempio il commercio porterà perdite. Lo stesso si può dire di un ordine di acquisto aperto a B e chiuso a C. Il successo dell'intera strategia attuata sulla base di attraversamento MA dipende dal numero di pezzi che possono essere caratterizzate come tendenza e piatta. Nel piatto spesso MA traversata è un evento regolare che interferisce con qualsiasi strategia di tendenza. Numerosi falsi segnali di norma portare a perdite. Ecco perché questo segno - attraversamento di Mas con diversa periodo medio - può essere utilizzato per la costruzione di strategie di trading solo in combinazione con altri segni che dimostrano una tendenza. In questo esempio (per la costruzione di un semplice Expert Advisor) dovremo rifiutare con questo segno. Useremo un altro segno. Analizzando visivamente il carattere delle variazioni dei prezzi nel mercato, possiamo vedere che un lungo una direzione di aumento del prezzo o caduta appare spesso come risultato di un breve movimento forte. In altre parole, se entro un breve periodo un forte movimento è accaduto, possiamo aspettarci la sua continuazione in un periodo di medio termine. Figura. 113 mostra il periodo di mercato in cui un forte movimento ha portato alla continuazione della variazione di prezzo nella stessa direzione. Mentre la quota di forte movementquot possiamo usare la differenza di Mas con diversi periodi medi. Più forte è il movimento, il più grande è il ritardo di MA con grande periodo di mediazione da MA con un piccolo periodo di calcolo della media. Inoltre, anche i forti movimenti di prezzo discontinui con ulteriori ritorno non si traducono in una grande differenza tra AIC, vale a dire numerosi falsi segnali non vengono visualizzati. Ad esempio, salto di prezzo da 50 punti con ulteriore ritorno (al centro in Fig. 113) ha comportato aumento di differenza tra le AM, solo di 20 punti. Allo stesso tempo, un movimento molto forte (che non è di solito accompagnata da una notevole correzione) al punto A comportato l'aumento differenza fino a 25 - 30 punti. Se Acquista ordine si apre quando si raggiunge un certo valore di differenza tra AIC, per esempio in A, molto probabilmente l'ordine sarà redditizio quando il prezzo raggiunge un valore di ordine di arresto prestabilito. Consente di utilizzare questo valore come criterio di trading nel nostro Expert Advisor. Numero di ordini In questo esempio andremo ad analizzare un Expert Advisor che ammette la presenza di un solo ordine di mercato, ordini pendenti non sono forniti. Tale approccio è giustificato non solo in questo esempio certo, ma può essere utilizzato come base per qualsiasi strategia. ordini pendenti sono di solito utilizzati quando uno sviluppatore ha piuttosto un criterio affidabile per prevedere il futuro variazione di prezzo con alta probabilità. Se non c'è tale criterio, nessuna necessità di usare attesa di ordini. La situazione in cui diversi ordini opposte per titolo sono aperti, inoltre, non può essere considerato ragionevole. È stato scritto in precedenza che dal punto di vista economico opposta ordini sono considerati senza senso, soprattutto se i prezzi degli ordini sono uguali (vedere Chiusura e cancellazione ordini). In tal caso dovremmo chiudere un ordine da un altro e attendere un segnale per aprire un ordine mercato in una certa direzione. Rapporto di criteri commerciali Da questa posizione diventa chiaro che cosa i rapporti sono possibili tra i criteri di trading. Figura. 114 mostra tre varianti di correlazione dei criteri di trading, quando ogni criterio è importante (valido). Azioni (apertura e di chiusura dei mercati ordini) terrà in senso orario sui seguenti immagini. Figura. 114. apertura Ordine e la correlazione criteri di chiusura (A e B - corretta, c - non corretta). La variante più popolare di un criterio di negoziazione formate correttamente è la variante a. Dopo essere stato aperto un ordine di mercato Buy si svolge su fino al momento in cui il criterio che richiede i suoi fattori scatenanti di chiusura. Dopo che una pausa verifica quando ordini vengono aperti. Ulteriori un Sell ordine di mercato può essere aperto. Condizioni per la chiusura di un ordine di vendita (secondo criteri formate correttamente) si verificano in precedenza, che le condizioni per l'apertura di un ordine di acquisto. Tuttavia, un ordine di acquisto può essere aperto ancora una volta, se un criterio di trading richiede questo. Ma secondo questa variante un ordine di mercato non può essere aperto se esiste un ordine mercato aperto nella direzione contraria. criteri simili correlazione è nella variante b. La differenza è che un criterio per aprire qualsiasi ordine di mercato è allo stesso tempo un criterio per la chiusura ordine inverso. Questa variante come variante un non consente diversi ordini aperti nel terminale contemporaneamente sul titolo. La variante di criteri correlazione è corretto. Secondo tale variante l'apertura di un ordine di mercato è consentita quando gli ordini contrari non sono ancora chiuse, che è senza senso. Non ci può essere rari casi in cui questa variante è in parte giustificato. Apertura di un ordine contrario a volte è accettabile per compensare le perdite che si verificano in piccole correzioni dopo forti movimenti di prezzo. In tali casi, un ordine opposto può essere aperto dello stesso o più piccolo valore rispetto al già esistente e quindi chiuso quando la correzione è finita. Tale tattica permette di non interferire con l'ordine quotmainquot aperto nella direzione di tendenza. In caso generale diversi ordini una direzione sono anche possibili. Questo può essere giustificato quando un ordine precedente aperta è protetta da un ordine di arresto e il criterio indicando l'andamento dei prezzi nella stessa direzione innescato ancora una volta. Tuttavia, quando si crea una tale strategia, uno sviluppatore deve essere pienamente consapevole che in caso di un brusco cambiamento movimento dei prezzi gli ordini di arresto poste possono essere non eseguiti da alcuni broker al primo tocco prezzo. E la perdita sarà proporzionale al valore totale degli ordini di mercato uno-direzionale. Nel nostro esempio usiamo variante B di criteri di negoziazione di correlazione. Tutti gli ordini di mercato aperte vengono chiuse con un ordine di arresto o dopo un criterio di aprire un ordine in trigger direzione opposta (qui criterio della chiusura Acquisto coincide con quella di aprire Sell e viceversa). Dimensioni di ordini aperti in tutti i formati di ordine strategia di trading dovrebbe essere ragionevolmente limitato. In un caso semplice una dimensione ordine fisso viene utilizzato in un Expert Advisor. Prima dell'inizio dell'operazione EA, un utente può impostare qualsiasi dimensione ordini futuri e lasciare invariato per qualche tempo. Inoltre, se l'equilibrio cambia, un utente può impostare un nuovo valore di numeri di lotto di ordini aperti. Una dimensione troppo piccolo ordine fornisce più fiducia in funzione al cambiamento del mercato imprevedibile, ma il profitto in caso di successo sarà non così grande. Se la dimensione ordine è troppo grande, grande profitto può essere acquisita, ma come ad un EA sarà troppo rischioso. Di solito la dimensione degli ordini aperti è impostato in modo, che i requisiti di margine non superano 2-35 per cento del margine di equilibrio o gratuito (se una strategia consente una sola aperto ordine, equilibrio e margine libero al momento prima dell'apertura ordine sarà pari). In questo esempio, entrambe le versioni sono implementati. Un utente può scegliere di indicare direttamente i valori degli ordini o impostare il valore in percentuale dal margine libero. Programmazione Dettagli Un semplice tendenza Expert Advisor tradingexpert. mq4 costruito sulla base di argomentazioni precedenti può assomigliare a questo: descrivere variabili Un altro criterio di stima programma è la sua leggibilità. Un programma è considerato essere correttamente scritta, se può essere facilmente letto da altri programmatori, ecco perché tutte le parti principali del programma e principali momenti che caratterizzano la strategia devono essere commentate. Questo è anche il motivo per cui si raccomanda di dichiarare e commentare tutte le variabili all'inizio del programma. Nel blocco sono descritti 1-2 variabili esterne e globali. Secondo le regole, le variabili esterne e globali devono essere aperte prima del loro primo utilizzo (vedi Tipi di variabili), ecco perché sono dichiarate nella parte di testa del programma. Tutte le variabili locali del funzione start () sono raccolti e descritti nella parte superiore funzioni (blocco 2-3) subito dopo l'intestazione della funzione. Regole di dichiarare le variabili locali non lo richiedono, ma anche non vietano. Se un programmatore incontra difficoltà nel comprendere il significato di una variabile durante la lettura del programma, si può fare riferimento alla parte superiore del programma e scoprire il significato e tipo di qualsiasi variabile. E 'molto comodo in pratica di programmazione. Blocco di elaborazione preliminare In questo esempio la preelaborazione consiste di due parti (blocco 3-4). Il programma termina operazione se non ci sono abbastanza bar in una finestra di protezione in un caso del genere è impossibile rilevare correttamente (nel blocco 5-6) valori medi necessari per il calcolo criteri movimento. Inoltre qui viene analizzato il valore del lavoro variabile. Nel normale funzionamento EA il valore della variabile è sempre vero (è impostata una volta durante l'inizializzazione). Se un errore critico si verifica nel funzionamento del programma, falso è assegnato a questa variabile e Start () termina il suo funzionamento. Questo valore non cambierà in futuro, è per questo che il seguente codice non viene eseguito. In tal caso il funzionamento del programma deve essere arrestato e la ragione per l'errore critico deve essere rilevato (se necessario, un centro di negoziazione deve essere contattato). Dopo la situazione è risolto, il programma può essere avviato nuovamente, cioè l'EA può essere collegato a una finestra di sicurezza. ordini contabili Il consulente esperto descritto permette di lavorare solo con un ordine di mercato. Il compito del blocco ordini contabile (blocco 4-5) è quello di definire le caratteristiche di un ordine aperto, se presente. Nel ciclo passando attraverso gli ordini per tutti gli ordini di mercato esistenti e in attesa vengono controllati, vale a dire dal primo (int i1) per l'ultimo (iampltOrdersTotal ()). In ogni ciclo di iterazione l'ordine successivo viene selezionata dalla funzione OrderSelect (). La selezione viene effettuata da una fonte di ordini aperti e in attesa (SELECTBYPOS). Se la selezione viene eseguita con successo (cioè non vi è un ordine più nel terminale), ulteriormente questo ordine e la situazione deve essere analizzata: se l'ordine viene aperto per la sicurezza, in cui l'EA opera, se l'ordine è mercato o sospeso anche deve essere presa in considerazione quando il conteggio ordini. Nella linea: tutti gli ordini aperti per un altro titolo sono eliminati. Operatore continuare fermate l'iterazione e le caratteristiche di un tale ordine non vengono elaborati. Ma se l'ordine viene aperta per la sicurezza, per la finestra di cui l'EA è collegato, viene ulteriormente analizzato. Se OrderType () restituisce il valore più di 1 (vedere Tipi di transazioni), l'ordine selezionato è in attesa di uno. Ma in questo Expert Advisor non è prevista la gestione degli ordini in sospeso. Significa l'esecuzione di start () deve essere terminato, perché una situazione di conflitto si è verificato. In tal caso, dopo un messaggio circa l'inizio terminazione operazione () esecuzione viene interrotta dal ritorno dell'operatore. Se l'ultimo controllo ha mostrato che l'ordine analizzato è un ordine di mercato, il numero totale di ordini per un titolo è calcolato e analizzato. Per la prima di tali ordini tutte le caratteristiche essenziali sono definiti. Se nella prossima iterazione del contatore dell'ordine (variabile totale) trova il secondo ordine di mercato, la situazione è anche considerato il conflitto, perché la EA non in grado di gestire più di un ordine di mercato. In tal caso, inizio () l'esecuzione viene arrestato dopo che mostra un messaggio corrispondente. Come risultato dell'esecuzione del blocco dell'ordine contabilità (se tutti i controlli sono stati completati) variabile Totale conserva il suo valore zero se non vi sono ordini di mercato, o ottiene il valore 1 se vi è un ordine di mercato per la nostra sicurezza. In quest'ultimo caso alcune variabili impostate in corrispondenza con le caratteristiche di ordine (numero, tipo, prezzo di apertura, stop livelli e valore dell'ordine) anche ottenere i loro valori. Calcolo Criteri Trading Nella definizione esempio analizzato di criteri commerciali (blocco 5-6) è calcolato sulla base della differenza tra le medie mobili con diversi periodi di media. Secondo criteri accettati un grafico è bull-diretto se il valore corrente della MA con piccolo periodo è maggiore del valore di MA con periodo più grande, e la differenza tra i valori è maggiore di un certo valore. In un MA movimento orso con piccolo periodo è inferiore MA con periodo più grande e la differenza è maggiore di un certo valore critico. Al blocco di iniziare valori di Mas con periodi medi PeriodMA1 e PeriodMA2 sono calcolati. Il fatto di significatività di qualsiasi criterio di negoziazione è espressa mediante il valore di una corrispondente variabile. Variabili OpnB e OpnS denotano il criterio di attivazione per l'apertura di acquisto e in vendita, variabili Cls e CLS - per la chiusura. Ad esempio, se un criterio per l'apertura di Buy non ha innescato, il valore di OpnB rimane falsa (insieme alla inizializzazione delle variabili), se ha innescato, OpnB ottiene il valore vero. In questo caso, il criterio per la chiusura Sell coincide con quella di apertura Acquisto, criterio per apertura Sell coincide con quella di chiusura Acquisto. criteri commerciali accettati in questo esempio sono utilizzati solo a scopo didattico e non devono essere considerati come una linea guida quando le negoziazioni su un conto reale. Chiusura ordini è stato scritto in precedenza che questo Expert Advisor è stato progettato per il funzionamento con un solo ordine di mercato aperto per un titolo, al quale finestra l'EA è collegato. Per il momento in cui il controllo del programma viene passato al blocco di chiusura ordine si sa per certo che al momento attuale non ci sono o non ordini per la sicurezza, o c'è solo un ordine di mercato. Ecco perché il codice degli ordini blocco di chiusura è scritto in modo che un solo ordine può essere chiuso con successo. Questo blocco è basato sul ciclo infinito mentre, il cui corpo è costituito da due parti analoghe: una per la chiusura di un ordine di acquisto, un altro per la chiusura di un ordine di vendita. Mentre viene qui utilizzato per lo scopo che in caso di un errore di funzionamento commercio potrebbe essere ripetuta ancora una volta. Nell'intestazione del primo operatore se la condizione per la chiusura di un ordine di acquisto è calcolato (Vendere gli ordini sono chiusi nel modo analogo). Se il tipo di un ordine precedente aperto corrisponde ad acquistare (vedere Tipi di Trades) e il segno per la chiusura Buy è rilevante, il controllo viene passato al corpo se l'operatore dove si forma una richiesta per chiudere. Come un prezzo di chiusura ordine nella funzione OrderClose () il valore di un preventivo su due lati corrispondente al tipo di ordine è indicato (vedere Requisiti e limitazioni a fare mestieri). Se un'operazione di commercio viene eseguita correttamente, dopo un messaggio circa la chiusura dell'ordine è indicata la corrente mentre iterazione è fermo e l'esecuzione del blocco di chiusura ordine è sopra. Ma se l'operazione non riesce, la funzione definita dall'utente per l'elaborazione di errori FunError () si chiama (blocco 10-11). Errori di elaborazione come parametro passato a FunError () l'ultimo codice di errore calcolato da GetLastError () viene utilizzato. A seconda del codice di errore FunError () restituisce 1 se l'errore non è critico e l'operazione può essere ripetuta, e 0 se l'errore è critico. Gli errori critici sono divisi in due tipi - quelli, dopo di che l'esecuzione di un programma può essere continuato (per esempio, un errore comune) e quelli, dopo di che l'esecuzione di tutte le operazioni di commercio deve essere fermato (per esempio, bloccato il conto). se dopo un'operazione commercio riuscita la funzione definita dall'utente restituisce 1, la corrente mentre iterazione è terminata e durante la successiva iterazione un'altra è tentato di eseguire l'operazione - per chiudere l'ordine. Se la funzione restituisce 0, l'esecuzione iniziale corrente () viene arrestato. Al successivo avvio tick () sarà avviato dal terminale del cliente di nuovo e se si conservano le condizioni per la chiusura dell'ordine, un altro tentativo di chiudere l'ordine sarà fatto. Se durante l'elaborazione di errore si è scoperto che un'ulteriore esecuzione del programma ha senso (ad esempio il programma opera su una versione terminale del cliente) durante il successivo avviare l'esecuzione della funzione start speciale () sarà terminato nel blocco di elaborazione preliminare quando analizzando il valore del lavoro variabile. Calcolo quantità di lotti per i nuovi ordini Importo dei lotti può essere calcolato in conformità con le impostazioni degli utenti seguito una delle due varianti. La prima variante è un certo valore costante impostato dall'utente. Secondo la seconda variante la quantità di lotti è calcolato sulla base di un importo pari ad una certa percentuale (impostato dall'utente) di un margine libero. All'inizio del blocco di definire la quantità di lotti per nuovi ordini (blocco 7-8) sono calcolati valori necessari di alcune variabili - quantità minima consentita di lotti e fase di cambiamento lotto costituito da un broker, margine libero, prezzo, un lotto per la sicurezza. In questo esempio viene fornito il seguente. Se un utente ha creato un certo valore non-zero della variabile Lts esterna, per esempio 0,5, è accettato come la quantità di lotti Lts quando si forma una richiesta commercio aprire un ordine. Se 0 è assegnato al Lts, il numero di lotti Lts è definita sulla base delle variabili (Prots percentuali), margine libero e le condizioni stabilite da un broker. Dopo Lts è calcolato, viene condotta una verifica. Se questo valore è inferiore al valore consentito minimo, il valore consentito minimo è accettato. ma se margine libero non è sufficiente, dopo un messaggio corrispondente all'esecuzione start () viene terminato. Apertura Ordini Il blocco di aprire ordini (blocco 8-9) come il tizio di aprire gli ordini è un ciclo infinito istante. Nell'intestazione del primo operatore, se si calcolano le condizioni per l'apertura di un ordine di acquisto: se non ci sono ordini per la sicurezza (variabile totale è uguale a 0) e il segno per l'apertura di un ordine di acquisto è rilevante (OpnB è vero), il controllo è passato a se il corpo dell'operatore per l'apertura di un ordine. In tal caso, dopo i tassi sono prezzi aggiornati per i livelli di stop sono calcolati. I valori dei livelli di stop sono impostati da un utente in variabili esterne StopLoss e TakeProfit. In un caso generale un utente può impostare i valori di questo parametri più piccolo che un broker permette. Oltre ad un broker può cambiare la distanza consentita minima in qualsiasi momento (si tratta di un caso spesso a forti movimenti di mercato, per esempio, prima importante comunicato stampa). Ecco perché prima di ogni ordine di aprire i livelli di arresto devono essere calcolare tenendo conto dei valori impostati bu un utente e il valore consentito minimo istituito da un broker. Per calcolare i livelli di arresto della funzione NewStop definita dall'utente () è usato come un parametro passato viene utilizzato il valore del livello di arresto impostato dall'utente. In NewStop () prima la corrente minima distanza consentita viene calcolata. Se il valore impostato da un utente corrisponde a una requisiti broker, viene restituito questo valore. Se è minore del valore consentito, viene utilizzato il valore consentito da un mediatore. I prezzi delle richieste di arresto sono calcolati dal corrispondente citazione fronte-retro (vedere Requisiti e limitazioni a fare mestieri). Una richiesta commercio per aprire un ordine formato utilizzando la funzione OrderSend (). Per il calcolo del prezzo di apertura dell'ordine e dei prezzi delle richieste di arresto dei valori di citazione a due facciate corrispondenti al tipo di ordine vengono utilizzati. Se un'operazione di scambio ha avuto successo (vale a dire un server ha restituito il numero di un ordine aperto) dopo un messaggio su un apertura ordine di successo è mostrato. start () l'esecuzione è terminata. Se un ordine non è stato aperto e il terminale client restituito un errore, l'errore viene elaborato secondo l'algoritmo descritto in precedenza. Alcuni Codice peculiarità analizzato codice Expert Advisor è orientata alla realizzazione di una certa strategia. Nota, alcune righe di programma contengono variabili e calcoli che sarebbe cambiato, se la strategia sono stati cambiati. Ad esempio, secondo la strategia accettato la Expert Advisor è stato sviluppato per funzionare solo con un ordine. Questo ha permesso di utilizzare il biglietto variabili sia per l'identificazione di un numero d'ordine di chiusura (nel blocco di chiusura 6-7) e per l'identificazione di un successo di un'esecuzione operazione di commercio all'apertura di un ordine (nel blocco dell'apertura 8-9 ). In questo caso tale soluzione è accettabile. Tuttavia, se prendiamo il codice analizzato come base per l'attuazione di un'altra strategia (ad esempio consentire ordini opposti) dovremo introdurre una o più variabili di essere in grado di riconoscere numeri di ordini aperti e identificare il successo delle operazioni commerciali. In ulteriori modifiche di strategia dovremo cambiare le linee di programma venire contenenti parte delle logiche contenute nella strategia di origine. Vale a dire nel blocco di contabilità ordine non avremo per terminare il funzionamento del programma, se ci sono diversi ordini aperti per un titolo. Inoltre, le condizioni di apertura e di chiusura ordini alslo cambiamento. Ciò comporterà il codice cambia in blocchi di apertura e chiusura degli ordini. Sulla base di questa analisi possiamo facilmente concludere che il semplice consulente esperto descritta non è perfetta. In a general case, for the implementation of order accounting one should use a universal function based on using data arrays and not containing logics of a certain strategy. The same can be said about the blocks of opening and closing orders. A more complete program must contain a main analytical function, all other user-defined functions must be subordinate to it. This analytical function must contain a program code, in which all conditions for the implementation of any strategy are analyzed all subordinate functions must perform limited actions. The function of accounting orders must only account orders, functions of opening and closing orders must only open and close orders, and the analytical function must quotthinkquot and manage all other functions, i. e. call them when needed. The Moving Average Cross Expert Advisor The moving average cross is one of the most popular basic trading strategies. Esso utilizza due o più medie mobili di differenti periodi di determinare la direzione del trend. Quando la media mobile più veloce (s) è al di sopra della media mobile più lenta (s), una posizione lunga viene aperta, e viceversa per una posizione short. La croce media mobile eccelle durante la lunga, tendenze come una strategia di trading mediumlong-gamma sostenuta. Le strategie basate sui mobili croce media sono sempre stati spesso richiesto dai nostri clienti, e questo è il motivo per cui offriamo la media mobile consulente esperto croce. A questo punto è possibile acquistare questo consulente esperto popolare per oltre 50 fuori precedenza 45, la media mobile di lusso Croce consulente esperto è ora solo 19,95 fino a 3 linee di media mobile. Utilizzare due medie mobili, o aggiungere un terzo per filtrare le tendenze a lungo termine. Spostamento Tipi di media. Semplice. Esponenziale. Lisciato o Weighted lineare. I dati sui prezzi. Scegliere tra Chiudere, Aperto, alto, basso, medio, tipica o Weighted Chiudi. Spostamento . Spostare le linee di media mobile in avanti o indietro. Tempistiche multiple. Ogni media mobile può essere impostato su qualsiasi timeframe grafico. Money Management - La dimensione del lotto viene calcolata automaticamente in modo che il rischio massimo per il commercio è limitata ad una percentuale del vostro capitale. Trailing Stop Break Even Stop - Regolare automaticamente lo stop loss come il commercio si muove in profitto. Impostare i livelli di profitto minimi, passo trailing stop in incrementi e più quotidiana Timer Trade - Limitare il trading intraday per le ore che il mercato è più attivo. Opzionalmente si può chiudere tutti gli ordini aperti, alla fine della giornata. Manuale ordine di controllo - Luogo ordini manuali nel grafico con un commento commercio specificato, e il MA Croce EA sentiero lo stop loss e chiudere l'ordine automaticamente su una croce opposta. Eseguire una volta per misura o di ogni tick. Scegliere la frequenza con cui controllare l'apertura ordine e condizioni di chiusura. È possibile negoziare su ogni tick, o solo sulla chiusura di ogni barra. Chiudere On Cross - Chiudere la posizione attualmente aperta su una croce media mobile nella direzione opposta. Se disattivato, gli ordini si chiuderà solo su uno stop loss o manualmente. Robusta. gestione completa degli errori e la notifica, riprovare il requote, e molto altro ancora. Completamente compatibile con ECN e 5 cifre broker. Avvisi - Scegli tra avvisi audio, il built-in finestra di avviso, e-mail o notifiche inviate allo smartphone. You can purchase the Moving Average Cross EA instantly for only 19.95Adjustable MA Expert Advisor Adjustable MA Forex expert advisor is a customizable moving average EA that offers flexible tuning of the traditional 2-MA cross strategy. È possibile impostare diversi periodi MA, MA, tipi differenza minima, stop-loss, take profit, trailing stop e lo slittamento. Questo consulente esperto apre sempre posizione in croce e la chiude sul prossimo croce. Il back-prova del MA regolabile esperto MetaTrader consulente ha mostrato 12,2 profitto con il 12,6 massima perdita nel corso di un periodo di 6 anni. Il volume position39s utilizzato è stato fissato a 0,1 lotti standard. La EA ha fatto 647 commerci, di cui 56.41 erano redditizie. Le impostazioni di default sono stati utilizzati in questo ritorno-test sul grafico EURUSD M5. Come si può vedere, i risultati non sono molto buone. Non è raccomandato l'uso di questo EA sul conto dal vivo. Quali sono le stop-loss e take profit utilizzato da questo EA Di default utilizza stop-loss fisso a 100 pips e take-profit a 70 pips. Il trailing stop è disattivata per impostazione predefinita. Quante volte ci si commercio su grafico EURUSD 5 minuti (le impostazioni di back-test) questo EA sarà il commercio una volta al giorno in media. Tutte le impostazioni diverse da quelle predefinite possono essere utilizzati Il test in avanti limitato (che dovrebbe essere più affidabile di un back-test) sul grafico AUDUSD M5 ha mostrato alcuni set-up redditizio per questo consulente esperto. Questi parametri devono essere modificati dal default: StopLoss mdash 30 TakeProfit mdash 50 TrailingStop mdash 20 Period1 mdash 50 Period2 mdash 10 Questo EA è compatibile con ECN. È necessario impostare il parametro di ingresso ECNMode su true per consentire ECN-compatibilità per questo consulente esperto. In caso contrario, è molto probabile che sarà vedere OrderSend errore 130 messaggi quando EA cercherà di aprire posizioni. Questo perché, se si sta operando con un broker ECN (con l'esecuzione di mercato per gli ordini), non è possibile impostare SLTP sulla posizione di apertura. Si deve aprire una posizione prima senza SLTP e solo allora modificarlo, aggiungendo livello Andor take-profit stop-loss. Discussione Attenzione Prima di fare domande di base per quanto riguarda l'installazione dei consulenti esperti, per favore, leggere questo MT4 Expert Advisor Tutorial per ottenere la conoscenza elementare su di loro manipolazione. Do you have your own trading results or any other remarks regarding this expert advisor Discuss Adjustable MA with other traders and MQL programmers on the experts forums. Stochastic Oscillator EA v2 About the Stochastic Oscillator The Stochastic Oscillator Indicator was developed in the late 1950s by Dr. George Lane. The term stochastic refers to the point of a current price in relation to its price range over a period of time. The stochastic oscillator show 2 lines (Main and Signal line) and s support and resistance level. He is included in Metatrader. The default settings are: K 5, D 3 Slowing 3. Trade logic of this forex robot The Stochastic Oscillator EA is a forex robot based on the Stochastic Oscillator with its Main Line, Signal Line and the Support and Resistance levels. He included 5 Stochastic based entry and 3 exit strategies. Crossover in OversoldOverbought Level: Trades if the Main and Signal lines crosses above or below the Support and Resistance levels. Main Line BreakIn: Opens a long trade if the Main Line breaks into the above Level. Vice versa for short trade. Main Line BreakOut: Opens a long trade if the Main Line breaks out of the above Level. Vice versa for short trade. Signal Line BreakIn: Opens a long trade if the Signal Line breaks into the above Level. Vice versa for short trade. Signal Line BreakOut: Opens a long trade if the Signal Line breaks out of the above Level. Vice versa for short trade. Exit On Crossover: Closes the trade on a crossover of the main and signal lines. Main Line BreakThrough: Closes the trade if the Main Line crosses the predefined level. Signal Line BreakThrough: Closes the trade if the Signal Line crosses the predefined level. Stochastic Level Mode If you set the Stochastic Level Mode to 8220Use only buy level8221 the Sell Entry Level and Sell Exit Levels will be calculated based on the Buy Levels like this: Sell Entry Level 100-Buy Entry Level. Sell Exit Level 100-Sell Entry Level. Included functions All versions have variable Magic Number, Take Profit, Stop Loss, Lot Size and Slippage. Does the inverse strategy initiate trades on the same cross, i. e. crossing support from above or resistance from below. I bought your EA but am looking for an inverse stoch strategy that initiates a sell when stoch crosses down from above resistance and initates a buy when it crosses up from below support. Any way to use this EA to do that I would also like to add an MACD filter ( only when buying, 8211 only when selling) This is the closest I8217ve gotten to any EA that would do this for me. Could I pay you to Mod it for these specs The inverse strategy works exactly the same way as the normal strategy does, but it only opens a sell trade instaed of a buy trade and a buy instaed of a sell. I am not planning to add a MACD filter. But I can make a modification for you. Please contact me here .

No comments:

Post a Comment