Se sei un trader e stai cercando un modo per migliorare le tue analisi, lascia che ti parli del DemoBufferPattern. Questo indicatore per MetaTrader 5 combina candele, fractali, zigzag colorato e medie mobili colorate per offrirti un quadro chiaro delle dinamiche di mercato.
Il DemoBufferPattern utilizza diversi stili di disegno per rappresentare i dati in modo intuitivo:
//+------------------------------------------------------------------+//| Funzione di inizializzazione del indicatore personalizzato |//+------------------------------------------------------------------+intOnInit() { //--- mappatura dei buffer dell'indicatore SetIndexBuffer( 0,P1B1,INDICATOR_DATA); SetIndexBuffer( 1,P1B2,INDICATOR_DATA); SetIndexBuffer( 2,P1B3,INDICATOR_DATA); SetIndexBuffer( 3,P1B4,INDICATOR_DATA); SetIndexBuffer( 4,P1BC,INDICATOR_COLOR_INDEX); SetIndexBuffer( 5,P2B1,INDICATOR_DATA); SetIndexBuffer( 6,P3B1,INDICATOR_DATA); SetIndexBuffer( 7,P4B1,INDICATOR_DATA); SetIndexBuffer( 8,P4B2,INDICATOR_DATA); SetIndexBuffer( 9,P4BC,INDICATOR_COLOR_INDEX); SetIndexBuffer(10,P5B1,INDICATOR_DATA); SetIndexBuffer(11,P5BC,INDICATOR_COLOR_INDEX); //--- Buffer ausiliari per calcoli intermedi SetIndexBuffer(12,P4M1,INDICATOR_CALCULATIONS); SetIndexBuffer(13,P4M2,INDICATOR_CALCULATIONS); //--- Devi essere sicuro di posizionarli dopo tutti i buffer da visualizzare, altrimenti ... provaci tu!//--- FRECCIA PlotIndexSetInteger(1,PLOT_ARROW,217); PlotIndexSetInteger(2,PLOT_ARROW,218); PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,-iArrowShift); PlotIndexSetInteger(2,PLOT_ARROW_SHIFT,iArrowShift); PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE); PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,EMPTY_VALUE); //--- ZIGZAG PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,0.0); //--- MA maHandle=iMA(Symbol(),0,ExtPeriod,0,MODE_EMA,PRICE_CLOSE); return(0); } //+------------------------------------------------------------------+//| Funzione di iterazione del indicatore personalizzato |//+------------------------------------------------------------------+intOnCalculate(constint rates_total, constint prev_calculated, constdatetime& time[], constdouble& open[], constdouble& high[], constdouble& low[], constdouble& close[], constlong& tick_volume[], constlong& volume[], constint& spread[]) { //--- CalcCandles(rates_total,prev_calculated,open,high,low,close); CalcFractal(rates_total,prev_calculated,high,low,P2B1,P3B1); CalcZigzag (rates_total,prev_calculated,high,low,P4B1,P4B2,P4BC,P4M1,P4M2); CalcColorMA(rates_total,prev_calculated,P5B1,P5BC); //--- restituisci il valore di prev_calculated per la prossima chiamata return(rates_total); }


Commento 0