Il filtro perfetto - pagina 6

 
Indicatore utile.
Autore, per favore fai una versione di VAMA per MT4.
Grazie.
 
G001:
Indicatore utile.
Autore, per favore fai una versione di VAMA per MT4.
Grazie.

Grazie per il feedback. Purtroppo non conosco mql4, sono partito da mql5, ma sono sicuro che se guardi il codice dell'indicatore sarai in grado di implementarlo in 4, è molto semplice.

P.S Nella versione 1.01 ho aggiunto un attributo per disabilitare il ridisegno a tick dell'indicatore, in modo che venga disegnato solo quando la barra è finita.

input bool bar_exist=1;

File:
vaMA.mq5  4 kb
vaMACl.mq5  5 kb
vaZZ.mq5  4 kb
 

Beh, credo di essere soddisfatto, almeno non sento nessuna lacuna. Finora sono soddisfatto, ora ho intenzione di stringere la volatilità e il filtro trend/flat per mescolarlo con competenza nelle transizioni da trend a flat e viceversa e fare un bell'adattamento, non la bruttezza come il classico AMA.

La 1.12 è allegata se volete sapere. ZZ e il colore non hanno fatto con esso, perché questa è solo la fase iniziale, quando penso a come fare un adattamento di qualità già, io stendere pronto.

File:
vaMA.mq5  4 kb
 
J.B:

Ecco, credo che ci siamo...

La prima opzione è migliore (quella in codobase). In questo hai già mischiato troppo... IMHO

 

Appena letto, il thread è una delizia! Grazie mille a tutte le persone coinvolte, specialmente al topicstarter. Non ho mai fatto filtri io stesso, ma pensare ad alta voce un po' sull'argomento sarebbe bello, credo.

La questione di trovare una caratteristica quantitativa della qualità del filtro è stata sollevata molte volte qui. Davvero, qual è meglio, JJMA o EMA e di quanto? C'è una certa quantità di ritardo del filtro, come misurarlo e qual è la sua utilità? Quindi, tutto sommato, sono domande logiche normali.


Naturalmente, un metodo semplice attraverso la somma di ZigZag costruiti sulle pieghe del filtro è stato anche espresso. È quasi tutto buono, ma non del tutto.

Cari autori, dato che avete metodi di confronto dei filtri, potreste dare dati grafici, tabellari o altri dati tecnici di questi confronti. Inoltre, se state sommando gli ZigZag, allora sottraete il valore dello spread da ogni ginocchio. Tracciare la caratteristica quantitativa in funzione del periodo del filtro. Sovrapponi i grafici risultanti dei diversi filtri l'uno sull'altro e valuta i pro e i contro di entrambi.

E ancora, perché generalizzi tutto così fortemente: un filtro per tutti i tempi? Immaginate che il vostro filtro si comporti graziosamente la sera, e sia terribilmente sbagliato in altri momenti. Dopo tutto, un tale filtro è fantastico! Tuttavia, a causa dell'approccio della temperatura media dell'ospedale, lo rifiutereste.

Ok, i pensieri si riversano, non ci sono abbastanza lettere. Suggerisco anche un approccio più generalizzato - One Way of Research:

Берется понравившийся кусок истории цВР. На нем выбираются понравившиеся интервалы, для которых суммарно будет проделываться нижеследующее. Например, берем крайний месяц, и рассматриваем далее только ночные интервалы.

Задача разложить данные по косточкам и написать ТС именно под этот кусок истории (точнее под выбранные интервалы в нем), чтобы на нем ТС показывала как можно больший профит.

Т.е. задача сводится к тому, чтобы обнаружить уже на известном куске истории закономерности для максимального профита.

Очевидно, что вычислить максимально-возможный профит на куске истории очень просто. Но надо создать такую ТС, у которой показатель Profit / Func(AmountIN) был бы максимален, где AmountIN - количество явных и неявных входных параметров ТС, а Func - некая функция (для простоты начала исследования - простейшая линейная: Func(X) = X).

Например, нескольким людям нравится какой-то замечательный флэтовый кусок, который эти люди считают чуть ли не классическим рыночным флэтовым (типовым) состоянием. Люди выкладывают этот кусок публично и устраивают свого рода соревнование по созданию оптимальной ТС для этого куска. Далее сравниваются характеристики полученных ТС, идеи в них заложенные. И уже исходя из этого анализа происходит некоторое понимание формализации флэтовости и более обобщенных понятий.
P.S. Написано очень примитивно, но основа подобных манипуляций позволяет уловить суть подходов и к исследованиям посложнее.

E anche un forte appello, considera le differenze nella TZVR. Per esempio, il tuo filtro può mostrare un totale nonsenso su EURUSD ed essere eccellente su GBPJPY. Se si osservano tali differenze, allora è logico scavare in EURUSDvsGBPJPY. Comunque, ci sono molti posti dove scavare.

 

