Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 768

 

Ho cercato in tutto il forum, non sono riuscito a trovare un modo per calcolare automaticamente lo spostamento delle frecce/icone nell'indicatore (quando si cambia il TF è necessario regolare l'offset), ma so che qualche mese fa qualcuno ha postato una funzione pronta

PER FAVORE! )))

 
Igor Makanu:

Ho cercato in tutto il forum, non sono riuscito a trovare un modo per calcolare automaticamente lo spostamento delle frecce/icone nell'indicatore (quando si cambia il TF è necessario regolare l'offset), ma so che qualche mese fa qualcuno ha postato una funzione pronta

PER FAVORE! )))

Questo?

Как увеличить размер Wingdings-символа?
Как увеличить размер Wingdings-символа?
  • 2018.09.09
  • www.mql5.com
Смотрю я на свойства. Нет там, вроде бы, нужного...
 
Artyom Trishkin:

Questo?

figo!

ZS: Una cosa che non capisco è perché ho cercato per circa 20 minuti e pensavo di ricordare che Vitaly l'avesse postato (ho cercato i suoi post), ma tu l'hai trovato e io no (((((

 
Igor Makanu:

figo!

ZS: non capisco una cosa, perché ho cercato per 20 minuti e ricordavo con certezza che Vitaly l'aveva postato (ho cercato nei suoi post), ma tu l'hai trovato e io no (((((

Il puzzle si apre solo: blocco note e un file chiamato "Utilità". Quello che vedo che potrebbe essere utile a qualcuno da qualche parte, e non è banale - digito il link al post e una breve descrizione. È stato così per anni... Siamo qui per aiutare le persone, non solo per "badare" all'ordine

 
Ghabo:

Grazie. I miei muscoli non sono sufficienti) Non è difficile fissare il momento in cui il colore rosso cambia in blu, ma come sapere che in questo momento, la linea blu è coperta dal nero, non ne ho idea. Quale condizione dovrebbe essere aggiunta ad essa:-

per escludere il segnale quando la barra attraversa la linea nera? Nel tuo screenshot conta l'ultimo incrocio verso l'alto e non conta l'incrocio delle tre barre precedenti.

È più semplice, mentre le barre chiudono sopra la linea EMA(21), vengono scritte in un buffer (blu), sotto di esso vengono scritte in un altro (rosso). Per escludere il segnale di incroci di questa linea, almeno due barre di fila dovrebbero essere chiuse o più in alto o più in basso.
Per il codice sarebbe il seguente:

        bool
        b = false,
        s = false; //обе эти переменные должны быть объявлены за пределами всех блоков программы

        BUY_1=NormalizeDouble(iCustom(NULL,0,"4X Pip Snager Trend",1,1),Digits);
        
        if(BUY_1 != EMPTY_VALUE)
          {
                // первичный вход в этот блок означает, что 1 бар закрыт выше линии, но действие при этом не выполняется т. к. b == false (либо изначально, либо было сброшено в блоке else)
                // вторичный и все последующие подряд входы в этот блок означают, что, как минимум 2 бара подряд закрыто выше линии и действие будет выполнятся т. к. в предыдущем входе b присвоено значение true
                if(b)
                  {
                // ДЕЙСТВИЕ ДЛЯ СИНЕЙ ЛИНИИ
                  }     
                b = true;
                s = false;
          }
        elae
          {
                // аналогично, как и в блоке выше
                if(s)
                  {
                // ДЕЙСТВИЕ ДЛЯ КРАСНОЙ ЛИНИИ
                  }
                b = false;
                s = true;
          }
 
Igor Makanu:

figo!

ZS: una cosa che non capisco è perché ho cercato per 20 minuti e pensavo di ricordare che Vitaly l'avesse postato (ho cercato i suoi post), ma tu l'hai trovato e io no (((((

Ma questo metodo non tiene conto dello scorrimento del grafico da parte dell'utente, questo è il punto. Metti l'indicatore su un periodo volatile e poi scorri in un periodo piatto, o viceversa.
In questo senso ha più senso basarsi su alcuni dati ATR per calcolare la distanza.
Se non vuoi seguire lo scorrimento del grafico da parte dell'utente per riorganizzare tutte le frecce in base ai nuovi prezzi estremi del grafico.

 
Ecco un esempio basato su un frattale. Ho fatto 2 buffer aggiuntivi. Per il frattale non è necessario, perché puoi semplicemente usare il prezzo delle candele come riferimento, ma per il tuo compito questa variante potrebbe essere necessaria.
File:
 
Nikolay Khrushchev:
Ecco un esempio basato su un frattale. Ho fatto 2 buffer extra. Per un frattale, è ridondante perché si può semplicemente fare riferimento al prezzo di una candela. Ma questa variante può essere utile per il tuo compito.

Grazie!

sì, in effetti ho un compito molto più facile - segno circa 30 vertici ZigZag con numeri di vertice, nessuna etichetta di testo nella storia più avanti


Artyom Trishkin:

Il puzzle si apre semplicemente: blocco note e il file con il nome "Utilità". Quello che vedo che può essere da qualche parte utile a qualcuno, e non è banale - metto un link al post e una breve descrizione. È stato così per anni... Siamo qui per aiutare le persone, non solo per "badare" all'ordine

persuaso, nell'utilità KB per riempire, non dire che mi dispiace, quindi non condivido, basta accompagnare i loro codici, non sono sicuro che lo farò, e discutere cosa e come già stanco

ZS: di quelli interessanti e pronti, circa il 98%:

1 . accesso ai vertici di ZigZag come array di strutture (lista dinamica e sovraccarico dell'operatore [] ), tutto sembra volare ed è molto conveniente che si scriva ZZ[2].price... ZZ[i]. su = vero

2. secondo grafico per mezzo di MT4

da questo (1-2), c'è qualcosa di interessante per il forum? - o è come dappertutto, dateci un codice pronto al 100%, non faremo nulla per conto nostro ((((

 
Igor Makanu:

Grazie!

sì, in effetti ho un compito molto più semplice - segno circa 30 nodi ZigZag con numeri di nodo, nessuna etichetta di testo nella storia più avanti


persuaso, in KB utilità per riempire, non dire che mi dispiace, quindi non condivido, basta accompagnare i loro codici, non sono sicuro che lo farò, e discutere cosa e come già stanco

ZS: di quelli interessanti e pronti, circa il 98%:

1 . accesso ai vertici di ZigZag come array di strutture (lista dinamica e sovraccarico dell'operatore [] ), tutto sembra volare ed è molto conveniente che si scriva ZZ[2].price... ZZ[i]. su = vero

2. secondo grafico per mezzo di MT4

da questo (1-2), c'è qualcosa di interessante per il forum? - o è come dappertutto, dateci un codice pronto al 100%, non faremo nulla per conto nostro ((((

Beh, si può ottenere qualcosa di utile e a volte anche insolito da ogni codice.

Codebase è progettato proprio per questo scopo, non per quello che ci fanno due persone.

P.S. Questo mi dà una buona idea, ho bisogno di riscrivere in un array di strutture, in qualche modo non ci ho nemmeno pensato prima.
 
Vitaly Muzichenko:
P.S. Questo mi ha dato una buona idea, dovrei riscriverlo anche sull'array di strutture, non ci avevo mai pensato prima.

La struttura array è un po' più semplice, ma la funzionalità è inferiore, l'ho fatto attraverso liste dinamiche CList - l'implementazione è abbastanza semplice, ma è difficile abituarsi a lavorare con i puntatori in MQL, cercherò di finalizzare il codice e postarlo in KB

Motivazione: