Errori, bug, domande - pagina 600

 
papaklass:

Urain, sergeev grazie per le risposte.

So come scrivere gli indici in un array, ho pensato che ci potrebbe essere qualcosa di più veloce.

È la prima volta che sento parlare di ordinamento "a bolle". Se puoi, per favore dammi più dettagli e meglio con un semplice esempio. Leggerò comunque i vostri link.

Grazie ancora per le risposte.

http://ru.wikipedia.org/wiki/Сортировка_пузырьком

A proposito, l'articolo implementa l'ordinamento shakerato degli indici (ma io lo chiamo ordinamento a bolle per abitudine).

L'agitatore differisce da quello a bolle in quanto la bolla passa a senso unico, mentre l'agitatore si alterna, il che accelera la selezione riducendo i passaggi, poiché le bolle non solo galleggiano ma affondano.

Сортировка пузырьком — Википедия
  • ru.wikipedia.org
Сортировка простыми обменами, сортиро́вка пузырько́м (англ.  ) — простой алгоритм сортировки. Для понимания и реализации этот алгоритм — простейший, но эффективен он лишь для небольших массивов. Сложность алгоритма: O(n²). Алгоритм считается учебным и практически не применяется вне учебной литературы, вместо него на практике применяются более...
 

Indovina tre volte quale indicatore sono venuto a chiedere? La risposta corretta è iFractals. Inaspettato, vero?

La sezione di aiuto di Custom Indicators https://www.mql5.com/ru/docs/customind dice:"Per esempio, se current rates_total=1000 e prev_calculated=999, allora forse abbiamo bisogno di fare i calcoli solo per un valore di ogni buffer di indicatori. "Ma tutto questo si applica alla prima forma - breve - di chiamata della funzione OnCalculate(). Se invece ci sono diversi buffer di indicatori coinvolti nel calcolo, questa forma non funzionerà.

Eseguiamo in M1 il codice dell' esempio iFractals dalla Guida, dove viene usata la seconda forma - completa - della chiamata alla funzione OnCalculate(). Ma prima, all'interno di questa funzione correggiamo

Comment(comm);

a

Print(comm);

per non perdere di vista nessuna linea con l'uscita (se lasciata com'è, visivamente sempre 1 sarà visibile, perché altri valori sono rari e immediatamente sostituiti da 1, quindi sembra che 1 sia sempre in uscita). Dopo il runtime vediamo che i valori non unitari si verificano ogni minuto, cioè su ogni nuova barra, il che indica inequivocabilmente che l'indicatore viene ridisegnato ogni minutocompletamente nonostante il fatto che il codice usialgoritmo economico. I dubbiosi possono aggiungere diverse linee di codice, disegnando, diciamo, linee verticali su ogni frattale e poi rimuoverle dopo il primo disegno e aspettare che l'insieme completo delle stesse linee appaia dopo un minuto con una nuova barra. Per qualche motivo non si tratta di disegnare solo l'ultimo frattale o linea.

Domanda agli sviluppatori: l'indicatore è stato scritto senza cura o non c'era lo scopo di rendere solo l'ultimo - nuovo - valore calcolato del frattale? O ho allegramente confuso un blocco di codice con calcoli values_to_copy con un algoritmo economico che non c'è affatto? O nella forma completa della chiamata di funzione OnCalculate() è impossibile usare l'analogo di const int begin per impostare l'inizio dei dati significativi?

Si prega di notare che nessun riempimento di "buchi" della storia, caricamento di barre dal passato e altri eventi che azzerano il prev_calcolato, avviene durante l'esperimento! Cioè, non c'è motivo di ricalcolare i valori dell'intero indicatore.

Naturalmente, farei qualcosa di tollerabile per me stesso per questo famigerato algoritmo parsimonioso, ma l'opinione ufficiale degli sviluppatori su questo argomento e le correzioni se necessario, a quanto pare, sono importanti qui.

Документация по MQL5: Пользовательские индикаторы
Документация по MQL5: Пользовательские индикаторы
  • www.mql5.com
Пользовательские индикаторы - Документация по MQL5
 