hrenfx:

Naturalmente, un metodo semplice attraverso la somma delle ginocchia ZigZag costruite sulle interruzioni del filtro è stato anche espresso. Tutto è quasi buono, ma non del tutto.

Cari autori, dato che avete metodi di confronto dei filtri, potreste dare dati grafici, tabellari o altri dati tecnici di questi confronti. Inoltre, se state sommando gli ZigZag, allora sottraete il valore dello spread da ogni ginocchio. Tracciare la caratteristica quantitativa in funzione del periodo del filtro. Sovrapponete i grafici ottenuti dei diversi filtri l'uno sull'altro e valutate i pro e i contro di entrambi.

E ancora, perché generalizzi tutto così fortemente: un filtro per tutti i tempi? Immaginate che il vostro filtro si comporti graziosamente la sera, e sia terribilmente sbagliato in altri momenti. Dopo tutto, un tale filtro è fantastico! Tuttavia, l'approccio della temperatura media dell'ospedale vi indurrà a rifiutarlo.

E anche una forte richiesta, prendere in considerazione le differenze nel TzVR. Per esempio, il tuo filtro potrebbe mostrare una totale schifezza su EURUSD ed essere eccellente su GBPJPY. Se vedi tali differenze, allora è logico scavare in EURUSDvsGBPJPY. Tutto sommato, ci sono molti posti per scavare.

Grazie! È il criterio di efficienza dei diversi filtri per i diversi mercati e il clustering utilizzando questo criterio ci permetterà di calcolare il punto di conversione necessario tra i diversi sistemi di ordine sintonizzati per le diverse condizioni di mercato. Questo è il piano.

Ho già pensato al calcolo dello spread nel totalizzatore, è un'invenzione supplementare, tenendo conto delle società di intermediazione e delle loro quotazioni, sto cercando di risolvere i problemi gradualmente, in modo che ogni elemento del sistema fosse ragionevolmente indipendente, per essere in grado di capire il "contributo netto" di ogni elemento, e poi analizzare l'effetto cumulativo.

Tuttavia, non sono ancora un buon programmatore e la mia velocità di codifica è orribile, lotto costantemente con l'overrun dell'array e con il fatto che non ho creato un nuovo buffer di calcolo per l'indicatore e così via. Ecco perché sto passando il 99,9% del mio tempo sui bug tecnici invece di pensare all'architettura di TC, il che è triste, ma inevitabile.

Per favore, ditemi, se non vi dispiace, quali metodi o euristiche vengono usati per evitare l'overrun dell'array? Perché pensare costantemente quale ciclo da cui e su quale elemento fare, penso che non è kosher. È possibile per esempio che i valori non validi e gli accessi out-of-loop non rompano la logica di ? Per esempio, la divisione per 0 potrebbe non causare un errore, ma un grande valore di 1000, per esempio, e l'indirizzamento al di fuori dell'array ha dato un elemento dal bordo dell'array più vicino all'indirizzo?

(Quindi... pensieri da principiante, capisco che può essere poco virile, forse persino vergognoso pensare in questo modo))) Ma perdonatemi, non sono molto attento, purtroppo. Mi è più facile inventare strutture che implementarle, ma se devo ordinare la codifica per ogni piccola cosa, sono rovinato. I piccoli test sono ancora meglio da fare da soli.

 

J.B:

quali metodi o euristiche usate per evitare gli array out-of-bounds?

Una classe per creare un ring buffer
 
J.B:

Ho già pensato alla contabilità dello spread nel totalizzatore, è un trucco aggiuntivo, tenendo conto di una particolare società di intermediazione e le loro quotazioni, sto cercando di risolvere coerentemente i problemi in modo che ogni elemento del sistema sarebbe sufficientemente autonomo, per essere in grado di capire il "contributo netto" di ogni elemento, e quindi analizzare l'effetto cumulativo.

Ho menzionato la diffusione, non per rompere gli stereotipi. In effetti, non c'è nessuna diffusione. C'è solo il Bid e Ask di BP. Costruisci anche ZigZags, ma imposta i top sul Bid BP e i low sull'Ask BP. Poi la somma delle ginocchia rappresenterà lo"spread fluttuante". Non è davvero nerd come può sembrare. Né è un desiderio di calcolare in modo super accurato dove non si potrebbe. C'è un punto fondamentale qui: le fratture troppo frequenti, anche se abbastanza accurate, sono un male, perché non è redditizio.

Non sono ancora un buon programmatore e il mio ritmo di codifica è troppo lento, lotto costantemente con l'overrun dell'array e con il fatto che non ho implementato un nuovo buffer di calcolo per l'indicatore. Perciò il 99,9% del mio tempo è speso in problemi tecnici e non a pensare all'architettura di TC, il che è triste, ma inevitabile.

