Announcement

Collapse
No announcement yet.

breackout previous high

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

    #16
    double _pip=Point;
    if(Digits==3 || Digits==5)
    {
    _pip=Point*10;
    }

    double ASK = SymbolInfoDouble(Symbol(), SYMBOL_ASK);
    double BID = SymbolInfoDouble(Symbol(), SYMBOL_BID);

    // 1 pip sopra o 1 pip sotto il breakout
    if(ASK <= LLVIndic_72[2] + 1*_pip)
    //oppure
    if(ASK <= LLVIndic_72[2] - 1*_pip)
    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


      #17
      grazie di nuovo anche se non riusciamo a farlo chiudere dove dovrebbe

      Comment


        #18
        Ciao Umberto,
        il mio amico dice che c'è la possibilità di far girare il back test in real time ma non riesce sul TF a 5 min..gli esce solo 1H
        esattamente saresti così gentile da spiegare i vari passaggi?
        grazie

        Comment


          #19
          Un backtest per definizione è sui dati storici, quindi non può essere in real time, cioè in tempo reale che sono i dati storici futuri, incogniti, quindi un EA in real time significa un EA in Live demo o in Live real, con i soldi veri.

          Per fare un backtest con Metatrader4 ci sono decine di tutorial su youtube, basta solo scegliere il Simbolo, il Modello (ogni tick o solo prezzi di apertura), il Periodo: M5

          e naturalmente bisogna avere precaricati su Metatrader4 i dati storici a 5 minuti...





          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


            #20
            grazie ..ma ti faccio scrivere da lui...altrimenti andiamo alle calende greche...

            Comment


              #21
              Ciao Umberto,
              desidero che l'ea venga disabilitato dopo che ha chiuso tutto.....dalla riga 1027 compare la stringa che dovrebbe permettere ciò....ma non si disabilita.
              HELP
              che dire???grazie
              Attached Files

              Comment


                #22
                ciao,
                ho visto il codice, probabilmente non si verificano le condizioni per cui la funzione ExpertRemove() viene chiamata.

                ad esempio, alla riga 259 si legge

                Code:
                if(CloseEA==1){
                CK_Chiusura_EA();
                }
                subito prima e subito dopo la if devi mettere una Print("CloseEA = "+IntegerToString(CloseEA));
                così leggi il valore e comprendi se davvero CloseEA=1 oppure no.

                °°°°°°°°°°°°°°°°°°°°°°

                Fai la stessa cosa nella definizione della funzione void CK_Chiusura_EA()

                devi stampare i valori PRIMA e DOPO la if
                per sapere quanto valgono
                PositionGetInteger(POSITION_MAGIC)
                così da verificare se vale davvero == MagicN

                e analogamente stampi prima e dopo la if
                il valore di LottiinPancia
                e verifichi se davvero è <0.01


                Code:
                /+------------------------------------------------------------------+
                //| Elimina EA dal grafico |
                //+------------------------------------------------------------------+
                
                void CK_Chiusura_EA()
                {
                if(PositionGetInteger(POSITION_MAGIC) == MagicN && LottiinPancia<0.01)
                {
                Print("EA Tolto x chiusura totale posizini x MagicN: " + IntegerToString(MagicN) );
                ExpertRemove();
                }
                else {
                //Print("CloseEA: " + IntegerToString(CloseEA) + " --- MagicN: " + IntegerToString(MagicN) + " --- LottiinPancia: " + DoubleToString(LottiinPancia));
                }
                }
                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


                  #23
                  per adesso grazie mille...faccio leggere al mio amico e ti farò sapere l'esito di tali modifiche.
                  buona giornata

                  Comment


                    #24
                    Ciao Umberto....l'ea adesso si disabilita alla chiusura di tutte le posizioni....non chiedermi cosa ha modificato il mo amico perchè non lo so.....ma x correttezza metto l'ea se mai a qualcuno servisse l'uscita a step per come è stata progettata
                    grazie ancora e buona giornata
                    Attached Files

                    Comment


                      #25
                      Ciao Umberto,
                      eccomi a chiederti nuovamente lumi:
                      1 ) mi trovo sulla barra attuale (quella del buy)...l'ea deve vedere che nelle 10 barre precedenti nessuna barra abbia HIGH>HHV30-1...ovvero che nessuna barra abbia HIGH maggiore di HHV30 riferito alla barra precedente.Quindi: la barra prima del buy è la barra -1 e deve essere HIGH-1<HHV-2...la barra -2 deve essere HIGH-2<HHV-3...etc etc
                      allego l'indicatore HHV
                      2) altro problema: all'interno di una finestra temporale di 6 barre devo registrare il minor minimo ovvero il LOW più basso...successivamente il tempo scorre..il grafico procede...al momento del buy se in una qualunque delle 13 barre indietro ho anche una sola barra il cui LOW sia minore del valore registrato all'interno di tale finestra, il buy viene annullato.
                      confido nel tuo aiuto!!!
                      grazie come sempre
                      Attached Files

                      Comment


                        #26
                        ciao Carbonmimetic, di seguito i pezzi di codice per risolvere i punti che hai chiesto.... naturalmente sono pezzi di codice, vanno poi inseriti per bene nella strategia.


                        PHP Code:
                        bool calcola_minimo6barre false;
                        double minimo6barre_riferimento// il valore minimo delle ultime 6 barre partendo dalla barra [1] appena conclusa


                        void OnStart()
                        {
                        //---

                        // In Metatrader4 la barra corrente è la barra [0], quella precedente e quindi più antica rispetto alla barra attuale è la barra [1], e così via, più si va nel passato e più aumenta il numero di barra
                        //
                        // 1 ) mi trovo sulla barra attuale (quella del buy)...l'ea deve vedere che nelle 10 barre precedenti nessuna barra abbia HIGH>HHV30-1...ovvero che nessuna barra abbia HIGH maggiore di HHV30 riferito alla barra precedente.
                        // Quindi: la barra prima del buy è la barra -1 e deve essere HIGH-1<HHV-2...la barra -2 deve essere HIGH-2<HHV-3...etc etc

                        bool confronto10barre_conHHV30 true;
                        for(
                        int i=1i<=10i++)
                        {
                        double valore_HHV30 iCustom(NULL,0,"HHVIndic",0,i+1); // valore dell'indicatore HHVIndic relativo al buffer "0" (SetIndexBuffer(0,Segnale,INDICATOR_DATA)) sulla barra [i+1]
                        double massimo10barre iHighest(NULL,0,MODE_HIGH,10,i); // valore del massimo delle 10 barre partendo dalla barra [i]
                        if(massimo10barre valore_HHV30confronto10barre_conHHV30 true;
                        }
                        if(
                        confronto10barre_conHHV30 == trueannulla_il_buy;


                        // 2) altro problema: all'interno di una finestra temporale di 6 barre devo registrare il minor minimo ovvero il LOW più basso...successivamente il tempo scorre..il grafico procede...
                        // al momento del buy se in una qualunque delle 13 barre indietro ho anche una sola barra il cui LOW sia minore del valore registrato all'interno di tale finestra, il buy viene annullato.

                        // Utilizza una variabile booleana (calcola_minimo6barre) e una variabile double (minimo6barre_riferimento) definite entrambe fuori da OnStart() (a livello globale che quindi rimangono memorizzate ad ogni avvio di barra) e quando decidi che sia il momento per calcolare il minimo delle 6 barre, calcoli 'minimo6barre_riferimento'
                        if(calcola_minimo6barre)
                        {
                        minimo6barre_riferimento iLowest(NULL,0,MODE_LOW,6,1);
                        calcola_minimo6barre false// dopo aver calcolato la variabile la poni a false per evitare che ad ogni avvio di barra il minimo rivenga calcolato.
                        }
                        // Il valore di 'minimo6barre_riferimento' rimane in memoria...

                        // Ad avvio della barra per cui hai il segnale BUY, verifichi se puoi davvero aprirlo calcolando la variabile 'minimo13barre'
                        double minimo13barre iLowest(NULL,0,MODE_LOW,13,1)
                        if(
                        minimo13barre minimo6barre_riferimentoannulla_il_buy;


                        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


                          #27
                          buongiorno e grazie...gentilissimo...passo subito le stringhe al mio amico,lo sai che x me è arabo!!
                          Buona Giornata
                          Enrico

                          Comment

                          Working...
                          X