Richiesta convincente agli sviluppatori (a proposito, non sono il primo a chiederlo): per favore sostituite la vecchia versione dell'indicatore Fractals con quella nuova. (Per vostra informazione: nella vecchia versione il frattale più fresco può apparire sull'ultima barra (il che può risultare nel suo indesiderato ridisegno), mentre nella nuova versione il frattale più fresco può apparire fino a tre barre prima dell'ultima barra). Naturalmente, possiamo disegnare manualmente una vecchia versione o una nuova su un grafico se vogliamo, ma quando cerchiamo di fare riferimento all'handle iFractals nel nostro codice, la vecchia versione funzionerà ancora. Quanto tempo è stato sprecato cercando di eccitarmi e di non spaccarmi la faccia contro il tavolo cercando di individuare questo presunto bug...

P.S.: Non ho aggiornato tutto, solo attraverso Live Update. Può esserne la causa? Qualche consiglio? Se è così, aggiornerò completamente.

 
x100intraday:

Richiesta convincente agli sviluppatori (a proposito, non sono il primo a chiederlo): per favore sostituite la vecchia versione dell'indicatore Fractals con quella nuova. (Per vostra informazione: nella vecchia versione il frattale più fresco può apparire sull'ultima barra (il che può risultare nel suo indesiderato ridisegno), mentre nella nuova versione il frattale più fresco può apparire fino a tre barre prima dell'ultima barra). Naturalmente, possiamo disegnare manualmente una vecchia versione o una nuova su un grafico se vogliamo, ma quando cerchiamo di fare riferimento all'handle iFractals nel nostro codice, la vecchia versione funzionerà ancora. Quanto tempo è stato sprecato cercando di eccitarmi e di non spaccarmi la faccia contro il tavolo cercando di individuare questo presunto bug...

P.S.: Non ho aggiornato tutto, solo attraverso Live Update. Può esserne la causa? Qualche consiglio? Se è così, aggiornerò completamente.

Cosa ti impedisce di usare iCustom(...) ?
 
Valmars:
Cosa ti impedisce di usare iCustom(...) ?
Niente in linea di principio. Ma la versione obsoleta dello stesso indicatore - non è il caso, per definizione, l'obsoleto dovrebbe essere rimosso a livello di distribuzione, e questo, a mio parere, dovrebbe essere la preoccupazione degli sviluppatori. E se lasciamo la roba vecchia, non dovrebbe essere il default,dovrebbe essere il nuovo, più corretto. Personalmente non definirei la vecchia versione alternativa; in realtà è una versione palesemente scorretta che può mettervi in un sacco di guai in futuro.
 
x100intraday:

Richiesta convincente agli sviluppatori (a proposito, non sono il primo a chiederlo): per favore sostituite la vecchia versione dell'indicatore Fractals con quella nuova. (Per riferimento: nella vecchia versione il frattale più fresco può apparire sull'ultima barra (il che può risultare in un suo indesiderato ridisegno), mentre nella nuova versione il frattale più fresco può apparire fino a tre barre prima dell'ultima barra).

1. di quale nuova versione stiamo parlando?

2. Cosa vi impedisce di sondare 3 barre invece di 2?

 
Ho una domanda: è possibile ottenere i dati dell'indicatore per diverse coppie di valute e non solo per quella su cui è installato l'indicatore.
#property copyright "2010, Graff"
#property link      "http://www.mql5.com"
............
hwd_EURUSDf=iMA("EURUSD",0,Fast*k,shift,smootMode,price);
hwd_GBPUSDf=iMA("GBPUSD",0,Fast*k,shift,smootMode,price);
.......
if(CopyBuffer(hwd_EURUSDf,0,i,1,buff)<=0) return(-1);
if(CopyBuffer(hwd_GBPUSDf,0,i,1,bufs)<=0) return(-1);

ecc. C'è qualcosa che non funziona. Qui sopra c'è un pezzo di codice di CCFp.mq5, che ho installato per l'autotest. Il mio indicatore personale (scritto sullo stesso principio, cioè Handles->CopyBuffer)

