Thursday 14 September 2017

Forex Strategia 80 20


FOREX Strategie Forex Strategy, strategia semplice, Strategia Forex Trading, tendenza Forex Scalping Forex Strategy Schaff non è certo qualcosa di rivoluzionario e nuovo, ma è molto redditizio e facile per un tempo considerevole, e si basa sullo stesso display di cicli di tendenza Schaff, che è integrata da un indicatore stocastico. Per il commercio vi consiglio di scegliere uno dei mediatori: FxPro o Alpari (aggiunge 101 deposito) hellip Strategia Forex 171Moho187 si basa su una serie di indicatori standard: l'indicatore MACD definisce la tendenza di fondo (direzione del commercio), Momentum 8212 mostra lo stato d'animo attuale del mercato, ed i frattali indicatore fornisce un punto di ingresso, quindi la strategia fornisce un buon profitto all'interno di una tendenza, tuttavia, non significa che è il hellip Oggi pubblichiamo un abbastanza semplice, ma efficace forex strategia 171The doppia zero187, in che solo un indicatore e il livello dei prezzi rotonda con la fine in due zeri (per il broker a quattro cifre). Per il commercio vi consiglio di scegliere uno dei mediatori: FxPro o Alpari (aggiunge deposito di 50) Nonostante la semplicità di questa strategia, hellip strategia forex 171Fox187 è rischi piuttosto eccessivi e questo fatto deve essere considerato quando si accende nella tua set di trading (portafoglio ) 8212 il rapporto di stop loss profitto nelle operazioni è a volte non in favore trader8217s, ma l'elevata precisione dei segnali all'ingresso al mercato e ulteriori filtri hellip strategia Forex 171mbush187 a prima vista potrebbe sembrare un po 'confuso e complicato, e proprio per backtesting strategia richiederà un notevole pazienza e meticolosità, ma nel trading reale l'intero processo è abbastanza semplice e logica: il segnale principale è prevista per l'intervallo H4 in cui si determina la direzione del commercio. Successivo hellip Scarica MT4 indicatore - soldi Calcolatore di gestione: MetaTrader 5 - Trading Systems 80-20 di trading strategia Introduzione 80-20 è un nome di una delle strategie di trading (TS) descritto nel libro Street Smarts: alta probabilità a breve termine Strategie di Trading da Linda Raschke e Laurence Connors. Simile alle strategie discusse nel mio precedente articolo. gli autori attribuiscono alla fase in cui il prezzo alla prova i confini della gamma. E 'inoltre focalizzata sul profitto da falsi sblocchi e roll-back dai confini. Ma questa volta, si analizza il movimento dei prezzi su un intervallo di storia molto più breve che coinvolge solo il giorno precedente. La durata di un segnale ottenuto è anche relativamente breve, dal momento che il sistema è pensato per il trading intraday. Il primo obiettivo di questo articolo è quello di descrivere lo sviluppo del modulo segnale di strategia di 80-20 negoziazione utilizzando il linguaggio MQL5. Poi, ci accingiamo a collegare questo modulo alla versione leggermente modificata del robot commerciale di base sviluppate nel precedente articolo della serie. Inoltre, abbiamo intenzione di utilizzare lo stesso modulo per lo sviluppo di un indicatore per il trading manuale. Come già detto, il codice fornito nella serie articolo è rivolto programmatori inesperti principalmente a poco avanzata. Pertanto, oltre al suo obiettivo principale, il codice è progettato per aiutare passaggio dalla programmazione procedurale a quella orientata agli oggetti. Il codice non sarà caratterizzato da classi. Invece, sarà dare piena attuazione delle strutture che sono più facili da padroneggiare. Ancora un altro scopo di questo articolo è quello di sviluppare strumenti che ci permettono di controllare se la strategia è ancora vitale oggi, dal momento che Raschke e Connors usato il comportamento del mercato alla fine del secolo scorso, quando la creazione di esso. Alcuni test EA base ai dati storici up-to-date sono presentati alla fine dell'articolo. 80-20 trading system Il nome autori Tecnica George Taylors La Taylor Trading. così come funziona Steve Moores sul analisi computerizzata dei mercati a termine e l'esperienza di trading Derek Gipsons come base teorica per il proprio lavoro. L'essenza della strategia di trading può essere descritto brevemente come segue: se i prezzi dei giorni precedenti di apertura e chiusura si trovano in zone gamma Daily opposte, allora la probabilità di un'inversione verso i giorni precedenti di apertura è molto elevata oggi. I giorni precedenti aperti e ai prezzi di chiusura devono localizzare vicino ai confini gamma. L'inversione dovrebbe iniziare il giorno corrente (non prima la candela giorni precedenti è chiuso). Le regole di strategia per l'acquisto sono i seguenti: 1. Assicurarsi che il mercato ha aperto in alto 20 e ha chiuso nella parte inferiore 20 del range giornaliero di ieri 2. Attendere fino a oggi Bassi rompe i giorni precedenti uno almeno di 5 zecche 3. posizionare un ordine di acquisto in attesa sul bordo inferiore del range di ieri 4. una volta che l'ordine in attesa attiva, impostare il suo StopLoss iniziale ai giorni bassi 5. Utilizzare trailing stop per proteggere le regole di ingresso profitto Vendere ottenuti sono simili, ma il bar di ieri dovrebbe essere rialzista, un ordine di acquisto dovrebbe essere situato al confine superiore della barra, mentre StopLoss deve essere posto al di oggi alte. Un altro dettaglio importante è la dimensione di una barra quotidiana chiusa. Secondo Linda Raschke, dovrebbe essere abbastanza grande - più che la dimensione media delle barre giornaliere. Tuttavia, lei non specifica quanti giorni la storia dovrebbe essere preso in considerazione per il calcolo della gamma medio giornaliero. Dobbiamo anche tenere a mente che la ST è stata progettata esclusivamente per gli esempi di trading intraday riportati nel libro usare grafici M15. Il blocco di segnale e l'indicatore facendo un layout secondo la strategia sono descritte di seguito. È anche possibile vedere alcuni screenshot con i risultati dell'operazione indicatore. Esse illustrano chiaramente schemi corrispondenti alle regole del sistema e livelli commerciali collegati ai modelli. L'analisi del modello dovrebbe comportare mettendo un ordine di acquisto in sospeso. livelli adeguati di negoziazione sono meglio visibili sul M1 lasso di tempo: Un modello simile con direzione opposta negoziazione su M5 calendario: I suoi livelli di negoziazione (M1 lasso di tempo): modulo di segnale Consente di aggiungere calcolo del livello di Take Profit per illustrare l'aggiunta di nuove opzioni per un costume TS. Non esiste un livello così nella versione originale come solo un trailing stop viene utilizzato per chiudere una posizione. Consente di rendere Take Profit dipende dal livello minimo personalizzato breakout (TS8020ExtremumBreak) ci moltiplicarlo per il rapporto personalizzato TS8020TakeProfitRatio. Avremo bisogno dei seguenti elementi delle unità di ingresso feGetEntrySignal funzione principale: stato del segnale di corrente, ingresso calcolato e livelli di uscita (Stop Loss e Take Profit), così come ieri variano confini. Tutti i livelli sono ricevuti tramite i collegamenti alle variabili passati alla funzione, mentre i segnali di ritorno di stato utilizza l'elenco delle opzioni dal precedente articolo: enum ENUMENTRYSIGNAL ENTRYBUY, acquistare segnalare ENTRYSELL, vendere ENTRYNONE segnale, nessuno stato ENTRYUNKNOWN segnale non definito ENUMENTRYSIGNAL feGetEntrySignal ( D1 due candele analisi del modello datetime TTIME, ora attuale doppio amplificatore dEntryLevel, entry level (link alla variabile) doppio amplificatore DSL, livello StopLoss (link alla variabile) doppio amplificatore livello di DTP, TakeProfit (link alla variabile) doppio amplificatore dRangeHigh , alta del pattern 1 ° bar (link alla variabile) doppio amplificatore dRangeLow bassa dei modelli 1 St bar (link alla variabile)) al fine di rilevare un segnale, dobbiamo analizzare le ultime due battute di D1 lasso di tempo. Iniziamo dal primo se non soddisfa i criteri TS, non è necessario controllare la seconda barra. Ci sono due criteri: 1. La dimensione bar (differenza tra alta e bassa) devono superare il valore medio degli ultimi XX giorni (stabilito dalla impostazione personalizzata TS8020D1AveragePeriod) 2. Bar Open e Close livelli dovrebbero essere situati al contrario di 20 la gamma di bar Se queste condizioni sono soddisfatte, alta e prezzi bassi devono essere salvati per un ulteriore uso. Dal momento che i primi parametri a barre non cambiano entro l'intera giornata, non vi è alcun punto in loro il controllo ad ogni chiamata di funzione. Consente di memorizzarli in variabili statiche: impostazioni personalizzate ingresso uint TS8020D1AveragePeriod 20 80-20: Numero di giorni per calcolare l'ingresso medio range giornaliero uint TS8020ExtremumBreak 50 80-20: breakout minima del estremo di ieri (in punti) modelli ENUMENTRYSIGNAL sePossibleSignal ENTRYUNKNOWN statici prima direzione del segnale barra di variabili doppie statiche per la memorizzazione di livelli calcolati tra zecche sdEntryLevel 0, SDSL 0. SDTP 0, sdRangeHigh 0. sdRangeLow 0 Controllare i motivi primo bar sulla D1: se (sePossibleSignal ENTRYUNKNOWN) stLastD1Bar tCurrD1Bar 1 ° bar non cambia questo giorno medio gamma quotidiano doppia dAverageBarRange fdAverageBarRange (TS8020D1AveragePeriod, PERIODD1. TTIME) se (maRates 0.high maRates 0.low lt dAverageBarRange) 1 ° bar non è grande abbastanza sePossibleSignal ENTRYNONE significa nessun segnale di ritorno oggi (sePossibleSignal) doppia d20Percents 0,2 (0 maRates. high maRates 0.low) 20 del campo di ieri se ((ribassista a barre: maRates 0.Open maRates gt 0.high d20Percents bar aperto nelle superiori 20 maRates ampamp 0.Close lt maRates 0.Low d20Percents e chiusa in basso a 20) (rialzisti: maRates 0.Close gt maRates 0.high d20Percents bar chiusi nelle superiori 20 maRates ampamp 0.Open maRates lt 0.low d20Percents e aperto in basso a 20)) 1 ° barra corrisponde alle condizioni definire oggi la direzione commerciale per i modelli 1 ° bar: sePossibleSignal maRates 0.Open maRates GT 0.close. ENTRYBUY. ENTRYSELL entry level del mercato: sdEntryLevel dEntryLevel sePossibleSignal ENTRYBUY. maRates 0.low. maRates 0.high modelli 1 st confini Bar Fascia: sdRangeHigh dRangeHigh maRates 0.high sdRangeLow dRangeLow maRates 0.low altro 1 St Bar livelli ApriChiudi non corrispondono condizioni sePossibleSignal ENTRYNONE significa nessun segnale di ritorno oggi (sePossibleSignal) Quotazione della funzione per la definizione del gamma medio del bar all'interno del numero specificato di barre sul periodo di tempo specificato a partire dalla funzione di tempo specificato: doppio fdAverageBarRange (. Calcola media int dimensione bar iBarsLimit, quanti bar considerare ENUMTIMEFRAMES ETF PERIODCURRENT bar lasso di tempo datetime TTIME wrongValue quando iniziare il calcolo) doppio dAverageRange 0 variabile per sommare i valori se (iBarsLimit lt 1) ritorno (dAverageRange) MqlRates maRates barra delle informazioni serie ottenere barra delle informazioni dall'intervallo storia specificato: if (TTIME wrongValue) TTIME TimeCurrent () int iPriceBars CopyRates (Symbol ETF, TTIME, iBarsLimit. , maRates) se (iPriceBars wrongValue) se (Loglevel GT LOGLEVELNONE) PRINTFORMAT (S: CopyRates: errore di u. FUNZIONE. UltimoErrore) ritorno (dAverageRange) se (iPriceBars lt iBarsLimit) se (Loglevel GT LOGLEVELNONE) PRINTFORMAT (S: CopyRates: copiate u bar di u FUNZIONE iPriceBars, iBarsLimit) somma di intervalli:.. Int iBar iPriceBars mentre (iBar-- gt 0 ) dAverageRange maRatesiBar. high maRatesiBar. low valore medio: il ritorno (dAverageRange doppia (iPriceBars)) C'è un solo criterio per i modelli secondo (corrente) bar breakout del bordo campo di ieri non deve essere inferiore a quello specificato nelle impostazioni ( TS8020ExtremumBreak). Non appena viene raggiunto il livello, un segnale per l'immissione di un ordine in corso appare: controllare i modelli di 2 ° (corrente) bar D1: se (sePossibleSignal ENTRYBUY) SDSL DSL maRates 1.low StopLoss alle oggi alto se (TS8020TakeProfitRatio gt 0 ) SDTP DTP dEntryLevel Point TS8020ExtremumBreak TS8020TakeProfitRatio TakeProfit ritorno (è il breakout al ribasso visto chiaramente maRates 1.Close lt maRates 0.low Point TS8020ExtremumBreak ENTRYBUY. ENTRYNONE) se (sePossibleSignal ENTRYSELL) SDSL DSL maRates 1.high StopLoss alle oggi basso se (TS8020TakeProfitRatio gt 0) SDTP DTP dEntryLevel Point TS8020ExtremumBreak TS8020TakeProfitRatio TakeProfit ritorno (è il breakout al rialzo visto chiaramente maRates 1.Close gt maRates 0.high Point TS8020ExtremumBreak ENTRYSELL. ENTRYNONE) Salvare le due funzioni sopra menzionate (feGetEntrySignal e fdAverageBarRange) e le impostazioni personalizzate relative alla la ricezione di un segnale per il file di libreria MQH. L'elenco completo è allegato qui di seguito. Consente di assegnare un nome al file di Signal80-20.mqh e posizionarlo al appropriata directory della cartella dati di terminale (MQL5IncludeExpertSignal). Indicatore di trading manuale Proprio come l'EA, l'indicatore è quello di utilizzare il modulo del segnale sopra descritto. L'indicatore dovrebbe informare un commerciante su ricezione di un segnale dell'ordine in attesa e fornire i livelli calcolati ordine di collocamento, Take Profit e Stop Loss. Un utente può selezionare un metodo di notifica una notifica finestra pop-up, un agente o spingere standard. E 'possibile scegliere tutto in una volta o una combinazione che ti piace. Un altro obiettivo indicatore è un layout di storia commerciale in base al 80-20 TS. L'indicatore è quello di evidenziare bar quotidiani che rispondono ai criteri di sistema e trama calcolato i livelli di trading. Le linee di livello mostrano come la situazione si è evoluta nel corso del tempo. Per maggiore chiarezza, consente di procedere come segue: quando il prezzo tocca la linea di segnale, quest'ultimo viene sostituita con una linea ordine pendente. Quando l'ordine in attesa è attivato, la sua linea viene sostituita con Take Profit e linee di stop loss. Queste linee sono interrotti quando il prezzo tocca uno di essi (l'ordine è chiuso). Questa disposizione rende più facile valutare l'efficacia delle regole del sistema commerciale e definire cosa può essere migliorato. Iniziamo con dichiarando i buffer ei loro parametri di visualizzazione. In primo luogo, abbiamo bisogno di dichiarare le due buffer con il ripieno area verticale (DRAWFILLING). Il primo è quello di evidenziare la gamma completa barra quotidiana del giorno precedente, mentre un altro è quello di evidenziare l'area interna solo per separarlo dal superiore e inferiore 20 della gamma utilizzata in TS. Dopo di che, dichiarano i due buffer per la linea di segnale multi-colore e la linea di ordine pendente (DRAWCOLORLINE). Il loro colore dipende dalla direzione commerciale. Ci sono altre due linee (Prendere Proft e stop loss) con il loro colore rimanendo la stessa (DrawLine) sono da utilizzare gli stessi colori standard loro assegnati nel terminale. Tutti i tipi di visualizzazione selezionati, ad eccezione di una linea semplice, richiede due buffer ciascuno, quindi, il codice appare come segue: proprietà indicatorchartwindow indicatorbuffers immobili 10 indicatorplots proprietà 6 proprietà indicatorlabel1 1 ° bar della proprietà indicatortype1 DRAWFILLING proprietà modello indicatorcolor1 clrDeepPink. Proprietà clrDodgerBlue indicatorwidth1 1 proprietà indicatorlabel2 1 ° bar della proprietà modello indicatortype2 DRAWFILLING proprietà indicatorcolor2 clrDeepPink. clrDodgerBlue immobili indicatorwidth2 1 proprietà indicatorlabel3 segnale immobili livello di proprietà indicatortype3 DRAWCOLORLINE indicatorstyle3 proprietà STYLESOLID indicatorcolor3 clrDeepPink. clrDodgerBlue immobili indicatorwidth3 2 immobili DRAWCOLORLINE indicatorlabel4 Entry level proprietà indicatortype4 indicatorstyle4 proprietà STYLEDASHDOT indicatorcolor4 clrDeepPink. clrDodgerBlue immobili indicatorwidth4 2 immobili indicatorlabel5 arresto immobili perdita di proprietà indicatortype5 DrawLine indicatorstyle5 proprietà STYLEDASHDOTDOT indicatorcolor5 clrCrimson proprietà indicatorwidth5 1 proprietà indicatorlabel6 Take Profit proprietà DrawLine immobili indicatortype6 indicatorstyle6 proprietà STYLEDASHDOTDOT indicatorcolor6 clrLime proprietà indicatorwidth6 1 Consente di fornire i commercianti con la possibilità di disattivare il riempimento dei modelli quotidiane prima barra, selezionare le opzioni di notifica del segnale e limitare la profondità di layout storia. Tutte le impostazioni di sistema di trading dal modulo di segnale sono inclusi anche qui. Per fare questo, abbiamo bisogno di enumerare preliminarmente le variabili utilizzate nel modulo, anche se alcuni di loro sono da utilizzare solo in EA e sono di nessun bisogno nell'indicatore: includere ltExpertSignalSignal80- 20.mqhgt 80-20 TS ingresso del modulo del segnale bool ShowOuter vera 1 ° barra del modello: Mostra l'intera gamma di ingresso bool ShowInner vera 1 ° barra del modello: Mostra l'interno di ingresso zona bool AlertPopup vero Alert: Mostra un ingresso finestra pop-up bool AlertEmail falso allarme: Invia E-mail: stringa di input AlertEmailSubj Alert: eMail ingresso soggetto bool AlertPush vero Alert: Invia un ingresso di notifica push uint BarsLimit 2000 profondità il layout Storia (nei bar attuali TF) modalità di registrazione ENUMLOGLEVEL Loglevel LOGLEVELNONE doppio buff1stBarOuter, buff1stBarOuterZero, buffer per tracciare l'intera gamma dei modelli 1 St bar buff1stBarInner, buff1stBarInnerZero, buffer per tracciare l'interno 60 dei modelli 1 ° bar buffSignal, buffSignalColor, linea buffer buffEntry, buffEntryColor, in attesa di linea ordine buffer linee buffSL, buffTP, StopLoss e TakeProfit tampona gdExtremumBreak 0 TS8020ExtremumBreak dei prezzi dei simboli int giD1AveragePeriod 1. valore corretto per TS8020D1AveragePeriod giMinBars wrongValue numero minimo richiesto di bar per ri-calcolo int OnInit () controlla il parametro inserito TS8020D1AveragePeriod: giD1AveragePeriod int (fmin (1. TS8020D1AveragePeriod)) la conversione di punti per i prezzi dei simboli: gdExtremumBreak TS8020ExtremumBreak il punto numero minimo richiesto di barre per numero di ricalcolo del bar del TF corrente entro un giorno giMinBars int (86400 PeriodSeconds ()) indicatore buffer obiettivo: 1 st barre gamma completa rettangolo SetIndexBuffer (0. buff1stBarOuter, INDICATORDATA) PlotIndexSetDouble (0. PLOTEMPTYVALUE. 0) SetIndexBuffer (1. buff1stBarOuterZero, INDICATORDATA) 1 st bar area interna rettangolo SetIndexBuffer (2. buff1stBarInner, INDICATORDATA) PlotIndexSetDouble (1. PLOTEMPTYVALUE. 0) SetIndexBuffer (3. buff1stBarInnerZero, INDICATORDATA) linea di segnale SetIndexBuffer (4. buffSignal, INDICATORDATA) PlotIndexSetDouble (2. PLOTEMPTYVALUE. 0) SetIndexBuffer (5. buffSignalColor, INDICATORCOLORINDEX) in attesa di linea dell'ordine SetIndexBuffer (6. buffEntry, INDICATORDATA) PlotIndexSetDouble (3. PLOTEMPTYVALUE. 0) SetIndexBuffer (7. buffEntryColor, INDICATORCOLORINDEX) la linea SL SetIndexBuffer (8. buffSL, INDICATORDATA) PlotIndexSetDouble (4. PLOTEMPTYVALUE. 0) la linea TP SetIndexBuffer (9. buffTP, INDICATORDATA) PlotIndexSetDouble (5. PLOTEMPTYVALUE. 0) IndicatorSetInteger (INDICATORDIGITS. cifre) IndicatorSetString (INDICATORSHORTNAME. 80-20 TS) Inserire il codice di programmi principale per il built-in funzione di OnCalculate organizzare il ciclo per iterare su l'orizzonte temporale attuali barre dal passato al futuro loro ricerca di un segnale utilizzando la funzione dal modulo di segnale. Dichiarare e inizializzare le variabili necessarie utilizzando i valori iniziali. Consente di definire il bar più antico ciclo per il primo calcolo si considera un limite di profondità storia definito dall'utente (BarsLimit). Per le chiamate successive, tutti i bar del giorno corrente (piuttosto che l'ultima barra) vengono ricalcolati, dal momento che il modello a due bar in realtà appartiene alla tabella D1 a prescindere dal periodo di tempo corrente. Inoltre, dobbiamo proteggere contro i cosiddetti fantasmi: se noi non eseguiamo un indicatore di buffer forzata compensazione durante la re-inizializzazione, quindi non più rilevanti aree riempite rimangono sullo schermo quando si passa tempi o simboli. La compensazione del buffer deve essere associato alla prima chiamata di funzione OnCalculate dopo l'inizializzazione dell'indicatore. Tuttavia, la variabile prevcalculated standard non è sufficiente per definire se la chiamata è il primo, in quanto può contenere zero non solo durante la prima chiamata di funzione, ma anche quando si cambia il checksum. Consente di passare un po 'di tempo per risolvere adeguatamente il problema creando la struttura non influenzato impostando la variabile prevcalculated a zero. La struttura è di memorizzare ed elaborare i dati di uso frequente negli indicatori: - la bandiera della funzione OnCalculate primo lancio - il contatore di barre calcolato che non è impostato a zero quando si cambia il checksum - bandiera di cambiare il checksum - la bandiera di inizio una nuova barra - barra corrente ora di inizio. La struttura in cui tutti questi dati devono essere dichiarate a livello globale. Dovrebbe essere in grado di raccogliere e presentare i dati dalal le funzioni built-in o personalizzati. Consente di chiamare questa struttura Brownie. Può essere posizionato alla fine del codice dell'indicatore. Un singolo oggetto struttura di tipo globale chiamata goBrownie deve essere dichiarata anche lì: struct BROWNIE datetime tempo tLastBarTime dell'ultimo bar int elaborato numero iPrewCalculated di barre calcolati bool bFirstRun primo lancio bandiera bool bHistoryUpdated cronologia aggiornamenti bandiera bool bIsNewBar nuova barra di apertura bandiera BROWNIE ( ) i valori di default: tLastBarTime 0 iPrewCalculated wrongValue bFirstRun bIsNewBar vero bHistoryUpdated falso vuoto fReset (bool bResetFirstRun veri) i valori di default: tLastBarTime 0 iPrewCalculated wrongValue se (bResetFirstRun) bFirstRun vero e proprio set a zero se non vi è permesso bIsNewBar vero bHistoryUpdated falso fUpdate void (int iNewPrewCalculated wrongValue ) bandiera della funzione built-in OnCalculate prima convocazione se (bFirstRun ampamp iPrewCalculated gt 0) bFirstRun falso nuova barra datetime tThisBarTime TimeCurrent () - TimeCurrent () PeriodSeconds () bIsNewBar tLastBarTime tThisBarTime aggiornare la barra del tempo corrente se (bIsNewBar) tLastBarTime tThisBarTime se (iNewPrewCalculated gt - 1) ci sono cambiamenti nella storia bHistoryUpdated iNewPrewCalculated 0 ampamp iPrewCalculated uso gt wrongValue prewcalculated in caso di OnCalculate 1 ° chiamata, se (iPrewCalculated wrongValue) iPrewCalculated iNewPrewCalculated o se non ci fosse cronologia aggiornamenti else if (iNewPrewCalculated GT 0) iPrewCalculated iNewPrewCalculated BROWNIE goBrownie Consente di informare il Brownie della manifestazione indicatore di de-inizializzazione: OnDeinit void (const int ragione) goBrownie. fReset () informa Brownie Se necessario, la quantità di dati memorizzati dal Brownie può essere ampliato se funzioni personalizzate o classi hanno bisogno di prezzi , volumi o le barre attuali diffondono valore (Open, High, Low, Close, tickvolume, il volume, la diffusione). E 'più conveniente usare i dati già pronti dalla funzione OnCalculate e passarle via Brownie piuttosto che utilizzare le funzioni di serie temporali di copiatura (CopyOpen, CopyHigh ecc o CopyRates) questo consente di risparmiare le risorse della CPU ed elimina la necessità di organizzare l'elaborazione di errori queste funzioni linguistiche. Consente di tornare alla funzione principale indicatore. La dichiarazione delle variabili e la preparazione delle matrici utilizzando la struttura sguardo goBrownie come segue: goBrownie. fUpdate (prevcalculated) feed di dati a Brownie int iPeriodBar 0. ausiliario contatore iCurrentTFBar ratestotal - int (BarsLimit) Indice bar dell'anello di corrente TF iniziare datetime statica stLastD1Bar 0 tempo di l'ultima barra elaborata della coppia di D1 bar (modelli 2 ° bar) static int si1stBarofDay 0 indice dei giorni attuali prima barra se (goBrownie. bFirstRun) cancellare i buffer durante la re-inizializzazione: ArrayInitialize (buff1stBarInner, 0) ArrayInitialize ( buff1stBarInnerZero, 0) ArrayInitialize (buff1stBarOuter, 0) ArrayInitialize (buff1stBarOuterZero, 0) ArrayInitialize (buffEntry, 0) ArrayInitialize (buffEntryColor, 0) ArrayInitialize (buffSignal, 0) ArrayInitialize (buffSignalColor, 0) ArrayInitialize (buffTP, 0) ArrayInitialize (buffSL, 0) stLastD1Bar 0 0 si1stBarofDay altro datetime TTIME TimeCurrent () minima profondità di ricalcolo - dal giorno precedente: iCurrentTFBar ratestotal - Bar (Symbol. PERIODCURRENT. TTIME - TTIME 86400. TTIME) - 1 ENUMENTRYSIGNAL eSignal ENTRYUNKNOWN doppio segnale wrongValue DSL. livello di SL DTP wrongValue. livello di TP dEntryLevel wrongValue. entry level dRangeHigh wrongValue. confini dRangeLow wrongValue dei modelli 1 ° gamma bar datetime tCurrD1Bar 0. D1 ora esatta bar (modelli a barre 2 nd) tD1BarToFill Time Bar 0 D1 da riempire (modelli 1 ° bar) assicurarsi che l'indice iniziale di barra di ricalcolo è all'interno accettabili gamma: iCurrentTFBar int (fmax (0. fmin (iCurrentTFBar, ratestotal - giMinBars))) mentre (iCurrentTFBar lt ratestotal ampamp IsStopped ().) il ciclo principale del programma è quello di essere situato qui Verificare la presenza di un segnale quando l'iterazione sopra la corrente bar calendario: eSignal feGetEntrySignal (Tempo iCurrentTFBar, dEntryLevel, DSL, DTP, dRangeHigh, dRangeLow) se (eSignal GT 1) continuare nessun segnale durante il giorno al bar appartiene Se c'è un segnale su una nuova giorni prima barra, la gamma di la barra quotidiana precedente dovrebbe essere riempito. Il valore della variabile tD1BarToFill di tipo datetime viene utilizzato come flag. Se è uguale a wrongValue, nessun riempimento è richiesta in questa barra. La linea di segnale deve iniziare allo stesso primo bar, ma lascia estenderlo a l'ultima barra del giorno precedente per una migliore percezione layout. Dal momento che i calcoli di una linea di segnale, così come la linea e colori di riempimento per bar rialzista e ribassista sono diverse, consente di fare due blocchi simili: tCurrD1Bar Tempo iCurrentTFBar Tempo iCurrentTFBar 86400 inizio della giornata il bar appartiene a se (stLastD1Bar lt tCurrD1Bar) tD1BarToFill tempo iCurrentTFBar 1 tempo iCurrentTFBar 1 86400 si1stBarofDay iCurrentTFBar altro tD1BarToFill wrongValue bar del giorno precedente, nessun nuovo riempimento richiesto stLastD1Bar tCurrD1Bar ricordare se (tD1BarToFill wrongValue) Riempire il giorno precedente D1 bar: iPeriodBar iCurrentTFBar se (dEntryLevel lt dRangeHigh) se (ShowOuter) mentre (- - iPeriodBar gt 0) se (Tempo iPeriodBar lt tD1BarToFill) rompere buff1stBarOuterZeroiPeriodBar dRangeLow buff1stBarOuteriPeriodBar dRangeHigh se (ShowInner) iPeriodBar iCurrentTFBar mentre (--iPeriodBar GT 0) se (Tempo iPeriodBar lt tD1BarToFill) rompere buff1stBarInnerZeroiPeriodBar dRangeLow 0.2 (dRangeHigh dRangeLow) buff1stBarInneriPeriodBar dRangeHigh 0.2 ( dRangeHigh dRangeLow) all'inizio della riga segnale dai giorni precedenti ultima barra buffSignaliCurrentTFBar buffSignaliCurrentTFBar 1 dRangeLow gdExtremumBreak buffSignalColoriCurrentTFBar buffSignalColoriCurrentTFBar 1 0 else if (ShowOuter) mentre (--iPeriodBar GT 0) se (Tempo iPeriodBar lt tD1BarToFill) rompere buff1stBarOuterZeroiPeriodBar dRangeHigh buff1stBarOuteriPeriodBar dRangeLow if ( ShowInner) iPeriodBar iCurrentTFBar mentre (--iPeriodBar GT 0) se (Tempo iPeriodBar lt tD1BarToFill) rompere buff1stBarInnerZeroiPeriodBar dRangeHigh 0.2 (dRangeHigh dRangeLow) buff1stBarInneriPeriodBar dRangeLow 0.2 (dRangeHigh dRangeLow) all'inizio della riga segnale dai giorni precedenti ultima barra buffSignaliCurrentTFBar buffSignaliCurrentTFBar 1 dRangeHigh gdExtremumBreak buffSignalColoriCurrentTFBar buffSignalColoriCurrentTFBar 1 1 altro continuare Tutte le linee di layout rimanenti devono essere tracciati all'interno i tempi attuali barre iterazione del ciclo. Come già accennato, la linea di segnale dovrebbe terminare al bar dove il prezzo toccato. La linea di ordine in attesa dovrebbe iniziare alla stessa barra e finisce il bar, a cui avviene il contatto con il prezzo. Take Profit e stop linee di perdita dovrebbero iniziare allo stesso bar. Il layout del modello è finito al bar, in cui il prezzo tocca uno di loro: la linea di segnale fino attraversato da una barra: iPeriodBar iCurrentTFBar se (dEntryLevel lt dRangeHigh) mentre (iPeriodBar lt ratestotal) se (Tempo iPeriodBar GT tCurrD1Bar 86399) rompere buffSignaliPeriodBar dRangeLow gdExtremumBreak buffSignalColoriPeriodBar 0 se (dRangeLow gdExtremumBreak GT bassa iPeriodBar) rompere altro mentre (iPeriodBar lt ratestotal) se (Tempo iPeriodBar GT tCurrD1Bar 86399) rompere buffSignaliPeriodBar dRangeHigh gdExtremumBreak buffSignalColoriPeriodBar 1 se (dRangeHigh gdExtremumBreak lt alta iPeriodBar) linea di interruzione Entrata fino attraversata dal un bar: se (dEntryLevel lt dRangeHigh) mentre (iPeriodBar lt ratestotal) se (Tempo iPeriodBar GT tCurrD1Bar 86399) rompere buffEntryiPeriodBar dRangeLow buffEntryColoriPeriodBar 0 se (dRangeLow lt alta iPeriodBar) se (. buffEntryiPeriodBar 1 0) inizia e termina su una singola barra, prorogare di 1 bar al passato buffEntryiPeriodBar 1 dRangeLow buffEntryColoriPeriodBar 1 0 rottura altro mentre (iPeriodBar lt ratestotal) se (Tempo iPeriodBar GT tCurrD1Bar 86399) rompere buffEntryiPeriodBar dRangeHigh buffEntryColoriPeriodBar 1 se (dRangeHigh GT Low iPeriodBar) se (buffEntryiPeriodBar 1 0.) avviare e concludere con una singola barra, prorogare di 1 bar al passato buffEntryiPeriodBar 1 dRangeHigh buffEntryColoriPeriodBar 1 1 pausa TP e SL linee fino a uno di loro è attraversata da una barra: se (dEntryLevel lt dRangeHigh) SL è uguale alla bassa dall'inizio del un giorno DSL basso ArrayMinimum (Low. si1stBarofDay, iPeriodBar si1stBarofDay) mentre (iPeriodBar lt ratestotal) se (Tempo iPeriodBar GT tCurrD1Bar 86399) rompere buffSLiPeriodBar dSL buffTPiPeriodBar DTP se (DTP lt alta iPeriodBar dSL gt bassa iPeriodBar) se (buffSLiPeriodBar 1 0.) inizia e termina su una singola barra, prorogare di 1 bar al passato buffSLiPeriodBar 1 dSL buffTPiPeriodBar 1 DTP rompere il resto SL è pari al massimo dopo l'inizio di una giornata: DSL ad alta ArrayMaximum (High si1stBarofDay, iPeriodBar si1stBarofDay.), mentre (iPeriodBar lt ratestotal) se (Tempo iPeriodBar gt tCurrD1Bar 86399) rompere buffSLiPeriodBar dSL buffTPiPeriodBar DTP se dSL (lt alta iPeriodBar DTP gt bassa iPeriodBar) se (buffSLiPeriodBar 1 0.) iniziare e terminare su una singola barra, si estende da 1 bar al passato buffSLiPeriodBar 1 dSL buffTPiPeriodBar 1 pausa DTP Lets posto il codice di chiamata della funzione di notifica del segnale fDoAlert fuori dal giro. In realtà, ha possibilità leggermente più ampia rispetto a quelli coinvolti in questo indicatore, la funzione è in grado di lavorare con i file audio significa che questa opzione può essere aggiunto a impostazioni personalizzate. Lo stesso vale per la capacità di selezionare i file separati per acquistare e vendere i segnali. Descrizione della funzione:.. vuoto fDoAlert (funzione per l'invio di segnali e le notifiche stringa sMessage, messaggio di avviso bool bAlert vero mostrano una finestra bool pop-up bSound falso riprodurre un file bool suono bEmail falsa inviare una bNotification bool eMail falso invia una notifica push.. stringa sEmailSubject. stringa oggetto email sSound alert. wav file audio) stringa statica ssPrevMessage ci fu silenzio precedente messaggio di avviso datetime statico stPrevTime avviso precedente tempo bar datetime tThisBarTime TimeCurrent () PeriodSeconds () PeriodSeconds () tempo di bar corrente se (ssPrevMessage sMessage stPrevTime tThisBarTime) un'altra andor 1 ° in questo bar ricordate: ssPrevMessage sMessage stPrevTime tThisBarTime formare una stringa di messaggio:. sMessage StringFormat (SRT, TimeToString (TimeLocal (), TIMESECONDS), simbolo ora locale simbolo StringSubstr (EnumToString (ENUMTIMEFRAMES (periodo)), 7), TF messaggio sMessage) attivare segnale di notifica: se (bAlert) Alert (sMessage) se (bEmail) sendmail (sEmailSubject Symbol. sMessage) se (bNotification) sendNotification (sMessage) se (bSound) PlaySound (sSound) Il codice per la verifica della necessità di chiamare la funzione e formando il testo per essa trova nel corpo del programma prima del completamento del gestore di eventi OnCalculate: avviso iPeriodBar ratestotal 1 bar corrente se (AlertPopup AlertEmail AlertPush 0) ritorno (ratestotal) tutto è disabilitato se (buffSignaliPeriodBar 0) ritorno (ratestotal) nulla per prendere ancora (o già) se (buffSignaliPeriodBar GT alta iPeriodBar buffSignaliPeriodBar lt bassa iPeriodBar) ritorno (ratestotal) no linea di segnale toccando il testo del messaggio: stringa sMessage StringFormat (TS 80-20: ss necessario, TP: s, SL:. s, buffSignalColoriPeriodBar gt 0. BuyStop SellStop, DoubleToString (dEntryLevel, cifre), DoubleToString (DTP, cifre), DoubleToString ( DSL, cifre)) notifica:. fDoAlert (sMessage, AlertPopup, falso AlertEmail, AlertPush, AlertEmailSubj) ritorno (ratestotal) funzionamento OnCalculate completare l'intero codice sorgente del indicatore può essere trovato nei file allegati (TS80-20.mq5). The trading layout according to the system is best seen on minute charts. Please note that the indicator uses the bar data rather than tick sequences inside bars. This means if the price crossed several layout lines (for example, Take Profit and Stop Loss lines) on a single bar, you cannot always define which of them was crossed first. Another uncertainty stems from the fact that the start and end lines cannot coincide. Otherwise, the lines from the buffer of DRAWLINE and DRAWCOLORLINE types will simply be invisible to a user. These features reduce the layout accuracy but it still remains quite clear. Expert Advisor for testing the 80-20 trading strategy The basic EA for testing strategies from the book Street Smarts: High Probability Short-Term Trading Strategies was described in details in the first article. Lets insert two significant changes in it. First, the signal module is to be used in the indicator as well meaning it would be reasonable to set trading levels calculation in it. We have already done this above. Apart from the signal status, the feGetEntrySignal function returns order placement, Stop Loss and Take Profit levels. Therefore, lets remove the appropriate part of the code from the previous EA version adding the variables for accepting levels from the function and edit the function call itself. The listings of the old and new code blocks can be found in the attached file (strings 128-141). Another significant addition to the basic EA code is due to the fact that, unlike the previous two, this TS deals with a short-term trend. It assumes that the roll-back happens once a day and is unlikely to be repeated. This means that the robot has to make only one entry ignoring the existing signal all the rest of the time until the next day. The easiest way to implement that is to use a special flag static or global variable of bool type in the program memory. But if the EA operation is interrupted for some reason (the terminal is closed, the EA is removed from the chart, etc.), the flag value is lost as well. Thus, we should have the ability to check if todays signal was activated previously. To do this, we may analyze the history of trades for today or store the date of the last entry in the terminal global variables rather than in the program. Let us use the second option since it is much easier to implement. Provide users with the ability to manage one entry per day option and set an ID of each launched version of the robot it is needed to use global variables of the terminal level: input bool OneTrade false One position per day input uint MagicNumber 2016 EA magic number Lets add the variables necessary to implement one entry per day option to the programs global variables definition block. Initialize them in the OnInit function: string gsPrefix identifier of (super)global variables bool gbPositionToday false , gbPendingToday false Create a prefix of (super)global variable names: gsPrefix StringFormat ( SSB s u s. Symbol. MagicNumber, MQLInfoInteger ( MQLTESTER ). t . ) Has the robot worked with market or pending orders today gbPositionToday int ( GlobalVariableGet (gsPrefix LastPositionDate )) TimeCurrent () TimeCurrent () 86400 gbPendingToday int ( GlobalVariableGet (gsPrefix LastPendingDate )) TimeCurrent () TimeCurrent () 86400 Here the robot reads the values of global variables and compares the written time with the day start time, thus defining if the todays signal has already been processed. Time is written to the variables in two places lets add the appropriate block to the pending order installation code (additions highlighted): if (iTry - 10 ) if (LogLevel gt LOGLEVELNONE) Print ( Pending order placing error ) the distance from the current price is not enough :( if (LogLevel gt LOGLEVELERR) PrintFormat ( Pending order cannot be placed at the s level. Bid: s Ask: s StopLevel: s , DoubleToString (dEntryLevel, Digits ), DoubleToString (goTick. bid, Digits ), DoubleToString (goTick. ask, Digits ), DoubleToString (gdStopLevel, Digits ) ) else to update the flag: GlobalVariableSet ( in the terminal global variables gsPrefix LastPendingDate , TimeCurrent () TimeCurrent () 86400 ) gbPendingToday true in the program global variables The second block is placed after the code defining a newly opened position: if ( PositionSelect ( Symbol )) if ( PositionGetDouble ( POSITIONSL ) 0 .) if (gbPositionToday) update the flag: GlobalVariableSet ( in the terminal global variables gsPrefix LastPositionDate , TimeCurrent () TimeCurrent () 86400 ) gbPositionToday true in the program global variables . These are the only significant changes in the previous EA version code. The finalized source code of the new version is attached below. Strategy backtesting In order to illustrate the trading system viability, its authors use patterns detected on the charts from the end of the last century. Therefore, we need to check its relevance in todays market conditions. For testing, I took the most popular Forex pair EURUSD, the most volatile pair USDJPY and one of the metals XAUUSD. I increased the indents specified by Raschke and Connors 10 times, since four-digit quotes were used when the book was written, while I tested the EA on five-digit ones. Since there is no any guidance concerning the trailing parameters, I have selected the ones that seem to be most appropriate to daily timeframe and instrument volatility. The same applies to the Take Profit calculation algorithm added to the original rules the ratio for its calculation was chosen arbitrarily, without deep optimization. The balance chart when testing on the five-year EURUSD history with the original rules (no Take Profit): The same settings and Take Profit: The balance chart when testing the original rules on the five-year USDJPY history: The same settings and Take Profit: The balance chart when testing the original rules on the daily gold quotes for the last 4 years: The full data on the robot settings used in each test can be found in the attached archive containing the complete reports. Conclusion The rules programmed in the signal module match the 80-20 trading system description provided by Linda Raschke and Laurence Connors in their book Street Smarts: High Probability Short-Term Trading Strategies. However, we have extended the original rules a bit. The tools (the robot and the indicator) are to help traders draw their own conclusions concerning the TS relevance in todays market. In my humble opinion, the TS needs a serious upgrade. In this article, I have tried to make some detailed comments on developing the code of the signal module, as well as the appropriate robot and indicator. I hope, this will help those who decide to do the upgrade. Apart from modifying the rules, it is also possible to find trading instruments that fit better to the system, as well as signal detection and tracking parameters. FOREX Strategies Forex Strategy, Simple strategy, Forex Trading Strategy, Forex Scalping Forex Strategy 80-20 8212 another very simple and quite an interesting strategy forex Linda Raschke (previously we looked at 2 of its strategy: Turtle Soup, Turtle Soup plus One ), in which trade is conducted only on the daily range (D1) and trading signals are only During the 1 st trading day. Investigating the patterns of financial markets, it was noted that if the price on the market closes at the top or bottom 10 -20 of its daily range, then there is a possibility and it is 80 -90, the next morning, the price will continue to move in the same direction (ie towards the closing day candles), but eventually the price closes above or below this candle in only 50 of cases . That8217s a given fact (a chance to turn in the middle of the 2 nd day after the close of the 1 st day candles), and allowed 80-20 strategy exist and be popular in the financial markets. So, let8217s look at how deals are made in Forex Strategy 80-20 . an example of the transaction on the purchase . Suppose we open a trading terminal MetaTrader 4 today and note that: 1) Yesterday8217s daily candle was discovered in the upper 20 of its daily range and closed in the bottom 20 of its daily range. Ie If the daily candle divided into 5 parts, the opening price of yesterday8217s daily candle is in the top 1 5 of a closed candle. And the closing price is at the bottom 1 5 of the closed day candles. Figure 1. Dedicated bearish candle was discovered in 1 5 of the upper range and closed at 1 5 of its lower range 2) Today8217s daily candle opens and the price at the market went in the same direction as the close of the previous daily candle 8212 ie for sale, presumably for at least 10-15 points. 3) At this moment, when the price is already below yesterday8217s low and we have clearance to be placed pending order, we set the pending order to buy the type Buy Stop at yesterday8217s low price Figure 2. This is the same candle as in Figure 1, only the hourly interval. Expose the pending order to buy at a time when the price of the 2 nd hour candle falls below yesterday8217s low. 4) After the opening of trading positions in the purchase, we will establish a safety stop-loss orders below a few points (3-5) segodneshnego minimum. 5) Next, use a trailing stop (Universal trailing stop. the standard in Metatrader 4, or a trailing stop on the 1 st paragraph ) to lock in profits and tightens our stop-loss at a safe distance that you define for themselves, depending on the the chosen currency pair and the volatility in the forex market. For example, if the amount of daily candles 100-200 points, and trailing stop should be placed at a distance 50-70-100 points. Candle 50-70 points 8212 tryling-stop: 25-30 points. 6) If you prefer, you can put a profit target at a distance of at least 3.2 times the initial stop-loss (as required by our Money Management Forex ). Or record profits on the important Fibonacci levels. built by the first candle (38,2, 61,8) 7) Or you can simply rearrange the position of zero level. as soon as you see fit and leave the deal by the end of the trading day, and then look to close it or leave open. But I personally believe that it is better to use a trailing stop to lock in profits. For transactions on sale 8212 the rules of the opposite Figure 3. Vystalyaem pending order to sell Sell Stop, when the price broke yesterday makismum. Stop-loss is 10-15 points higher than this maximum, because price is not too moved away from him and turned around. Note: The transactions in this strategy are not as common, but if you observe the laws of several currency pairs, the probability of the conditions and the entry into the market will garazdo above By this strategy, forex trading you can buy Note: if you want to receive updates Expert Advisor - LEAVE positive feedback in the store Plati. ru without specifying e-mail in the body of reviews e-mail please indicate on the payment page 8212 which indicates where the goods will be delivered Subject to strict adherence to rules of the forex strategy 80-20, we get approximately the following trading results ( test results Adviser 80-20 strategy ): 1) Test strategies forex 80-20 8212 EURUSD (D1) with Expert Advisor 80-20 strategy 2) Test strategies forex 80-20 8212 EURJPY (D1) with Expert Advisor 80-20 strategy 3) test strategies forex 80-20 8212 USDCAD (D1) with Expert Advisor 80-20 strategyForex Strategy 80-20 - another very simple and quite an interesting strategy forex Linda Raschke (previously we looked at 2 of its strategy: Turtle Soup, Turtle Soup plus One ), in which trade is conducted only on the daily range (D1) and trading signals are only During the 1 st trading day. I recommend selecting a Broker Forex with Terminal MetaTrader 4 . Investigating the patterns of financial markets, it was noted that if the price on the market closes at the top or bottom 10 -20 of its daily range, then there is a possibility and it is 80 -90, the next morning, the price will continue to move in the same direction (ie towards the closing day candles), but eventually the price closes above or below this candle in only 50 of cases . Thatrsquos a given fact (a chance to turn in the middle of the 2 nd day after the close of the 1 st day candles), and allowed 80-20 strategy exist and be popular in the financial markets. So, letrsquos look at how deals are made in Forex Strategy 80-20 . an example of the transaction on the purchase. Suppose we open a trading terminal MetaTrader 4 today and note that: 1) Yesterdayrsquos daily candle was discovered in the upper 20 of its daily range and closed in the bottom 20 of its daily range. Ie If the daily candle divided into 5 parts, the opening price of yesterdayrsquos daily candle is in the top 1 5 of a closed candle. And the closing price is at the bottom 1 5 of the closed day candles. Figure 1. Dedicated bearish candle was discovered in 1 5 of the upper range and closed at 1 5 of its lower range 2) Todayrsquos daily candle opens and the price at the market went in the same direction as the close of the previous daily candle - ie for sale, presumably for at least 10-15 points. 3) At this moment, when the price is already below yesterdayrsquos low and we have clearance to be placed pending order, we set the pending order to buy the type Buy Stop at yesterdayrsquos low price Figure 2. This is the same candle as in Figure 1, only the hourly interval. Expose the pending order to buy at a time when the price of the 2 nd hour candle falls below yesterdayrsquos low. 4) After the opening of trading positions in the purchase, we will establish a safety stop-loss orders below a few points (3-5) segodneshnego minimum. 5) Next, use a trailing stop (Universal trailing stop. the standard in Metatrader 4, or a trailing stop on the 1 st paragraph ) to lock in profits and tightens our stop-loss at a safe distance that you define for themselves, depending on the the chosen currency pair and the volatility in the forex market. For example, if the amount of daily candles 100-200 points, and trailing stop should be placed at a distance 50-70-100 points. Candle 50-70 points - tryling-stop: 25-30 points. 6) If you prefer, you can put a profit target at a distance of at least 3.2 times the initial stop-loss (as required by our Money Management Forex ). Or record profits on the important Fibonacci levels, built by the first candle (38,2, 61,8) 7) Or you can simply rearrange the position of zero level. as soon as you see fit and leave the deal by the end of the trading day, and then look to close it or leave open. But I personally believe that it is better to use a trailing stop to lock in profits. For transactions on sale - the rules of the opposite Figure 3. Vystalyaem pending order to sell Sell Stop, when the price broke yesterday makismum. Stop-loss is 10-15 points higher than this maximum, because price is not too moved away from him and turned around. Note: The transactions in this strategy are not as common, but if you observe the laws of several currency pairs, the probability of the conditions and the entry into the market will garazdo abovBy this strategy, forex trading you Expert Advisor to the 80-20 strategy Subject to strict adherence to rules of the forex strategy 80-20, we get approximately the following trading results ( test results Adviser 80-20 strategy ): 1) Test strategies forex 80-20 - EURUSD (D1) with Expert Advisor 80-20 strategy 2) Test strategies forex 80-20 - EURJPY (D1) with Expert Advisor 80-20 strategy 3) test strategies forex 80-20 - USDCAD (D1) with Expert Advisor 80-20 strategy

No comments:

Post a Comment