
Analizzare i Modelli di Candele
"Attraverso la ricerca del vecchio impariamo il nuovo"
Introduzione
Il tracciamento dei grafici a candele e l'analisi dei modelli a candele sono una straordinaria linea di analisi tecnica. Il vantaggio delle candele è che rappresentano i dati in modo che sia possibile vedere lo slancio all'interno degli stessi.
Le candele danno una vivida immagine mentale del trading. Dopo aver letto e un po' di pratica, le candele faranno parte del tuo arsenale analitico. I grafici a candele giapponesi possono aiutarti a penetrare nei mercati finanziari, cosa molto difficile da fare con altri metodi grafici. Sono ugualmente adatti a tutti i mercati.
1. Tipi di Candele
Uno dei primi analisti che ha iniziato a prevedere il movimento dei prezzi in futuro, sulla base dei prezzi passati, è stato il leggendario giapponese Munehisa Homma. I principi di trading applicati da Homma nel commercio sul mercato del riso hanno avviato la tecnica delle candele giapponesi, che è ora ampiamente utilizzata in Giappone e all'estero.
Figura 1. Struttura di un modello di candele
Considera la struttura di un modello di candele (Fig. 1). Il rettangolo che rappresenta la differenza tra i prezzi di apertura e chiusura, è chiamato corpo della candela. L'altezza del corpo rappresenta l'intervallo tra i prezzi di apertura e di chiusura del periodo di negoziazione. Quando il prezzo di chiusura è superiore al prezzo di apertura, il corpo della candela è bianco (Fig. 1 a). Se il corpo è nero (Fig. 1 b), significa che il prezzo di chiusura era inferiore al prezzo di apertura.
Le candele possono avere ombre: superiore e inferiore, la lunghezza delle ombre dipende dalla distanza tra i prezzi di apertura/chiusura e i prezzi minimo/massimo.
Le candele sono tracciate sul grafico uno per uno, formando vari modelli. Secondo la teoria, alcuni pattern possono indicare con una certa probabilità che il trend sta cambiando o confermare il trend, o mostrare che il mercato è indeciso.
I corpi lunghi delle candele, di regola, raccontano la pressione di acquirenti o venditori (a seconda del colore delle candele). Corpi corti indicano che la lotta tra i tori e gli orsi era debole.
Candele | Descrizione |
---|---|
![]() | “Candele Lunghe” Il collegamento alle candele lunghe è molto diffuso nella letteratura sui modelli di candele giapponesi. Il termine "lungo" si riferisce alla lunghezza del corpo della candela, la differenza tra il prezzo di apertura e il prezzo di chiusura. È meglio considerare i movimenti di prezzo più recenti per determinare cosa è lungo e cosa no. Cinque o dieci giorni prima: è un periodo abbastanza adeguato per arrivare a una conclusione corretta. |
![]() | "Candelieri corti". La determinazione delle candele corte può essere basata sulla stessa metodologia utilizzata nel caso delle candele lunghe, con risultati simili. Inoltre, ci sono molte candele che non rientrano in nessuna di queste due categorie. |
![]() | "Marubozu" . In giapponese "Marubozu" significa quasi audace. In ogni caso, il significato del termine riflette il fatto che il corpo della candela o non ha affatto ombre in alto e/o in basso, oppure sono molto piccole. Marubozu nero: un lungo corpo nero senza ombra su uno dei lati. Diventa spesso una parte del modello di continuazione ribassista o del modello di inversione rialzista, specialmente quando appare in una tendenza al ribasso. Una lunga candela nera indica una grande vittoria dei ribassisti, quindi spesso appare il primo giorno di molti modelli di inversione del carattere rialzista. Marubozu bianco - un lungo corpo bianco senza ombra su uno dei lati. Questa è una candela molto forte. In contrasto con il marubozu nero, spesso risulta essere parte del modello di continuazione rialzista o di un modello di inversione ribassista. |
![]() | "Doji". Se il corpo della candela è così piccolo che i prezzi di apertura e chiusura sono gli stessi, si chiama Doji. Il requisito che i prezzi di apertura e di chiusura dovrebbero essere esattamente uguali, impone rigide restrizioni sui dati, e il Doji apparirebbe molto raramente. Se la differenza di prezzo tra i prezzi di apertura e di chiusura non supera alcuni tick (variazione minima di prezzo), questo è più che sufficiente. |
![]() | Gli "Spinning Tops" sono candele corte con un'ombra superiore e/o inferiore più lunga del corpo. A volte sono indicati come Doji "bianco" e "nero". Koma indica l'indecisione di tori e orsi. Il colore del corpo del Koma, così come la lunghezza della sua ombra, non è importante. Il piccolo corpo rispetto alle ombre è ciò che fa lo spinning top. |
![]() | "Hanging man" e "Hammer". Queste sono candele con ombre inferiori lunghe e corpi corti. I corpi sono al top della gamma di prezzi. La proprietà sorprendente di queste candele è che possono essere rialziste e ribassiste a seconda della fase dei trend in cui compaiono. La comparsa di queste candele in una tendenza al ribasso è un segnale che il suo dominio nel mercato sta volgendo al termine, in questo caso la candela è chiamata "l’hammer". Se il modello a candele appare durante un trend rialzista, indica la sua possibile fine e ha un nome inquietante: "hanging man". |
![]() | "Un start" appare ogni volta che appare il corpo piccolo ogni volta che un corpo piccolo si apre o si abbassa dal corpo lungo precedente, il colore del corpo non è importante. Idealmente, il gap deve catturare anche le ombre, ma non è del tutto necessario. La stella indica una certa incertezza prevalente nel mercato. Le stelle sono incluse in molti modelli di candele, per lo più invertiti. |
Tabella 1. Tipi di Candele
Le candele separate sono estremamente importanti per l'analisi delle combinazioni dei modelli di candele. Quando un analista le usa separatamente, e poi in combinazione con altre candele, si rivela lo stato psicologico del mercato.
2. Identificazione dei tipi base di candele
2.1. Strutture necessarie
I modelli di candele possono consistere in candele separate o in alcuni di esse. Per i modelli di candele, ci sono alcune regole di riconoscimento.
Esempio:Stella della sera (modello ribassista). Il trend al rialzo. La prima e la terza candela sono "lunghe". Le ombre delle stelle sono corte, il colore non ha importanza. Il modello classico: separazione della stella dalla Chiusura della prima candela per forex ed entro il giorno: La Chiusura della prima candela e l'Apertura della stella sono uguali. La terza candela è chiusa all'interno del corpo della prima.
Quindi impariamo prima a riconoscere i tipi di candele. A tal fine, scriviamo una funzione RecognizeCandle che riconoscerà il tipo di candele e restituirà le informazioni necessarie.
//+------------------------------------------------------------------+ //| Function of candlestick type recognition | //+------------------------------------------------------------------+ bool RecognizeCandle(string symbol,ENUM_TIMEFRAMES period, datetime time,int aver_period,CANDLE_STRUCTURE &res)dove:
- simbolo - il nome del simbolo
- periodo – periodo del grafico,
- tempo – tempo di apertura del modello di candele,
- aver_period - periodo di media
- res - una struttura, in cui viene restituito il risultato.
Definiamo di quali risultati abbiamo bisogno, in base alle regole di riconoscimento dei modelli di candele:
- aprire, chiudere, alto e basso;
- tempo aperto del modello di candele;
- direzione di tendenza;
- candela rialzista o ribassista;
- dimensione del corpo della candela – un valore assoluto;
- tipo di modello a candele (dalla tabella 1).
Creiamo una struttura:
//+------------------------------------------------------------------+ //| Structure CANDLE_STRUCTURE | //+------------------------------------------------------------------+ struct CANDLE_STRUCTURE { double open,high,low,close; // OHLC datetime time; //Time TYPE_TREND trend; //Trend bool bull; //Bull candlestick double bodysize; //Body size TYPE_CANDLESTICK type; //Type of candlestick };
dove trend e tipo sono variabili di tipo enumerativo:
//+------------------------------------------------------------------+ //| ENUM TYPE CANDLESTICK | //+------------------------------------------------------------------+ enum TYPE_CANDLESTICK { CAND_NONE, //Unrecognized CAND_MARIBOZU, //Marubozu CAND_MARIBOZU_LONG, //Marubozu long CAND_DOJI, //Doji CAND_SPIN_TOP, //Spinning Tops CAND_HAMMER, //Hammer CAND_INVERT_HAMMER, //Reverse hammer CAND_LONG, //Long CAND_SHORT, //Short CAND_STAR //Star }; //+------------------------------------------------------------------+ //| TYPE_TREND | //+------------------------------------------------------------------+ enum TYPE_TREND { UPPER, //Upward DOWN, //Downward LATERAL //Lateral };
Consideriamo la funzione RecognizeCandle.
2.2. Riconoscimento del tipo di candela
//+------------------------------------------------------------------+ //| Function of recognition of candlestick type | //+------------------------------------------------------------------+ bool RecognizeCandle(string symbol,ENUM_TIMEFRAMES period, datetime time,int aver_period,CANDLE_STRUCTURE &res) { MqlRates rt[]; //--- Get data of previous candlesticks if(CopyRates(symbol,period,time,aver_period+1,rt)<aver_period) { return(false); }
Innanzitutto, utilizzando la funzione CopyRates ottieni i dati dai precedenti modelli di candele aver_period +1. Nota l'ordine in cui i dati sono memorizzati nell'array che otteniamo.
Se i dati sono stati ricevuti senza errori, inizia a compilare la nostra struttura di restituzione CANDLE_STRUCTURE con i dati.
res.open=rt[aver_period].open; res.high=rt[aver_period].high; res.low=rt[aver_period].low; res.close=rt[aver_period].close; res.time=rt[aver_period].time;
Definizione di trend. Che cos'è un trend? Se questa domanda avesse avuto una risposta abbastanza completa, i segreti del mercato sarebbero stati svelati. In questo articolo utilizzeremo il metodo per determinare il trend utilizzando una media mobile.
MA=(C1+C2+…+Cn)/N,
dove C – prezzi di chiusura, N – numero di barre.
L. Morris nel suo libro "Candlestick Charticng Explained. Tecniche senza tempo per il Trading di Azioni e future" utilizza una media mobile con un periodo di dieci per identificare una tendenza a breve termine; se il prezzo di chiusura è sopra la media - la tendenza è al rialzo, se inferiore - è al ribasso.
Ecco come appare:
//--- Define the trend direction double aver=0; for(int i=0;i<aver_period;i++) { aver+=rt[i].close; } aver=aver/aver_period; if(aver<res.close) res.trend=UPPER; if(aver>res.close) res.trend=DOWN; if(aver==res.close) res.trend=LATERAL;
Successivamente definiamo se la nostra candela è rialzista o ribassista, calcoliamo il valore assoluto del corpo della candela, la dimensione delle ombre, la dimensione media del corpo della candela durante il periodo aver_period e altri dati intermedi necessari.
//--- Define of it bullish or bearish res.bull=res.open<res.close; //--- Get the absolute value of the candlestick body size res.bodysize=MathAbs(res.open-res.close); //--- Get the size of shadows double shade_low=res.close-res.low; double shade_high=res.high-res.open; if(res.bull) { shade_low=res.open-res.low; shade_high=res.high-res.close; } double HL=res.high-res.low; //--- Calculate the average body size of previous candlesticks double sum=0; for(int i=1; i<=aver_period; i++) sum=sum+MathAbs(rt[i].open-rt[i].close); sum=sum/aver_period;
Ora ci occupiamo dell'identificazione delle tipologie di candele.
2.3. Regole di identificazione dei tipi di candele
Candele "Lunghe" . Per definire le candele "lunghe", controlla il valore della candela corrente rispetto al valore medio delle candele precedenti aver_period.
(Corpo) > (corpo medio degli ultimi cinque giorni) *1.3
//--- long if(res.bodysize>sum*1.3) res.type=CAND_LONG;
Candele "Corte". Per definire le candele "corte", usa lo stesso principio di quelle "lunghe", ma con una condizione modificata.
(Corpo) > (corpo medio degli ultimi X giorni) *0.5
//--- short if(res.bodysize<sum*0.5) res.type=CAND_SHORT;
Doji. Il Doji si verifica quando i prezzi di apertura e chiusura sono uguali. Questa è una regola molto rigida. Nel caso della maggior parte dei tipi di dati, possiamo tollerare alcune deviazioni nella ricerca dei modelli. La formula permette di trovare la differenza percentuale tra i due prezzi entro limiti accettabili.
(corpo Dodji) < (intervallo dal prezzo più alto a quello più basso) * 0,03
//--- doji if(res.bodysize<HL*0.03) res.type=CAND_DOJI;
"Marubozu" . Questa è una candela senza alti o bassi, o sono molto piccoli
(ombra inferiore) < (corpo) * 0,03 o (ombra superiore) < (corpo) * 0,03
//--- maribozu if((shade_low<res.bodysize*0.01 || shade_high<res.bodysize*0.01) && res.bodysize>0) { if(res.type==CAND_LONG) res.type=CAND_MARIBOZU_LONG; else res.type=CAND_MARIBOZU; }
Durante la scrittura di un indicatore per questo articolo, è stato necessario separare il "Maribozu" "lungo", per il quale ho dovuto aggiungere la condizione per il controllo delle candele "lunghe".
"Hammer" e"Hanging Man". Il corpo si trova nella parte superiore dell'intervallo giornaliero e l'ombra inferiore è molto più lunga del corpo. È inoltre necessario considerare la lunghezza dell'ombra superiore, se presente. Il rapporto tra il corpo e l'ombra inferiore è definito come il rapporto tra la lunghezza del corpo e la lunghezza dell'ombra inferiore:
(ombra inferiore)>(corpo)*2 e (ombra superiore)< (corpo)*0.1
//--- hammer if(shade_low>res.bodysize*2 && shade_high<res.bodysize*0.1) res.type=CAND_HAMMER;
"Shooting Star" e "Inverted Hammer" sono simili all’"Hammer", ma con la condizione opposta:
(ombra inferiore)<(corpo)*0.1 e (ombra superiore)> (corpo)*2
//--- invert hammer if(shade_low<res.bodysize*0.1 && shade_high>res.bodysize*2) res.type=CAND_INVERT_HAMMER;
"Spinning Tops". Queste sono candele "corte" con ombre più lunghe del corpo:
(ombra inferiore) > (corpo) e (ombra superiore) > (corpo)
//--- spinning top if(res.type==CAND_SHORT && shade_low>res.bodysize && shade_high>res.bodysize) res.type=CAND_SPIN_TOP;
Il testo sorgente delle descrizioni della funzione e della struttura sono nel file allegato CandlestickType.mqh.
Quindi all'articolo è allegato l'indicatore Candlestick Type Color.mq5, che dipinge i candelabri sul grafico a seconda del loro tipo.
Figura 2. Esempio di Candela Tipo Color.mq5
Quindi abbiamo creato una funzione che restituisce tutti i dati necessari.
Ora possiamo procedere creando un indicatore che riconoscerà i modelli di candele.
3. Modelli di Candele e Algoritmi per la Loro Identificazione
Un modello di candele può essere costituito da una singola o da più candele, raramente più di cinque o sei. Nella letteratura giapponese, a volte si riferiscono ai modelli costituiti da un numero maggiore di candele. L'ordine in cui considereremo i modelli non riflette la loro importanza o capacità previsionale.
I modelli di candele sono divisi in due tipi: modelli di inversione e modelli di continuazione.
Considereremo prima modelli semplici (una candela) e poi complessi (più candele). La figura contenente il modello inizierà con due piccole linee verticali. Queste linee indicano semplicemente la direzione del precedente trend di mercato e non dovrebbero essere utilizzate come indicatore diretto delle relazioni tra i modelli.
I modelli saranno rappresentati in una tabella, nella prima riga - modello rialzista, nella seconda - modello ribassista opposto, se esiste.
3.1. MODELLI DI INVERSIONE DELLE CANDELE
3.1.1. Modelli costituiti da una singola candela
Ottieni dati per una singola candela:
//--- calculation of candlestick patterns for(int i=limit;i<rates_total-1;i++) { CANDLE_STRUCTURE cand1; if(!RecognizeCandle(_Symbol,_Period,time[i],InpPeriodSMA,cand1)) continue; /* Checking patterns with one candlestick */
e riconosci i modelli.
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Invertito hammer (bullish) | Buy | ![]() | ![]() | Trend al ribasso. |
Hanging Man (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. L'ombra inferiore non è inferiore a 2 e non più di 3 volte più grande del corpo. Non c'è un'ombra superiore o molto corta (non più del 10% dell'intervallo della candela). Il colore del corpo nel gioco lungo non è importante, con il corto: l’hanging man nero è molto più forte di quello bianco. Si suggerisce la conferma. |
//------ // Inverted Hammer the bull model if(cand1.trend==DOWN && // check the trend direction cand1.type==CAND_INVERT_HAMMER) // check the "inverted hammer" { comment=_language?"Inverted hammer"; DrawSignal(prefix+"Inverted Hammer the bull model"+string(objcount++),cand1,InpColorBull,comment); } // Handing Man the bear model if(cand1.trend==UPPER && // check the trend direction cand1.type==CAND_HAMMER) // check "hammer" { comment=_language?"Hanging Man"; DrawSignal(prefix+"Hanging Man the bear model"+string(objcount++),cand1,InpColorBear,comment); }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Hammer (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. L'ombra inferiore non è inferiore a 2 e non più di 3 volte più grande del corpo. Non c'è un'ombra superiore o molto corta (non più del 10% dell'intervallo della candela). Il colore del corpo nel gioco lungo non è importante, con il martello corto il bianco è molto più forte di quello nero. Si suggerisce la conferma. |
Shooting Star (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. L'ombra superiore non è inferiore a 3 volte, è più grande del corpo. Non c'è un'ombra inferiore o molto corta (non più del 10% dell'intervallo della candela). Il gap del prezzo tra la stella e la candela precedente. Forex: il prezzo di chiusura della candela precedente e quello di apertura della stella sono uguali. Il colore del corpo non ha importanza. Si suggerisce la conferma. |
//------ // Hammer the bull model if(cand1.trend==DOWN && //check the trend direction cand1.type==CAND_HAMMER) // check the hammer { comment=_language?"Hammer"; DrawSignal(prefix+"Hammer the bull model"+string(objcount++),cand1,InpColorBull,comment); } //------ // Shooting Star the bear model if(cand1.trend==UPPER && cand2.trend==UPPER && //check the trend direction cand2.type==CAND_INVERT_HAMMER) // check the inverted hammer { comment=_language?"Shooting Star"; if(_forex)// if forex { if(cand1.close<=cand2.open) // close 1 less equal open 1 { DrawSignal(prefix+"Shooting Star the bear model"+string(objcount++),cand2,InpColorBear,comment); } } else { if(cand1.close<cand2.open && cand1.close<cand2.close) // 2 candlestick detached from 1 { DrawSignal(prefix+"Shooting Star the bear model"+string(objcount++),cand2,InpColorBear,comment); } } }
Vorrei attirare la tua attenzione sul fatto che nel caso di "Shooting Star" abbiamo effettivamente bisogno di due candele, perché ai sensi del riconoscimento del corpo del giorno precedente viene preso in considerazione.
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Belt Hold (rialzista) | Buy | ![]() | Il modello non è implementato | Trend al ribasso. Apertura di una candela con un ampio gap nella direzione del trend. Candeliere bianco — «marubozu» «lungo». Il corpo della candela bianca è molto più grande del corpo della candela precedente. Si suggerisce la conferma. |
Belt Hold (ribassista) | Sell | ![]() | Il modello non è implementato | Trend al rialzo. Apertura di una candela con un ampio gap nella direzione del trend. Candeliere nero — «marubozu» «lungo». Il corpo della candela nera è molto più grande del corpo della candela precedente. Si suggerisce la conferma. |
//------ // Belt Hold the bull model if(cand2.trend==DOWN && cand2.bull && !cand1.bull &&// check the trend direction and direction of the candlestick cand2.type==CAND_MARIBOZU_LONG && // check the "long" marubozu cand1.bodysize<cand2.bodysize && cand2.close<cand1.close) // the body of the first candlestick is smaller than the body of the second one, close of the second one is below the close of the first { comment=_language?"Belt Hold"; if(!_forex)// if not forex { DrawSignal(prefix+"Belt Hold the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } // Belt Hold the bear model if(cand2.trend==UPPER && !cand2.bull && cand1.bull && // check the trend direction and direction of the candlestick cand2.type==CAND_MARIBOZU_LONG && // check the "long" marubozu cand1.bodysize<cand2.bodysize && cand2.close>cand1.close) // the body of the first candlestick is smaller than the body of the second one, close of the second one is above the close of the first { comment=_language?"Belt Hold"; if(!_forex)// if not forex { DrawSignal(prefix+"Belt Hold the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } }
Come nel caso della "Shooting Star", vengono utilizzate due candele, perché il corpo del giorno precedente viene preso in considerazione per il riconoscimento del modello.
3.1.2. Pattern composti da due candele
Aggiungi un'altra candela:
/* Checking patterns with two candlesticks */ CANDLE_STRUCTURE cand2; cand2=cand1; if(!RecognizeCandle(_Symbol,_Period,time[i-1],InpPeriodSMA,cand1)) continue;
e riconosci i modelli:
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Engulfing (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. |
Engulfing (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. Il corpo della seconda candela copre completamente il corpo della prima. Forex: La chiusura della candela bianca e l'apertura di quella nera corrispondono. Le ombre non contano. Si suggerisce la conferma. |
//------ // Engulfing the bull model if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && cand2.bull && // check the trend direction and direction of the candlestick cand1.bodysize<cand2.bodysize) // the body of the second candlestick is larger than that of the first { comment=_language?"Engulfing"; if(_forex)// if forex { if(cand1.close>=cand2.open && cand1.open<cand2.close) // the body of the first candlestick is inside the body of the second { DrawSignal(prefix+"Engulfing the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } else { if(cand1.close>cand2.open && cand1.open<cand2.close) // the body of the first candlestick is inside the body of the second { DrawSignal(prefix+"Engulfing the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } } // Engulfing the bear model if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && // check the trend direction and direction of the candlestick cand1.bodysize<cand2.bodysize) // the body of the second candlestick is larger than that of the first { comment=_language?"Engulfing"; if(_forex)// if forex { if(cand1.close<=cand2.open && cand1.open>cand2.close) //the body of the first candlestick is inside the body of the second { DrawSignal(prefix+"Engulfing the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } else { if(cand1.close<cand2.open && cand1.open>cand2.close) // close 1 less equal to open 2 or open 1 larger equal to close 2 { DrawSignal(prefix+"Engulfing the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Harami Cross (Toro) | Buy | ![]() | ![]() | Trend al ribasso. |
Harami Cross (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. La prima candela del pattern è lunga e bianca. Doji è all'interno della gamma della prima candela, comprese le sfumature. Forex: doji è al livello di Close della prima candela. Se le ombre Doji sono brevi, il modello dovrebbe essere considerato una Doji Star per il forex. Si suggerisce la conferma. |
//------ // Harami Cross the bull model if(cand1.trend==DOWN && !cand1.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand2.type==CAND_DOJI) // checking the "long" first candlestick and doji { comment=_language?""Harami Cross"; if(_forex)// if forex { if(cand1.close<=cand2.open && cand1.close<=cand2.close && cand1.open>cand2.close) // doji inside the body of the first candlestick { DrawSignal(prefix+"Harami Cross the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } else { if(cand1.close<cand2.open && cand1.close<cand2.close && cand1.open>cand2.close) // doji inside the body of the first candlestick { DrawSignal(prefix+"Harami Cross the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } } // Harami Cross the bear model if(cand1.trend==UPPER && cand1.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand2.type==CAND_DOJI) // checking the "long" candlestick and doji { comment=_language?"Harami Cross"; if(_forex)// if forex { if(cand1.close>=cand2.open && cand1.close>=cand2.close && cand1.close>=cand2.close) // doji inside the body of the first candlestick { DrawSignal(prefix+"Harami Cross the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } else { if(cand1.close>cand2.open && cand1.close>cand2.close && cand1.open<cand2.close) // doji inside the body of the first candlestick { DrawSignal(prefix+"Harami Cross the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Harami (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. |
Harami (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. Il corpo della prima candela "lunga" ingloba completamente il corpo della seconda. Le ombre non contano. Forex: Chiusura delle bianco e apertura del fiammifero nero. Si suggerisce la conferma. |
//------ // Harami the bull model if(cand1.trend==DOWN && !cand1.bull && cand2.bull &&// check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // checking the "long"first candlestick cand2.type!=CAND_DOJI && cand1.bodysize>cand2.bodysize) // the second candlestick is not doji and the body of the first is larger than the body of the second { comment=_language?"Harami"; if(_forex)// if forex { if(cand1.close<=cand2.open && cand1.close<=cand2.close && cand1.open>cand2.close) // body of the second candlestick is inside the body of the first { DrawSignal(prefix+"Harami the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } else { if(cand1.close<cand2.open && cand1.close<cand2.close && cand1.open>cand2.close) // body of the second candlestick is inside the body of the first { DrawSignal(prefix+"Harami the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } } // Harami the bear model if(cand1.trend==UPPER && cand1.bull && !cand2.bull &&// check the trend direction and direction of candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // checking the "long" first candlestick cand2.type!=CAND_DOJI && cand1.bodysize>cand2.bodysize) // the second candlestick is not doji and body of the first candlestick is larger than that of the second { comment=_language?"Harami"; if(_forex)// if forex { if(cand1.close>=cand2.open && cand1.close>=cand2.close && cand1.close>=cand2.close) // doji is inside the body of the first candlestick { DrawSignal(prefix+"Harami the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } else { if(cand1.close>cand2.open && cand1.close>cand2.close && cand1.open<cand2.close) //doji is inside the body of the first candlestick { DrawSignal(prefix+"Harami the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Doji Star (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. |
Doji Star (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. La prima candela del pattern è lunga e bianca. La seconda sessione - doji con una pausa nella direzione del trend. Forex: nessuna pausa. Le ombre di doji sono brevi. Si suggerisce la conferma. |
//------ // Doji Star the bull model if(cand1.trend==DOWN && !cand1.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand2.type==CAND_DOJI) // checking 1 "long" candlestick and 2 doji { comment=_language?"Doji Star"; if(_forex)// if forex { if(cand1.close>=cand2.open) // open of doji is below or equal to close of the first candlestick { DrawSignal(prefix+"Doji Star the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } else { if(cand1.close>cand2.open && cand1.close>cand2.close) // the body of doji is alienated from the body of the first candlestick { DrawSignal(prefix+"Doji Star the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } } // Doji Star the bear model if(cand1.trend==UPPER && cand1.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand2.type==CAND_DOJI) // checking 1 "long" candlestick and 2 doji { comment=_language?"Doji Star"; if(_forex)// if forex { if(cand1.close<=cand2.open) // // open of doji is above or equal to close of the first candlestick { DrawSignal(prefix+"Doji Star the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } else { if(cand1.close<cand2.open && cand1.close<cand2.close) // // the body of doji is alienated from the body of the first candlestick { DrawSignal(prefix+"Doji Star the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Modello Piercing (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. Entrambi i candelieri sono lunghi. L'apertura della candela bianca è inferiore al minimo del nero. Forex: La Chiusura della candela nera e l'Apertura del bianco sono uguali. La candela bianca è chiusa all'interno di quella nera e copre più del 50% del corpo. (Per i mercati azionari: a differenza della copertura nuvolosa, questo requisito non ha eccezioni.) La conferma non è richiesta per il modello classico, è richiesta, invece, per Forex. |
Copertura di nuvole scure (Bear) | Sell | ![]() | ![]() | Trend al rialzo. Entrambi le candele sono lunghe. L'apertura della candela nera è sopra l'altezza della candela bianca. Forex: La chiusura della candela bianca e l'apertura della nera sono uguali. La candela nera si chiude all'interno del bianco e copre più del 50% del corpo. La conferma non è richiesta per il modello classico, è richiesta, invece, per Forex. |
//------ // Piercing line the bull model if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && cand2.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand2.close>(cand1.close+cand1.open)/2)// close of the second is above the middle of the first { comment=_language?"Piercing Line"; if(_forex)// if forex { if(cand1.close>=cand2.open && cand2.close<=cand1.open) { DrawSignal(prefix+"Gleam in clouds"+string(objcount++),cand1,cand2,InpColorBull,comment); } } else { if(cand2.open<cand1.low && cand2.close<=cand1.open) // open of the second candlestick is below LOW of the first, { DrawSignal(prefix+"Piercing Line"+string(objcount++),cand1,cand2,InpColorBull,comment); } } } // Dark Cloud Cover the bear model if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand2.close<(cand1.close+cand1.open)/2)// close 2 is below the middle of the body of 1 { comment=_language?"Dark Cloud Cover"; if(_forex)// if forex { if(cand1.close<=cand2.open && cand2.close>=cand1.open) { DrawSignal(prefix+"Dark Cloud Cover"+string(objcount++),cand1,cand2,InpColorBear,comment); } } else { if(cand1.high<cand2.open && cand2.close>=cand1.open) { DrawSignal(prefix+"Dark Cloud Cover"+string(objcount++),cand1,cand2,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Linee di Incontro (rialzista) | Buy | ![]() | Il modello non è implementato | Trend al ribasso. La prima candela del modello è long black. L'apertura della candela bianca si presenta con un ampio gap ed è al di sotto del minimo della candela nera. I prezzi di chiusura di entrambe le candele sono gli stessi. Il corpo della candela bianca è più grande del corpo della candela nera. Si suggerisce la conferma. |
Linee di Incontro (ribassista) | Sell | ![]() | Il modello non è implementato | Trend al rialzo. La prima candela del pattern è lunga e bianca. L'apertura della candela nera si presenta con un ampio gap ed è al di sopra del massimo della candela bianca. I prezzi di chiusura di entrambe le candele sono gli stessi. Il corpo della candela nera è più grande del corpo della candela bianca. Si suggerisce la conferma. |
// Meeting Lines the bull model if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && cand2.bull && // check the trend direction and the candlestick direction (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand1.close==cand2.close && cand1.bodysize<cand2.bodysize && cand1.low>cand2.open) // close prices are equal, size of the first one is less than of the second one, open of the second is below Low of the first { comment=_language?"Meeting Lines"; if(!_forex)// if not forex { DrawSignal(prefix+"Meeting Lines the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } // Meeting Lines the bear model if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && // check the trend direction and the candlestick direction (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand1.close==cand2.close && cand1.bodysize<cand2.bodysize && cand1.high<cand2.open) // // close prices are equal, size of first is less than of second, open of the second is above High of the first { comment=_language?"Meeting Lines"; if(!_forex)// if not forex { DrawSignal(prefix+"Meeting Lines the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Corrispondenza Bassa (rialzista) | Buy | ![]() | Il modello non è implementato | Trend al ribasso. La prima candela del pattern non deve essere necessariamente lunga. L'apertura della seconda candela è all'interno del corpo della prima. I prezzi di chiusura di entrambi i prezzi sono gli stessi. non ci sono ombre inferiori o sono molto corte. Si suggerisce la conferma. |
//------ // Matching Low the bull model if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && !cand2.bull && // check the trend direction and the candlestick direction cand1.close==cand2.close && cand1.bodysize>cand2.bodysize) // close prices are equal, size of the first one is larger than of the second { comment=_language?"Matching Low"; if(!_forex)// if not forex { DrawSignal(prefix+"Matching Low the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Piccione viaggiatore<br1(rialzista) Piccione viaggiatore rialzista | Buy | ![]() | Il modello non è implementato | Trend al ribasso. La prima candela del pattern non deve essere necessariamente lunga. L'apertura della seconda candela è all'interno del corpo della prima. I prezzi di chiusura di entrambi i prezzi sono gli stessi. non ci sono ombre inferiori o sono molto corte. Si suggerisce la conferma. |
//------ // Homing Pigeon the bull model if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && !cand2.bull && // check the trend direction and the candlestick direction (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand1.close<cand2.close && cand1.open>cand2.open) // body of the second is inside that of the first candlestick { comment=_language?"Homing Pigeon"; if(!_forex)// if not forex { DrawSignal(prefix+"Homing Pigeon the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } }
3.1.3. Pattern composti da tre candele
/* Checking patterns with three candlesticks */ CANDLE_STRUCTURE cand3; cand3=cand2; cand2=cand1; if(!RecognizeCandle(_Symbol,_Period,time[i-2],InpPeriodSMA,cand1)) continue;
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Abandoned Baby (rialzista) | Buy | ![]() | Il modello non è implementato | Questo è un modello di inversione raro ma importante. |
Abandoned Baby (ribassista) | Sell | ![]() | Il modello non è implementato | Questo è un modello di inversione raro ma importante. |
//------ // The Abandoned Baby, the bullish model if(cand1.trend==DOWN && !cand1.bull && cand3.trend==DOWN && cand3.bull && // check direction of trend and direction of candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // check of "long" candlestick cand2.type==CAND_DOJI && // check if the second candlestick is Doji cand3.close<cand1.open && cand3.close>cand1.close) // the third one is closed inside of body of the first one { comment=_language?"Abandoned Baby (Bull)":"Abandoned Baby"; if(!_forex)// if it's not forex { if(cand1.low>cand2.high && cand3.low>cand2.high) // gap between candlesticks { DrawSignal(prefix+"Abandoned Baby the bull model"+string(objcount++),cand1,cand1,cand3,InpColorBull,comment); } } } // The Abandoned Baby, the bearish model if(cand1.trend==UPPER && cand1.bull && cand3.trend==UPPER && !cand3.bull && // check direction of trend and direction of candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // check of "long" candlestick cand2.type==CAND_DOJI && // check if the second candlestick is Doji cand3.close>cand1.open && cand3.close<cand1.close) // // the third one is closed inside of body of the second one { comment=_language?"Abandoned Baby (Bear)":"Abandoned Baby"; if(!_forex)// if it's not forex { if(cand1.high<cand2.low && cand3.high<cand2.low) // gap between candlesticks { DrawSignal(prefix+"Abandoned Baby the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Stella del mattino (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. La prima e la terza sessione sono candele "lunghe". Le ombre delle stelle sono corte, il colore non ha importanza. Separazione della stella dalla Chiusura della prima candela. Forex: La Chiusura della prima candela e l'Apertura della stella sono uguali. La terza candela è chiusa all'interno del corpo della prima. |
Stella della Sera (ribassista) | Sell | | | Trend al rialzo. La prima e la terza sessione sono candele "lunghe". Le ombre delle stelle sono corte, il colore non ha importanza. Separazione della stella dalla Chiusura della prima candela. Forex: La Chiusura della prima candela e l'Apertura della stella sono uguali. La terza candela è chiusa all'interno del corpo della prima. |
// Morning star the bull model if(cand1.trend==DOWN && !cand1.bull && cand3.trend==DOWN && cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand2.type==CAND_SHORT && // checking "short" cand3.close>cand1.close && cand3.close<cand1.open) // the third candlestick is closed inside the body of the first one { comment=_language?"Morning star"; if(_forex)// if forex { if(cand2.open<=cand1.close) // open of the second candlestick is below or equal to close of the first one { DrawSignal(prefix+"Morning star the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } else // another market { if(cand2.open<cand1.close && cand2.close<cand1.close) // separation of the second candlestick from the first one { DrawSignal(prefix+"Morning star the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } } // Evening star the bear model if(cand1.trend==UPPER && cand1.bull && cand3.trend==UPPER && !cand3.bull && //check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand2.type==CAND_SHORT && // checking "short" cand3.close<cand1.close && cand3.close>cand1.open) // the third candlestick is closed inside the body of the first one { comment=_language?"Evening star"; if(_forex)// if forex { if(cand2.open>=cand1.close) // open of the second is above or equal to close of the first one { DrawSignal(prefix+"Evening star the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } else // another market { if(cand2.open>cand1.close && cand2.close>cand1.close) // separation of the second candlestick from the first one { DrawSignal(prefix+"Evening star the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Stella del Mattino Doji (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. La prima candela del modello è long black. La seconda sessione - doji con una pausa nella direzione del trend. Forex: nessuna pausa. Le ombre di doji sono brevi. La terza candela è chiusa all'interno del corpo della prima. |
Stella della Sera Doji (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. La prima candela del pattern è lunga e bianca. La seconda sessione - doji con una pausa nella direzione del trend. Forex: nessuna pausa. Le ombre di doji sono brevi. Si suggerisce la conferma. |
//------ // Morning Doji Star the bull model if(cand1.trend==DOWN && !cand1.bull && cand3.trend==DOWN && cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand2.type==CAND_DOJI && // checking "doji" cand3.close>cand1.close && cand3.close<cand1.open) // third cand. is closed inside body of first { comment=_language?"Morning Doji Star"; if(_forex)// if forex { if(cand2.open<=cand1.close) // open of doji is below or equal to close of the first { DrawSignal(prefix+"Morning Doji Star the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } else // another market { if(cand2.open<cand1.close) // separation of doji from the first { DrawSignal(prefix+"Morning Doji Star the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } } // Evening Doji Star the bear model if(cand1.trend==UPPER && cand1.bull && cand3.trend==UPPER && !cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand2.type==CAND_DOJI && // checking "doji" cand3.close<cand1.close && cand3.close>cand1.open) // third cand. is closed inside body of first { comment=_language?"Evening Doji Star"; if(_forex)// if forex { if(cand2.open>=cand1.close) // open of doji is above or equal to close of the first { DrawSignal(prefix+"Evening Doji Star the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } else // another market { if(cand2.open>cand1.close) // separation of doji from the first // check close 2 and open 3 { DrawSignal(prefix+"Evening Doji Star the bear model"+string(objcount++),cand1,cand3,cand3,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Gap Ribassista al Rialzo Due Corvi | Sell | ![]() | Il modello non è implementato | Trend al rialzo. La prima candela è bianca "lunga". Il gap tra candele bianche e nere. La terza candela si apre più in alto della seconda e la ingloba. Si suggerisce la conferma. Il significato del modello: se i prezzi non possono salire durante la 4a sessione, dovremmo aspettarci che i prezzi diminuiscano. |
Due Corvi (ribassista) | Sell | ![]() | Il modello non è implementato | Trend al rialzo. La prima candela del pattern è lunga e bianca. Il gap tra il bianco e la prima candela nera. La terza candela è nera e necessariamente "lunga"; si apre all'interno o al di sopra della seconda e si chiude all'interno o al di sotto della candela bianca, coprendo il gap. Si suggerisce la conferma. Se il secondo corvo (la terza candela) ingloba una candela bianca, la conferma non è richiesta. |
//------ // Upside Gap Two Crows the bear model if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && cand3.trend==UPPER && !cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand1.close<cand2.close && cand1.close<cand3.close && // separation of the second and third from the first one cand2.open<cand3.open && cand2.close>cand3.close) // the third candlestick engulfs second { comment=_language?"Upside Gap Two Crows"; if(!_forex)// if not forex { DrawSignal(prefix+"Upside Gap Two Crows the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } //------ // Two Crows the bear model if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && cand3.trend==UPPER && !cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG|| cand1.type==CAND_MARIBOZU_LONG) &&(cand3.type==CAND_LONG|| cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand1.close<cand2.close && // separation of the second from the first one cand3.open>cand2.close && // third one opens higher than close of the second cand3.close<cand1.close) // third one closes than close of the first { comment=_language?"Two Crows"; if(!_forex)// if not forex { DrawSignal(prefix+"Two Crows the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Tre Stelle al Sud (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. La prima candela è una lunga giornata nera con una lunga ombra inferiore. La seconda candela è più corta della prima, il suo minimo è al di sopra del minimo della prima candela. La terza candela è un piccolo marubozu nero o una stella, un giorno interno rispetto alla seconda sessione. Si suggerisce la conferma. |
Deliberation (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. Tre candele bianche con prezzi di chiusura più alti. Le prime due candele sono giorni lunghi. Il prezzo di apertura di ogni candela è all'interno del corpo della precedente. Forex: i prezzi di apertura/chiusura delle candele bianche sono gli stessi. La terza candela si apre circa al livello di chiusura della seconda candela. la terza candela è una stella o uno spinning top. Si suggerisce la conferma. |
//------ // Three Star in the South the bull model if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && !cand3.bull && //check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand3.type==CAND_MARIBOZU || cand3.type==CAND_SHORT) && // checking the "long" candlestick and marubozu cand1.bodysize>cand2.bodysize && cand1.low<cand2.low && cand3.low>cand2.low && cand3.high<cand2.high) { comment=_language?"Three Star in the South"; if(_forex)// if forex { DrawSignal(prefix+"Three Star in the South the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } else // another market { if(cand1.close<cand2.open && cand2.close<cand3.open) // open is inside the previous candlestick { DrawSignal(prefix+"Three Star in the South the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } } // Deliberation the bear model if(cand1.trend==UPPER && cand1.bull && cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick (cand3.type==CAND_SPIN_TOP || cand3.type==CAND_SHORT)) // the third candlestick is a star or spinning top { comment=_language?"Deliberation"; if(_forex)// if forex { DrawSignal(prefix+"Deliberation the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } else // another market { if(cand1.close>cand2.open && cand2.close<=cand3.open) // open is inside the previous candlestick // check close 2 and open 3 { DrawSignal(prefix+"Deliberation the bear model"+string(objcount++),cand1,cand3,cand3,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Tre Soldati Bianchi (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. Tre lunghe candele bianche compaiono una dopo l'altra, il prezzo di chiusura di ciascuna di esse è superiore a quello della precedente. Il prezzo di apertura di ogni soldato è all'interno del corpo della candela precedente. Forex: La chiusura/apertura dei soldati è la stessa. Le ombre superiori dei soldati sono corte. La conferma non è richiesta. |
Tre Corvi Neri (ribassista) | Sell | ![]() | Il modello non è implementato | Trend al rialzo. Tre lunghe candele nere appaiono una dopo l'altra, il prezzo di chiusura di ciascuna di esse è inferiore a quello della precedente. Il prezzo di apertura di ogni corvo è all'interno del corpo della candela precedente. Forex: corrisponde al modello tre corvi Identici. Le ombre inferiori dei corvi sono corte. La conferma non è richiesta. |
//------ // Three White Soldiers the bull model if(cand1.trend==DOWN && cand1.bull && cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick and marubozu (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG)) // checking the "long" candlestick and marubozu { comment=_language?"Three White Soldiers"; if(_forex)// if forex { DrawSignal(prefix+"Three White Soldiers the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } else // another market { if(cand1.close>cand2.open && cand2.close>cand3.open) // open inside the previous candlestick { DrawSignal(prefix+"Three White Soldiers the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } } // Three Black Crows the bear model if(cand1.trend==UPPER && !cand1.bull && !cand2.bull && !cand3.bull && //check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick and marubozu (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick and marubozu cand1.close<cand2.open && cand2.close<cand3.open) { comment=_language?"Three Black Crows"; if(!_forex) // non-forex { DrawSignal(prefix+"Three Black Crows the bear model"+string(objcount++),cand1,cand3,cand3,InpColorBear,comment); } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Tre Fuori Su (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. Per prima cosa si forma il pattern di Engulfing (toro): il corpo della seconda candela copre completamente il corpo della prima. Forex: La chiusura di una candela nera e l'apertura di quella bianca sono uguali. Le ombre non contano. Poi, il terzo giorno c'è una chiusura più alta. La conferma non è richiesta: lo schema stesso è una conferma per il toro Engulfing |
Tre Fuori Giù (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. Per prima cosa si forma il pattern di Engulfing (orso): il corpo della seconda candela copre completamente il corpo della prima. Forex: La Chiusura della candela bianca e l’Apertura del primo fiammifero nero. Le ombre non contano. Poi, il terzo giorno c'è una chiusura più bassa. La conferma non è richiesta: lo schema stesso è una conferma per l'orso Engulfing |
//------ // Three Outside Up the bull model if(cand1.trend==DOWN && !cand1.bull && cand2.trend==DOWN && cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick cand2.bodysize>cand1.bodysize && // the body of the second candlestick is larger than that of the first cand3.close>cand2.close) // the third day is closed higher than the second { comment=_language?"Three Outside Up"; if(_forex)// if forex { if(cand1.close>=cand2.open && cand1.open<cand2.close) // the body of the first candlestick is inside the body of the second { DrawSignal(prefix+"Three Outside Up the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } else { if(cand1.close>cand2.open && cand1.open<cand2.close) // the body of the first candlestick is inside the body of the second { DrawSignal(prefix+"Three Outside Up the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } } // Three Outside Down the bear model if(cand1.trend==UPPER && cand1.bull && cand2.trend==UPPER && !cand2.bull && !cand3.bull && // check the trend direction and direction of the candlestick cand2.bodysize>cand1.bodysize && // the body of the second candlestick is larger than that of the first cand3.close<cand2.close) // the third day is closed lower than the second { comment=_language?"Three Outside Down"; if(_forex)// if forex { if(cand1.close<=cand2.open && cand1.open>cand2.close) // the body of the first candlestick is inside the body of the second { DrawSignal(prefix+"Three Outside Down the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } else { if(cand1.close<cand2.open && cand1.open>cand2.close) // the body of the first candlestick is inside the body of the second { DrawSignal(prefix+"Three Outside Down the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Tre Dentro Su (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. Nelle prime due sedute si forma il pattern Harami (toro): un piccolo corpo bianco viene inglobato da un grande corpo nero. La chiusura della terza sessione è superiore al massimo delle prime due candele. La conferma non è richiesta: il modello stesso è una conferma per il toro Harami. |
Tre Dentro Giù (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. Nelle prime due sedute si forma il pattern Harami (orso): un piccolo corpo nero viene inglobato da un grande corpo bianco. La chiusura della terza sessione è inferiore al minimo delle prime due candele. La conferma non è richiesta: il modello stesso è una conferma per l'orso Harami. |
//------ // Three Inside Up the bull model if(cand1.trend==DOWN && !cand1.bull && cand2.bull && cand3.bull && //check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && //checking the "long" candlestick cand1.bodysize>cand2.bodysize && // the body of the first candlestick is larger than that of the second one cand3.close>cand2.close) // the third day closes higher than the second { comment=_language?"Three Inside Up"; if(_forex)// if forex { if(cand1.close<=cand2.open && cand1.close<=cand2.close && cand1.open>cand2.close) // the body of the second candlestick is inside the body of the first one { DrawSignal(prefix+"Three Inside Up the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } else { if(cand1.close<cand2.open && cand1.close<cand2.close && cand1.open>cand2.close) // the body of the second candlestick is inside the body of the first one { DrawSignal(prefix+"Three Inside Up the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } } // Three Inside Down the bear model if(cand1.trend==UPPER && cand1.bull && !cand2.bull && !cand3.bull &&//check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick cand1.bodysize>cand2.bodysize && // the body of the first candlestick is larger than that of the second one cand3.close<cand2.close) // the third day closes lower than the second { comment=_language?"Three Inside Down"; if(_forex)// if forex { if(cand1.close>=cand2.open && cand1.close>=cand2.close && cand1.close>=cand2.close) // inside the body of the first candlestick { DrawSignal(prefix+"Three Inside Down the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } else { if(cand1.close>cand2.open && cand1.close>cand2.close && cand1.open<cand2.close) // inside the body of the first candlestick { DrawSignal(prefix+"Three Inside Down the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Tre Stelle (rialzista) | Buy | ![]() | ![]() | Trend al ribasso. Il gap tra la prima doji e le candele precedenti non è richiesto. Tutti e tre i candelieri sono doji. Il doji centrale ha un gap in alto o in basso. Forex: tutte e tre le doji sono su un unico livello. Si suggerisce la conferma. |
Tre Stelle (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. Il gap tra la prima doji e le candele precedenti non è richiesto. Tutti e tre i candelieri sono doji. Il doji centrale ha un gap in alto o in basso. Forex: tutte e tre le doji sono su un unico livello. Si suggerisce la conferma. |
//------ // Three Stars the bull model if(cand1.trend==DOWN && // check the trend direction cand1.type==CAND_DOJI && cand2.type==CAND_DOJI && cand3.type==CAND_DOJI) // check doji { comment=_language?"Bullish Three Stars"; if(_forex)// if forex { DrawSignal(prefix+"Three Stars the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } else { if(cand2.open!=cand1.close && cand2.close!=cand3.open) // the second candlestick is on a different level { DrawSignal(prefix+"Three Stars the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } } // Three Stars the bear model if(cand1.trend==UPPER && // check the trend direction cand1.type==CAND_DOJI && cand2.type==CAND_DOJI && cand3.type==CAND_DOJI) // check doji { comment=_language?"Bearish Three Stars"; if(_forex)// if forex { DrawSignal(prefix+"Three Stars the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } else { if(cand2.open!=cand1.close && cand2.close!=cand3.open) // the second candlestick is on a different level { DrawSignal(prefix+"Three Stars the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Tre Corvi Identici (ribassista) | Sell | ![]() | ![]() | Trend al rialzo. Tre lunghe candele nere appaiono una dopo l'altra, il prezzo di chiusura di ciascuna di esse è inferiore a quello della precedente. Il prezzo di apertura di ogni corvo è approssimativamente uguale alla chiusura della candela precedente. Le ombre inferiori dei corvi sono corte. La conferma non è richiesta. |
// Identical Three Crows the bear model if(cand1.trend==UPPER && !cand1.bull && !cand2.bull && !cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // checking the "long" candlestick or marubozu (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG)) // checking the "long" candlestick or marubozu { comment=_language?"Identical Three Crows"; if(_forex)// if forex { DrawSignal(prefix+"Identical Three Crows the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } else // a different market { if(cand1.close>=cand2.open && cand2.close>=cand3.open) // open is less or equal to close of the preceding candlestick { DrawSignal(prefix+"Identical Three Crows the bear model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Unique Three River Bottom (rialzista) | Buy | ![]() | Il modello non è implementato | Trend al ribasso. La prima candela del modello è lunga nera con ombre corte. Il secondo giorno appare Harami, ma con un corpo nero. L'ombra inferiore del secondo giorno dà un nuovo minimo. Il terzo giorno è un breve giorno bianco inferiore al giorno centrale. La conferma non è necessaria ma preferibile. |
// Unique Three River Bottom the bull model if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && cand3.bull && // check the trend direction and the candlestick direction (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && cand3.type==CAND_SHORT && // check the "long" candlestick or "marubozu" third short day cand2.open<cand1.open && cand2.close>cand1.close && cand2.low<cand1.low && // body of the second candlestick is inside the first, Low is lower than the first cand3.close<cand2.close) // the third candlestick is below the second { comment=_language?"Unique Three River Bottom"; if(!_forex)// non-forex { DrawSignal(prefix+"Unique Three River Bottom the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } }
3.1.4. Pattern composti da quattro candele
/* Checking patterns with four candlesticks */ CANDLE_STRUCTURE cand4; cand4=cand3; cand3=cand2; cand2=cand1; if(!RecognizeCandle(_Symbol,_Period,time[i-3],InpPeriodSMA,cand1)) continue;
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Concealing Baby Swallow (toro) | Buy | ![]() | Il modello non è implementato | Trend al ribasso. Le prime due sessioni sono due marubozu neri. La terza sessione si apre con un break down, ma le operazioni vengono effettuate all'interno del corpo della seconda candela, il che porta alla formazione di una lunga upper shadow. La quarta candela nera ingloba completamente la terza, inclusa l'ombra. La conferma non è richiesta. |
//------ // Concealing Baby Swallow the bull model if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && !cand3.bull && !cand4.bull && // check the trend direction and the candlestick direction cand1.type==CAND_MARIBOZU_LONG && cand2.type==CAND_MARIBOZU_LONG && cand3.type==CAND_SHORT && // checking "marubozu" cand3.open<cand2.close && cand3.high>cand2.close && // third candlestick with a gap down, High is inside the 2nd candlestick cand4.open>cand3.high && cand4.close<cand3.low) // the fourth candlestick completely engulfs the third { comment=_language?"Concealing Baby Swallow"; if(!_forex)// non-forex { DrawSignal(prefix+"Concealing Baby Swallow the bull model"+string(objcount++),cand1,cand2,cand4,InpColorBull,comment); } }
3.1.5. Pattern composti da due candele
/* Checking patterns with five candlesticks */ CANDLE_STRUCTURE cand5; cand5=cand4; cand4=cand3; cand3=cand2; cand2=cand1; if(!RecognizeCandle(_Symbol,_Period,time[i-4],InpPeriodSMA,cand1)) continue;
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Breakaway (rialzista) | Buy | ![]() | Il modello non è implementato | Trend al ribasso. Le prime due sessioni: una candela nera "lunga" e una candela nera "corta" (stella) con un gap vuoto. La terza sessione è "breve", può essere di qualsiasi colore. La quarta candela è "Corta" nera. Il quinto è bianco "lungo" con Close all'interno del gap. Si suggerisce la conferma. |
Breakaway (ribassista) | Sell | ![]() | Il modello non è implementato | Trend al rialzo. Le prime due sessioni: una candela bianca "lunga" e una candela bianca "corta" (stella) con uno spazio vuoto. La terza sessione è una candela "corta", può essere di qualsiasi colore. Il quarto giorno è bianca "corta". Il quinto è "lunga" nera con Chiusura all'interno del gap. Si suggerisce la conferma. |
//------ // Breakaway the bull model if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && !cand4.bull && cand5.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG|| cand1.type==CAND_MARIBOZU_LONG) && //checking the "long" first candlestick cand2.type==CAND_SHORT && cand2.open<cand1.close && // the second is "short", separated from the first cand3.type==CAND_SHORT && cand4.type==CAND_SHORT && // third and fourth are "short" (cand5.type==CAND_LONG || cand5.type==CAND_MARIBOZU_LONG) && cand5.close<cand1.close && cand5.close>cand2.open) // fifth is "long" white with close inside the gap { comment=_language?"Bullish Breakaway"; if(!_forex)// non-forex { DrawSignal(prefix+"Breakaway the bull model"+string(objcount++),cand1,cand2,cand5,InpColorBull,comment); } } // Breakaway the bear model if(cand1.trend==UPPER && cand1.bull && cand2.bull && cand4.bull && !cand5.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG|| cand1.type==CAND_MARIBOZU_LONG) && // checking the "long" first candlestick cand2.type==CAND_SHORT && cand2.open<cand1.close && // the second is "short", separated from the first cand3.type==CAND_SHORT && cand4.type==CAND_SHORT && // third and fourth are "short" (cand5.type==CAND_LONG || cand5.type==CAND_MARIBOZU_LONG) && cand5.close>cand1.close && cand5.close<cand2.open) // fifth is "long" black with close inside the gap { comment=_language?"Bearish Breakaway"; if(!_forex)// non-forex { DrawSignal(prefix+"Breakaway the bear model"+string(objcount++),cand1,cand2,cand5,InpColorBear,comment); } }
3.2. MODELLI DI CONTINUAZIONE
I modelli di continuazione sono il momento in cui il mercato è a riposo.
Qualunque sia il modello, devi prendere una decisione sulla tua posizione attuale, anche se non deve cambiare nulla.
3.2.1. Pattern costituiti da una singola candela
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Kicking (rialzista) | Buy | ![]() | Il modello non è implementato | Il "marubozu" nero è seguito dal "marubozu" bianco. C'è un gap tra i corpi. La conferma non è richiesta. |
Kicking (ribassista) | Sell | ![]() | Il modello non è implementato | Il "marubozu" bianco è seguito dal "marubozu" nero. C'è un gap tra i corpi. La conferma non è richiesta. |
//------ // Kicking the bull model if(!cand1.bull && cand2.bull && // check the trend direction and direction of the candlestick cand1.type==CAND_MARIBOZU_LONG && cand2.type==CAND_MARIBOZU_LONG && // two marubozu cand1.open<cand2.open) // a gap between them { comment=_language?"Bullish Kicking"; if(!_forex)// if non-forex { DrawSignal(prefix+"Kicking the bull model"+string(objcount++),cand1,cand2,InpColorBull,comment); } } // Kicking the bear model if(cand1.bull && !cand2.bull && // check the trend direction and direction of the candlestick cand1.type==CAND_MARIBOZU_LONG && cand2.type==CAND_MARIBOZU_LONG && // two marubozu cand1.open>cand2.open) // a gap between them { comment=_language?"Bearish Kicking"; if(!_forex)// if non-forex { DrawSignal(prefix+"Kicking the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } }
3.2.2. Pattern composti da due candele
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Ribassista sulla Linea del Collo | Sell | ![]() | Il modello non è implementato | Trend al ribasso. La prima candela del modello è long black. La candela bianca chiude al di sotto del minimo di quella nera e chiude circa al minimo della candela nera. La candela bianca - non necessariamente una lunga giornata. Si suggerisce la conferma. |
Nella Linea del Collo (ribassista) | Sell | ![]() | Il modello non è implementato | Trend al ribasso. La prima candela del modello è long black. La candela bianca si apre al di sotto del minimo della candela nera e chiude un po' più in alto della Chiusura della candela nera. La candela bianca - non necessariamente una lunga giornata. Il corpo della candela bianca è più piccolo del corpo di quella nera. L'ombra superiore della candela bianca è molto piccola. Si suggerisce la conferma. |
Linea di spinta (ribassista) | Sell | ![]() | Il modello non è implementato | Trend al ribasso. La prima candela del modello è long black. La candela bianca si apre al di sotto del minimo di quella nera e chiude al di sopra della Chiusura della candela nera, ma il prezzo di chiusura è ancora al di sotto della metà di quest’ultima. La candela bianca - non necessariamente una lunga giornata. Si suggerisce la conferma. |
Questi tre modelli hanno molto in comune, quindi la loro implementazione è leggermente diversa, per favore presta attenzione.
//------ Check On Neck patterns if(cand1.trend==DOWN && !cand1.bull && cand2.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG)) // the first candlestick is "long" { // On Neck Line the bear model if(cand2.open<cand1.low && cand2.close==cand1.low) // the second candlestick opens below 1st and closes at Low of the first { comment=_language?"On Neck Line Bear"; if(!_forex)// if not forex { DrawSignal(prefix+"On Neck Line the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } else { // In Neck Line the bear model if(cand1.trend==DOWN && !cand1.bull && cand2.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // the first candlestick is "long" cand1.bodysize>cand2.bodysize && // body of 2nd candlestick is smaller than that of the 1st one cand2.open<cand1.low && cand2.close>=cand1.close && cand2.close<(cand1.close+cand1.bodysize*0.01)) // the second candlestick opens lower than first and closes a little higher than Close of the first { comment=_language?"In Neck Line Bear"; if(!_forex)// если не форекс { DrawSignal(prefix+"In Neck Line the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } else { // Thrusting Line the bear model if(cand1.trend==DOWN && !cand1.bull && cand2.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && // the first candlestick is "long" cand2.open<cand1.low && cand2.close>cand1.close && cand2.close<(cand1.open+cand1.close)/2) // the second candlestick opens lower than first and closes a higher than Close of the first but lower than middle { comment=_language?"Thrusting Line Bea"; if(!_forex)// if non-forex { DrawSignal(prefix+"Thrusting Line the bear model"+string(objcount++),cand1,cand2,InpColorBear,comment); } } } } }
3.2.3. Modello composti da tre candele
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Gap al Rialzo Tre metodi (rialzista) | Buy | ![]() | Il modello non è implementato | Trend al rialzo. Le prime due candele sono due candele bianche "lunghe" con un gap vuoto. La terza candela si apre all'interno del corpo della seconda e riempie il gap. Si suggerisce la conferma. |
Gap al Rialzo Tre metodi (ribassista) | Sell | ![]() | Il modello non è implementato | Trend al ribasso. Le prime due candele sono nere "lunghe" con un gap vuoto. La terza candela si apre all'interno del corpo della seconda e riempie il gap. Si suggerisce la conferma. |
//------ // Upside Gap Three Methods the bull model if(cand1.trend==UPPER && cand1.bull && cand2.bull && !cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // the first two candlesticks are "long" cand2.open>cand1.close && // a gap between the first and the second cand3.open>cand2.open && cand3.open<cand2.close && cand3.close<cand1.close) // the third candlestick opens inside the body of the second and fills in the gap { comment=_language?"Upside Gap Three Methods"; if(!_forex)// non-forex { DrawSignal(prefix+"Upside Gap Three Methods the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } //------ // Downside Gap Three Methods the bull model if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // the first two candlesticks are "long" cand2.open<cand1.close && // a gap between the first and the second cand3.open<cand2.open && cand3.open>cand2.close && cand3.close>cand1.close) //the third candlestick opens inside the body of the second and fills in the gap { comment=_language?"Downside Gap Three Methods"; if(!_forex)// non-forex { DrawSignal(prefix+"Downside Gap Three Methods the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } }
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del modello |
---|---|---|---|---|
Gap Tasuki al rialzo (rialzista) | Buy | ![]() | Il modello non è implementato | Trend al rialzo. Il gap tra due candele bianche vicine. Le candele bianche non sono necessariamente "lunghe". La terza sessione si apre all'interno del corpo della seconda candela. La terza sessione si chiude all'interno del gap, ma il gap è parzialmente colmato. Si suggerisce la conferma. |
Rovescio della Medaglia Tasuki Gap (ribassista) | Sell | ![]() | Il modello non è implementato | Trend al ribasso. Il gap tra due candele nere vicine. Le candele nere non sono necessariamente "lunghe". La terza sessione si apre all'interno del corpo della seconda candela. La terza sessione si chiude all'interno del gap, ma il gap è parzialmente colmato. Si suggerisce la conferma. |
//------ // Upside Tasuki Gap the bull model if(cand1.trend==UPPER && cand1.bull && cand2.bull && !cand3.bull && // check the trend direction and direction of the candlestick cand1.type!=CAND_DOJI && cand2.type!=CAND_DOJI && // the first two candlesticks are not doji cand2.open>cand1.close && // a gap between the first and the second cand3.open>cand2.open && cand3.open<cand2.close && cand3.close<cand2.open && cand3.close>cand1.close) // 3rd candlestick opens inside 2nd and closes inside the gap { comment=_language?"Upside Tasuki Gap"; if(!_forex)// non-forex { DrawSignal(prefix+"Upside Tasuki Gap the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBull,comment); } } //------ // Downside Tasuki Gap the bull model if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && cand3.bull && // check the trend direction and direction of the candlestick cand1.type!=CAND_DOJI && cand2.type!=CAND_DOJI && // the first two candlesticks are not doji cand2.open<cand1.close && // a gap between the first and the second cand3.open<cand2.open && cand3.open>cand2.close && cand3.close>cand2.open && cand3.close<cand1.close) // 3rd candlestick opens inside 2nd and closes inside the gap { comment=_language?"Downside Tasuki Gap"; if(!_forex)// non-forex { DrawSignal(prefix+"Downside Tasuki Gap the bull model"+string(objcount++),cand1,cand2,cand3,InpColorBear,comment); } }
3.2.4. Pattern composti da quattro candelieri
Nome del Modello | Ordine | Modello classico | Forex | Riconoscimento del pattern |
---|---|---|---|---|
Colpo a tre linee (rialzista) | Buy | ![]() | ![]() | Continua il trend rialzista con tre candele, simile al pattern Tre soldati bianchi: lunghe candele bianche con ombre corte. Forex: I prezzi di apertura/chiusura delle candele bianche sono gli stessi. La quarta candela si apre con un gap up e si chiude sotto l'apertura della prima candela bianca. Forex: la chiusura della 3° e l'apertura della 4° candela sono uguali. Si suggerisce la conferma. |
Strike su Tre Linee (ribassista) | Sell | ![]() | ![]() | Continua il trend ribassista con tre candele, simile al pattern Three black crows: lunghe candele nere con ombre corte. Forex: I prezzi di apertura/chiusura delle candele nere sono gli stessi (simili ai tre corvi identici). La quarta candela si apre con un gap verso il basso e si chiude sopra l'apertura della prima candela nera. Forex: la chiusura della 3° e l'apertura della 4° candela sono uguali. Si suggerisce la conferma. |
//------ // Three-line strike the bull model if(cand1.trend==UPPER && cand1.bull && cand2.bull && cand3.bull && !cand4.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // check the "long: candlestick or "maruozu" (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // check the "long: candlestick or "maruozu" cand2.close>cand1.close && cand3.close>cand2.close && cand4.close<cand1.open) // close of 2nd is higher than 1st, that of 3rd is higher than 2nd, the fourth candlestick closes lower than the 1st { comment=_language?"Three-line strike"; if(_forex)// if forex { if(cand4.open>=cand3.close) // 4th opens higher than the 3rd { DrawSignal(prefix+"Three-line strike the bull model"+string(objcount++),cand1,cand3,cand4,InpColorBull,comment); } } else // a different market { if(cand4.open>cand3.close) // 4th opens higher than th 3rd { DrawSignal(prefix+"Three-line strike the bull model"+string(objcount++),cand1,cand3,cand4,InpColorBull,comment); } } } //------ // Three-line strike the bear model if(cand1.trend==DOWN && !cand1.bull && !cand2.bull && !cand3.bull && cand4.bull && // check the trend direction and direction of the candlestick (cand1.type==CAND_LONG || cand1.type==CAND_MARIBOZU_LONG) && (cand2.type==CAND_LONG || cand2.type==CAND_MARIBOZU_LONG) && // check the "long: candlestick or "maruozu" (cand3.type==CAND_LONG || cand3.type==CAND_MARIBOZU_LONG) && // check the "long: candlestick or "maruozu" cand2.close<cand1.close && cand3.close<cand2.close && cand4.close>cand1.open) // close of 2nd is lower than 1st, close of 3rd is lower than 2nd, the fourth candlestick closes higher than 1st { comment=_language?"Three-line strike"; if(_forex)// if forex { if(cand4.open<=cand3.close) // the fourth opens lower than or equal to the third { DrawSignal(prefix+"Three-line strike the bear model"+string(objcount++),cand1,cand3,cand4,InpColorBear,comment); } } else // a different market { if(cand4.open<cand3.close) // the fourth opens lower than 3rd { DrawSignal(prefix+"Three-line strike the bear model"+string(objcount++),cand1,cand3,cand4,InpColorBear,comment); } } }
4. L'implementazione dell'indicatore
Selezioniamo i parametri di input richiesti.
Figura 3. Parametri di input dell'indicatore Modelli di Candele
Il primo parametro è il "periodo medio" - ne abbiamo bisogno per determinare la direzione del trend, definendo le candele "lunghe" e "corte".
Il parametro successivo è "Abilita segnale" - responsabile dell'abilitazione/disabilitazione del segnale. Il segnale notifica che è apparso un nuovo modello.
Figura 4. Segnali generati dall'indicatore Modelli di Candele
Il parametro "Numero di barre per il calcolo" è progettato per facilitare il lavoro dell'indicatore. Se il suo valore è minore o uguale a 0 i modelli di candele vengono cercati attraverso l'intera cronologia disponibile, altrimenti viene utilizzato per la ricerca un determinato numero di barre che facilita notevolmente il lavoro dell'indicatore.
Penso che tutto sia chiaro con i colori...
"Abilita commenti" significa abilitare/disabilitare i nomi dei modelli di candele.
"Dimensione carattere" imposta la dimensione del carattere per i commenti.
L'implementazione dell'indicatore è molto semplice.
Aspettati la comparsa di una nuova barra:
//--- Wait for a new bar if(rates_total==prev_calculated) { return(rates_total); }
Quindi calcoliamo il valore iniziale del contatore per avviare il ciclo.
int limit; if(prev_calculated==0) { if(InpCountBars<=0 || InpCountBars>=rates_total) limit=InpPeriodSMA*2; else limit=rates_total-InpCountBars; } else limit=prev_calculated-1;
Nel ciclo controlliamo le combinazioni di candele e le visualizziamo come mostrato in Fig. 5:
- Combinazione con una candela: una freccia con il nome del modello sopra o sotto.
- Combinazione con due candele: un rettangolo sottile con il nome del pattern sopra o sotto la prima candela.
- Combinazione con tre o più candele: un rettangolo spesso con il nome del modello sopra o sotto l'ultima candela.
Figura 5. Esempio di come funziona l'indicatore Modelli di Candele
Si noti che a causa della possibilità di sovraccarico delle funzioni, l'output di segni di modelli diversi viene eseguito tramite le funzioni con lo stesso nome DrawSignal(), ma con numeri di parametri diversi.
void DrawSignal(string objname,CANDLE_STRUCTURE &cand,color Col,string comment)
void DrawSignal(string objname,CANDLE_STRUCTURE &cand1,CANDLE_STRUCTURE &cand2,color Col,string comment)
void DrawSignal(string objname,CANDLE_STRUCTURE &cand1,CANDLE_STRUCTURE &cand2,CANDLE_STRUCTURE &cand3,color Col,string comment)
Il testo completo dell'indicatore si trova nel file Candlestick_Patterns.mq5 allegato a questo articolo.
Conclusione
In questo articolo abbiamo esaminato la maggior parte dei modelli di candele, i metodi per rilevarli e fornito esempi su come implementarli nel linguaggio di programmazione MQL5. L'allegato all'articolo contiene due indicatori e un file di inclusione. Per usarli, posiziona gli indicatori nella cartella \Indicators e includi il file nella cartella \Include, quindi compilali.
Spero che l'analisi dei modelli di candele ti aiuti a migliorare i risultati del tuo lavoro.
Guardando al futuro, vorrei aggiungere che le candele filtrate danno risultati migliori rispetto alla maggior parte degli indicatori tecnici, ma parleremo di questo argomento nel seguente articolo, in cui creerò un sistema di trading e un Expert Advisor di trading da parte dei modelli di candele.
Tradotto dal russo da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/ru/articles/101





- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso