Monday 20 November 2017

Moving Media Ea Mql4


MetaTrader 4 - Experts. Moving media - esperto per MetaTrader 4. Moving Average esperto per la formazione di segnali di commercio utilizza una media mobile di apertura e chiusura delle posizioni vengono eseguiti quando la media mobile incontra il prezzo al dell'indice bar bar di recente formazione è pari a 1 dimensione del lotto verrà ottimizzato secondo una speciale consulente esperto algorithm. The analisi concorso del movimento grafico medio e il prezzo di mercato il controllo viene eseguito dalla funzione CheckForOpen Se la media mobile incontra la barra in modo tale che il primo è superiore prezzo di apertura, ma inferiore a quello Chiudere prezzo, la posizione di acquisto sarà aperta se la media mobile incontra la barra in modo tale che il primo è inferiore al prezzo di apertura, ma superiore a quello Chiudere prezzo, la posizione SELL sarà opened. Money gestione utilizzato in l'esperto è molto semplice, ma efficace il controllo su ogni volume posizione viene eseguita a seconda delle operazioni precedenti risultati Questo algoritmo è implementato dal LotsOptimized funzione la taglia base lotto è calcolato sulla base del parametro massima ammissibile risk. The MaximumRisk visualizza la base percentuale di rischio per ogni operazione di solito possiede un valore compreso tra 0 01 1 e 1 100 per esempio, se AccountFreeMargin margine libero è pari a 20.500 e le regole di gestione del capitale prescrive di usare rischio di 2, le dimensioni di base molto farà 20500 0 02 1000 0 41 e 'molto importante per il controllo circa l'accuratezza dimensione del lotto e per normalizzare il risultato con i valori consentiti Normalmente, un sacco frazionari con passo di 0 1 sono ammessi Una transazione avente volume di 0 41 non verrà eseguita per normalizzare la funzione NormalizeDouble è utilizzato con precisione fino a 1 carattere dopo il punto il risultato è il sacco base di 0 4 il calcolo molto di base sulla base del margine libero permette di incremento dei volumi di funzionamento a seconda di trading successo riscosso, cioè al commercio con reinvestire Questo è il meccanismo di base con la gestione del capitale obbligatorio per aumentare del commercio effetiveness. DecreaseFactor è la misura in cui la dimensione del lotto sarà ridotto dopo il commercio redditizio i valori normali sono 2,3,4,5 Se le transazioni precedenti erano inutili, i volumi successivi diminuisce di un fattore di DecreaseFactor al fine di attendere per tutto il periodo redditizio Questo è il fattore principale per l'algoritmo di gestione del capitale l'idea è molto semplice se il commercio è in aumento con successo, l'esperto lavora con il lotto di base facendo il massimo profitto Dopo l'operazione molto prima inutile, l'esperto riduce la velocità fino a quando una nuova transazione positiva è fatto l'algoritmo permette di disabilitare riduttori, per farlo, si deve specificare DecreaseFactor 0 l'ammontare degli ultimi successive operazioni redditizie è calcolato nella storia del commercio il lotto di base verrà ricalcolato su questo basis. Thus, l'algoritmo permette di ridurre efficacemente il rischio che si verificano a seguito di una serie di dimensioni molto redditizie è obbligatoriamente controllato per la dimensione minima ammissibile lotto al fine della funzione, poiché i calcoli effettuati precedentemente possono provocare terreno 0. l'esperto è destinato principalmente per lavorare con periodo giornaliero, e in modalità di test - per fare a prezzi vicini sarà commerciare solo in apertura di un nuovo bar, che è per questo che le modalità di modellazione ogni tick-non sono needed. Testing risultati sono rappresentato nel report. Typically, due medie mobili possono essere utilizzati per creare una strategia di EA forex per MT4 con questi rules. Buy quando il breve periodo media mobile è sopra il lungo periodo in movimento average. Sell quando il lungo periodo di media mobile è al di sopra della breve periodo in movimento average. On il seguente grafico da MetaTrader Terminal, la linea gialla è il periodo di breve periodo media mobile 9 e la linea rossa è il periodo di tempo in movimento periodo medio 18.Analizing il grafico, si potrebbe riscrivere le regole commerciali o segnali forex as. Buy quando la linea gialla è al di sopra della line. Sell rosso quando la linea gialla è al di sotto della line. Instead rosso di trascorrere un lungo periodo di tempo di codifica questa strategia forex, con Molanis Strategy Builder è possibile creare un diagramma di trading che rappresenta la media mobile strategia minuti Basta trascinare e rilasciare due blocchi l'analisi tecnica, uno Acquista blocco e un blocco venderli Collegare e impostare i parametri dei blocchi per ottenere un diagramma come il diagramma di following. This trading ha due percorsi commerciali quello di sinistra è evidenziato va dal blocco START per la block. One finale potrebbe leggere come Acquista 1 lotto di EURCAD con un 100 pip Take Profit e 50 pip stop Loss quando il breve periodo media mobile 9 è sopra il lungo periodo media mobile 18 Ricordati di leggere lo schema di negoziazione direzione opposta al commercio flow. The giusto percorso di negoziazione potrebbe essere letto come vendere 1 lotto di EURCAD con un 100 pip Take Profit e 50 pip stop Loss quando il lungo periodo di media mobile 18 è al di sopra della media mobile di breve periodo 9.Generating la MQL codice per MetaTrader con un solo click. On il menu Trading Diagramma, cliccare su Genera codice MQL4 per ottenere la finestra del codice MQL4 Molanis Strategy Builder consente di aprire il vostro consulente esperto direttamente con MetaTrader o per salvarlo come un t perdere MQ4 file. Don il nostro video tutorial on. Simple Expert Advisor. Problem 29 Creare un trading esperto Advisor. Preliminary Arguments. Before iniziando a programmare un trading Expert Advisor, è necessario definire i principi generali di un programma futuro ci sono la creazione di programmi rigide regole Tuttavia, una volta aver creato un programma, un programmatore di solito continua a migliorarla per poter 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 sua per creare un algoritmo di negoziazione Expert Advisor, lasciate s analizzare cosa un programma di funzionamento dovrebbe do. One di i dati più importanti nella formazione di ordini commerciali sono le informazioni sugli ordini già esistenti in un terminale client Alcune strategie di trading accettano solo ordine unidirezionale Generalmente, se una strategia di trading permette, diversi ordini possono essere aperti in un terminale allo stesso tempo, anche 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 è fatta in un programma, è necessario sapere quali ordini di negoziazione sono già stati aperti o al primo posto di tutto un programma deve contenere un blocco di ordini contabile che è tra i primi ad essere executed. During un EA decisioni di esecuzione di trading dovrebbe essere fatto, la cui attuazione comporta l'esecuzione di operazioni di parte Codice commerciale responsabile per ordini commerciali formazione è meglio scritto in un blocco separato un Expert Advisor può formare una richiesta di commercio per aprire una nuova attesa o di ordine 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 un utente s desire. Trade decisioni devono essere prese in un programma sulle basi di criteri commerciali il successo di tutto il programma dipende dalla correttezza della rilevazione criteri commerciali nel programma Quando si calcola criteri commerciali un programma può e deve tener conto di tutte le informazioni che possono essere utili, ad esempio , un esperto consulente 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 block. A separata negoziazione Expert Advisor deve necessariamente contenere errori Analisi di errore di blocco di elaborazione 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 su un possibile situation. Structure conflitto di un esperto semplice Advisor. Below è uno schema strutturale di un semplice consulente esperto costruito sulla base di diversi blocchi funzionali, in ogni blocco di una certa parte distaccata di calculations. Fig 109 schema strutturale di un semplice esperto Advisor. On il successivo sviluppo di EA fase non vi è alcun codice di programma ma allo stesso tempo l'algoritmo di un programma è in gran parte formata Come l'EA costruito sulle basi del regime proposto opererà può essere facilmente compresa semplicemente guardando il regime e orientando su nomi di blocco e array relazioni controllano passando tra them. After controllo avvio del programma viene passato al blocco del trattamento preliminare in questo blocco di alcuni parametri generali possono essere analizzati per esempio, se non ci sono abbastanza bar in una finestra bar necessarie per il calcolo dei parametri di indicatori tecnici, un EA non sarà in grado di operare in modo adeguato 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 viene passato per ordinare contabilità block. In la blocco degli ordini contabili numero e la qualità degli ordini esistenti in un terminale del cliente per un titolo alla finestra di cui la EA è collegato viene rilevato in questo blocco ordini di altri titoli che devono essere eliminati se una strategia di trading programmato richiede l'utilizzo di solo gli ordini di mercato e non usa gli ordini in attesa il fatto della presenza di ordini in corso deve essere rilevata Se una strategia ammette un solo ordine di mercato e ci sono in realtà diversi ordini, questo fatto dovrebbe essere noto il compito del blocco ordine contabile in questo schema è nel definire se la situazione commerciale attuale corrisponde con quello atteso, cioè quella in cui l'AE può adeguatamente operare Se la situazione corrisponde, controllo deve essere passato al blocco successivo per continuare l'operazione EA s se non, il funzionamento EA s deve essere terminato e questo infatti devono essere segnalati ad un user. If 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 tutti i criteri necessari per prendere decisioni commerciali sono calcolati, vale a dire i criteri per l'apertura, la chiusura e modifica degli ordini Un ulteriore controllo viene passato al blocco di chiusura orders. It è facile capire il motivo per cui nel sistema di offerta del blocco di ordini di chiusura viene eseguito prima del blocco degli ordini di apertura è sempre più ragionevole per elaborare gli ordini prima esistenti chiudere o modificare e solo dopo che per aprire nuovi ordini in generale, è giusto essere guidati dal desiderio di avere come piccoli ordini possibile durante l'esecuzione di questo blocco tutti gli ordini, per i quali il criterio di chiusura è stato attivato, deve essere closed. After tutti gli ordini necessari è stato chiuso, il controllo è passato a un blocco di nuovo calcolo ordini dimensioni ci sono un sacco di algoritmi per calcolare un volume di ordini Il più semplice di loro sta usando una costante, la dimensione del lotto fisso E 'comodo da usare questo algoritmo in un programma per testare le strategie di 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 termina il suo funzionamento dopo aver informato l'utente circa la reason. After è definito il numero di lotti per l'apertura di nuovi ordini, il controllo viene passato per ordinare blocco di apertura Se uno dei criteri calcolato punti precedenti per la necessità di aprire un ordine di un certo tipo, una richiesta di commercio per aprire un ordine è formato in questo block. There è anche l'errore di blocco analizzando in un Expert Advisor Se qualsiasi operazione commerciale non è riuscita, il controllo solo in questo caso viene passato al blocco di elaborazione errore Se un errore restituito da un server o client terminale non è cruciale, un altro tentativo di eseguire un'operazione di scambio Se un errore cruciale viene restituito, ad esempio, un account è bloccato, un EA deve terminare il suo funzionamento Ricorda, in MQL4 non vi è alcuna possibilità di programma di terminare il funzionamento un EA s in una finestra di sicurezza a differenza di script, vedere Funzioni speciali cosa si può fare in modo programma è la cessazione di iniziare in un nuovo inizio di inizio funzione un nuovo spuntare il valore di un certo commercio che vieta variabile bandiera in questo caso attivato a causa di un errore critico possono essere analizzati e di controllo possono essere passati per la conclusione dell'operazione funzione speciale così la formazione di nuova richiesta di commercio non è consentito nello schema offerto il valore del flag viene analizzato nel blocco di processing. Trading preliminare i prezzi sono in continuo movimento Strategy. Market stato del mercato in qualsiasi momento del tempo può essere condizionalmente caratterizzato sia come tendenza - forte unidirezionale variazione di prezzo aumento o una diminuzione, o come un piatto - movimento dei prezzi laterale 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 può essere identificato, ad esempio, i movimenti laterali lunghe con forti deviazioni che possono essere ricondotti né in un appartamento e non a una tendenza generale si presume che il mercato è principalmente in stato di movimento laterale e le tendenze di solito si svolgono 15-20 di time. Fig 110 appartamenti e di tendenza nelle strategie di trading market. All anche può essere convenzionalmente divisi in due gruppi principali Il primo gruppo contiene le strategie di piatti orientata L'idea principale di tali strategie è che dopo un prezzo deviazione evidente deve tornare alla posizione precedente, che s perché ordini vengono aperti in direzione contraria al ultimo movimento prezzo il secondo strategie di gruppo sono strategie di tendenza, quando gli ordini vengono aperti nella stessa direzione del movimento di prezzo sale ci sono più complicate strategie combinate 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 tutti i mezzi necessari per essa il lavoro principale nella creazione di una propria strategia consiste nella ricerca del trading criteria. Trading Criteria. In questo esempio cercheremo di costruire una tendenza Expert Advisor, cioè quella che si aprirà gli ordini nella direzione movimento di prezzo Così, 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 Fig 111 e Fig 112 mostrare la posizione di due diversi MA con periodi di una media di 11 e 31 su diverse parti del mercato medie con linee rosse piccolo periodo di media sono più vicino ad un grafico dei prezzi, tortuose e mobili medie mobili con il periodo di più grande di una media di linea blu sono più inerti, hanno lag più grande e si trovano lontano dai prezzi di mercato Let s prestare attenzione ai luoghi dove Mas con diversi periodi medi di fondo e cercare di decidere, se il fatto di attraversamento MA può essere utilizzato come una lettura criterion. Fig 111 Crossing di MA 11 e MA 31 quando la direzione del movimento di prezzo changes. In fig 111 ci vedere una parte di mercato in cui l'apertura di ordini nella direzione del movimento dei prezzi al valico 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 inversione di attraversamento MA indica il movimento dei prezzi cambio di direzione Se apriamo un ordine di acquisto nel punto a e chiuderlo in B, ci si arriva proporzionale profitto a differenza di a e B prices. Fig 112 Crossing di mA 11 e mA 31 quando la direzione del movimento di prezzo changes. At stesso tempo ci sono altri momenti nel mercato quando mA croce, ma questo non portare a un ulteriore considerevole aumento dei prezzi o cadere Fig 112 ordini aperti al passaggio mA in quei momenti porterà a perdite Se vendere è aperto presso una e chiuso a B, come ad trading portare le perdite lo stesso si può dire di un ordine di acquisto aperto in B e chiuso a C. il successo di tutta la strategia messa in atto sulla base di incrocio MA dipende dal numero di pezzi che possono essere caratterizzato come tendenza e piatta In piatta spesso MA traversata è un appuntamento fisso che interferisce con qualsiasi strategia tendenza numerosi falsi segnali come un vantaggio regola per perdite che è il motivo per cui 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 consulente esperto dovremo rifiutare di utilizzare questo sign. We utilizzerà 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 cadere appare spesso come a seguito di un forte movimento di breve in altre parole, se entro un breve periodo un forte movimento è accaduto, ci può aspettarsi la sua continuazione in un medio termine period. Fig 113 forte movimento dei prezzi può portare a una tendenza development. Fig 113 mostra mercato periodo in cui un forte movimento ha portato alla continuazione della variazione di prezzo nella stessa direzione del un forte movimento possiamo usare la differenza di Mas con diversi periodi medi più forte è il movimento, maggiore è il ritardo di MA con grande periodo di mediazione da MA con un piccolo periodo di media, inoltre, anche i forti movimenti di prezzo discontinui con ulteriori ritorno non comporta una grande differenza tra AIC, vale a dire numerosi falsi segnali non compaiono, ad esempio, il prezzo salto di 50 punti con un ulteriore rientro nel centro di Fig 113 comportato aumento di differenza tra le AM, solo di 20 punti contemporaneamente davvero un forte movimento che non è di solito accompagnata da una notevole correzione nel punto a comportato l'aumento differenza fino a 25 - 30 points. If Acquisto ordine viene aperto quando un certo valore di differenza tra AIC viene raggiunto, ad esempio in a, molto probabilmente l'ordine sarà redditizio quando il prezzo raggiunge un valore dell'ordine di arresto prestabilito Let s utilizzare questo valore come criterio di trading nel nostro Esperto Advisor. Number di Orders. In questo esempio analizziamo un Expert Advisor che ammette la presenza di un solo ordine di mercato, in attesa di ordini non sono forniti tale approccio è giustificato non solo in questo esempio certo, ma può essere utilizzato come base per eventuali ordini strategy. Pending di solito vengono utilizzati quando un sviluppatore ha un bel criterio affidabile per prevedere il futuro variazione di prezzo con alta probabilità Se non c'è tale criterio, non c'è bisogno di usare in attesa orders. The 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 gli ordini opposti sono considerati senza senso, soprattutto se i prezzi degli ordini sono uguali vedere chiusura ed eliminazione ordini in tal caso dovremmo chiudere un ordine da un altro e attendere un segnale per aprire un ordine di mercato in un determinato direction. Relation di Trading Criteria. From questa posizione diventa chiaro che cosa i rapporti sono possibili tra i criteri di negoziazione Figura 114 mostra tre varianti di correlazione dei criteri di trading, quando ogni criterio è importante azioni valide di apertura e chiusura degli ordini di mercato si svolgono in senso orario sulle seguenti immagini. Fig 114 ordine di apertura e chiusura criteri di correlazione a e B - corretta, c - variante incorrect. The più popolare di un criterio di negoziazione formate correttamente è la variante di un Dopo essere stato aperto un ordine di mercato Buy si svolge su fino al momento in cui il criterio che richiede la sua chiusura innesca Dopo che una pausa si verifica quando nessun ordine si aprono ulteriori condizioni di vendita ordine di mercato può essere aperto per la chiusura di un ordine di vendita secondo criteri formate correttamente verificarsi prima, 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 c'è un ordine di mercato aperta nel criteri direction. Similar contrario correlazione è nella variante B la differenza è che un criterio per l'apertura di qualsiasi mercato ordine è allo stesso tempo un criterio per la chiusura ordine inverso questa variante come variante un non consente diversi ordini aperti nel terminale stesso tempo su una variante security. The dei criteri correlazione è errato Secondo tale variante l'apertura di un ordine di mercato è consentito quando gli ordini contrari non sono ancora chiusi, il che è insensato ci possono essere rari casi in cui questa variante si apre parzialmente giustificata di un ordine opposto a volte è accettabile per compensare le perdite che si verificano in piccole correzioni dopo forti movimenti di prezzo in questi casi un opposto ordine può essere aperto dello stesso o più piccolo valore rispetto al già esistente e quindi chiuso quando la correzione è più di un tale tattica non permette di interferire con l'ordine principale aperto nel caso generale tendenza direction. In diversi ordini una direzione sono anche possibile Ciò può essere giustificata quando un ordine anteriore aperta è protetta da un ordine di arresto e il criterio punta a sviluppo prezzo nella stessa direzione attivato nuovamente Tuttavia, quando si crea una tale strategia, uno sviluppatore deve essere consapevole che in caso di un movimento del prezzo netto cambiamento degli ordini di arresto poste possono essere non eseguiti da alcuni broker al primo tocco dei prezzi e la perdita sarà proporzionale al valore totale del mercato di uno-direzionale orders. In nostro esempio usiamo variante B di criteri di negoziazione di correlazione All mercato aperto gli ordini sono chiusi o da un ordine di arresto o dopo un criterio di apertura di un ordine in direzione opposta innesca qui criterio di chiusura Acquista coincide con quello di apertura di vendita e vice versa. Size di Aperto Orders. In qualsiasi dimensione di ordine strategia di trading dovrebbero essere ragionevolmente limitati in un caso semplice di un formato di ordine fisso viene utilizzato in un Expert Advisor Prima EA inizio operazione, un utente può impostare qualsiasi dimensione degli ordini futuri e lasciarlo invariato per qualche tempo ulteriore se i cambiamenti di equilibrio, un utente può impostare un nuovo valore di sacco numero di aperto dimensioni orders. A troppo piccolo ordine fornisce più fiducia in funzione al cambiamento del mercato imprevedibile, ma il profitto in caso di successo non sarà 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 saldo o margine libero se una strategia consente una sola aperto ordine, equilibrio e margine libero al momento prima della apertura ordine sarà equal. In questo esempio entrambe le varianti sono implementati Un utente può scegliere di indicare direttamente i valori degli ordini o impostare il valore in percentuale dal libero margin. Programming Details. A semplice tendenza Expert Advisor costruito sulla base di argomentazioni precedenti può apparire come this. Describing Variables. One più criteri nella stima programma è la sua leggibilità Un programma è considerato essere correttamente scritta, se può essere facilmente letto da altri programmatori, che il motivo per cui tutte le parti principali del programma e principali momenti che caratterizzano la strategia deve essere commentato Questo è anche il motivo per cui si consiglia di dichiarare e commentare tutte le variabili all'inizio del program. In blocco 1-2 variabili esterne e globali sono described. According alle leggi, variabili esterne e globali deve essere aperto prima del loro primo utilizzo vedere Tipi di variabili, che il motivo per cui sono dichiarate nella parte di testa del programma Tutte le variabili locali della funzione start sono raccolti e descritti nella funzione superiore parte blocco 2-3 subito dopo il regolamento di intestazione funzione di dichiarazione di variabili locali non lo richiedono , ma anche non vietano Se un programmatore deve affrontare difficoltà a 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 il tipo di qualsiasi variabile e 'molto comodo in practice. Block programmazione preliminarmente processing. 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 di media mobile necessario per il calcolo criteri Inoltre qui il valore del lavoro variabile è analizzato nel normale funzionamento EA il valore della variabile è sempre vero che è impostata una volta durante l'inizializzazione Se un errore critico si verifica nel funzionamento del programma, falso è assegnato a questa variabile e iniziare finiture suo funzionamento Questo valore non cambierà in futuro, e perciò 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 ancora una volta, vale a dire l'EA può essere collegato a un titolo window. Accounting orders. The descritto Expert Advisor permette di lavorare solo con un ordine di mercato il compito degli ordini pari blocco blocco 4-5 è quello di definire le caratteristiche di un ordine aperto, se ce n'è uno in loop passa attraverso gli ordini per tutti i mercati esistenti e in attesa di ordini vengono controllati, vale a dire dal primo int i 1 per l'ultimo che ho lt OrdersTotal In ogni ciclo di iterazione viene selezionato il prossimo ordine dalla funzione OrderSelect la selezione avviene da una sorgente di apertura e pendenti ordini SELECTBYPOS. If la selezione viene eseguita con successo esempio c'è un ordine più nel terminale, ulteriormente questo ordine e la situazione deve essere esaminato se l'ordine viene aperta per la la sicurezza, a cui l'EA opera, se l'ordine è il mercato o in attesa deve anche essere preso in considerazione quando gli ordini contare negli ordini line. all aperti per un altro titolo vengono eliminati Operatore continuare arresta l'iterazione e caratteristiche di un tale ordine non sono preparata, ma se l'ordine viene aperta per la sicurezza, per la finestra di cui la EA è collegato, è ulteriormente analyzed. If OrderType restituisce il valore più di 1 vedere Tipi di scambi, l'ordine selezionato è in attesa di uno Ma in questo Expert Advisor gestione ordini in sospeso non è previsto significa l'esecuzione di partenza deve essere terminata, perché una situazione di conflitto si è verificato in un caso del genere, dopo un messaggio relativo all'esecuzione inizio di terminazione funzionamento viene interrotto da parte dell'operatore non ritorna 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 caratteristiche tutte necessarie sono definite Se nella successiva iterazione l'ordine variabile contatore totale trova il secondo ordine di mercato, la situazione è anche considerato un conflitto, perché la EA non in grado di gestire più di un ordine di mercato In tal caso, l'esecuzione di avvio viene arrestato dopo aver mostrato un corrispondente message. As a seguito della esecuzione del blocco amministrazione ordine se tutti i controlli sono stati completati la variabile totale conserva il suo valore pari a zero se non ci sono ordini di mercato, o ottiene il valore 1 se c'è un ordine di mercato per la nostra sicurezza in quest'ultimo caso alcune variabili impostate in corrispondenza delle caratteristiche di ordine numero, il tipo, il prezzo di apertura, si fermano i livelli e valore dell'ordine anche ottenere il loro values. Calculating Trading Criteria. In la definizione esempio analizzato di criteri commerciali bloccare 5-6 viene calcolato sulla base della differenza tra medie con diversi periodi di media Moving Secondo criteri accettati un grafico è toro-diretto se il valore corrente del MA con il periodo di minore è 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 significato di un criterio di trading si esprime tramite il valore di un corrispondente variabili variabile OpnB e OpnS denotano il criterio di attivazione per l'apertura di acquisto e in vendita, le variabili Cls e CLS - per la chiusura ad esempio, se un criterio di apertura Buy non è attivato, il valore di OpnB rimane falsa insieme alla inizializzazione delle variabili se è innescato, OpnB ottiene il valore true In questo caso, il criterio per la chiusura Sell coincide con quello apertura di acquistare, il criterio per l'apertura di vendita coincide con quello per la chiusura criteri Buy. Trading accettati in questo esempio sono utilizzati solo a scopo didattico e non deve essere considerato come una linea guida quando le negoziazioni su un vero e proprio account. Closing Orders. It è 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 al momento in cui il controllo del programma viene passato al blocco di chiusura ordine si sa per certo che al momento attuale ci sono o ordini per la sicurezza, o vi è un solo ordine di mercato che s perché il codice negli ordini di chiusura blocco viene scritto in modo blocco che solo ordine può essere chiuso successfully. This si basa sul ciclo infinito mentre, il cui corpo è costituito di due parti analoghe uno per la chiusura di un ordine di acquisto, un altro per la chiusura di un ordine di vendita Mentre è qui utilizzato per lo scopo che in caso di un errore di funzionamento commercio potrebbe essere ripetuta una volta again. In l'intestazione del primo operatore se la condizione di chiusura un ordine di acquisto viene calcolato Vendere gli ordini sono chiusi in modo analogo Se il tipo di un ordine precedente aperto corrisponde ad acquistare vedere Tipi di Commercio e il segno per la chiusura Buy è rilevante, il controllo viene passato al corpo se l'operatore in cui una richiesta di vicino è formato come un prezzo di chiusura ordine nella funzione OrderClose il valore di un preventivo su due lati corrispondente al tipo di ordine viene indicata vedere Requisiti e limitazioni per fare mestieri Se un'operazione di commercio viene eseguita con successo, dopo un messaggio sulla chiusura ordine è dimostrato la corrente mentre l'iterazione viene interrotta e l'esecuzione del blocco di chiusura ordine è finita, ma se l'operazione non riesce, la funzione definita dall'utente per errori di elaborazione FunError è chiamata blocco 10-11.Processing Errors. As un parametro passato nella FunError l'ultimo codice di errore calcolato GetLastError è utilizzato seconda del codice di errore FunError restituisce 1 se l'errore non è critico e l'operazione può essere ripetuta, e 0 se l'errore è errori critici critici sono divisi in due tipi - quelli, dopo di che l'esecuzione di un programma di può essere continuato per esempio, un errore comune e quelli, dopo di che l'esecuzione di eventuali operazioni di commercio deve essere fermato per esempio, bloccato account. if dopo un'operazione commercio riuscita la funzione definita dall'utente restituisce 1, la corrente mentre procedura termina e durante l'iterazione successiva un altro tentativo è fatto per eseguire l'operazione - per chiudere l'ordine Se la funzione restituisce 0, l'esecuzione di avvio corrente viene interrotta All'avvio successivo segno di spunta verrà avviato dal terminale del cliente di nuovo e se si conservano le condizioni per la chiusura dell'ordine, another attempt to close the order will be made. If during error processing it is found out that further program execution is senseless for example the program operates on an old client terminal version during the next start the execution of the special function start will be terminated in the block of preliminary processing when analyzing the value of the variable Work. Calculating Amount of Lots for New Orders. Amount of lots can be calculated in accordance with a user s settings following one of the two variants The first variant is a certain constant value set up by a user According to the second variant the amount of lots is calculated on the basis of a sum equal to a certain percentage set by a user of a free margin. At the beginning of the block of defining the amount of lots for new orders block 7-8 necessary values of some variables are calculated - minimal allowed amount of lots and step of lot change set up by a broker, free margin and price of one lot for the security. In this example the following is provided If a user has set up a certain non-zero value of the external variable Lts, for example 0 5, it is accepted as the amount of lots Lts when a trade request to open an order is formed If 0 is assigned to Lts, the number of lots Lts is defined on the basis of the variable Prots percentage , free margin and conditions set up by a broker. After Lts is calculated, a check is conducted If this value is lower than the minimal allowed value, the minimal allowed value is accepted but if free margin is not enough, after a corresponding message the start execution is terminated. Opening Orders. The block of opening orders block 8-9 like the bloke of opening orders is an infinite loop while In the header of the first operator if conditions for opening a Buy order are calculated if there are no orders for the security variable Total is equal to 0 and the sign for opening a Buy order is relevant OpnB is true , control is passed to if operator body for opening an order In such a case after rates are refreshed prices for stop levels are calculated. Values of stop levels are initially set by a user in external variables StopLoss and TakeProfit In a general case a user can set values for this parameters smaller that a broker allows Besides a broker may change the minimal allowed distance at any moment it is an often case at strong market movements, for example, before important news release That s why before each order opening stop levels must be calculate taking into account values set bu a user and the minimal allowed value set up by a broker. For calculating stop levels the user-defined function NewStop is used as a passed parameter the stop level value set by a user is used In NewStop first the current minimal allowed distance is calculated If the value set by a user corresponds to a broker s requirements , this value is returned If it is smaller than the allowed value, the value allowed by a broker is used Prices of stop requests are calculated from the corresponding two-sided quote see Requirements and Limitations in Making Trades. A trade request to open an order is formed using the function OrderSend For the calculation of order opening price and prices of stop requests the two-sided quote values corresponding to the order type are used If a trade operation was successful iea server returned the number of an opened order after a message about a successful order opening is shown start execution is finished If an order was not opened and the client terminal returned an error, the error is processed according to the algorithm described earlier. Some Code Peculiarities. The analyzed Expert Advisor code is oriented to the implementation of a certain strategy Note, some program lines contain variables and calculations that would be changed, if the strategy were changed. For example, according to the accepted strategy the Expert Advisor is developed to work only with one order This allowed to use the variable Ticket both for the identification of a closing order number in block of closing 6-7 and for the identification of a success of a trade operation execution when opening an order in the block of opening 8-9 In this case such a solution is acceptable However, if we take the analyzed code as the basis for the implementation of another strategy for example allow opposite orders we will have to introduce one or several variables to be able to recognize numbers of opened orders and identify the success of trade operations. In further strategy modifications we will have to change come program lines containing part of logics contained in the source strategy Namely in the order accounting block we will not have to terminate the program operation if there are several open orders for a security Besides, conditions for opening and closing orders will alslo change This will entail the code changing in blocks of opening and closing orders. On the basis of this analysis we can easily conclude that the described simple Expert Advisor is not perfect 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 think and manage all other functions, ie call them when needed.

No comments:

Post a Comment