Anche io sono un programmatore di merda. Pertanto, c'è una raccomandazione di non condurre tali studi in MQL. Usa MQL solo come fonte di dati e come semplice visualizzazione. Per l'analisi usate lo stesso pacchetto di matrici. Questo vi farà risparmiare molto tempo e fatica.

I dati Bid e Ask dovrebbero essere disponibili attraverso FXOPEN ECN, FXCM, Dukascopy, o qualsiasi altra fonte di tick. Si dovrebbe usare solo M1, come compromesso tra velocità e precisione. Capisco che quasi nessuno si prenderà la briga di farlo e rimane ancora in MQL-frames. Ma devi solo rispondere a te stesso se vuoi indagare o giocare.

 

Grazie, farò una prova)))

hrenfx:

Ho detto della diffusione, non di rompere gli stereotipi. In effetti, non c'è nessuna diffusione. Ci sono solo Bid e Ask BP. Costruisci gli ZigZag allo stesso modo, ma metti i massimi sul BP di offerta e i minimi sul BP di richiesta. Poi la somma delle ginocchia rappresenterà lo"spread fluttuante". Non è davvero nerd come può sembrare. Né è un desiderio di calcolare in modo super accurato dove non si potrebbe. C'è un punto di principio qui: le fratture troppo frequenti, anche se abbastanza accurate, sono un male, perché non è redditizio.

Anche io sono un programmatore di merda. Pertanto, c'è una raccomandazione di non condurre tali studi in MQL. Usa MQL solo come fonte di dati e come semplice visualizzazione. Per l'analisi usate lo stesso pacchetto di matrici. Questo vi farà risparmiare molto tempo e fatica.

I dati Bid e Ask dovrebbero essere disponibili attraverso FXOPEN ECN, FXCM, Dukascopy, o qualsiasi altra fonte di tick. Si dovrebbe usare solo M1, come compromesso tra velocità e precisione. So che quasi nessuno si prenderà la briga di farlo, e rimarrà comunque in MQL-frames. Ma qui devi solo rispondere a te stesso, vuoi fare ricerca o giocare.

Grazie per la raccomandazione! In realtà lo sto seguendo retroattivamente)). Uso STATICTICA e Matlab per gli studi numerici, sideFX Houdini per le visualizzazioni e alcuni calcoli insoliti. Ma comunque, devo codificare qualcosa di abbastanza personalizzato a livello di vettori (array) e operazioni con i loro componenti nei cicli. Ecco perché dovrò studiare mql5 per mt5 e molto probabilmente anche C#.

Il 5-esimo è stato scelto per le seguenti ragioni, in ordine di importanza per me:

1)mql5 è un analogo di C++.

E C++ è il linguaggio di programmazione più avanzato al giorno d'oggi, e anche in un pizzico, se mt5 non mi aiuta a causa di un marketing inadeguato, posso facilmente passare alla codifica C++ pura. E questa esperienza non andrà persa.

Naturalmente, OOP in contrasto con il C-like 4, che è come la potenza sotto il cofano di una macchina fredda, piace come il potenziale per implementare progetti strutturalmente complessi. Un linguaggio procedurale sarebbe un colpo di testa, data la mia attenzione e l'annidamento strutturale pianificato dei progetti.

2)Mt5 è l'ultima versione di mt.

Un'alta probabilità che le prossime versioni di mql saranno anche basate sui plus e mt5th viene promosso agli scambi, che è un enorme plus assoluto e il fatto che le società di brokeraggio non stiano passando in massa al 5 secondo me è un fenomeno temporaneo.

Ho anche iniziato a usare mql5 e c# per implementare le mie idee. Ho già avuto esperienza nell'ordinare alcune idee ai codificatori, ma ho deciso che ha senso ordinare solo shell. E i blocchi di previsione e la MM dovrebbero essere fatti da me. Quindi dovrò imparare le lingue almeno per dare correttamente il compito e verificare/indagare correttamente i progetti. Questo è ovviamente solo IMHO al momento.

 

Francamente, questa è una strana visione. Cosa ha a che fare la ricerca su TzWD con qualsiasi piattaforma o lingua? È solo una ricerca. Puoi farlo sulla carta, puoi farlo in un linguaggio simile al C e, come hai giustamente sottolineato, in alcuni pacchetti matematici. Detto questo, avere la possibilità di programmare e importare dati e DLL di terze parti. La ricerca e il trading sono attività completamente diverse.

Giocare è spendere il vostro tempo prezioso per costruire un'infrastruttura di ricerca da zero: attraverso un linguaggio di programmazione.

Non voglio discutere o persuadere, naturalmente. Ancora presumeva che il thread fosse sul tema della ricerca.