Non funziona (Print(buff[i]) mostra un po' di merda.

Per favore: se hai la soluzione, per favore mandami il codice! MT5 bild 555/.

 
alexx_v:

Ho appena sentito il terminale riconnettersi con il server dopo una pausa, l'ho cercato ed è così, è di nuovo un glitch:


alexx_v:

Ho appena sentito il terminale riconnettersi con il server dopo una pausa, ho controllato, ed è così, è di nuovo un glitch:


Questa immagine è su MT4 o MT5?
 
sergeev:

1. di quale nuova versione stiamo parlando?

2. Cosa vi impedisce di sondare 3 barre invece di 2?

1. Ci sono due indicatori Fractals apparentemente identici negli indicatori standard: nella sezione con gli indicatori di Bill Williams e nella sezione Custom. Confrontandoli, vediamo che il primo tende a ridisegnare alcuni dei frattali freschi sull'ultima barra, mentre il secondo non ha questo svantaggio poiché il frattale viene controllato nel ciclo usando il proprio algoritmo per i<rates_total-3, cioè con una barra in più, mentre i frattali stessi sono formati algoritmicamente controllando solo due barre adiacenti e, se necessario, sono completamente confermati solo quando appare una nuova, terza, barra. Conosco la posizione dei frattali corretti: C:\Program Files\MetaTrader 5\MQL5\Indicators\Examples\Fractals.mq5, ma iFractals non la conosce, maiFractals conosce la strada per la vecchia versione che difficilmente posso trovare. Prende il vecchio codice da C:\Program Files\MetaTrader 5\MQL5\Include\Indicators\BillWilliams.mqh?

Frattale dubbio (prematuro) vs frattale che può essere affermato solo con una nuova barra

2. Niente, questa soluzione è ovvia e la sto già quasi usando. Ma il fatto è questo. Se non guardiamo in profondità nel progetto e prendiamo in considerazione solo i frattali, allora sì - non c'è niente di sbagliato nel ricablaggio; ma se facciamo costruzioni grafiche di TA basate su frattali saltanti ed eseguiamo l'auto-trading basato su di essi, allora in alcuni casi si verificano false operazioni (apertura di posizione troppo precoce), perché non si è ancora verificato il ricablaggio dei frattali e non è stata eseguita la correzione delle costruzioni, ma il segnale per l'entrata nel mercato ha già funzionato. Quando si verifica il ridisegno frattale più la ricostruzione dello strumento grafico, tutto sarà corretto tranne la posizione prematuramente aperta. Non è la soluzione più piacevole per storpiare la posizione chiudendo, riducendo o aprendo quella opposta - questo richiede filtri aggiuntivi, controlli, che contraddicono con un segnale dubbio e quindi diminuiscono la frequenza delle operazioni, oltre ad aggiungere altre zavorre complicanti all'indicatore.

In linea di principio, si può cedere a se stessi e accettare di usare il meno primo frattale, non l'ultimo, che è ancora dubbio e può essere ridisegnato. Ma per me è un tipico esempio di stampella, che a volte si accumula nel proprio codice e che non dovrebbe esistere, se possibile... e non parlo nemmeno del ritardo nell'ottenere le informazioni corrette dal mercato e nel fare costruzioni.

 
goblin:
Ho una domanda: è possibile ottenere i dati dell'indicatore per diverse coppie di valute, non solo quella su cui è installato l'indicatore.

ecc. qualcosa non funziona. Qui sopra c'è un pezzo di codice di CCFp.mq5, che ho installato per l'autotest. Il mio indicatore personale (scritto sullo stesso principio, cioè Handles->CopyBuffer)

Non funziona (Print(buff[i]) mostra un po' di merda.

Richiesta: se hai la soluzione, per favore dammi il codice! MT5 bild 555/

Sì, sembra aver risolto il problema da solo.

Domanda agli amministratori: l'ho scaricato dal sito, nell'esempio di aiuto ho usato (xxx=iMA(.....)), ma MA non è negli indicatori, è in inluded. È un test di intelligenza?

Mi dispiace per il tempo!

Motivazione: