Fare un sistema di trading Python per la MT. - pagina 10

 
Yuriy Asaulenko:

Non mi occupo di ottimizzazione e di ogni sorta di adattamento e selezione dei parametri. Una metodologia diversa, ma hai bisogno di un ambiente come MatLab, R, SciLab, ecc. Python è altrettanto buono.

Inoltre non ho bisogno di 10^6 barre. Per tutto - circa 6, massimo 9 mesi su minuti è sufficiente. Ora il test è di 3 mesi -2,5 m, anche se il sistema non è ancora così complicato.

Il più lungo è imparare ML, ma non c'è niente di meglio di Python, e qui è solo come linguaggio di scripting. Diciamo che la risposta di una rete neurale di 5 strati, circa 60 neuroni è di 3-5 ms.

Finora non vedo alcuna conferma reale dell'allarmismo.

No, non sto in alcun modo cercando di spaventare e nemmeno di addensare i colori, il fatto stesso che tu scrivi tutta l'infrastruttura analitica è già - super!

Stai facendo la cosa giusta, sto solo pensando ad alta voce a quello che ho affrontato e inciampato su me stesso, se non ti dispiace non mi metto in mezzo))

 
pantural:

No, non sto cercando di spaventare e nemmeno di dipingere sopra le righe, il fatto stesso che tu scriva tutte le infrastrutture analitiche da solo è super!

Tu stai andando bene, io sto solo pensando ad alta voce a quello che ho affrontato e inciampato su me stesso, se non ti dispiace che mi tolga di mezzo)).

Sì, va bene comunicare. Le opinioni diverse vanno bene. Gli avversari sono sempre buoni).

 
Yuriy Asaulenko:

Sì, comunichiamo normalmente. Le opinioni diverse vanno bene. Gli avversari sono sempre buoni).

Ok. Allora cos'altro si può dire dopo aver letto https://c.mql5.com/3/236/Public.zip ...

Vorrei certamente struttura e chiarezza, finché il pitone lavora sul "divide et impera".

Come minimo abbiamo bisogno di una chiara separazione in qualcosa come "interfacce" dei moduli di datafeeds, la loro analisi/previsione (datafeeds), l'esecuzione e l'analisi dei risultati del commercio, idealmente questi moduli dovrebbero essere indipendenti

Astraendo dai dettagli, in principale ci dovrebbero essere almeno quattro oggetti complessi, i dati, i modelli di questi dati, l'implementazione (esecuzione) dei modelli al mercato e l'oggetto di stima di questa attività.

Nel caso più semplice il feed sarà semplicemente un array di candele, l'unica sottigliezza di lavorare con un tale feed è quella di avere una protezione affidabile dei modelli/moduli di esecuzione/stima dallo sbirciare nel futuro, il modello più semplice può essere qualsiasi indicatore, come RSI, stocastico, o indicatore di rete neurale, sia modulato che nella sua forma pura. Si tratta di un'interpretazione delle previsioni in un segnale di trading e della sua esecuzione inattiva/reale, per esempio attraversando alcuni livelli del modulo di previsione, ecc. E la stima è "testing", infatti il tester è solo una corsa a vuoto attraverso l'intera serie di datafeed, tecnicamente è meglio lavorare con lo stato attuale del mercato, modello/esecuzione/moduli di stima come nella realtà, ma è molto più lento che emettere segnali per tutta la serie e poi eseguirli separatamente nel tester, ma c'è un grande pericolo di spiare il futuro e ottenere risultati non realistici.


PS: Ora tutti i guru del Forex mi tireranno addosso, ma devo dire che nell'algotrading gli stop e i trailing stop - una tecnologia dannosa, sono solo per il trading manuale, episodico, quando si apre una posizione per un'occasione fortunata e si va a fare una scampagnata, e quando l'AI monitora continuamente il mercato, allora agire a seconda del vostro drawdown locale non ha senso, non dipende affatto dal futuro movimento del mercato e le decisioni dell'AI non dovrebbero essere basate su questo.

 
pantural:

OK. Beh, allora, cosa si può dire di più dopo aver letto https://c.mql5.com/3/236/Public.zip ...

State attaccando Public invano. È solo un semplice modello di strategia con una semplice strategia su 2 MA, trailing stop e tester. Dovrebbe avere un codice semplice dove tutti possano capirlo, e niente di inutile. Inoltre, c'è la possibilità di sperimentare strategie di indicatori. E, se qualcuno inizia a modellare strategie in Python, questo modello può essere modificato e sviluppato come necessario.

Infatti, è stato originariamente progettato come un banco di prova per testare vari moduli del sistema e per ulteriori pubblicazioni in questo argomento. In ogni caso, non è affatto quello che pensate. Tutto sommato, non è come sembra.

 
pantural:

PS A proposito, cosa ti fa pensare che il tuo tester funzioni correttamente? Il tester è una cosa complicata....

panturale:

