una strategia di trading basata sulla teoria dell'onda di Elliott - pagina 76

 
Un punto importante - gli oggetti non sono creati o disegnati? Si possono leggere le proprietà degli oggetti non disegnati?
 
Ecco una nuova sorpresa - il disegno delle frecce non cambia il tempo di esecuzione, è interessante.
Il tempo è di 4 minuti e mezzo, in realtà non è cambiato.

2006.07.08 19:35:45 HistoryChannells EURUSD,M30: deinitialized<br / translate="no"> 2006.07.08 19:35:45 HistoryChannells EURUSD,M30: Running deinit()
2006.07.08 19:35:45 PM HistoryChannells EURUSD,M30: Tempo algoritmo ottimizzato 261281 ms
2006.07.08 19:31:24 StoriaChannells EURUSD,M30: inizializzato
2006.07.08 19:31:19 HistoryChannells EURUSD,M30: caricato con successo
2006.07.08 19:31:11 Compilazione di 'HistoryChannells'
 
Un punto importante - gli oggetti non sono creati o disegnati? Si possono leggere le proprietà degli oggetti non dipinti? <br / translate="no">


Gli oggetti vengono creati - ho controllato specificamente, si può anche vedere la proprietà della freccia "invisibile". Ecco il codice:
     centerLR=BestChannels[0][2]*(lastBar-1)+BestChannels[0][3]; ObjectCreate("up "+UpArrowCounter,OBJ_ARROW,0,Time[lastBar-1],centerLR+BestChannels[0][5]);
      ObjectSet("up "+UpArrowCounter,OBJPROP_ARROWCODE,158); ObjectSet("up "+UpArrowCounter,OBJPROP_COLOR,Red);
      ObjectCreate("giù "+DownArrowCounter,OBJ_ARROW,0,Time[lastBar-1],centerLR-BestChannels[0][5]); ObjectSet("giù"+DownArrowCounter,OBJPROP_ARROWCODE,158); ObjectSet("giù "+DownArrowCounter,OBJPROP_COLOR,Red); UpArrowCounter++; DownArrowCounter++;



ma ecco il disegno:

 
Hmmm... sembra che sia colpa mia, dovrò controllare domani. Questo è abbastanza per oggi.
 
Sì, ho anche controllato con questo codice
 for (i=0; i<50000;i++) { obj_name = i; ObjectCreate(obj_name,OBJ_TREND,0,Time[0],i,Time[1],i); ObjectSet(obj_name, OBJPROP_STYLE, DRAW_NONE);
    j = ObjectGet(nome_oggetto, OBJPROP_PRICE1); Print(j); } for (i=0; i<50000;i++) { nome_oggetto = i; ObjectDelete(nome_oggetto); }


 
<br / translate="no">
Le immagini devono essere solo in caratteri latini e preferibilmente in formato *.png (le gif non vengono mostrate tramite un link in questo forum).


È tutto fatto così, dico nella finestra dell'editor, appare normale, e appena premo il pulsante aggiungi o salva a seconda di quello che aggiungo o modifico il messaggio sparisce e sparisce anche quello che ho digitato :(
 
Ok, sono andato dall'altra parte (hanno iniziato a mandarmi via per 30 secondi, anche se aspettare 10 minuti non aiuta :( ) ma comunque, volevo solo mostrare che al momento ho un ebreo, ma probabilmente non è rilevante
 
Ecco una nuova sorpresa: disegnare le frecce non cambia il tempo di esecuzione, il che è interessante.

Ho questo effetto, a seconda di come eseguo l'algoritmo discusso qui, il tempo di esecuzione è 0 o 16 ms. Suppongo che in alcuni casi l'algoritmo venga eseguito continuamente, mentre in altri casi viene interrotto e viene eseguito l'intero ciclo terminale (perché i numeri si ripetono in modo stabile). Per analogia - il disegno non può avvenire dopo la fine dei calcoli?
 
