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
А
purtroppo, questa osservazione è spiacevole... anche notato...
SHOOTER potrebbe dirci brevemente che cosa esattamente i gruppi di parametri ottimizzano
- x
- y
- z
- X
- Y
- Z
Probabilmente ne capisco qualcosa, ma non riesco ancora ad avere tutto il quadro nella mia testa.Ecco un'altra stranezza, o forse solo un difetto
Si scopre che se ora F == 0 e non ci sono posizioni aperte - allora possiamo entrare prima nel primo blocco e poi nel secondo, il che porterà successivamente a risultati errati.
O mi manca qualcosa?
Probabilmente no, però. Non possiamo entrare in entrambi i blocchi allo stesso tempo perché non ci fanno entrare.
non ci lasciano entrare.
Non mi piace criticare le cose che funzionano. Vi darò solo qualche critica al codice:
cpsb. Non prendo le critiche come critiche, ma come una guida all'azione, cioè leggere almeno un po' del manuale MQL
Accettato, ma probabilmente in lavori futuri. Ho ottenuto questa "scrittura" dopo alcuni altri progetti più globali e a causa della bassa risoluzione del mio monitor da 12 pollici. La tua versione sembra senza dubbio migliore, ma dovrei costantemente scorrere avanti e indietro nell'elenco. Ma siccome non sono qui per me stesso, lo dirò di nuovo - lo terrò a mente.
Vedi sopra! Anche se mi piacciono i miei nomi, bisogna solo abituarsi, come ci siamo abituati alle abbreviazioni GOELRO, OBHSS, IMHO ecc. Se guardate bene, ho dato ad alcune variabili nomi più o meno significativi, ma ho abbreviato tutte le vocali.
Non ho ancora capito le variabili. Quando si scrive codice da zero non si ha idea di dove sarà una variabile, quindi quasi tutto è globale.
empiricamente non è così, mi ricorderò dove l'ho incontrato - penso che fosse nella funzione BuSll ()
Sono d'accordo, correggiamolo, di nuovo, quando si scrive un blocco da zero non si ha ancora idea di quali parametri si passeranno nella funzione, e poi l'occhio si "sporca" e non si presta attenzione a tali "inezie" ))
SHOOTER potrebbe dirci brevemente che cosa esattamente i gruppi di parametri ottimizzano
La principale forza motrice e di guida dell'Expert Advisor è la famigerata)) funzione G12(). È questa la funzione in cui vengono calcolate le direzioni commerciali preferite in base agli indicatori. Ma una direzione non è sufficiente - abbiamo bisogno di punti di ingresso. Nei "classici", se su un timeframe vengono cercati o i patterron, o l'indicatore stesso viene abbinato se ci sono parametri esterni, se ce ne sono due o più, anche questi vengono ottimizzati. Ho provato un altro metodo nuovo per me NN
Qui questa funzione
doppio prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at)
{double qw = (q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(1);
se (MathAbs(qw)>at) return(qw);altrimenti return(0);}
una sorta di perceptron e progettato per ottenere.... qualcosa. Ecco qui in dettaglio alcune risposte a molte domande, e meglio di quanto avrei risposto io. 'Come trovare una strategia di trading redditizia' e Ricette di reti neurali. Ammetto che io stesso ho letto tutto in diagonale e sono diventato più interessante studiando il lavoro di altri, vedi sotto.
Questo EA è "creato sulla base di" MTS "Neural network + MACD" di Batohov, MTS "Сombo", "Combo_Right" & AI di Reshetov, PROphet di PraVedNiK,RSI_Test di zerkmax, auto_optimization.mqh di Igor Malcev e alcuni altri.
Ecco un'altra stranezza, o forse solo un difetto
Si scopre che se ora F == 0 e non ci sono posizioni aperte - allora possiamo entrare prima nel primo blocco e poi nel secondo, il che porterà successivamente a risultati errati.
O forse non capisco qualcosa?
F == 0 solo nelle prime due fasi di ottimizzazione, quando oltre a Delta_G12 ci sono Trd_Up_X e Trd_Dn_Y.
Se tutti i sei passi sono passati correttamente e i set-file di ottimizzazione sono usati in modo sequenziale, allora F dovrebbe essere sempre uguale a 1.
E ho trovato l'altro errore rivedendo il codice. Vedo che le ultime versioni funzionano peggio. Questo errore è apparso nelle versioni 7 e 9.
Qualcuno l'ha notato?
Qui questa funzione
doppio prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at)
{double qw = (q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(1);
se (MathAbs(qw)>at) return(qw);altrimenti return(0);}
una specie di perceptron e destinato a ottenere.... qualcosa.
Questo è un po' un mistero per me al momento. Certo, capisco cosa fa e a cosa serve. Ma la formula stessa è un po' insolita.
Il risultato del lavoro dei neuroni dovrebbe essere un numero che somma gli ingressi dei neuroni moltiplicati per i pesi di questi ingressi.
Cioè logicamente dovrebbe essere qualcosa come il seguente:
Chiaramente entrambi sono qualche funzione di 4 variabili (o sono 8?) coinvolte nel trovare il massimo (equilibrio risultante), ma è ancora strano :)
Questa funzione è ancora un mistero per me. Certo, capisco cosa fa e perché lo fa. Ma la formula stessa è un po' insolita.
Il risultato del lavoro dei neuroni dovrebbe essere un numero che somma gli ingressi dei neuroni moltiplicati per i pesi di questi ingressi.
Quindi, logicamente dovrebbe essere qualcosa del genere:
Chiaramente entrambi sono qualche funzione di 4 variabili (o sono 8?) che è coinvolta nel trovare il massimo (equilibrio risultante), ma è ancora strano :)
Hai dato una versione semplificata della funzione, almeno è così che l'ho capita
Qui è dove si discute
MTS 'Sombo'.
Ad essere onesti, non è una rete neurale nella sua forma più pura. In primo luogo, manca un valore di soglia senza il quale la capacità di divisione del NS è molto più piccola. In secondo luogo, IMHO, vale la pena aggiungere una soglia di attivazione dell'uscita. Cosa significa? Per restituire il segnale al commercio solo se la soglia di attivazione viene superata. Per esempio:
double res = (w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4 // )/Close[0] - T); // Dividi per Close[0] per l'unificazione
if (MathAbs(res) > ActivityThreshold) return(res); // ActivityThreshold -- soglia di attivazione
Le versioni precedenti usavano Close(0) nella formula z1 del perceptron, ma in 7 e 9 Close(1). È di questo che stiamo parlando?
No, non credo che si tratti di questo, dopo tutto c'è una regola per lavorare su barre formate.
Ma il fatto che il flag Flq=falso; uno per comprare e uno per vendere influenza fortemente la divisione di queste direzioni di trading e quindi i risultati.