Thursday, 26 October 2017

Moving Media Afl Code


Fig 1. Aprire serie prezzo qualsiasi altra matrice è calcolata da questi 6 matrici utilizzando formule integrate in AFL. Questi array non vengono memorizzati nel database, ma calcolati, se necessario. Ogni valore individuale in un array ha una data associata. Se si ha la possibilità punta dell'utensile attivata (Preferenze - gt Varie Tab - i suggerimenti dati gt prezzo), quando si sposta il cursore su una candela su un grafico candela quotidiana, appare un piccolo rettangolo giallo. AFL poi guarda in alto i,,, chiudere, valori di volume alti bassi aperti nella matrice appropriata e li visualizza all'interno della punta dell'utensile. array di lavorazione - il motivo per cui è così AFL Consente veloce vedere come la seguente dichiarazione viene elaborato: MyVariable (High Low) 2 Quando AFL sta valutando dichiarazione come questa (Alto Basso) 2 non ha bisogno di re-interpretare questo codice per ogni barra. Invece ci vuole l'Alto ARRAY e bassa Array e aggiunge elementi dell'array corrispondenti a singolo stadio. In altre parole operatore (e altri operatori) funziona su array in una volta ed è eseguito a piena velocità-codice compilato, l'array risultante (ogni elemento di esso) è diviso per 2 anche in un'unica fase. Vediamo nei dettagli - vedere Fig 2. Quando il motore AFL guarda la (High Low) 2 ci vuole prima alto (1) e bassa (2) array e produce (in unico passaggio compilato) l'array temporaneo (3). Quindi crea la matrice finale (4) dividendo ciascun elemento della matrice temporanea per due. Questo risultato è assegnato a misure myVariable figura 2. AFL durante la lavorazione (Alto Basso) 2 medie mobili, le istruzioni condizionali Prendiamo ora in considerazione il seguente codice: COND1 Chiudere gt MA (Close, 3) COND2 Volume gt Ref (Volume, -1) acquistare COND1 E COND2 vendere alto gt 1.30 Questo codice genera un segnale di acquisto quando oggi vicino è superiore a 3 giorni di media mobile di volume di chiudere e di oggi è volume superiore a quello di ieri. Esso genera anche un segnale di vendita quando l'alta di oggi è superiore a 1,30. Se nel codice AFL è necessario vedere se il prezzo di chiusura è superiore a dire 3 giorni di media mobile semplice AFL in primo luogo eseguito attraverso la stretta matrice creazione di un nuovo array chiamato MA (vicino, 3) per il simbolo analizzato. Ogni cella della nuova matrice può essere confrontata uno per uno in stretta matrice. Nell'esempio un array chiamato COND1 si crea in questo modo. Per ciascuna cella in cui il prezzo di chiusura è superiore al corrispondente valore della cella in MA (close, 3) il valore cella per nuovo array COND1 è impostato a 1. Se il prezzo di chiusura è non superiore al prezzo corrispondente nella stretta matrice valore in COND1 è impostato a 0. AFL può anche guardare avanti o indietro di un numero di cellule in una matrice utilizzando la funzione di Ref (vedi riga 6 dove si crea array temporaneo tenendo precedente volume di giorno) nella riga 9 un nuovo array chiamato COND2 è stato creato confrontando il valore di ogni cella nella matrice volume con impostando la sua cella precedente il valore della cella cond2 1 se true e 0 se false. Riga 10 mostra un array chiamato Acquisto creato da confrontando i valori di cella in COND1 con i valori delle celle in cond2. Se la cella in COND1 ha un 1, così fa la cella corrispondente cond2 poi un 1 viene inserito nella cella di matrice Buy. Linea 11 mostra un array chiamato Sell creato ogni volta che il valore della cella in stretta matrice è maggiore di 1,30. Ovviamente comprare e vendere sono le matrici speciali i cui risultati possono essere visualizzati nella finestra Analyser o sullo schermo utilizzando un valore rosso o verde a seconda delle necessità. Ottenere po 'più complessa Gli esempi di cui sopra sono stati molto semplice. Ora mi limito a spiegare 3 cose che sembrano generare una certa confusione tra gli utenti: fanno riferimento a valori selezionati (SelectedValue, BeginValue, EndValue, LastValue) Funzione IIF AMA Come scritto nel tutorial: Guida di base grafici è possibile selezionare qualsiasi citazione dal grafico e si può marcare Da-alla gamma. La barra selezionato da verticall linea si chiama bar quotselectedquot mentre di inizio e fine sbarre della gamma sono chiamati quotbeginquot e quotendquot bar. AFL ha funzioni speciali che permettono di riferimento valore della matrice a selezionato, iniziare e il bar fine, rispettivamente. Queste funzioni sono chiamate SelectedValue, BeginValue e EndValue. C'è un'altra funzione chiamata LastValue che permette di ottenere il valore della matrice all'ultimo bar. Queste quattro funzioni prendono l'elemento della matrice al dato bar e il ritorno singolo numero che rappresenta il valore della matrice a punto. Ciò permette di calcolare alcune statistiche per quanto riguarda i punti selezionati. Per esempio: EndValue (Chiudi) - BeginValue (Chiudi) vi darà cambio dollaro tra i prezzi vicini a selezionati da-a variare. Quando il numero recuperato da una di queste funzioni viene confrontato con un array o qualsiasi altro numero operazione di aritmetica e viene eseguita l'array funziona come il numero ha attraversato tutti gli elementi dell'array. Questo è illustrato nella seguente tabella (righe 2, 6, 7). marchi di colore verde quotbeginquot bar e marchi di colore rosso quotendquot bar. barra selezionata è contrassegnata con il blu. Ora la IIF (condizione, truepart, falsepart) la funzione. Funziona che restituisce il valore di secondo (truepart) o argomento terzo (falsepart) a seconda delle condizioni. Come si può vedere nella tabella qui sopra nella riga 8 i valori provengono da chiudere array (truepart) per le barre quando la condizione è vera (1) e provengono da Open array (falsepart) per i restanti bar. In tal caso, la matrice restituita dalla funzione IIF si compone di alcuni valori da chiudere e di alcuni valori da Open array. Si noti che sia truepart e falsepart sono array e sono valutati indipendentemente dalla condizione (quindi questo non è un normale if-then-else, ma la funzione che restituisce array) L'(fattore di array,) la funzione AMA sembra causare più problemi con comprensione. Ma in realtà è molto semplice. Funziona in modo ricorsivo. Ciò significa che esso utilizza il valore precedente per il calcolo del valore attuale. E i processi bar array bar, ad ogni passo si moltiplica dato cellula del primo argomento (array) di data cellula del secondo argomento (fattore) e lo aggiunge al valore precedente di AMA, moltiplicato per (1-factor). Consente di considerare colonna 3. Il valore della AMA nella colonna 3 è data da multipling vicino prezzo da colonna 3 (1,23) per il fattore (0,4). Che si aggiunge il valore precedente di AMA (1,0363) moltiplicato per (1-fattore di 0,6). Il risultato (arrotondato a 4 posti) è 1,23 0,4 1,0363 0,6 1,1138. Se si guardano le cifre nella riga 12 si può notare che questi valori sembrano una media mobile di stretta. E questo è vero. Abbiamo effettivamente presentato come calcolare variabile periodo media mobile esponenziale utilizzando la funzione AMA. Con la versione 4.40 AmiBroker porta la capacità di scorrere le citazioni che utilizzano e while e aggiunge if-else controllo di flusso. Questi miglioramenti consentono di lavorare sia modi: o utilizzare l'elaborazione di array (sopra descritto) per la velocità e la semplicità o utilizzare i cicli per fare le cose complesse. A titolo di esempio come implementare periodo variabile media esponenziale (sopra descritto) utilizzando loop vedere il codice seguente: Periodo. qualche calcolo vaexp 0 Chiudi 0 inizializzare primo valore per (i 1 i lt BarCount i) calcolare il valore di lisciatura Factor fattore 2 (Periodo I 1) calcolare il valore di i-esimo elemento di matrice utilizzando questo bar vicino (vicino i) e precedente valore medio (vaexp i - 1) vaexp i fattore chiudere i (1 - Factor) vaexp i - 1 come si può vedere il codice è più lungo, ma d'altra parte è molto simile a qualsiasi altro linguaggio di programmazione come CPascalBasic. Così le persone con una certa esperienza con la programmazione possono trovare più facile da afferrare. Se siete principianti consiglio di imparare l'elaborazione di array prima di scavare in più roba looping complessi. Se siete problemi di codifica AFL vi consiglio di generare gli array nell'esempio in Excel per te. Se questo è un problema avere un aiuto da un amico - soprattutto se l'amico è un contabile. Una volta youve ha ottenuto il blocco di esso è possibile codificare qualsiasi sistema da un libro sul trading - o costruire uno voi stessi. --- Un ringraziamento speciale a Geoff Mulhall per Articolo originale nella newsletter che è stata la base di questo tutorial --- AFL è un linguaggio di programmazione speciale utilizzato per definire e creare indicatori personalizzati, scansioni, esplorazioni, back-test e commenti guru. Elementi lessicali Questo capitolo descrive le diverse categorie di unità di parole simili (token) riconosciuti dal linguaggio interprete AFL. Lo spazio bianco Lo spazio bianco è il nome collettivo dato a spazi (spazi vuoti), schede, caratteri di nuova riga e commenti. Lo spazio bianco può servire per indicare dove i token di inizio e fine, ma al di là di questa funzione, l'eventuale eccedenza spazio bianco viene scartato. I commenti sono pezzi di testo utilizzati per annotare un programma. I commenti sono per i programmatori usano solo loro vengono rimossi dal codice sorgente prima di parsing. Ci sono due modi per delineare commenti: C-like Commenti e C come commenti. Un commento simile al C è una sequenza di caratteri posti dopo la coppia simbolo. Il commento termina alla prima occorrenza della coppia dopo l'iniziale. L'intera sequenza, compresi i quattro simboli di commento-delimitatore, viene sostituito da uno spazio. A C come commenti sono commenti a riga singola che iniziano utilizzando due barre adiacenti () in qualsiasi posizione all'interno della linea ed estendere fino alla prossima nuova linea. AFL non consente commenti nidificati. AFL riconosce cinque classi di token: identificatori costanti stringa-letterali operatori segni di punteggiatura (noto anche come separatori) identificatori sono nomi arbitrari di qualsiasi lunghezza data a funzioni e variabili. Gli identificatori possono contenere le lettere (a-z, A-Z), il carattere di sottolineatura (quotquot), e le cifre (0-9). Il primo carattere deve essere una lettera. identificatori AFL non sono case sensitive. Le costanti sono gettoni che rappresentano i valori numerici o caratteri fissi. costanti numeriche sono costituiti da intero decimale e opzionalmente: punto decimale e parte frazione decimale. costanti numeriche negativi hanno unario meno (-) prefissato. Le costanti stringa, noto anche come stringhe letterali. formare una categoria speciale di costanti utilizzate per gestire le sequenze di caratteri, e sono scritti come una sequenza di un numero qualsiasi di caratteri circondate da doppi apici: quot Questo è letteralmente un stringquot L'(vuoto) stringa nulla è scritto quotquot. I caratteri all'interno delle virgolette possono includere sequenze di escape (quotnquot - una nuova linea di sequenza di escape). Un'espressione costante è un'espressione che restituisce sempre una costante. Essi sono valutati come espressioni regolari sono. Punctuator (noto anche come separatore) in AFL è uno dei seguenti caratteri: (). . Le parentesi (Aprire (e chiudere)) espressioni di gruppo, isolare espressioni condizionali e indicano chiamate di funzione e parametri di funzionamento: DC (ab) sovrascrivere la precedenza normale un (B e C) o (D ed E) espressione condizionale func () chiamata di funzione senza argomenti la virgola (,) separa gli elementi di una lista di funzioni argomento del punto e virgola () è un terminatore dichiarazione. Qualsiasi espressione AFL legale seguita da un punto e virgola viene interpretato come una dichiarazione, nota come dichiarazione di espressione. L'espressione viene valutata e il suo valore viene scartato (tranne Guru Commentari in cui i valori di stringa vengono scritti finestra di uscita) Il punto (.) È un operatore di accesso utente. E 'utilizzato per chiamare metodi di un oggetto COM. Se myObj variabile contiene l'oggetto, utilizzando operatore punto siamo in grado di chiamare i metodi (funzioni) di myObj oggetto: Il segno di uguale () separa le dichiarazioni di variabili da liste di inizializzazione: x 5 indica anche il valore predefinito per un parametro (vedi incorporato descrizione della funzione): MACD (12 lenti valori 26) predefiniti veloci per argomenti veloce e lento) struttura del linguaggio Ogni formula nella AFL contiene una o più dichiarazioni di espressione. Ogni istruzione deve terminare con punto e virgola (). In questo modo si è in grado di rompere lunghe espressioni in diverse linee fisiche (al fine di ottenere chiarezza) e AmiBroker sarà ancora trattarla come una singola istruzione fino a terminare virgola. Esempi: Identificatori Gli identificatori di AFL sono utilizzati per identificare le variabili e funzioni. Ci sono alcuni identificatori predefiniti fanno riferimento le matrici e le funzioni built-in. I più importanti sono identificatori prezzo array. Essi identificano i campi di prezzi specifici che la formula dovrebbe operare. Gli identificatori prezzo matrice validi sono aperti. alto . Basso . vicino . volume. openint. media. identificatori matrice prezzo possono essere abbreviati come indicato nella seguente tabella. Si noti che questi non sono specifici del caso. Memorizzare il valore del secondo operando nell'oggetto specificata dal primo operando (assignment8221 8220simple). L'operatore di assegnamento assegna un valore a una variabile: in cui risultato è identificativo variabile e l'espressione è qualsiasi espressione numerica, array o testo. Dato che l'operatore si comporta come altri operatori, espressioni utilizzando si hanno un valore oltre ad assegnare tale valore nella variabile. Ciò significa che è possibile operatori di assegnazione a catena come segue: j k l pari a zero dopo l'istruzione esempio viene eseguito 0 j, k, e l. Attenzione: Per favore non confondere operatore di assegnazione () con controllo di uguaglianza () Si tratta di due operatori diversi e non si devono utilizzare assegnazione () per verificare l'uguaglianza. if (Nome () quotMSFTquot) SBAGLIATO. - Operatore di assegnazione variabile utilizzata al posto di controllo di uguaglianza se (Nome () quotMSFTquot) CORRETTO - operatore di uguaglianza usato correttamente Questo è uno degli errori di codifica comuni elencati qui. operatori aritmetici formule possono contenere i seguenti operatori matematici: Ottenere il bit OR inclusivo di primo e secondo operandi memorizzare il risultato nell'oggetto specificato dall'operatore prima typeof operando () L'operatore typeof viene utilizzato nel modo seguente: typeof (operando) l'operatore typeof restituisce una stringa che indica il tipo di operando non valutata. operando è la stringa, variabile, identificativo di funzione, o un oggetto per il quale il tipo deve essere restituito. Quando si fornisce identificatore, occorre prevedere solo, senza operatori aritmetici, senza argomenti aggiuntivi e senza bretelle. Se si desidera controllare il tipo di valore restituito dalla funzione, è necessario assegnare il valore restituito a una variabile e quindi utilizzare typeof (variabile). I possibili valori restituiti sono: quotundefinedquot - identificatore non è definito quotnumberquot - operando rappresenta un (scalare) quotarrayquot numero - operando rappresenta un quotstringquot array - operando rappresenta una stringa di quotfunctionquot - operando è un identificatore funzione built-in quotuser functionquot - operando è un dall'utente funzione definita quotobjectquot - operando rappresenta oggetto COM quotmemberquot - operando rappresenta funzione di membro o la proprietà di oggetto COM quothandlequot - operando rappresenta maniglia quotunknownquot Windows - tipo di operando è sconosciuta (non dovrebbe accadere) operatore typeof permette tra le altre cose per rilevare le variabili non definite nel seguente modo if (typeof (somevar) non definito) quando somevar non è definito il codice qui eseguirà il seguente codice di esempio COMMENTO mostra l'output di typeof () in alcune situazioni comuni: x MACD () y LastValue (x) testfun () return 1 printf (typeof (test) n) la variabile printf non definita (typeof (1) n) numero letterale printf (typeof (il controllo) n) letterale stringa printf (typeof (x) n) variabile array printf (typeof (y) n) scalare variabili printf (typeof (MACD) n) identificatore funzione printf (typeof (testfun) n) identificativo utente precedenza degli operatori e delle parentesi AFL supporta parentesi nelle formule. Parentesi possono essere utilizzati per controllare la precedenza operazione (l'ordine in cui vengono calcolati gli operatori). AmiBroker fa sempre le operazioni all'interno delle parentesi più interne primi. Quando non si usano le parentesi, la precedenza è il seguente (superiore precedenza elencati prima): (senza parentesi) verrebbe calcolato AmiBroker come quotL 2quot più quotHquot, dal momento che la divisione ha una priorità più alta. Ciò si tradurrebbe in un valore molto diverso da un paio di parole su operatori incrementdecrement. Ci sono due tipi di loro: Postfix e prefisso. Gli operatori unari (e -) sono chiamati 8220prefix8221 operatori di incremento o decremento quando gli operatori di incremento o decremento appaiono prima della operando. Postfix incremento e decremento ha precedenza maggiore rispetto operatori di incremento e decremento prefisso. Quando l'operatore compare prima del suo operando, l'operando viene incrementato o decrementato e il suo nuovo valore è il risultato dell'espressione. j i i verrà incrementato prima e il risultato (numero 6) sarà assegnato a j. Il risultato dell'operazione di incremento o decremento postfix è il valore del suffisso espressione prima di applicare l'incremento o decremento dell'operatore. Il tipo del risultato è lo stesso di quello del suffisso-espressione, ma non è più un l-value. Dopo il risultato è ottenuto, il valore dell'operando viene incrementato (o decrementato). jij verrà assegnato il valore di 5 (prima l'incremento) e poi mi verrà incrementato di elementi di matrice 6. Accesso: - operatore pedice Un identificatore serie seguita da un'espressione tra parentesi quadre () è una rappresentazione subscripted di un elemento di un array oggetto. Esso rappresenta il valore di espressioni-esimo dell'array. BarCount costante dà il numero di barre a matrice (ad esempio chiudere, alto, basso, aperto, volume, ecc). elementi di un array sono numerati da 0 (zero) per BarCount-1. BarCount non cambia fino a quando la formula continua l'esecuzione, ma può cambiare tra le esecuzioni quando vengono aggiunti nuovi bar, fattore di zoom viene modificato o il simbolo è cambiato. Per ottenere la prima barra è possibile utilizzare matrice 0, per ottenere l'ultima barra di serie è possibile utilizzare array di BarCount - 1 Chiudere 5 Rappresenta il sesto elemento (bar) della stretta matrice. Chiudi 0 rappresenta il primo bar a disposizione della stretta matrice. Alta BarCount - 1 Rappresenta l'ultima barra di alta gamma. Matrici e operatori matrice matrici sono array bidimensionali di numeri. Per creare una matrice di utilizzo: myvarname Matrix (righe cols, initvalue) Per accedere a elementi di matrice, uso: myvarname col riga in cui fila è un indice di riga (0. numero di righe-1) e col è un indice di colonna (0. numero di colonne-1) Matrici e loro elementi supportano tutte scalare (elemento saggio) operazioni aritmetiche e logiche. Tutti questi operatori standard vengono eseguite su matrici elemento saggio. Per questo motivo, per esempio per aggiungere due matrici devono avere la stessa dimensione (il numero di righe e colonne devono essere uguali). Se non sono la stessa spetta a voi come eseguire il calcolo su ogni elemento tramite loop. Così si può, per esempio aggiungere, sottrarre, moltiplicare, dividere due matrici se hanno stesse dimensioni con una sola chiamata. x Matrix (5. 6. 9) matrice 5 righe 6 colonne, iniziale valore 9 y Matrix (5. 6. 10) a matrice 5 file 6 colonne, il valore iniziale 10 zy - x vi darà matrice 5 righe e 6 colonne piene di elementi di tenuta valore 1 (differenza tra 10 e 9). Tutte queste operazioni vengono eseguite ELEMENTO-saggio. È inoltre possibile applicare qualsiasi aritmetiche e logiche di funzionamento su Matrix e valore scalare. Ciò eseguire l'operazione elemento saggio su ciascun elemento di matrice origine e dato valore scalare. m Matrix (10. 10. 0) m sarà 10x10 matrice riempita di zeri Z M Z è ora anche una matrice per (i 0 i lt 10 i) z i 4 riempio z con alcuni altri valori, si noti che m rimarrà inalterato. for (i 0 i lt 10 i) TRACEF (gg, g, gn. Io, mi 1, mi 4, ZI 4) scalare oltre (elemento saggio) z 3 m 5 for (i 0 i lt 10 i) TRACEF (gg , g, gn i, mi 1, mi 4, ZI 4) C'è una speciale operatore che funziona solo su matrici -. è prodotto a matrice. L'operatore per il prodotto matrice è (il simbolo). prodotto Matrix è il modo in cui l'algebra lineare per moltiplicare le matrici. Se si scrive CAB, moltiplica matrice A (n, k) per matrice B (k, m) per produrre matrice C (n, m) in modo che il numero di colonne nella matrice A deve essere uguale al numero di righe della matrice B. per maggiori informazioni vedi: en. wikipedia. orgwikiMatrixmultiplication la precedenza dell'operatore matrice prodotto è lo stesso di (quindi ha la precedenza maggiore di addizione e sottrazione). A Matrix (1. 3) B Matrix (3. 2) matrice A 1, 4, 6 matrice B 2, 3 5, 8 7, 9 A 0 0 1 0 1 A 4 A 0 2 6 B 0 0 2 B 0 1 3 B 1 0 5 B 1 1 8 B 2 0 7 B 2 1 9 TRACEF (g g. X 0 0, X 0 1) istruzioni composte (blocchi) un'istruzione composta è costituita da zero o più istruzioni racchiuse tra parentesi graffe ( ). Un'istruzione composta può essere utilizzato ovunque ci si aspetta una dichiarazione. Istruzioni composte sono comunemente chiamati 8220blocks.8221 (questo è preso in prestito dal linguaggio C, gli utenti di altri linguaggi di programmazione vengono utilizzati per usare BEGIN per) se (GT 100 Quantità) TRACE (importo superiore a 100) Balance Balance Volume altro equilibrio equilibrio - Importo Built in funzioni oltre a operatori matematici, AmiBroker contiene oltre 70 funzioni incorporate che eseguono operazioni matematiche. La seguente formula consiste in una singola funzione che dà radici quadrate dei prezzi di chiusura: La seguente formula consiste in una singola funzione che dà un indicatore RSI 14 periodo: La seguente formula consiste di due funzioni. Il risultato è la differenza tra l'indicatore MACD e un 9-periodo medio mobile esponenziale del MACD: Tutte le chiamate di funzione deve essere composto da identificatore funzione (nome) seguito da una coppia di parentesi. Come è stato eluso agli esempi precedenti, una funzione può essere quotnestedquot all'interno di una funzione. La funzione annidata può servire come parametro array di dati funzioni principali. Gli esempi che seguono mostrano le funzioni nidificate all'interno di funzioni: Il primo esempio calcola a 10 periodo media mobile semplice di un 15-periodo di Relative Strength Index (RSI). Il secondo esempio calcola a 20 periodo medio mobile esponenziale di un RSI 15-periodo, e poi calcola un 10-periodo di media mobile semplice di questa media mobile. Condizionale funzione IIF () La funzione IIF () viene utilizzato per creare le assegnazioni di condizionali. Esso contiene tre parametri come mostrato nel seguente esempio. La dichiarazione quotiifquot sopra si legge (in inglese) come segue: se oggi chiusura è maggiore di oggi 10 giorni di media mobile semplice dello stretto, quindi assegnare un RSI a 9 giorni alla variabile dynamicrsi, in caso contrario, assegnare un RSI a 14 giorni. La formula successiva assegna volume148 147positive a volresult variabile se la chiusura è superiore al prezzo mediano. In caso contrario, volumequot quotnegative viene assegnato. Se si desidera semplicemente un'espressione da valutare come vero o falso, può essere fatto senza l'uso della funzione IIf (). La seguente formula si tradurrà in un 1 (true) o 0 (false): Lo stesso fatto con IIF () dà gli stessi risultati, ma la formula è più lungo. Si noti che IIF è una funzione - quindi il risultato della valutazione è restituito da quella funzione e deve essere assegnato a una variabile. IIf valuta sempre sia Truepart e falsepart, anche se restituisce solo uno di loro. A causa di questo, si dovrebbe guardare per gli effetti collaterali indesiderati. funzione IIF non è una dichiarazione di controllo di flusso. Se avete bisogno di controllo di flusso (esecuzione condizionale di alcune parti di codice) si dovrebbe cercare if-else condizionale descritto più avanti in questo documento. L'esempio seguente mostra un errore comune fatto con funzione IIF: IIf (condizione, risultato 7. risultato 9) Questo è sbagliato l'uso corretto è: risultato IIf (condizione, 7. 9) 7 o 9 viene restituito e assegnato al risultato variabile in funzione condizioni al fine di ridurre, semplificare, migliorare e rendere la manutenzione di formule complesse più facile, si consiglia di utilizzare le variabili. In realtà le variabili utilizzando è possibile migliorare in modo significativo la formula velocità di calcolo. Quindi si raccomanda vivamente di utilizzare le variabili e non vi è alcun limite al numero di variabili è possibile definire. Una variabile è un identificatore assegnato a un'espressione o una costante. Il numero di variabili utilizzate in una formula non è limitato. Variabili devono essere assegnati prima che la variabile è utilizzato nella formula. Le variabili non possono essere assegnati all'interno di una chiamata di funzione. I nomi delle variabili definite dall'utente (identificatori) non possono duplicare i nomi già utilizzati da funzioni (ad esempio, ma, rsi, cci, IIF, ecc) o identificatori di array predefinito (ad esempio, apertura, massimo, minimo, chiusura, semplice, O, C, l, h, s, a). variabili riservate AmiBroker usa alcuni nomi di variabili riservate nelle sue formule, per esempio nella finestra di Auto-Analysis è necessario assegnare valori a 2 variabili denominate acquisto o di vendita per specificare le condizioni in cui si verificano le condizioni di quotbuyquot e quotsellquot. Per esempio (sistema che acquista quando MACD sale al di sopra 0 linea, e vende quando MACD scende al di sotto 0 line) AmiBroker utilizza i seguenti nomi di variabili riservati. Si prega di notare che le variabili contrassegnate come obsolete NON devono essere utilizzati in nuova codifica. Essi sono lasciati solo per compatibilità con le versioni precedenti e nuove formule devono utilizzare le funzioni moderne come Plot () per tracciare gli indicatori e AddColumn () per definire le colonne di esplorazione. grafico a colori N (obsoleto) definisce l'indice di colore di N ° linea del grafico (indici di colore sono legati alla tavolozza corrente - vedere PreferencesColor) colorCustom1 0 colorCustom2 1 colorCustom3 2 colorCustom4 3 colorCustom5 4 colorCustom6 5 colorCustom7 6 colorCustom8 7 colorCustom9 8 colorCustom10 9 colorCustom11 10 colorCustom12 11 colorCustom13 12 colorCustom14 13 colorCustom15 14 colorCustom16 15 occhiNeri 16 occhiCastani 17 colorDarkOliveGreen 18 colorDarkGreen 19 colorDarkTeal 20 colorDarkBlue 21 colorIndigo 22 colorDarkGrey 23 colorDarkRed 24 colorOrange 25 colorDarkYellow 26 occhiVerdi 27 colorTeal 28 occhiBlu 29 colorBlueGrey 30 colorGrey40 31 colorRed 32 colorLightOrange 33 colorLime 34 colorSeaGreen 35 colorAqua 35 colorLightBlue 37 colorViolet 38 colorGrey50 39 colorPink 40 colorGold 41 colorYellow 42 colorBrightGreen 43 colorTurquoise 44 colorSkyblue 45 colorPlum 46 colorLightGrey 47 colorRose 48 colorTan 49 colorLightYellow 50 colorPaleGreen 51 colorPaleTurquoise 52 colorPaleBlue 53 colorLavender 54 ColorWhite 55 grafico N barColor (obsoleto) definisce la matrice detiene indici tavolozza per ogni barra trafilata grafico in stile N (obsoleto) definisce lo stile di N ° grafico. Lo stile è definito come una combinazione (somma) di uno o più seguenti bandiere: Styleline 1 - normale (linea) grafico (default) styleHistogram 2 - istogramma styleThick 4 - grassi (spesso) styleDots 8 - includono punti styleNoLine 16 - nessuna linea styleLog 32 - scala semi-logaritmica styleCandle 64 - grafico a candela stylebar 128 - grafico a barre tradizionale styleNoDraw 256 - nessun pareggio (eseguire asse ridimensionamento solo) styleStaircase 512 - scala (quadrato) grafico styleSwingDots 1024 - i punti centrali per grafico scala styleNoRescale 2048 - no styleNoLabel rescale 4096 - nessuna etichetta valore stylePointAndFigure 8192 - punto e la figura (nuova in 4.20): styleArea 16384 - grafico ad area (extra wide istogramma) styleOwnScale 32768 - trama sta usando 65536 scala styleLeftAxisScale indipendente - trama si utilizza scala dell'asse sinistra (indipendente dall'asse destra) non tutte le combinazioni di bandiera hanno senso, per esempio (641) (Line candlestick) si tradurrà in grafico a candela (style64) Nota sui grafici candlestickbar: questi stili usano indirettamente O, H, L matrici oltre a graph N. Così ordinaria candlestick grafico dei prezzi formula è graph0style64 graph0close. Ma se si vuole disegnare qualcosa di diverso prezzo di chiusura è necessario assegnare nuovi valori di O predefinito, H, L array. grafico N barColor (obsoleto) definisce la serie di indici di colore per i bar ei candelabri in N ° ine grafico (indici di colore sono legati alla tavolozza corrente - vedere PreferencesColor) AFL SVILUPPO Rispondi Admin 5 maggio 2012 alle 15:15 SECTIONBEGIN ( ROC-Chiudi) safeguardThis è sviluppato da StockBangladesh ricerca e sviluppo, se avete bisogno di qualsiasi asistance contattaci all'indirizzo amibrokerstockbangladesh preStrMid (salvaguardia, 21, 15) stockbangladeshperiods Param (Periodi, 3, 1, 200, 1) stockbangladeshROCcloseROC (C, stockbangladeshperiods) Plot (ROC (C, StockBangladeshperiods), DefaultName (), ParamColor (a colori, colorCycle), paramstyle (Style)) pre StrMid (salvaguardia, 33, 15) StockBangladeshPriceUp LinRegSlope (StockBangladeshROCclose, StockBangladeshperiods) 0 printf (PriceUp fn, StockBangladeshPriceUp) SECTIONBEGIN (ROC-Volume) StockBangladeshperiods Param (periodi, 3, 1, 200, 1) trama (ROC (V, StockBangladeshperiods), DefaultName (), ParamColor (a colori, occhiVerdi), paramstyle (Style)) StockBangladeshROCvolumeROC (V, StockBangladeshperiods) StockBangladeshVolumeUp LinRegSlope (StockBangladeshROCvolume, StockBangladeshperiods) 0 printf (VolumeUp fn, StockBangladeshVolumeUp) StockBangladeshBullishDiv NON StockBangladeshPriceUP E StockBangladeshROCvolume StockBangladeshBearishDiv StockBangladeshPriceUP E NON StockBangladeshVolumeUp Filter StockBangladeshBullishDiv O StockBangladeshBearishDiv preStockBangladesh AddColumn (StockBangladeshBullishDiv, divergenza rialzista, 1.0, colorDefault, IIf (StockBangladeshBullishDiv, occhiVerdi, colorDefault)) AddColumn (StockBangladeshBearishDiv. Divergenza ribassista, 1.0, colorDefault, IIf (StockBangladeshBearishDiv. ColorRed, colorDefault)) GfxSetOverlayMode (1) GfxSelectFont (Tahoma, Stato (pxheight) 5) GfxSetTextAlign (6) l'allineamento al centro GfxSetTextColor ColorRGB (200, 200, 200 ()) GfxSetBkMode (1 ) GfxTextOut trasparente (pre, Stato (pxwidth) 2, Stato (pxheight) 12) Rispondi Admin 5 maggio 2012 alle 21:50 caro signore, ple. convertono gli indicatori mq4 seguito per afl8217s Reply Reddi 2 Novembre 2012 alle 9:24 pm proprietà indicatorchartwindow indicatorbuffers proprietà 8 immobili indicatorcolor1 immobili Blu indicatorcolor2 immobili Rosso indicatorcolor3 immobili Blu indicatorcolor4 immobili Rosso indicatorcolor5 immobili Blu indicatorcolor6 immobili Rosso indicatorcolor7 proprietà Blu indicatorcolor8 Rosso 8212- ingresso parametri extern int ChannelPeriod9 Prezzo Periodo canale extern doppio canale Risk0.30 fattore di restringimento (082300,5) extern int Signal1 modalità segnali di visualizzazione: 1-segnali amp Arresta Arresta 0-only 2-solo i segnali extern int modalità Riga1 linea di visualizzazione: 0-no , 1-sì extern int ColorBar1 modalità display a colori bar: 0-no, 1 sì extern int TimeFrame0 TimeFrame in min int extern Nbars1000 8212- indicatore buffer doppia doppia UpTrendBuffer DownTrendBuffer doppia doppia UpTrendSignal DownTrendSignal doppia doppia UpTrendLine DownTrendLine doppia doppia UpTrendBar DownTrendBar 8212821282128212821282128212821282128212821282128212821282128212821282128212821282128212 personalizzato funzione di inizializzazione indicatore 8212821282128212821282128212821282128212821282128212821282128212821282128212821282128212 int init () stringa di nome breve 8212- indicatore linea SetIndexBuffer (0, UpTrendBuffer) SetIndexBuffer (1, DownTrendBuffer) SetIndexBuffer (2, UpTrendSignal) SetIndexBuffer (3, DownTrendSignal) SetIndexBuffer (4, UpTrendLine) SetIndexBuffer (5, DownTrendLine) SetIndexBuffer (6, UpTrendBar) SetIndexBuffer (7, DownTrendBar) SetIndexStyle (0, DRAWARROW) SetIndexStyle (1, DRAWARROW) SetIndexStyle (2, DRAWARROW) SetIndexStyle (3, DRAWARROW) SetIndexStyle (4, DrawLine) SetIndexStyle (5, DrawLine) SetIndexStyle ( 6,DRAWHISTOGRAM, STYLESOLID,1) SetIndexStyle(7,DRAWHISTOGRAM, STYLESOLID,1) SetIndexArrow(0,159) SetIndexArrow(1,159) SetIndexArrow(2,108) SetIndexArrow(3,108) 8212- name for DataWindow and indicator subwindow label shortname8221PriceChannelStop(8220ChannelPeriod8221)8221 IndicatorShortName( shortname) SetIndexLabel(0,8221UpTrend Stop8221) SetIndexLabel(1,8221DownTrend Stop8221) SetIndexLabel(2,8221UpTrend Signal8221) SetIndexLabel(3,8221DownTrend Signal8221) SetIndexLabel(4,8221UpTrend Line8221) SetIndexLabel(5,8221DownTrend Line8221) SetIndexLabel(6,8221UpTrend Bar8221 ) SetIndexLabel(7,8221DownTrend Bar8221) 8212- SetIndexDrawBegin(0,ChannelPeriod) SetIndexDrawBegin(1,ChannelPeriod) SetIndexDrawBegin(2,ChannelPeriod) SetIndexDrawBegin(3,ChannelPeriod) SetIndexDrawBegin(4,ChannelPeriod) SetIndexDrawBegin(5,ChannelPeriod) SetIndexDrawBegin(6, ChannelPeriod) SetIndexDrawBegin(7,ChannelPeriod) 8212- return(0) 8212821282128212821282128212821282128212821282128212821282128212821282128212821282128212 PriceChannelStopv6 8212821282128212821282128212821282128212821282128212821282128212821282128212821282128212 int start() datetime TimeArray int i, shift, trend, y0 double high, low, price, sum, VolAverage, UpBar, DnBar double smax25000,smin25000, bsmax25000,bsmin25000,Mid25000,Vol25000 double LowArray, HighArray for (shiftNbars-1shiftgt0shift8211) UpTrendBuffershift0.0 DownTrendBuffershift0.0 UpTrendSignalshift0.0 DownTrendSignalshift0.0 UpTrendLineshiftEMPTYVALUE DownTrendLineshiftEMPTYVALUE UpTrendBarshift0.0 DownTrendBarshift0.0 Draw price channel boards calculation. Channel middle, half channel width, ArrayCopySeries(TimeArray, MODETIME, Symbol(),TimeFrame) ArrayCopySeries(LowArray, MODELOW, Symbol(),TimeFrame) ArrayCopySeries(HighArray, MODEHIGH, Symbol(),TimeFrame) for(i0,y0iltNbarsi) if (Timei0shift8211) Calculation channel stop values Signal area. any conditions to trend determination: 1. Price Channel breakout if(Riskgt0) if(Closeshiftgtbsmaxshift) trend1 if(Closeshiftbsmaxshift1) trend1 if(Closeshift0) if(Riskgt0 ampamp Closeshiftltbsminshift) bsminshiftbsminshift1 if(bsminshiftltbsminshift1) bsminshiftbsminshift1 if(trend0 ampamp Closeshiftgtbsmaxshift) bsmaxshiftbsmaxshift1 if(bsmaxshiftgtbsmaxshift1) bsmaxshiftbsmaxshift1 Drawing area UpBarbsmaxshift DnBarbsminshift if (trendgt0) if (Signalgt0 ampamp UpTrendBuffershift1-1.0) bsminshiftsminshift UpTrendSignalshiftbsminshift if(Linegt0) UpTrendLineshiftbsminshift else UpTrendBuffershiftbsminshift if(Linegt0) UpTrendLineshiftbsminshift UpTrendSignalshift-1 if(ColorBargt0) if(CloseshiftgtUpBar) UpTrendBarshiftHighshift DownTrendBarshiftLowshift else UpTrendBarshiftEMPTYVALUE DownTrendBarshiftEMPTYVALUE if (Signal2) UpTrendBuffershift0 DownTrendBuffershift-1.0 DownTrendLineshiftEMPTYVALUE if (trend0 ampamp DownTrendBuffershift1-1.0) bsmaxshiftsmaxshift DownTrendSignalshiftbsmaxshift if(Linegt0) DownTrendLineshiftbsmaxshift else DownTrendBuffershiftbsmaxshift if(Linegt0)DownTrendLineshiftbsmaxshift DownTrendSignalshift-1 if(ColorBargt0) if(CloseshiftBars) CountBarsBars SetIndexDrawBegin(0,Bars-CountBarsATP) SetIndexDrawBegin(1,Bars-CountBarsATP) int i, i2,loopbegin, countedbarsIndicatorCounted() double SsMax, SsMin, K, val1, val2, smin, smax, price static int alrt0 if(countedbarsltATP1) for(i1iltATPi) ExtMapBuffer1CountBars-i0.0 for(i1i1i8211) SsMax HighHighest(NULL,0,MODEHIGH, ATP, i-ATP1) SsMin Low Lowest (NULL,0,MODELOW, ATP, i-ATP1) smin SsMin-(SsMax-SsMin)Minima100 smax SsMax-(SsMax-SsMin)Maxima100 ExtMapBuffer1i-ATP1smax ExtMapBuffer2i-ATP-1smax if (ExtMapBuffer10 gt ExtMapBuffer20 ampamp ExtMapBuffer11 lt ExtMapBuffer21 ampamp alrt 1) alrt 1 Alert(quotTM. quotSymbol()quot quotPeriod()quot 8211 Changing Trend Direction Long nowquot) SendMail(quotFrom TMquot, quotTM. quotSymbol()quot quotPeriod()quot 8211 Changing Trend Direction Long nowquot) if (ExtMapBuffer10 ExtMapBuffer21 ampamp alrt-1) alrt -1 Alert(8220TM. 8220Symbol()8221 8220Period()8221 8211 Changing Trend Direction Short now8221) SendMail(8220From TM8221,8221TM. 8220Symbol()8221 8220Period()8221 8211 Changing Trend Direction Short now8221) property indicatorchartwindow property indicatorbuffers 3 property indicatorcolor1 Green property indicatorcolor2 Blue property indicatorcolor3 Red 8212- indicator parameters extern int ExtDepth34 extern color Linecolor Red extern color Targetcolor Blue extern bool DrawZZfalse extern bool ShowTargettrue int UpArrowCode 241 int DownArrowCode 242 color UpArrowColor Blue color DownArrowColor Red int UpArrowSize 3 int DownArrowSize 3 8212- indicator buffers double zzL double zzH double zz double target10,target20 8212821282128212821282128212821282128212821282128212821282128212821282128212821282128212 Custom indicator initialization function 8212821282128212821282128212821282128212821282128212821282128212821282128212821282128212 int init() IndicatorBuffers(3) 8212- drawing settings SetIndexStyle(2,DRAWARROW) SetIndexStyle(1,DRAWARROW) SetIndexStyle(0,DRAWSECTION) SetIndexArrow(2,159) SetIndexArrow(1,159) 8212- indicator buffers mapping if(DrawZZ) SetIndexBuffer(0,zz) SetIndexBuffer(1,zzH) SetIndexBuffer(2,zzL) SetIndexEmptyValue(0,0.0) SetIndexEmptyValue(1,0.0) SetIndexEmptyValue(2,0.0) return(0) int deinit() 8212- ObjectDelete(8220xpMA8221) ObjectDelete(8220Target18221) ObjectDelete(8220Target28221) ObjectDelete(8220TargetUp8221) ObjectDelete(8220TargetDown8221) ObjectDelete(8220TP18243) ObjectDelete(8220TP28243) ObjectDelete(8220R18243) ObjectDelete(8220R28243) ObjectDelete(8220R38243) ObjectDelete(8220R48243) ObjectDelete(8220LH8221) ObjectDelete(8220LL8221) ObjectDelete(8220Low8221) ObjectDelete(8220High8221) ObjectDelete(82200.6188243) ObjectDelete(82200.58243) ObjectDelete(82200.3828243) ObjectDelete(82200.2368243) Comment(8221 8220) 8212- return(0) 8212821282128212821282128212821282128212821282128212821282128212821282128212821282128212 8212821282128212821282128212821282128212821282128212821282128212821282128212821282128212 int start() int i, shift, pos, lasthighpos, lastlowpos, curhighpos, curlowpos double curlow, curhigh, lasthigh, lastlow double min, max ArrayInitialize(zz,0.0) ArrayInitialize(zzL,0.0) ArrayInitialize(zzH,0.0) lasthighposBars lastlowposBars lastlowLowBarslasthighHighBars for(shiftBars-ExtDepth shiftgt0 shift8211) curlowposLowest(NULL,0,MODELOW, ExtDepth, shift) curlowLowcurlowpos curhighposHighest(NULL,0,MODEHIGH, ExtDepth, shift) curhighHighcurhighpos 8212821282128212821282128212821282128212821282128212821282128212 if( curlowgtlastlow ) else if( lasthighposgtcurlowpos ) zzLcurlowposcurlow min100000 poslasthighpos for(ilasthighpos igtcurlowpos i8211) if (zzLi0.0) continue if (zzLiltmin) zzi0.0 zzposmin lastlowposcurlowpos lastlowcurlow 8212 high if( curhighcurhighpos ) zzHcurhighposcurhigh max-100000 poslastlowpos for(ilastlowpos igtcurhighpos i8211) if (zzHi0.0) continue if (zzHigtmax) zzi0.0 zzposmax lasthighposcurhighpos lasthighcurhigh double p, r4,r3,r2,r1 double R lasthigh 8211 lastlowrange if(lastlowposr4 )target1 curhigh (R 0.618) if(Close0gttarget1)target1 0 if(lasthighposltlastlowpos) p curhigh r4 p 8211 (R 0.618) r3 p 8211 (R 0.5) r2 p 8211 (R 0.382) r1 p 8211 (R 0.236) if(Close0ltr4 )target2 curlow 8211 (R 0.618) if(Close00 ampamp ShowTargettrue) drawLine(target1,8221TP18243, Targetcolor,2) drawLabel(8220TargetUp8221,target1,Targetcolor,7) drawTarget(8220Target18221,target1,Targetcolor,1) if(r4gtr2 ampamp Close0gtr4 ampamp target1gtr4) DrawObject(1, (target1curhigh)2) if(r4r2 ampamp target1gtr2) DrawObject(1, (target1curhigh)2) if(target2gt0 ampamp ShowTargettrue) drawLine(target2,8221TP28243, Targetcolor,2) drawLabel(8220TargetDown8221,target2,Targetcolor,7) drawTarget(8220Target28221,target2,Targetcolor,2) if(r4ltr2 ampamp Close0ltr4 ampamp target2r2 ampamp Close0ltr2 ampamp target2ltr2) DrawObject(2, (target2curlow)2) void drawTarget(string name, double lvl, color Color, int num) string targetDoubleToStr(lvl, Digits) string verquotVequot ObjectCreate(name, OBJLABEL, 0, 0, 0) if(num1) ObjectSet(name, OBJPROPXDISTANCE, 470) ObjectSet(name, OBJPROPYDISTANCE, 2) ObjectSetText(name, quotTarget UP quottarget, 9, quotArialquot, Blue) if(num2) ObjectSet(name, OBJPROPXDISTANCE, 470) ObjectSet(name, OBJPROPYDISTANCE, 15) ObjectSetText(name, quotTarget DOWN quottarget, 9, quotArialquot, Blue) 8212821282128212821282128212821282128212821282128212821282128212821282128212821282128212 void drawLabel(string name, double lvl, color Color, int time) if(ObjectFind(name) 0) ObjectCreate(name, OBJTEXT, 0, Timetime, lvl) ObjectSetText(name, name, 8, quotArialquot, EMPTY) ObjectSet(name, OBJPROPCOLOR, Color) else ObjectMove(name, 0, Timetime, lvl) void drawLine(double lvl, string name, color Col, int type) if(ObjectFind(name) 0) if(type 1) ObjectCreate(name, OBJHLINE, 0, Time0, lvl, Time0,lvl) else ObjectCreate(name, OBJGANNLINE, 0, Time15, lvl, Time0,lvl) ObjectSet(name, OBJPROPSTYLE, STYLESOLID) ObjectSet(name, OBJPROPCOLOR, Col) ObjectSet(name, OBJPROPWIDTH,1) if(type 1) ObjectCreate(name, OBJHLINE, 0, Time0, lvl, Time0,lvl) else ObjectCreate(name, OBJGANNLINE, 0, Time15, lvl, Time0,lvl) ObjectSet(name, OBJPROPSTYLE, STYLESOLID) ObjectSet(name, OBJPROPCOLOR, Col) ObjectSet(name, OBJPROPWIDTH,1) void DrawObject(int direction, double price) static int count 0 count string Obj quotquot Obj quotxpMAquot if (direction1) up arrow ObjectCreate(Obj, OBJARROW,0,Time0,price) ObjectSet(Obj, OBJPROPCOLOR, UpArrowColor) ObjectSet(Obj, OBJPROPARROWCODE, UpArrowCode) ObjectSet(Obj, OBJPROPWIDTH, UpArrowSize) if (direction2) down arrow ObjectCreate(Obj, OBJARROW,0,Time0,price) ObjectSet(Obj, OBJPROPCOLOR, DownArrowColor) ObjectSet(Obj, OBJPROPARROWCODE, DownArrowCode) ObjectSet(Obj, OBJPROPWIDTH, DownArrowSize) Reply reddi November 2, 2012 at 9:53 pm thanks in advance hope u will do the same. thank u Reply rubaiyat November 7, 2012 at 8:23 am Dear admin would you please provide me a volume price analysis afl along with volume bar and fibonaci retracement. as like a afl that used by mr. kartik marar in stocknewsbd. Reply narendra jain November 27, 2012 at 9:10 am Sub:Amibroker Charts formula development for AUTOMATED TRADING Hi, this is to inform you that we are having an automated trading platform which works only through AMIBROKER. But it works with the arrows which gets ploted in the amibroker charts. for example:if it gives buy arrow then our platform places a buy order amp if it gives sell arrow then it sells our existing position. But with this, we are not getting handsome profit so, we want you to develop our charting. But we want the chartings to be develoved in such a way that no human involvement is required i. e.100 auto trading. If you do so then this is our requirement for formula development:- 1.when the AB chart gives a buy signal then my platform places a buy order now we want that the charting gives profit booking signal or square off position signal or exit position signal too according to the calculations of targets made by the chart. 2.if, in case, our 1st target doesnt gets achieve then our charting should also generate stop loss signal and trailing stop loss signal amp if market sustains above 1st target then again charting should generate 2nd buy signal and so on accordingly. 3. generation for sell signal as accordingly. So, these are our requirements for AB charting formula development as stated above. In short, we want to take benefit of both rising amp falling market(242157). For these, whatever nominal charges is required, we are ready to pay for it. Day To Day Income Reply Saifz December 27, 2012 at 11:23 pm Dear admin, do you have the latest version of VPA amp VSA afl of legendary Karthik Marar It8217ll be of great help, if you share it with us. Grazie. Reply Krishnaraj. K January 31, 2013 at 11:28 pm Please provide me the corrected version of the Foundation V 13.41 Version afl becaus e iam getting some syntax errors pls do help me in this regard as i value the indicator as a great one. Hope you will do the needful at least sent it by mail if possible also. Reply prasadaraokarri April 22, 2013 at 10:02 am sir, can you convert mq4 formula in to afl languageplease letme know the further details as soon as possible. Reply gangadhar May 3, 2013 at 10:01 pm I have 1,3,5,7,10,15,20 min and 1 hour Time frames, with buy amp sell signal. I want to see all trigger in one window . Regards Gangadhar K need aFL FOR CRUDE OIL Reply Gupta June 28, 2013 at 12:46 am Dear administrator, First of all i thank you for helping small traders like us. i also have a small request for my Afl.. its on 8230. Nick MA Swing system(ATR-14ampK-1) with TEMA-39 close AND EMA-49 close THE system rules are as fallows. 1)for buy price candle TEMA 39 should be above EMA 49 Nick System Buy signal (filtration additional). 2)for sell price candle TEMA 39 should be below EMA 49 Nick system sell signal (filtration additional). 3)stoploss will be a)Nick system BuySell signal 6 points above high for Sell and 6 points below low for Buy of the SAME candle. b)Reversal signal FOR BuySell 6 points above high for Sell and 6 points below low for Buy of the SAME candle. 4) targets 25 to 50 points (optional) Filtration are as fallows. 1)When Nick System Buy Sell signal APPEAR it should only Buy Sell at next candle . 2)In next candle it should only BuySell if it cross signals highlow 6 points ABOVE HIGH AND BELOW LOW.. Thanking you Gupta Your Blog follower Reply Mozammal Hoque October 1, 2013 at 12:55 pm Dear administrator, I need a volume amp money flow afl with exploration and buy - sell signal . Please provide me. Thanks for your support. Reply Andrea Bertini November 8, 2013 at 3:15 pm I need a free system scan with AmiBroker of about 300 asset management products, in a medium-to long-term, in order to determine the trends and signals of buying and selling, thanks Reply SHANKAR PAWAR November 18, 2013 at 10:13 pm I need a Regular Bearish AND BULLISH Divergence, afl with exploration and buy-sell signal.

No comments:

Post a Comment