L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 2810

 
mytarmailS #:
.
Una rete addestrata o qualsiasi AMO addestrato o anche Mashka, è la memoria... Sì, si può prendere questa analogia....

Ma quando si "riqualifica" un neurone addestrato, si cambiano i pesi, si dimentica il passato a favore del presente....

Non è un riallenamento, è un riallenamento a ogni passo, la stessa Mashka nella finestra scorrevole, non ricorda cosa c'è fuori dalla finestra scorrevole, anche se c'era....

C'è un intero zoo di approcci, si possono trovare implementazioni su github, ne ho vista una per python.

 
Maxim Dmitrievsky #:

C'è un intero zoo di approcci, si possono trovare implementazioni su github, ne ho vista una per python

Ci possono essere molte soluzioni, ma qual è la qualità di queste soluzioni e quanto funzionano bene in attività reali?

 
mytarmailS #:
Se Alexei volesse pensare e ascoltare, ci vorrebbero due minuti con il mio script....

Interessante giudizio di valore. Non hai ascoltato quello che ti ho scritto. Hai bisogno di un esempio?

 
Aleksey Vyazmikin #:

Interessante giudizio di valore. Non hai sentito quello che ti ho scritto. Vuole un esempio?

sì, ho letto... tanti errori di pensiero su non molte righe di testo che non vedevo da tempo...

Fammi un esempio).

 
mytarmailS #:
Sai cos'è la correlazione? Stai dicendo una tale sciocchezza che sto iniziando a tremare.

Ecco un esempio di ciò di cui sto parlando: un campione giallo tagliato e uno verde intero - pensaci.


 
Aleksey Vyazmikin #:

Ecco un esempio di ciò di cui sto parlando: un campione giallo e uno verde intero - riflettete.

Non ti è ancora venuto in mente che nessuno capisce cosa significhino i tuoi segni, forse hai bisogno di significare il significato degli scarabocchi? ))
 
mytarmailS #:
Non ti è ancora venuto in mente che nessuno capisce il significato dei tuoi segni, forse dovresti indicare il significato degli scarabocchi? ))

Penso che dovreste essere più moderati. Lascia le frustrazioni della vita a un compagno di bevute o a un prete.

Ovviamente, Pn sono i predittori e K è il coefficiente di correlazione. L'esempio mostra come il coefficiente possa cambiare se l'altro 50% dei dati cambia consistenza. Il vostro approccio può essere applicato solo a dati stazionari, con correlazione immutabile, cosa che non avviene nel nostro caso. Vi consiglio quindi di riflettere prima di sghignazzare.

 
Aleksey Vyazmikin #:

Quindi, vi consiglio di pensare prima di offendere.

A proposito del pensiero....

La domanda è: perché passare attraverso tutte le varianti di correlazione dei segni da 0,1...0,2...0,7...0,8 aumentando così la già enorme mole di lavoro per l'algoritmo?

Anche il rumore casuale generato può correlarsi con il predittore di 0,6 e 0,8, raramente di più...

Ne consegue che è stupido prendere una soglia di correlazione inferiore a 0,8, ma tu hai deciso di fare un sovra-campionamento completo, il che dimostra che non pensi a quello che stai facendo....

Quindi ho il diritto di ridere, credo...

Aleksey Vyazmikin #:

Ovviamente, Pn sono predittori e K è il coefficiente di correlazione.

Ovviamente... ))))) questo è uno scriba.... Che cosa è ovvio, mi vergogno a chiederlo? Quale algoritmo di decodifica dovrei applicare per renderlo ovvio?

Ma almeno pensi a quello che dici?

Aleksey Vyazmikin #:

Il tuo approccio può essere applicato solo a dati stazionari con dipendenza immutabile, il che non è il caso in questione.

Questo non è il mio approccio, ma il tuo, ed è stato inizialmente imbastardito, e tre persone te ne hanno parlato.

 
mytarmailS #:

Informazioni su Thinking....

La domanda è perché cercare tutte le varianti di correlazione dei segni da 0,1...0,2...0,7...0,8 aumentando così la già enorme mole di lavoro per l'algoritmo?

Anche il rumore casuale generato può correlarsi con il predittore di 0,6 e 0,8, raramente di più ...

Ne consegue che è stupido prendere una soglia di correlazione inferiore a 0,8, ma si è deciso di fare un sovra-campionamento completo, il che dimostra che non si pensa a quello che si sta facendo....

Sto solo dicendo che sto sperimentando e traendo conclusioni.

mytarmailS #:

Ovviamente. )))))))) che è il beejeezus... Qual è l'ovvietà, mi vergogno a chiederlo? Quale algoritmo di decodifica dovrei applicare per renderlo ovvio?

Dal contesto della discussione è ovvio.

mytarmailS #:

Non è il mio approccio, è il tuo, ed era macabro fin dall'inizio, e te l'hanno detto in tre.

Qual è il tuo approccio? Qual è il mio approccio? Non capisco di cosa stiate parlando.

Lei, in particolare, ha affermato che un modello non può essere addestrato su un campione - si sbagliava.

 
Maxim Dmitrievsky #:

La memoria è un NS con pesi addestrati, lo si riqualifica a ogni passo, si spostano i pesi un po'... non molto, quindi lag.

e non si può trasferire al terminale.

Ho provato, non funziona, tutto dipende ancora dai segnali.


Se siete interessati, sto preparando il progetto di un tester multicurrency con spread, lotto primitivo e un accenno di apertura di posizioni di chiusura con lotto frazionario.

Affinché il tester funzioni, è necessario preparare un dataframe con le colonne ['open', 'spread] e lanciare anche un array numpy di formato x (n,2) con le previsioni delle probabilità di acquisto/vendita per ogni nuova barra nel segnale. Il tester funziona da un ciclo, di seguito un esempio di inizializzazione dell'utilizzo del tester

symbols = ['EURUSD','GBPUSD']
points = [1 / mt5.symbol_info(s).point for s in symbols]

trade_agent = Agent()
for s, p in zip(symbols, points):
        trade_agent.create_symbol(s, p,max_positions=6)

for index, row in dataset.iterrows():
        sig = signal[index]
        prices = list(row.filter(like='open'))
        spreads = list(row.filter(like='spread'))

        if index != len(dataset) - 1:
            trade_agent.refresh(prices, [sig], spreads)
        else:
            trade_agent.stop = True

La logica di negoziazione e il lotto possono essere regolati nel metodo transcript_sig dell'oggetto Symbol.

    def transcript_sig(self,sig):
        act = 0
        lot = 1
        revers = 0
        if len(sig)==4:
            pass
        else:
            act = sig

        if revers<=0.5:
            if np.argmax(act) == 0:
                return 'buy',lot
            if np.argmax(act) == 1:
                return 'sell',lot
        else:
            if np.argmax(act) == 0:
                return 'sell',lot
            if np.argmax(act) == 1:
                return 'buy',lot


        return self.last_action,lot


I risultati del test sono nel dizionario trade_history_data, per il test complessivo e trade_symbol_data di ogni simbolo.

        self.trade_history_data = {'step': [],
                                   'acc_profit': [],
                                   'acc_balance': [],
                                   'acc_equity': [],
                                   'lots_open': [],
                                   'R2_balance': [0,0,0,0]}

Se qualcuno vuole ottimizzare o modificare qualcosa, è il benvenuto).

File:
Tester.py  12 kb