Announcement

Collapse
No announcement yet.

Allert Su indicatore

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Allert Su indicatore

    Ragazzi buongiorno sto provando ad inserire l'allert su un indicatore, ho fatto varie prove, ma una volta mi da l'allert su ogni candeel un'altra volte me lo da pure sui segnalili precedenti, qualcuno mi aiuterebbe a sistemarlo?

    Indicatore originale senza allert
    PHP Code:
    //+------------------------------------------------------------------+
    //| Bulls.mq4 |
    //| Copyright 2005-2014, MetaQuotes Software Corp. |
    //| http://www.mql4.com |
    //+------------------------------------------------------------------+
    #property copyright "2005-2014, MetaQuotes Software Corp."
    #property link "http://www.mql4.com"
    #property description "Fractals Tanya"
    #property strict
    //--- indicator settings
    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 clrAliceBlue
    #property indicator_color2 clrAliceBlue
    #property indicator_width1 1
    #property indicator_width2 1
    #property indicator_style1 STYLE_SOLID
    #property indicator_style2 STYLE_SOLID
    //--- input parameter
    input int B_F=20;
    //extern int AllB=240;

    //--- buffers
    double ExtFractalsUPBuffer[];
    double ExtFractalsDownBuffer[];

    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    void OnInit(void)
    {

    //--- 1 additional buffer used for counting.
    IndicatorBuffers(2);
    IndicatorDigits(Digits);
    //--- indicator line
    SetIndexBuffer(0ExtFractalsUPBuffer);
    SetIndexStyle(0DRAW_ARROW);
    SetIndexArrow(0234);
    SetIndexLabel(0NULL);
    SetIndexEmptyValue(00.0);

    SetIndexBuffer(1ExtFractalsDownBuffer);
    SetIndexStyle(1DRAW_ARROW);
    SetIndexArrow(1233);
    SetIndexLabel(1NULL);
    SetIndexEmptyValue(10.0);

    SetIndexDrawBegin(0,B_F);
    SetIndexDrawBegin(1,B_F);

    IndicatorShortName("FractalsTanya");
    IndicatorDigits(Digits);
    }
    //+------------------------------------------------------------------+
    //| Bulls Power |
    //+------------------------------------------------------------------+
    int OnCalculate(const int rates_total,
    const 
    int prev_calculated,
    const 
    datetime &time[],
    const 
    double &open[],
    const 
    double &high[],
    const 
    double &low[],
    const 
    double &close[],
    const 
    long &tick_volume[],
    const 
    long &volume[],
    const 
    int &spread[])
    {

    int limit=rates_total-prev_calculated;
    //---
    if(rates_total<=B_F || B_F<=0)
    return(
    0);
    //---
    if(prev_calculated>0)
    limit++;
    int i=0,j=0,k=0;
    double upFratal=0.0;
    double downFratal=0.0;
    int x=0;
    int y=0;
    for(
    int t=0t<limit+B_Ft++)
    {
    double upTempFractal=iFractals(NULL,Period(),MODE_UPPER,);
    double downTempFractal=iFractals(NULL,Period(),MODE_LOWER ,t);
    if(
    upTempFractal!=0&&upTempFractal>upFratal)
    {
    upFratal=upTempFractal;
    j=t;
    }
    if(
    downTempFractal!=0.0&&downFratal==0.0)
    {
    downFratal=downTempFractal;
    }
    if(
    downTempFractal!=0.0&&downTempFractal<=downFrat al)
    {
    downFratal=downTempFractal;
    k=t;
    }
    i++;
    if(
    i==B_F)
    {
    if(
    upFratal!=0.0)
    {
    if(
    x==0||(j-x)>=B_F)
    {
    x=j;
    ExtFractalsUPBuffer[j]=upFratal;
    }
    }
    if(
    downFratal!=0.0)
    {
    if(
    y==0||(k-y)>=B_F)
    {
    y=k;
    ExtFractalsDownBuffer[k]=downFratal;
    }

    }
    i=0;
    upFratal=0.0;
    downFratal=0.0;
    }
    }

    //for(int t=0; t<limit; t++)
    //{
    //double upFratal=iFractals(NULL,Period(),MODE_UPPER,t);
    //double downFratal=iFractals(NULL,Period(),MODE_LOWER,t);
    //if(upFratal!=0.0)
    // ExtFractalsUPBuffer[t]=upFratal;
    //else
    // if(downFratal!=0.0)
    // ExtFractalsDownBuffer[t]=downFratal;
    //}
    return(rates_total);
    }
    //+------------------------------------------------------------------+ 
    Prova di inserimento allert

    PHP Code:
    //+------------------------------------------------------------------+
    //| Bulls.mq4 |
    //| Copyright 2005-2014, MetaQuotes Software Corp. |
    //| http://www.mql4.com |
    //+------------------------------------------------------------------+
    #property copyright "2005-2014, MetaQuotes Software Corp."
    #property link "http://www.mql4.com"
    #property description "Fractals Tanya"
    #property strict

    //--- indicator settings
    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 clrAliceBlue
    #property indicator_color2 clrAliceBlue
    #property indicator_width1 1
    #property indicator_width2 1
    #property indicator_style1 STYLE_SOLID
    #property indicator_style2 STYLE_SOLID
    //--- input parameter
    input int B_F=20;
    //extern int AllB=240;

    //--- buffers
    double ExtFractalsUPBuffer[];
    double ExtFractalsDownBuffer[];

    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    void OnInit(void)
    {

    //--- 1 additional buffer used for counting.
    IndicatorBuffers(2);
    IndicatorDigits(Digits);
    //--- indicator line
    SetIndexBuffer(0ExtFractalsUPBuffer);
    SetIndexStyle(0DRAW_ARROW);
    SetIndexArrow(0234);
    SetIndexLabel(0NULL);
    SetIndexEmptyValue(00.0);

    SetIndexBuffer(1ExtFractalsDownBuffer);
    SetIndexStyle(1DRAW_ARROW);
    SetIndexArrow(1233);
    SetIndexLabel(1NULL);
    SetIndexEmptyValue(10.0);

    SetIndexDrawBegin(0,B_F);
    SetIndexDrawBegin(1,B_F);

    IndicatorShortName("FractalsTanya");
    IndicatorDigits(Digits);
    }
    //+------------------------------------------------------------------+
    //| Bulls Power |
    //+------------------------------------------------------------------+
    int OnCalculate(const int rates_total,
    const 
    int prev_calculated,
    const 
    datetime &time[],
    const 
    double &open[],
    const 
    double &high[],
    const 
    double &low[],
    const 
    double &close[],
    const 
    long &tick_volume[],
    const 
    long &volume[],
    const 
    int &spread[])
    {

    int limit=rates_total-prev_calculated;
    //---
    if(rates_total<=B_F || B_F<=0)
    return(
    0);
    //---
    if(prev_calculated>0)
    limit++;
    int i=0,j=0,k=0;
    double upFratal=0.0;
    double downFratal=0.0;
    int x=0;
    int y=0;
    for(
    int t=0t<limit+B_Ft++)
    {
    double upTempFractal=iFractals(NULL,Period(),MODE_UPPER,);
    double downTempFractal=iFractals(NULL,Period(),MODE_LOWER ,t);
    if(
    upTempFractal!=0&&upTempFractal>upFratal)
    {
    upFratal=upTempFractal;
    j=t;
    }
    if(
    downTempFractal!=0.0&&downFratal==0.0)
    {
    downFratal=downTempFractal;
    }
    if(
    downTempFractal!=0.0&&downTempFractal<=downFrat al)
    {
    downFratal=downTempFractal;
    k=t;
    }
    i++;
    if(
    i==B_F)
    {
    if(
    upFratal!=0.0)
    {
    if(
    x==0||(j-x)>=B_F)
    {
    x=j;
    ExtFractalsUPBuffer[j]=upFratal;
    Alert("New upper fractal at "TimeToString(time[j], TIME_DATE|TIME_MINUTES), " Price: "upFratal);
    }
    }
    if(
    downFratal!=0.0)
    {
    if(
    y==0||(k-y)>=B_F)
    {
    y=k;
    ExtFractalsDownBuffer[k]=downFratal;
    Alert("New lower fractal at "TimeToString(time[k], TIME_DATE|TIME_MINUTES), " Price: "downFratal);
    }

    }
    i=0;
    upFratal=0.0;
    downFratal=0.0;
    }
    }

    return(
    rates_total);
    }
    //+------------------------------------------------------------------+ 
    Vi ringrazio in anticipo


    #2
    ciao texcs, ho provato a salvare il codice del bull fractal sul Metaeditor ma ottengo errore.
    Dovresti allegare il file in codice sorgente (estensione .mql4) così posso compilarlo corettamente e aprirlo in Metatrader

    La vita non è un giro di prova, cogli l’attimo..
    Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

    Comment


      #3
      Eccolo
      Attached Files

      Comment


        #4
        Mi spiace ma non vedo nulla sul grafico per questo indicatore... perciò non saprei cosa deve essere oggetto di Alert se non si vede nulla..
        come funziona l'indicatore, ha qualche info che stampa da qualche parte, che però io non vedo ?

        Hai un link da dove lo hai scaricato, o è stato fatto da qualcuno ?
        La vita non è un giro di prova, cogli l’attimo..
        Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

        Comment


          #5
          Stampa le freccine bianche e vorrei metter e oltre alle freccine l'allert

          Comment


            #6
            Tipo questo fa L'alert ogni tick
            Attached Files

            Comment


              #7
              Ok, la soluzione è stata alquanto complicata, mi ha aiutato il codice sorgente scaricato qui
              https://www.earnforex.com/metatrader...ractals-alert/

              In allegato l'indicatore con l'Alert quando viene disegnata una freccetta al rialzo o al ribasso.

              fractal_alert.PNG
              Attached Files
              La vita non è un giro di prova, cogli l’attimo..
              Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

              Comment


                #8
                Ti ringrazio, ma disegna solo le freccie "vecchie" ma per le nuove fra solo l'allert, fa questo prroblema solo nei tm bassiForum.JPG
                Last edited by texcs; 22-07-2024, 15:19.

                Comment


                  #9
                  io non ho toccato il codice del fractal, ho soltanto aggiunto codice.
                  A me aggiunge frecce nuove e fa l'alert, ma non sempre...

                  La colpa è nel codice originale che mi hai inviato, in quanto a volte fa frecce e a volte non le fa.
                  Ma non dipende dalla mia codifica che è completamente al di fuori del codice originale che non ho toccato.

                  L'indicatore originale deve avere errori, questo è il grafico dell'indicatore originale, quello da te inviato, come vedi mancano frecce fractal!

                  errori_codice.JPG
                  La vita non è un giro di prova, cogli l’attimo..
                  Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                  Comment


                    #10
                    ok, grazi emille

                    Comment


                      #11
                      Un'altra cosa, qual'è quella direttiva(linea di codice) per far vedere i due buffer nella "finestra Dati" in modo da intercettarlo in un expert

                      Comment


                        #12
                        Per poter leggere un indicatore da un EA si usa la funzione iCustom() che va a leggere i buffer dell'indicatore.
                        L'Alert che ho inserito nell'indicatore fractal non è un buffer.
                        Per rendere buffer la presenza della freccetta fractal/alert, è necessario modificare ulteriormente l'indicatore, ma è uno sviluppo di codice che non faccio "free" però, richiede troppo tempo.
                        La vita non è un giro di prova, cogli l’attimo..
                        Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                        Comment


                          #13
                          Mi sembrano buffer leggi le prime righe del listato

                          Comment


                            #14
                            i buffer ci sono ma riguardano la costruzione dell'indicatore originale, senza Alert che riesce ad individuare la presenza della freccia.

                            fai le tue prove e verifica da te se funziona con iCustom
                            La vita non è un giro di prova, cogli l’attimo..
                            Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                            Comment


                              #15
                              A va bene ugualmente basta che li posso intercettare anche senza allert, però non vedo quelli nella finestra dati meta trader.

                              Comment

                              Working...
                              X