Vladislav 02.06.06 11:26 <br / translate="no"> Per quanto riguarda l'implementazione pratica, o meglio i metodi sottostanti, tutto è abbastanza semplice: ci sono coefficienti nella funzione quadratica, che è necessario scegliere in modo ottimale - la regressione dà una stima lineare, più precisa per la sua costruzione. E, di conseguenza, sarete in grado di stimare fino a quali limiti (ampiezze di diffusione) nell'espansione di Taylor (costruzione della forma quadratica) questo coefficiente può essere utilizzato. Inoltre, per quanto riguarda gli altri coefficienti, pensate voi stessi. E per trovare il minimo di energia potenziale non è necessario conoscere la traiettoria dei prezzi, ma ciò che è più importante sapere - il gradiente di potenziale ;). Cioè, lo stato dinamico del suo potenziale zero - bisogna contare qualcosa per il potenziale zero. E tutto questo è sufficiente per stimare - la differenziazione diretta non è necessaria.
Se in senso figurato, "sulle dita", applicando l'immaginario geometrico:
Immaginate semplicemente che ci sia una palla che rotola su una superficie (analoga a un terreno accidentato) (questo è il prezzo). Non è necessario conoscere le complessità della costruzione della palla per determinare le aree di attrazione della traiettoria della palla. È molto più utile conoscere le proprietà di questo "terreno accidentato".

Vladislav 14.06.06 21:06
Abbastanza giusto - ho scritto, infatti, che il minimo dell'energia potenziale funzionale serve come uno dei criteri di selezione del canale. Ed è una proprietà della potenzialità del campo dei prezzi, mentre non sto cercando la traiettoria stessa a causa (di nuovo) del fatto che tutte le traiettorie che rientrano nell'intervallo di confidenza devono essere considerate equivalenti per una data probabilità. Cioè, la costruzione delle proiezioni si riduce prima alla selezione del campione, poi all'algebra lineare.

In continuazione dell'argomento su cui ho già scritto a pagina 33, ho avuto un'altra idea sulla ricerca di un canale con energia potenziale minima in serie di canali consecutivi che soddisfano le condizioni già menzionate. Cosa abbiamo costruendo un canale di regressione lineare? Abbiamo una regione limitata dai suoi confini, all'interno della quale il prezzo può muoversi come vuole. L'unica condizione che è stata soddisfatta è la condizione che il prezzo rimanga all'interno di quel canale. Inoltre, Vladislav ha detto che tutte le traiettorie che rientrano nell'intervallo di confidenza devono essere considerate uguali per una data probabilità. Allora assumiamo che il prezzo possa muoversi con una funzione quadratica durante il suo movimento - cioè non violiamo la dichiarazione di cui sopra. Tanto più che questa affermazione procede dal presupposto che il campo dei prezzi sia potenziale. Cioè, per qualsiasi momento nel tempo (e per qualsiasi campione) possiamo costruire una parabola approssimativa e dire che, sulla base di questo campione, il prezzo aveva una tale traiettoria, attorno alla quale si è mosso in questo campione. In senso figurato si tratta di un tale trogolo parabolico inclinato e di una palla che ha molteplici disomogeneità sulla sua superficie. Ora cosa possiamo prendere come stato dinamico del potenziale del punto zero? Poiché la palla rotola dall'inizio del canale alla sua fine muovendosi lungo il nostro trogolo parabolico obliquo condizionato, il minimo di energia potenziale per questo trogolo sarà naturalmente al momento attuale sulla traiettoria di questo trogolo e, di conseguenza, al momento attuale la forza (gradiente potenziale) che tende a spostare la palla sulla traiettoria del trogolo parabolico agirà sulla palla (prezzo). Ora come trovare la grandezza e la direzione di questo gradiente? È molto semplice - trovare la parabola con il metodo dell'ISC e poi trovare la differenza tra il prezzo attuale e questa parabola (minimo del potenziale). Naturalmente questa differenza può essere sia positiva che negativa. Inoltre, a causa del fatto che il canale di regressione lineare scelto deve essere quello "vero" per la previsione, il campione dovrebbe avere sia le condizioni di convergenza note (RMS<SCO2/3) che qualsiasi altra condizione che confermi tale convergenza. La menzione di Vladislav del minimo di energia potenziale funzionale mi ha portato all'idea che per questo è necessario che la somma dei gradienti potenziali sia la più piccola possibile per il canale in cui costruiamo questi trogoli parabolici approssimativi su cui abbiamo la palla che rotola e che sono la migliore descrizione del nostro terreno accidentato. Naturalmente ho subito provato a verificare questa ipotesi nella pratica e condivido i risultati su questo link https://c.mql5.com/mql4/forum/2006/07/min_poten_energy.zip

