Unisciti alla nostra fan page
- Visualizzazioni:
- 43
- Valutazioni:
- Pubblicato:
-
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance
Rilevamento del pattern spike rialzista
-
Schema a 3 barre:
-
1a candela: Verde con corpo ampio (spike rialzista).
-
2a candela: Rossa (pullback).
-
3a candela: Verde con corpo largo (spike rialzista).
-
-
Quando appare questo schema, si crea una zona.
Creazione della zona
-
Viene tracciato un rettangolo blu dall'intervallo alto/basso delle 3 candele.
-
Una linea di ingresso orizzontale verde lime viene tracciata al prezzo di apertura della candela centrale (2a).
-
La linea si estende nel futuro fino al ritorno del prezzo.
INGRESSI SPIEGATI
mq5 input color BoxColor = clrBlue; // Colore della scatola del motivo a 3 candele input color EntryLineColor = clrLime; // Colore della linea di ingresso input ENUM_LINE_STYLE EntryLineStyle = STYLE_SOLID; // Stile della riga di ingresso input int BoxWidth = 2; // Larghezza del bordo della scatola input int EntryLineWidth = 2; // Larghezza della riga di ingresso input int EntryLineLength = 200; // Quanto si estende la linea di mitigazione ``` These inputs let you fully control the style of the box and entry line.
IDEA PRINCIPALE
Cerchiamo un modello rialzista a 3 candele
1. Prima candela - forte rialzo (spike)
2. Seconda candela: ritracciamento ribassista.
3. Terza candela - forte spike rialzista.
Quando questo appare, disegniamo:
- Un riquadro intorno al pattern
- Una linea orizzontale in corrispondenza dell'apertura della 2a candela (punto di ingresso)
Una volta che il prezzo torna su quella linea ("mitigazione"), tagliamo la linea ed evitiamo di ridisegnarla.
STRUTTURE DATI
struct PatternInfo { datetime time; // Ora del modello double entry; // Prezzo di ingresso (apertura della seconda candela) double high; // Massimo delle 3 candele double low; // Il minimo più basso delle 3 candele bool mitigated; // Il prezzo è tornato al livello iniziale? }; CArrayObj activePatterns; ``` We use a struct `PatternInfo` to track each valid pattern and store it in an array. This helps avoid repeated processing.
FUNZIONE ON INIT
int OnInit() { IndicatorSetInteger(INDICATOR_DIGITS, _Digits); ArrayInitialize(activePatterns, 0); return INIT_SUCCEEDED; } ``` We set the indicator precision and prepare our array.
RILEVAMENTO DEL PATTERN (SU OGNI TICK)
```mq5 for (int i = limit - 3; i >= 0; i--) { ``` We loop through candles and look 3 bars back. ```mq5 if (isBullish(i+2) && isBearish(i+1) && isBullish(i)) ``` We check if the last 3 candles fit the spike pattern: Green-Red-Green. ```mq5 double high = MathMax(MathMax(High[i], High[i+1]), High[i+2]); double low = MathMin(MathMin(Low[i], Low[i+1]), Low[i+2]); double entry = Open[i+1]; ``` We extract high/low for box and the entry level from the 2 nd (middle) candle. ```mq5 PatternInfo *pattern = new PatternInfo; pattern.time = Time[i]; pattern.entry = entry; pattern.high = high; pattern.low = low; pattern.mitigated = false; ``` Create and add this pattern to our list.
```mq5 string boxName = "Box_" + IntegerToString(Time[i]); ObjectCreate(0, boxName, OBJ_RECTANGLE, 0, Time[i+2], high, Time[i], low); ``` Draw the rectangle (box) from the 3-candle pattern. ```mq5 string lineName = "EntryLine_" + IntegerToString(Time[i]); ObjectCreate(0, lineName, OBJ_TREND, 0, Time[i], entry, Time[i] + PeriodSeconds() * EntryLineLength, entry); ``` Draw the entry line from the 2 nd candle’s open forward in time.
CONTROLLO DELL'ATTENUAZIONE (A OGNI TICK)
Loop through all patterns:
```mq5
for (int p = 0; p < activePatterns.Total(); p++) {
PatternInfo *pt = (PatternInfo*)activePatterns.At(p);
```
If not already mitigated, check:
```mq5
if (!pt.mitigated && Low[0] <= pt.entry)
```
If current price hits the entry level:
```mq5
pt.mitigated = true;
ObjectDelete("EntryLine_" + IntegerToString(pt.time));
```
Delete original long line.
```mq5
ObjectCreate(0, "MitigatedLine_" + IntegerToString(pt.time), OBJ_TREND, 0,
pt.time, pt.entry,
Time[0], pt.entry);
```
Create a short line showing where mitigation happened.
HELPER FUNCTIONS
### Check Bullish/Bearish:
```mq5
bool isBullish(int i) {
return Close[i] > Open[i];
}
bool isBearish(int i) {
return Close[i] < Open[i];
}
Questo indicatore è semplice ma potente:
- Rileva il comportamento dei picchi reali in Boom
- Visualizza le entrate di denaro intelligente
- Rileva automaticamente l'attenuazione
Ora è possibile testarlo dal vivo su Boom 500 o Boom 1000.
grazie commentate se volete chiedere o condividere.
Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/61749

L'indicatore DailyPivot_Shift si differenzia dal solito indicatore DailyPivot in quanto i livelli principali possono essere calcolati con uno spostamento dell'inizio della giornata.

Indice del canale delle materie prime con algoritmo di mediazione selezionabile e livelli di ipervenduto/ipercomprato che cambiano dinamicamente.

Una classe per leggere e scrivere singoli bit o sequenze di bit da e verso un buffer.

Expert Advisor for MetaTrader 5 that combines Exponential Moving Averages (EMA) and Relative Strength Index (RSI) to generate trading signals. Includes risk management features and trading time filter.