annuncio

Comprimi
Ancora nessun annuncio.

BreakMinMax

Comprimi
X
 
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

    BreakMinMax

    Codice PHP:

    extern int Punti
    50;
    extern int MediaTrandPeriodInput =200;
    input ENUM_MA_METHOD MediaTrandMethodInput MODE_SMA;


    void AllertoPerIlRialzo()
    {
     
    ObjectCreate(ChartID(),IntegerToString(Time[0],0,0),OBJ_VLINE,0,Time[0],0);
     
    ObjectSetInteger(ChartID(),IntegerToString(Time[0],0,0),OBJPROP_COLOR,clrDarkGreen);
    // Alert("Teo_CI rialzista su "+Symbol()+" a TF "+IntegerToString(Period(),0,0));
    }

    void AllertoPerIlRibasso()
    {
     
    ObjectCreate(ChartID(),IntegerToString(Time[0],0,0),OBJ_VLINE,0,Time[0],0);
     
    ObjectSetInteger(ChartID(),IntegerToString(Time[0],0,0),OBJPROP_COLOR,clrDarkRed);
     
    //Alert("Teo_CI ribassista su "+Symbol()+" a TF "+IntegerToString(Period(),0,0));

    }

    int BreakMinMax()
    {
    //         Candela Verde            rotto il max buy
       
    if ((Open[2] > Close [2]) && (Close[1] > Close[2]))
          return +
    1;
    //         Candela Rosso           Rotto il min  sell
       
    if ((Open[2] < Close [2]) && (Close[1] < Close[2]))
          return - 
    1;
    return 
    0;
    }

    static 
    datetime TempoUltimaCandela

    bool NuovaCandela(){
      
    datetime TempoCandelaAttuale Time[0]; 
      if (
    TempoCandelaAttuale != TempoUltimaCandela){
           
    TempoUltimaCandela TempoCandelaAttuale;
           return (
    true); 
      }else{
           return (
    false); 
      }
    }  
    void OnTick()
    {
    if (
    NuovaCandela()==true)
      {
       if (
    BreakMinMax()==1)
           
    AllertoPerIlRialzo();
       if (
    BreakMinMax()==-1)
          
    AllertoPerIlRibasso();
       }

    Con l'occasione saluto tutti e vi chiedo
    Questa piccola funzione dovrebbe inviarmi un segnale (che poi deciderò, per ora sono linee orizzontali sulla candela)nei seguenti casi:
    candela precedente "x+1" candela appena chiusa(del segnale) "x"
    Trand long: se la candela "x+1" chiude ad un prezzo > della candela appena chiusa "x" dovrebbe "disegnare" una riga verticale verde su quest'ultima candela
    Trand short: se la candela "x+1" chiude ad un prezzo < della candela appena chiusa "x" dovrebbe "disegnare" una riga verticale rossa su quest'ultima candela
    la funzione a volte salta "non disegna le righe continuativamente" sapete dirmi dov'è l'errore? avete idee*/

    #2
    prova ad usare

    WindowRedraw(); // ridisegna forzatamente gli oggetti

    https://docs.mql4.com/chart_operations/windowredraw
    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

    Commenta


      #3
      Scusa, dove lo uso, questo problema me lo da quando è in esecuzione, puoi fare una prova in caso?

      Commenta


        #4
        WindowRedraw() ridisegna forzatamente gli oggetti
        quindi la metti al termine della chiamata delle varie funzioni che disegnano gli oggetti nel tuo codice

        qui trovi degli esempi
        https://book.mql4.com/functions/objects
        cerca nella pagina WindowRedraw() e vedi come si usa
        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

        Commenta


          #5
          Immagine.png
          ho provato però ci sono dei "buchi" che non capisco(dove ho messo i numeri) anche se le condizioni sono soddisfatte le linee non vengono disegnate

          Commenta

          Sto operando...
          X