Cosa vediamo in questi grafici? Possiamo vedere il canale di una regressione lineare disegnata usando il metodo del minimo RMS in una serie, che uso nel mio Expert Advisor in questo momento. Su un grafico separato, disegniamo un grafico della somma algebrica (cioè eseguo la somma dei gradienti tenendo conto dei loro segni (+/-)) dei gradienti del potenziale della sfera rispetto alla linea della parabola costruita per il campione attuale. Per semplicità di comprensione posso dire che assolutamente lo stesso approccio è usato qui che è usato per la determinazione del coefficiente di Hurst con la differenza che invece di approssimare il canale di regressione lineare si prende una parabola (funzione quadratica), e anche la parabola stessa è costruita per tutti i campioni attuali, compresa la barra calcolata per la quale si cerca il gradiente potenziale. Per sicurezza, vi ricordo che per trovare il coefficiente di Hurst abbiamo preso un campione che non include la barra attuale.
La linea verticale blu indica il minimo locale per la somma algebrica dei gradienti potenziali del canale a partire da questa stessa barra. Se guardi attentamente i grafici EURUSD e USDCHF, puoi vedere che i minimi locali coincidono esattamente (+/-1 barra) con i massimi/minimi locali del prezzo. Attribuisco l'errore di 1 bar alle peculiarità della preparazione del campione. Scelgo i valori delle barre (O+H+L+C)/4 come campione. Probabilmente, in questo caso dovremmo scegliere selettivamente High o Low che eliminerebbe definitivamente un errore di determinazione del canale con la minima energia potenziale. E poi i canali della serie coincideranno esattamente con quelli mostrati nell'immagine mostrata prima da Vladislav per USDCHF. Bene, cercherò di implementare questa ipotesi nel mio EA. Penso che sia molto vicino al metodo di selezione dei canali usato da Vladislav e condiviso da lui.

PS: Il grafico mostra il modulo della somma algebrica dei gradienti (per chiarezza). Per calcolare il potenziale del gradiente sulla barra corrente, costruisci una parabola per il campione dall'inizio del canale alla barra corrente, includendo la barra stessa calcolata. Cioè, se selezionate 100 barre, dovete calcolare 97 parabole, perché per costruire una parabola con il metodo ANC dovete avere almeno 4 campioni (l'ho scoperto oggi sperimentalmente ;o)). Di conseguenza, prendo semplicemente il gradiente del potenziale sulle prime 3 barre per essere uguale a zero. Rosh, penso che qui sarai libero di ottimizzare gli algoritmi di calcolo, perché il calcolo di una parabola richiede alcune volte più tempo del calcolo di un canale di regressione lineare ;o))).
 
А вот и новый сюрприз - рисование стрелочек не меняет времени прогона, это интересно.

Ho questo effetto, a seconda di come eseguo l'algoritmo discusso qui, il tempo di esecuzione è 0 o 16 ms. Presumo che in alcuni casi l'algoritmo venga eseguito continuamente, e in alcuni casi venga interrotto e venga eseguito un ciclo terminale completo (perché i numeri vengono ripetuti costantemente). Per analogia - il disegno non può avvenire dopo la fine dei calcoli?



In questo link - "MQL4, MQL2, EasyLanguage, Wealth-Lab 3.0 e VC++: confronto di velocità" - Renat ha scritto


Renat 14.01.05 14:18

Semplicemente, ho affrontato il comportamento inadeguato di GetTickCount() più di una volta; tuttavia, se i risultati di molte misure erano stabili +/- qualche piccolo delta, conferma la fedeltà dei test.


Sì, la precisione di GetTickCount() salta da 10 a 16 ms e non possiamo misurare piccoli periodi con esso, ma nel nostro caso il suo uso è ragionevole. Soprattutto quando è così facilmente accessibile da quasi tutti i codici.