"test", in sostanza il tester è solo una corsa a vuoto attraverso l'intera riga del datafeed, tecnicamente è più corretto lavorare con lo stato attuale del mercato, modello/esecuzione/moduli di stima come nella realtà, ma questo sarà significativamente più lento che se si emettono immediatamente segnali per l'intera riga e poi eseguirli separatamente nel tester, ma in questo modo c'è un grande pericolo di spiare il futuro e ottenere risultati non realistici.

Questa è una domanda interessante. È anche interessante perché il forum sta già producendo leggende sui miracoli dei test). In realtà, è per questo che abbiamo bisogno di un nostro tester, che possiamo controllare completamente.

Cos'è un tester - è solo un ciclo che dovrebbe informare la strategia sul numero di una candela (o il numero di qualcos'altro, un tick, diciamo) con cui il tester deve lavorare. Inoltre, il tester raccoglie dati sullo stato della strategia e in qualche modo li sistematizza nell'archivio per un'ulteriore elaborazione da parte dell'utente. Questo è tutto. Cosa c'è da temere? Anche se il tester si sforza molto, non c'è niente che possa fare).

Ci può essere solo una ragione per cui i test sono insidiosi: la strategia stessa funziona con altri tipi di dati nella vita reale che nei test. Per esempio, con i tick invece delle candele. E una vita divertente è garantita per noi.

Finché usiamo solo Open o solo Close in una strategia e a condizione che solo questo e nient'altro sia usato nel trading reale, non siamo in pericolo (se non ci sono errori evidenti, ovviamente). Ma non appena proviamo a usare OHLCV nei test, abbiamo molte opportunità di guardare al futuro. In primo luogo, HL non ha timbri temporali, e in secondo luogo, il prezzo all'interno di una candela può comportarsi in qualsiasi modo voglia, e qualsiasi ipotesi sul comportamento del prezzo può solo portare a distorsioni nel test.

In questo tipo di analisi siamo molto limitati in quello che possiamo fare, e infatti possiamo usare l'informazione OHLCV solo all'inizio della prossima candela. Quasi tutto quello che possiamo fare senza rischi è chiudere il trade se il prezzo nella candela corrente va sotto lo stop. Lo stop, così facendo, non dovrebbe ovviamente cambiare sulla barra corrente.

ZS Suppongo che questo sia il momento di parlare dei test delle zecche ). Non uso i tic nei test, e credo che analizzare i tic sia analogo al cercare di calcolare la traiettoria e i parametri di movimento di un aereo misurando le vibrazioni della fusoliera e le fluttuazioni di traiettoria.

 
Ho dovuto fare il mio tester, non è una selezione di parametri, anche se influisce, ma la creazione della strategia sotto forma di definizione delle condizioni di entrata/uscita, calcolo di TP/SL, la strategia risultante non è una "scatola nera". La questione di "guardare nel futuro" è affrontata molto accuratamente, è una delle questioni più importanti, il tester trova informazioni sul futuro nei dati, se sono disponibili.
 
Yuriy Asaulenko:

Domanda interessante. È anche interessante perché ci sono già leggende sulle meraviglie dei test in questo forum). In realtà, è per questo che abbiamo bisogno di un nostro tester, che possiamo controllare completamente.

Cos'è un tester - è solo un ciclo, che dovrebbe informare la strategia sul numero di una candela (o il numero di qualcos'altro, un tick, diciamo) con cui il tester deve lavorare. Inoltre, il tester raccoglie dati sullo stato della strategia e in qualche modo li sistematizza nell'archivio per un'ulteriore elaborazione da parte dell'utente. Questo è tutto. Cosa c'è da temere? Anche se il tester si sforza molto, non c'è niente che possa fare).

Ci può essere solo una ragione per cui i test sono insidiosi: la strategia stessa funziona con altri tipi di dati nella vita reale che nei test. Per esempio, con i tick invece delle candele. E una vita divertente è garantita per noi.

Finché usiamo solo Open o solo Close in una strategia e a condizione che solo questo e nient'altro sia usato nel trading reale, non siamo in pericolo (se non ci sono errori evidenti, ovviamente). Ma non appena proviamo a usare OHLCV nei test, abbiamo molte opportunità di guardare al futuro. In primo luogo, HL non ha timbri temporali, e in secondo luogo, il prezzo all'interno di una candela può comportarsi in qualsiasi modo voglia, e qualsiasi ipotesi sul comportamento del prezzo può solo portare a distorsioni nel test.

In questo tipo di analisi siamo molto limitati in quello che possiamo fare, e infatti possiamo usare l'informazione OHLCV solo all'inizio della prossima candela. Quasi tutto quello che possiamo fare senza rischi è chiudere il trade se il prezzo nella candela corrente va sotto lo stop. Lo stop, così facendo, non dovrebbe ovviamente cambiare sulla barra corrente.

ZS Suppongo che questo sia il momento di parlare dei test sulle zecche ). Non uso i tick nei test, e credo che l'analisi dei tick sia analoga al tentativo di calcolare la traiettoria e i parametri di movimento di un aereo misurando le vibrazioni della fusoliera e le fluttuazioni della traiettoria.

