Programmazione Metatrader Overfitting_II (per principianti)

ti ho segnato quale sarebbe stato il minimo da considerare x il segnale che invece non é scattato

scusa qualità.fatto dal cellulare

Ciao Daee.
Non riesco proprio a riprodurre il tuo esempio.
Mi viene il dubbio che i settaggi dell'indicatore (sopra) e del segnale(sotto) fossero diversi.
Prova comunque a impostare AppliedPrice = 0 e vedi come si comporta.
 
Ciao Daee.
Prova anche questo...
Non c'e' piu' l'opzione AppliedPrice.
Le medie sono sempre calcolate su Close.
Le condizioni di cambio segnale sono calcolate cosi':

if( (Cross > 0) & (High[pos] > LastMax[pos])) Index[pos] = 1;
if( (Cross < 0) & (Low[pos] < LastMin[pos])) Index[pos] = -1;
 

Allegati

TS_Cicli_TO (metodo Torino)

Con poche modifiche, ho preparato questa versione che dovrebbe consentire di individuare qualsiasi tipo di ciclo.
Forse la pretesa e' eccessiva, :specchio: ma i risultati sono comunque sempre utili per facilitare la ricerca delle centrature pregresse.

La modifica principale consiste nella aggiunta della parametrazione del n. di giorni indietro su cui calcolare i supporti e le resistenze da controllare; il nuovo parametro di input si chiama backDays;

Sul FtseMiib funziona benino, su altri strumenti ho notato le seguenti anomalie:

-lungo i trend molto forti, l'algoritmo "salta", ovvero mette insieme due cicli senza distinguerli (es 2 tracy indistinti che formano un T+1).
- altre volte un minimo profondo fa scambiare un ciclo con quello di un ordine superiore (es. un T-1 di 5 giorni molto ritracciato puo' essere scambiato per un T).

Nel grafico H4 di FtseMib, ho attaccato due volte il programma.
Quello che calcola i segnali associati ai cicli T+1 e' configurato cosi':

extern string StrtTime = "2015.01.15 11:00";
extern int minCycledays = 11;
extern int dayBars = 3;
extern int backDays = 3;

Quello che calcola i segnali associati ai cicli T e' configurato cosi':

extern string StrtTime = "2015.01.15 11:00";
extern int minCycledays = 5;
extern int dayBars = 3;
extern int backDays = 2;

Con gli stessi parametri relativi ai cicli T ho configurato l'altro programma che evidenzia supporti e resistenze (grafico in alto).

Il lavoro continua...

Intanto vi metto questi files, cosi' li provate.
 

Allegati

  • Cicli_TO.zip
    Cicli_TO.zip
    24,7 KB · Visite: 152
  • Ita40Jun15H4.png
    Ita40Jun15H4.png
    53,7 KB · Visite: 231
le medie mi dicono che direzione preferire. il superamento del pivot danno il segnale. Poi la gestione è altra cosa

Stavo solo facendo delle considerazioni sul segnale di entrata, non intendevo giudicare il perchè si entra, ma sul come, dato che ho già visto errori nel backtest dovuti a queste cose...
era per dare una mano :ciao:
 
...c'è poi un problema di definizione dei max e min da prendere in considerazione che vedi nell'allegato. Io considero quello segnato in bianco. forse si potrebbe prendere come riferimento l'ultimo max o min prima dell'incrocio...

No problem...
Ora le soglie di braekout dovrebbero sempre essere quelle precedenti alla barra sulla quale scatta il nuovo cross.
Se dopo il nuovo cross, il relativo livello rimane inviolato non si dovrebbe avere il cambio di segnale.
Ti metto il nuovo file da provare.
Fammi sapere se funziona come dovrebbe.
Ciao
 

Allegati

Ultima modifica:
Ora devo uscire...
Stasera sul tardi ti metto il relativo TS che gestisce gli ordini.
Cosi' facciamo le ottimizzazioni.
A dopo.
 
...
Si possono vedere anche sopra i livelli?

Ciao Daee.
Stavo preparando il TS automatico e anche l'indicatore che mette i livelli sul grafico.
Nel testarli, mi sono messo ad esaminare i massimi e i minimi che il programma individua come livelli di breakout.
E qui mi e' venuto un dubbio fondamentale su come intendi tu questi minimi e massimi.

Dobbiamo fare un passo indietro e ragionare sulla teoria di minimi e massimi.
Ho fatto questo piccolo grafico su excel per chiarezza.

Come vedi ho segnato due massimi con A e un massimo con B.
- i massimi di tipo A sono massimi semplici, o primari; la loro caratteristica e' che sono preceduti e seguiti da valori inferiori;
- il massimo di tipo B e' un massimo secondario; anche lui e' preceduto e seguito da valori inferiori ma oltre a questo risulta preceduto e seguito da altri due massimi primari inferiori di tipo A;

Per i minimi si puo' fare lo stesso ragionamento, ovviamente rovesciato.

In un andamento di mercato ci saranno molti piu' minimi e massimi primari (tipo A) e meno minimi e massimi di tipo B.

Nella revisione 2 dell'indicatore io ho dato per scontato che fosse meglio usare minimi e massimi secondari.

Nel mentre stavo scrivendo i programmi, mi e' venuto il dubbio che forse tu preferiresti considerare dei minimi e massimi primari.

Prima di inserire i nuovi files, ti pongo quindi una domanda precisa:

- i livelli minimo o massimo immediatamente precedenti l'incrocio delle medie devono essere primari (tipo A) o secondari (tipo B) ?
 

Allegati

  • Immagine.jpg
    Immagine.jpg
    17,7 KB · Visite: 175
TS_Daee_rev.3

io propenderei per i primari. i secondari mi hanno dato anche delle belle batoste se non erano evidenti. bisognerebbe trovare un criterio per filtrare i secondari. In pratica trovare i pivot buoni. Se hai qualche idea per determinare la loro evidenza ben venga.

Ciao Daee.
Chiarito questo punto, mettiamo da parte la rev.2 e le sue varianti e ripartiamo dalla versione 3.
Ricapitolo il metodo:

- scelti due valori per le medie, si aspettano gli incroci (cross)
- quando, nel corso di una barra, avviene il cross, si cerca indietro l'ultimo min/max (primario); il min/max non puo' essere quello della barra sulla quale si e' verificato il cross
- successivamente, se il prezzo (tick) brekka il min/max si entra short/long

Il programma "Indicatore_Daee_0_rev3" disegna medie e livelli sul grafico principale (finestra zero di MT4).

Il programma "Indicatore_Daee_rev3" disegna i segnali short/long nella finestra sotto il grafico principale.

Il programma "TS_Daee_rev3" e' il TS automatico che gestisce gli ordini sulla base dei segnali; il TS prevede i seguenti valori default di input :

FastPeriod = 20; // periodo della MA veloce
SlowPeriod = 50; // periodo della MA lenta

MyMagic = 888888; //n. ordine associato al TS
MyLts = 0.1; // n. lotti contratto
MaxDelay = 1; // n. di barre di stand-by dopo entrata short/long
IniStplss = 999; //valore dello stoploss (in valuta del conto)
ProfTrgt = 999; //valore dopo il quale scatta il trailing profit (in valuta del conto)
ProfFctr = 1.0; //percentuale del profitto massimo sotto la quale si esce dalla posizione

Qui ci sono i files.
 

Allegati

Users who are viewing this thread

Back
Alto