Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 2810

 
mytarmailS #:
.
Uma rede treinada ou qualquer AMO treinada ou até mesmo o Mashka, é a memória... Sim, você pode usar essa analogia....

Mas quando você "retreina" um neurônio treinado, você muda os pesos, esquece o passado em favor do atual....

Não é retreinamento, é retreinamento a cada etapa, a mesma Mashka na janela deslizante, ela não se lembra do que está fora da janela deslizante, embora estivesse lá....

Há uma infinidade de abordagens, você pode encontrar implementações no github, eu vi uma para python.

 
Maxim Dmitrievsky #:

Há um grande número de abordagens, você pode encontrar implementações no github, eu vi uma para python

Pode haver muitas soluções, mas qual é a qualidade dessas soluções e como elas funcionam em tarefas reais?

 
mytarmailS #:
Se Alexei quisesse pensar e ouvir, levaria dois minutos com meu script....

Julgamento de valor interessante. Você não ouviu o que eu escrevi para você. Precisa de um exemplo?

 
Aleksey Vyazmikin #:

Julgamento de valor interessante. Você não ouviu o que eu escrevi para você. Quer um exemplo?

Sim, eu li... tantos erros de pensamento em não tantas linhas de texto que não vejo há muito tempo...

Dê-me um exemplo).

 
mytarmailS #:
Você sabe o que é correlação? Você está falando tanta besteira que estou começando a tremer.

Aqui está um exemplo do que estou falando - uma amostra amarela aparada e uma verde inteira - pense nisso.


 
Aleksey Vyazmikin #:

Aqui está um exemplo do que estou falando - uma amostra amarela aparada e uma verde inteira - reflita.

Ainda não lhe ocorreu que ninguém entende o que seus sinais significam, talvez você precise explicar o significado dos rabiscos? ))
 
mytarmailS #:
Ainda não lhe ocorreu que ninguém entende o que seus sinais significam. Talvez você devesse explicar o significado dos rabiscos? ))

Acho que você deveria ser mais contido. Deixe as frustrações da vida para um amigo que bebe ou para um padre.

Obviamente, Pn são preditores e K é o coeficiente de correlação. O exemplo mostra como o coeficiente pode mudar se os outros 50% dos dados mudarem sua consistência. Sua abordagem só pode ser aplicada a dados estacionários, com correlação imutável, o que não é o caso em nosso caso. Portanto, recomendo que você pense antes de rir.

 
Aleksey Vyazmikin #:

Por isso, recomendo que você pense antes de criticar.

Sobre o pensamento....

A questão é: por que passar por todas as variantes de correlação de sinais de 0,1... 0,0,2... 0,7... 0,8, aumentando assim o já enorme conjunto de trabalho para o algoritmo?

Até mesmo o ruído aleatório gerado pode se correlacionar com o preditor em 0,6 e 0,8, raramente mais...

Conclui-se que é estúpido usar um limite de correlação menor que 0,8, mas você decidiu fazer uma superamostragem completa, o que mostra que você não pensa no que está fazendo....

Portanto, tenho o direito de rir, acho que sim...

Aleksey Vyazmikin #:

Obviamente, Pn são preditores e K é o coeficiente de correlação.

Obviamente... ))))) this is a scribe.... Que algoritmo de decodificação devo aplicar para tornar isso óbvio?

Você ao menos pensa no que diz?

Aleksey Vyazmikin #:

Sua abordagem pode ser aplicada somente a dados estacionários com dependência imutável, o que não é o caso aqui.

Essa não é a minha abordagem, mas a sua, e ela foi inicialmente bastardizada, e três pessoas lhe falaram sobre isso.

 
mytarmailS #:

Sobre o Thinking....

A questão é: por que pesquisar todas as variantes de correlação de sinais de 0,1...0,2...0,7...0,8, aumentando assim o já enorme conjunto de trabalho do algoritmo?

Até mesmo o ruído aleatório gerado pode se correlacionar com o preditor em 0,6 e 0,8, raramente mais ...

Conclui-se que é estúpido adotar um limite de correlação menor que 0,8, mas você decidiu fazer uma superamostragem completa, o que mostra que você não pensa no que está fazendo....

Tudo o que estou dizendo é que estou experimentando e tirando conclusões.

mytarmailS #:

Obviamente. )))))))) isso é o máximo... Que algoritmo de decodificação devo aplicar para tornar isso óbvio?

Pelo contexto da discussão, é óbvio.

mytarmailS #:

Não é a minha abordagem, é a sua, e ela era macabra para começar, e três pessoas lhe disseram isso.

Qual é a sua abordagem? Qual é a minha abordagem? Não entendo do que você está falando.

Você, em particular, afirmou que um modelo não pode ser treinado em uma amostra - você estava errado.

 
Maxim Dmitrievsky #:

A memória é uma NS com pesos treinados, você a retreina a cada etapa, move os pesos um pouco... não muito, por isso o atraso.

e você não pode transferir isso para o terminal.

Eu tentei, não funciona, tudo se resume aos sinais novamente.


Se estiver interessado, estou lançando o projeto de um testador de várias moedas com spread, lote primitivo e uma sugestão de abertura de posições de fechamento com lote fracionário.

Para que o testador funcione, você precisa preparar um dataframe com colunas ['open', 'spread] e também lançar uma matriz numpy de formato x (n,2) com previsões de probabilidades de compra/venda para cada nova barra no sinal. O testador funciona a partir de um loop. Abaixo está um exemplo de inicialização do uso do testador

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

A lógica de negociação e o lote podem ser ajustados no método transcript_sig do objeto 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


Os resultados do teste estão no dicionário trade_history_data, para o teste geral e trade_symbol_data de cada símbolo.

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

Há listas, se alguém quiser otimizar ou alterar algo - bem-vindo)

Arquivos anexados:
Tester.py  12 kb
Razão: