Zero Crossing MACD dopo 3 barre

 

Publi

Zero Crossing MACD dopo 3 barre

 

Publi

Risultati da 1 a 6 di 6

Discussione: Zero Crossing MACD dopo 3 barre

  1. #1
    Sto provando il mio primo indior e apprezzerei l'aiuto di codificatori MQL esperti.

    Lo script seguente è derivato dallo script MACD di esempio e modificato per posizionare una freccia SU quando il MACD ha attraversato la linea zero dopo 3 barre consecutive sopra la linea zero e allo stesso modo una freccia GI?? se il MACD attraversa sotto la linea zero con 3 barre consecutive sotto zero.

    Sto riscontrando problemi: non riesco a visualizzare alcuna freccia.

    Se riesci a vedere dove sto andando fuori strada, questo sarebbe di grande aiuto.

    Grazie

    #property copyright Copyright © 2007, Systrader
    #link proprietà http://www....
    //---- ambienti interni
    #property indior_separate_window
    #property indior_buffers 4
    #property indior_color1 Acqua
    #property indior_color2 Rosso
    #property indior_color3 Verde
    #propertyindior_color4 Rosso
    #property indior_width1 2
    //---- parametri interni
    esterno int FastEMA=12;
    esterno int SlowEMA=26;
    extern int SegnaleSMA=9;
    //---- respingenti interni
    doppio Macd[];
    doppio segnale[];
    //---- contatore
    contatore int;
    // ----------------------------------------------- -------------------
    //| Funzione di inizializzazione interna personalizzata |
    // ----------------------------------------------- -------------------
    intero init()
    {
    //---- impostazioni disegno
    SetIndexStyle(0,DRAW_HISTOGRAM);
    ImpostaStileIndice(1,DRAW_LINE);
    ImpostaIndiceFreccia(2,233);
    ImpostaIndiceFreccia(3,234);
    SetIndexDrawBegin(1,SegnaleSMA);
    IndiorDigits(Cifre 1);
    //---- mappatura dei buffer interni
    SetIndexBuffer(0,Macd);
    SetIndexBuffer(1,Segnale);
    //---- nome per DataWindow ed etichetta della sottofinestra interna
    IndiorShortName(MACDZC( FastEMA , SlowEMA , SignalSMA ));
    SetIndexLabel(0,MACD);
    SetIndexLabel(1,Segnale);
    //---- inizializzazione eseguita
    ritorno(0);
    }
    // ----------------------------------------------- -------------------
    //| Medie mobili Convergenza/Divergenza |
    // ----------------------------------------------- -------------------
    int inizio()
    {
    limite int;
    int counted_bars=IndiorCounted();
    //---- verrà ricontata l'ultima battuta contata
    if(counted_barsgt;0) counted_bars--;
    limit=Bar-counted_bars;
    //---- macd contato nel primo buffer
    for(int i=0; ilt;limite; i )
    Macd[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
    //---- linea di segnale contata nel secondo buffer
    for(i=0; ilt;limite; i )
    Signal[i]=iMAOnArray(Macd,Bars,SignalSMA,0,MODE_SMA,i);

    //---- Conta se 3 barre di macd sono sopra o sotto zero
    contatore=0;

    //inizia dalla 3a battuta per consentire il controllo delle 3 battute precedenti
    for(int j=3; jlt;limite; j )
    {
    if (Macd[j] lt; 0) contatore--;
    if (Macd[j] gt; 0) contatore ;
    }
    //conta se sono state viste 3 barre sopra la linea zero
    if (contatore gt; 2) {
    ImpostaStileIndice(2,DRAW_ARROW);
    ObjectCreate(UpAlert, OBJ_ARROW, 0, High[j],0);
    ObjectSet(UpAlert, OBJPROP_ARROWCODE, 74);
    }
    //conta se sono state viste 3 barre sotto la linea zero
    if (contatore lt; -2)
    {
    ImpostaStileIndice(3,DRAW_ARROW);
    ObjectCreate(DnAlert, OBJ_ARROW, 0, Basso[j],0);
    ObjectSet(DnAlert, OBJPROP_ARROWCODE, 74);
    }

    //---- fatto
    ritorno(0);
    }
    // ----------------------------------------------- -------------------

  2. #2
    2 Allegato(i) Salve, David, non ho alcuna conoscenza della programmazione MT4. Ho apportato una piccola modifica in base al tuo codice macdzc a macdzc_1, significa zero crossing MACD dopo 1 battuta. Potresti controllare se è giusto o no? Grazie per il tuo ottimo aiuto. Inoltre, vorrei chiedere il tuo gentile aiuto per aggiornare questo indior mostrato sul grafico principale, significa mostrare solo le frecce su e giù sul grafico principale se lo zero supera il MACD dopo 1 barra, come se il MACD attraversa il grafico principale incollo MACD Cross .mq4 Sono cinese, inglese scarso. Qualsiasi malinteso, contattami in qualsiasi momento. Grazie mille in anticipo. I migliori auguri Thomas Chen Nov11,2011
    https://www.forexmad.com/attachments...5337090737.mq4
    https://www.forexmad.com/attachments...4340169428.mq4

  3. #3
    Ciao, Hannover è un grande indior di MACDZC. Grazie mille! potresti aggiornare questo MACDZC come di seguito: per posizionare una freccia SU quando il MACD ha attraversato la linea dello zero dopo 1 barre consecutive sopra la linea dello zero e allo stesso modo una freccia GI?? se il MACD attraversa sotto la linea dello zero con 1 barre consecutive sotto lo zero. ?? meglio avere una scelta, significa che 0,1 o 2 barre hanno attraversato la linea dello zero e quindi mostrare la freccia ecc. Grazie mille in anticipo. BR, Thomas C
    Citazione Originariamente Scritto da ;
    Ciao Systrader Quello che penso tu abbia fatto è confondere interni e oggetti. Se hai intenzione di tracciare le frecce come indior, devi definire i buffer - vedi le righe di codice che ho aggiunto nell'allegato qui sotto, per raggiungere questo obiettivo (cerca i commenti ???//--added???). Una volta che un array è collegato a un buffer (tramite ???SetIndexBuffer???), il semplice popolamento dell'array avrà i valori tracciati sul grafico. ArrayInitialize assicura che gli array inizino con EMPTY_VALUE, il che significa che nessuna freccia verrà tracciata per ciascuna di queste barre....
    Citazione Originariamente Scritto da ;
    Ciao Systrader Quello che penso tu abbia fatto è confondere interni e oggetti. Se hai intenzione di tracciare le frecce come indior, devi definire i buffer - vedi le righe di codice che ho aggiunto nell'allegato qui sotto, per raggiungere questo obiettivo (cerca i commenti ???//--added???). Una volta che un array è collegato a un buffer (tramite ???SetIndexBuffer???), il semplice popolamento dell'array avrà i valori tracciati sul grafico. ArrayInitialize assicura che gli array inizino con EMPTY_VALUE, il che significa che nessuna freccia verrà tracciata per ciascuna di queste barre....

  4. #4
    Ciao Systrader Quello che penso tu abbia fatto è confondere interni e oggetti. Se hai intenzione di tracciare le frecce come indior, devi definire i buffer - vedi le righe di codice che ho aggiunto nell'allegato qui sotto, per raggiungere questo obiettivo (cerca i commenti ???//--added???). Una volta che un array è collegato a un buffer (tramite ???SetIndexBuffer???), il semplice popolamento dell'array avrà i valori tracciati sul grafico. ArrayInitialize garantisce che gli array inizino con EMPTY_VALUE, il che significa che nessuna freccia verrà tracciata per ciascuna di queste barre. Ho pensato che volessi che le frecce fossero tracciate come indior, perché hai impostato ???#property indior_buffers 4???, presumibilmente per sistemarle. Nel modo in cui l'ho fatto, le frecce sono tracciate nella finestra MACD, a causa dell'istruzione ???#property indior_separate_window???. Se vuoi tracciarli nella finestra del prezzo, dovresti creare un indice separato con ???#property indior_chart_window???. Potrebbe esserci un altro modo per farlo: non sono un programmatore MQL4 esperto. Se vuoi creare le frecce come oggetti invece che come indios, devi creare oggetti con nomi univoci. Guarda le istruzioni ObjectCreate, ObjectSet e ObjectSetText nel mio indior Plot_News, per farti un'idea. Ad ogni modo, spero che questo ti aiuti a iniziare. Buona fortuna Davide
    https://www.forexmad.com/attachments...0172472180.mq4
    https://www.forexmad.com/attachments...1727834694.mq4

  5. #5
    Ciao David, Wow .. questa è stata una risposta veloce e grazie funziona alla grande .. proprio come volevo. Hai ragione .. ho un po 'di confusione con gli oggetti ma niente che la pratica non guarirà. Molte grazie Nat

  6. #6
    Ciao, David Potresti aggiungere un avviso pop-up per macdzc_1, che mostrerà il prezzo e l'ora quando la linea MACD attraversa la linea zero? Se possibile, aggiornare alla versione MTF
    Grazie mille in anticipo. I migliori auguri Thomas C 11 ottobre 2011

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Il sito di forexmad utilizza cookie
Il sito di forexmad utilizza cookie, alcuni dei quali già installati. Per avere maggiori informazioni sui nostri cookie ti preghiamo di cliccare qui. Ti preghiamo di cliccare sul bottone a destra per accettare i nostri cookie. Se continui a navigare sul sito di forexmad assumeremo che sei d'accordo ad utilizzarli.