Sono d'accordo con molti, il tester ha bisogno di un proprio, trasparente e veloce, l'algoritmo stesso nel caso semplice (quando solo i mercati sul best(bid, sask)) è circa 10 righe di codice, ma anche in esso si può sparare nel piede. Beh, per esempio, se si utilizza la "esecuzione istantanea", cioè, per calcolare la transazione al momento del segnale, succede quando un uomo ha preso una candela, per esempio, un Klos e poi ha preso da questa serie che nibutuya differenze mashah e poi a loro volta di nuovo su klos (bid o ask) aperto / chiuso un affare al momento del segnale, questo errore darà un risultato leggermente più positivo che il reale, non sarà evidente. D'altra parte, se prendiamo la candela successiva per fare trading sul segnale precedente, il risultato sarà significativamente più negativo di quello reale. Classicamente, il segnale è considerato sulle opzioni, e il trade è basato sui rallentamenti della stessa candela, ma non è anche molto buono, la pratica dimostra che i segnali sono migliori sulle opzioni, e le transazioni dovrebbero essere elaborate dalla media (H+L+C)/3, anche se alcune persone li mescolano in modo più intelligente.

A proposito, tutto è molto rispettabile e accettabile se sono confezionati in "tick candlestick", cioè strutture di candele contenenti tick che sono passati tra l'opzione e la chiusura, l'indicatore può essere calcolato per tick ed eseguito per tick dentro una candela, anche se IMHO non ha molto senso, i risultati saranno abbastanza simili.

Ma con il vetro c'è più difficoltà e ambiguità, per fortuna riguarda solo chi usa le somme che possono asciugare fortemente questo vetro e quindi è possibile senza il vetro.

 
pantural:

Sono d'accordo con molte cose, il tester ha bisogno del proprio, trasparente e veloce, l'algoritmo stesso in un caso semplice (quando solo i mercati sul migliore (bid, ask)) è circa 10 righe di codice, ma anche in esso si può sparare nel piede. Beh, per esempio, se si utilizza il "instant execution", cioè, per calcolare la transazione al momento del segnale, succede quando un uomo ha preso una candela, per esempio, un Klos e poi ha preso da questa serie che nibutuya differenze mashah e poi a loro volta di nuovo su klos (bid o ask) aperto / chiuso un affare al momento del segnale, questo errore darà un risultato leggermente più positivo che il reale, non sarà evidente. D'altra parte, se prendiamo la candela successiva per fare trading sul segnale precedente, il risultato sarà significativamente più negativo di quello reale. Classicamente, il segnale è considerato sulle opzioni, e il trade è basato sui rallentamenti della stessa candela, ma non è anche molto buono, la pratica dimostra che i segnali sono migliori sulle opzioni, e le transazioni dovrebbero essere elaborate dalla media (H+L+C)/3, anche se alcune persone li mescolano in modo più intelligente.

A proposito, tutto è molto rispettabile e accettabile se sono confezionati in "tick candlestick", cioè strutture di candele contenenti tick che sono passati tra l'opzione e la chiusura, l'indicatore può essere calcolato per tick ed eseguito per tick dentro una candela, anche se IMHO non ha molto senso, i risultati saranno abbastanza simili.

Ma con il vetro c'è più difficoltà e ambiguità, per fortuna riguarda solo chi usa le somme che possono asciugare fortemente questo vetro e quindi è possibile senza il vetro.

Sai, mi sto un po' innamorando di te. Come hai scritto chiaramente quello che non hai bisogno di fare, e molte persone lo fanno. Non lo capiscono. Non mi stupisce che tu sia stato bloccato. Oh, è così strano.
 

) In generale, è una profonda modernizzazione dell'oscillatore stocastico classico, ma nonostante i geni comuni, il discendente ha molto poco in comune con l'oscillatore stocastico classico. La matematica è completamente diversa, ma la somiglianza esterna è evidente.

Finora l'indicatore è stato implementato solo in Python. Il suo scopo è quello di determinare il momento di entrare nell'affare e come parte del suo meccanismo di sostegno. Si può già vedere dalla figura che lo fa bene e in tempo.

Naturalmente, l'indicatore non è destinato ad essere usato da solo, ma solo in simbiosi con altri metodi e indicatori.

Penso che forse dovrei mettere l'indicatore in MQL e metterlo nel Mercato.

 

Chi ha letto l'argomento Dalla teoria alla pratica sa già che il mio sistema e quello di A_K2 sono costruiti più o meno sulla stessa ideologia: il lavoro di canale. L'unica differenza è che il mio è stato costruito un anno fa. Ho già scritto prima, che ora questa strategia è implementata e testata in Python, con alcune piccole modifiche, ma non ha senso lanciarla - non ci si aspetta nulla di nuovo.

Dato che non avevo idee in particolare, ho sviluppato tutti i tipi di indicatori - uno di loro è nel post sopra. Ne ho fatti una decina. Come risultato ho deciso di incrociare il riccio con il riccio: combinare il lavoro nel canale con il trend following in un sistema coerente. Non l'ho ancora provato nel suo insieme, ma ho praticato alcuni elementi. Tutto sembra andare bene, ma ho alcune domande. Non posso dire cosa verrà fuori nella pratica, potrebbe essere niente. Aspettiamo e vediamo.

Motivazione: