![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Lo pensavo anch'io, fino a qualche tempo fa. Infatti, da dove cominciano i principianti? Più indicatori hanno, meglio è. E poi non sanno cosa fare con un sacco di parametri. Alla fine, si comincia a capire che qualsiasi parametro è una decisione arbitraria del costruttore. Abbiamo un desiderio legittimo di liberarcene del tutto. Ma è la cosa giusta da fare?
Se diciamo che il mercato ha una struttura frattale, dovremmo(dobbiamo!) ammettere che questa struttura consiste di livelli. Ciò significa che almeno i valori che parametrizzano questa struttura di livello sono immanenti al mercato e quindi dovrebbero essere presenti nel TS. E tra l'altro, sono tutti ben noti a noi: l'orizzonte di trading, l'intervallo di prezzo minimo per un'operazione - ogni trader determina questi valori prima di iniziare la costruzione del TS. E poiché questi due valori sono correlati, allora almeno un parametro dovrebbe essere presente nel TS. E lo suggerisco. Soprattutto, è determinato in base a considerazioni esterne, come lei ha richiesto.
Sono d'accordo. Non si può sfuggire a questo parametro. Ma qui abbiamo cercato di andare al sodo e abbiamo subito incontrato una questione: come definire la "fuga di livello". E non ho ancora capito come fare senza un altro parametro qui.
C'è un altro criterio importante. Dato che raccoglieremo statistiche sulla storia, l'algoritmo non dovrebbe essere troppo "pesante". E poiché lavoreremo con i livelli, sarebbe naturale legare il criterio alla distanza tra i livelli. Per esempio, dividiamo questo intervallo per una potenza di due, quindi questa potenza potrebbe essere il parametro. È importante che abbia una gamma molto piccola di valori ragionevoli, 2, 3, ben 4.
Per questo problema, però, sarebbe abbastanza naturale dividere per 10, ma in qualche modo mi sembra inevitabile che sorga la domanda su altri modi di dividere in livelli :).
A proposito, ricordo che una volta ho forzato l'algoritmo di calcolo dei livelli Murray proprio allo scopo di poter lavorare con loro su una lunga storia :).
...volevo dire che non si può sapere quante volte il prezzo ha attraversato un livello all'interno di una barra. Di conseguenza, se si vuole reagire ad ogni incrocio reale, non è possibile ottenere statistiche per un tale algoritmo sulla storia. Se avete deciso di contare non più di un crossover per barra, significa che avete già inserito un parametro - ritardo e impostato il suo valore: "fino alla fine del minuto solare" (per così dire). Si pone allora inevitabilmente la questione dell'opportunità di un tale ritardo.
Ci stavo pensando, e all'opzione di +- 2, 3, ... dal livello. Vogliamo determinare la significatività di un livello rotondo rispetto ad un altro, quindi l'algoritmo dovrebbe essere semplice, avere un minimo di parametri, preferibilmente nessuno, ma non funziona.
di cosa abbiamo bisogno.
1. il criterio di efficacia, non è il denaro, ma i punti.
2. il criterio di un breakout di livello
3. un intervallo di tempo fisso per dare al prezzo il tempo di allontanarsi dal livello...
il criterio può non essere Boulishev, l'essenza è avere questi 4 numeri, entrata, uscita, massimo e minimo. poi calcoliamo tutto il resto. l'entrata è un livello da esaminare.
2. in realtà, non sappiamo quante volte la barra sarà attraversata, quindi 1 entrata per 1 barra, solo min. abbiamo bisogno della direzione di penetrazione. ecco perché la più semplice. vedi la 3a operazione nella foto. non aspettiamo la fine della barra. se l'apertura era sotto e il prezzo era anche solo 1 pip più alto, sfonderà verso l'alto...raccogliete le statistiche
3. supponiamo 1 ora
l'algoritmo è semplice, ha parametri minimi, e permette di confrontarlo con, diciamo, il livello 00+7. qualsiasi altro algoritmo ha più parametri, il che complica il confronto e l'analisi
il criterio non è una stronzata. il punto è avere queste 4 cifre, entrata, uscita, massimo e minimo. poi calcoleremo tutto il resto. l'entrata è il livello che stiamo studiando. le altre tre cifre hanno bisogno di statistiche
per il punto 2. in realtà, quante volte in una barra non sappiamo, quindi 1 entrata per 1 barra, solo minuti. abbiamo sicuramente bisogno della direzione di penetrazione. quindi il più semplice. guarda la 3a operazione nella figura. non aspettiamo la fine della barra. se l'apertura della barra era inferiore e il prezzo era anche 1 punto sopra il livello, tutto questo è una ripartizione fino...
Se non so che deserto è, supponiamo che sia Kara Kum :) . Sono d'accordo, un approccio perfettamente sensato per entrare in azione.
Il problema è che il numero di ingressi (cioè il numero di attraversamenti) determinerà il contributo di quel livello al totale complessivo. Se il criterio per limitare il numero di attraversamenti è scelto arbitrariamente, la statistica rifletterà solo questo caso particolare. Quindi questa statistica non convincerà nessuno, ci sarà un modo "più corretto" per impostarla. Ecco perché voglio avere una certa logica nella scelta della metodologia fin dall'inizio.
Capisco. il criterio di confronto deve essere scritto prima, finché non sappiamo come confrontare, non ha senso fare un cattivo lavoro))
Penso che non dovremmo limitare il numero di crossover. Ci comporteremo come uno statistico che disegna le distribuzioni di questi 3 valori e trova la media, la varianza, i massimi e i minimi nel campione, la mediana.
Il modo più semplice è quello di confrontare separatamente il miglior input, il miglior output e il miglior profitto.
Ma un criterio aggregato, che tiene conto di tutti insieme, è qualcosa a cui pensare.
Posso elaborare tutto da solo in Matcad, cioè costruire istogrammi, stimare la legge di distribuzione, ottenere parametri di distribuzione, confrontare. la cosa principale è darmi i dati per elaborare
.
Suggerisco che il criterio generale è il seguente: dato che non abbiamo un'uscita, non la controlliamo in linea di principio, non abbiamo una logica di uscita.
Controlliamo l'entrata - sottraiamo il drawdown dal massimo, se la legge di distribuzione è normale, allora prendiamo il valore medio, anche se molto probabilmente dovremo prendere la mediana.
Il livello migliore è quello con il maggior valore, il livello ideale - il prezzo va nella direzione di entrata, senza il drawdown...
Come può essere un criterio?
Forse si può fare in questo modo?
x=DoubleNormalize(Close[i],3) ;
line=DoubleNormalize(Close[i],2);
if(x==line) flag = true;
if(flag && x>line) { up=1; flag=false; }
Sono d'accordo. Non si può sfuggire a questo parametro. Ma qui abbiamo cercato di andare al sodo e ci troviamo subito di fronte alla questione di come definire la "partenza di livello". E ancora non capisco come possiamo fare a meno di un altro parametro.
Penso che non abbiamo capito l'interpretazione della parola "livello". Ho scritto sui livelli della struttura frattale del mercato. E tu, mi sembra, stai parlando dei livelli di prezzo, cioè dei suoi valori assoluti.
Supponiamo di voler fare trading intraday ma di non voler fare pips. Supponiamo che il movimento di prezzo giornaliero sulla nostra coppia di valute selezionata sia di 70-80 punti. Poi possiamo impostare un target di profitto per il trade di 50 pip. Questo numero può essere preso come un parametro di base perché si può dire che determina in modo inequivocabile lo zigzag che rappresenterà, da un lato, il modello ideale per il nostro commercio e, dall'altro, la struttura frattale del mercato al livello selezionato.
In questo contesto, non si può nemmeno parlare di allontanarsi da questo livello, poiché il TS dovrebbe essere costruito per seguire al meglio i movimenti di prezzo di 50 pips o più, piuttosto che qualsiasi movimento di prezzo intorno a qualche livello fisso.
Mi rendo conto che sono entrato nella vostra discussione su un particolare TS che commercia da livelli assoluti. Naturalmente, questo è un approccio completamente diverso al trading, che per inciso richiede ancora la sua giustificazione, almeno statistica. Altrimenti non possiamo evitare la scelta arbitraria di questi livelli. Ecco perché intendevo in termini generali, nel senso del miglior approccio alla creazione di TS. IMHO
In generale, c'è un criterio più importante in questa domanda. Dato che raccoglieremo statistiche sulla storia, l'algoritmo non dovrebbe essere troppo "pesante". E poiché lavoreremo con i livelli, sarebbe naturale applicare un criterio alla distanza tra i livelli. Per esempio, dividiamo questo intervallo per una potenza di due, quindi questa potenza potrebbe essere il parametro. È importante che abbia una gamma molto piccola di valori ragionevoli, 2, 3, ben 4.
Per questo problema, però, sarebbe abbastanza naturale dividere per 10, ma in qualche modo mi sembra inevitabile che sorga la domanda su altri modi di dividere in livelli :).
A proposito, ricordo che una volta ho forzato l'algoritmo di calcolo dei livelli Murray esattamente per rendere possibile lavorare con loro su una lunga storia :).
Il grado di due, ed è il primo, mi sembra il valore più accettabile. A mio parere, corrisponde maggiormente alla struttura frattale del mercato. Diversi anni fa, quando Vladislav ha proposto l'indicatore dei livelli di Murray, ho stimato il suo comportamento adeguato alle fluttuazioni dei prezzi. L'unica cosa che non mi piaceva era la base a cui era legato. La base per il suo calcolo era il valore zero del prezzo. Penso che fosse sbagliato.
In generale, se facciamo trading per livelli, otteniamo almeno tre parametri: 1) base, cioè almeno un valore assoluto che stabilisce il supporto della griglia; 2) intervallo tra i livelli - corrisponde pienamente al parametro del valore di profitto target di cui ho scritto; 3) parametro che definisce la partenza dal livello. Se costruiamo livelli di griglia più fini dividendo l'intervallo in due, la fuga del livello è determinata naturalmente.
Ma dividere per 10 mi sembra un omaggio alla nostra abitudine alla scala decimale. Questo non può essere giustificato.
Credo che sia qui che non siamo d'accordo sull'interpretazione della parola "livello". Ho scritto dei livelli nella struttura frattale del mercato. E voi, mi sembra, state parlando di livelli di prezzo, cioè di alcuni valori assoluti di prezzo.
Supponiamo di voler fare trading intraday ma di non voler fare pips. Supponiamo che il movimento di prezzo giornaliero sulla nostra coppia di valute selezionata sia di 70-80 punti. Poi possiamo impostare un target di profitto per il trade di 50 pip. Questo numero può essere preso come un parametro di base perché si può dire che determina in modo inequivocabile lo zigzag che rappresenterà, da un lato, il modello ideale per il nostro commercio e, dall'altro, la struttura frattale del mercato al livello selezionato.
In questo contesto, non si può nemmeno parlare di allontanarsi da questo livello, poiché il TS dovrebbe essere costruito per seguire al meglio i movimenti di prezzo di 50 pips o più, piuttosto che qualsiasi movimento di prezzo intorno a qualche livello fisso.
Mi rendo conto di essere entrato nella vostra discussione su un particolare TS che commercia da livelli assoluti. Questo, naturalmente, è un approccio completamente diverso al trading, che, tra l'altro, richiede ancora una sua giustificazione, almeno statistica.
Forse si può fare in questo modo?
x=DoubleNormalize(Close[i],3) ;
line=DoubleNormalize(Close[i],2);
if(x==line) flag = true;
if(flag && x>line) { up=1; flag=false; }
Sì, così, solo se(flag && x[i]>=linea && x[i+1]<linea) ....
Tuttavia:
1. Dobbiamo chiarire cosa è più veloce, attraverso NormalizeDouble o attraverso un passaggio a interi. come ho fatto sopra. NormalizeDouble mi è sempre sembrata una funzione lenta, ma devo chiarire.
2. Non dovremmo lavorare con Close, ma con High e Low, altrimenti non avremo la possibilità di riprodurre l'algoritmo degli input in tempo reale, imho.
Suggerisco che il criterio generale è il seguente: dato che non abbiamo un'uscita, non la controlliamo in linea di principio, non abbiamo una logica di uscita.
Controlliamo l'entrata - sottraiamo il drawdown dal massimo, se la legge di distribuzione è normale, allora prendiamo il valore medio, anche se molto probabilmente dovremo prendere la mediana.
Il livello migliore è quello con il maggior valore, il livello ideale - il prezzo va nella direzione di entrata, senza il drawdown...
Come può essere un criterio?