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

 
mytarmailS #:
Acho que fazer média é uma má ideia, uma ideia muito ruim...
Especialmente em linhas não relacionadas, é assim que deve funcionar, montanhas. Linha
Qual das 100 linhas previstas devemos usar? A média é a solução mais óbvia.
 
elibrarius #:
E em qual das 100 linhas previstas fazer uma previsão? A média é a solução mais óbvia.
Bem, digamos que 50 previsões para cima e 50 para baixo, calculamos a média, obtivemos uma previsão horizontal, e daí?)))
 
mytarmailS #:
Bem, digamos que 50 previsões para cima e 50 para baixo, calculamos a média, obtivemos uma previsão horizontal, e daí?)))
e é isso... Quais são suas opções?
 
elibrarius #:
e é isso. Quais são suas opções?
Bem, como a que sugeri acima
 
elibrarius #:
E em qual das 100 linhas previstas você deve fazer uma previsão?
Não vi nenhuma sugestão)
 

Uma variante da marcação "informativa", um teste de caneta:

def labeling_entropy(dataset, min_Mi = 0.1, min=15, max=15):
    labels = []
    MIs = []
    for i in range(max, dataset.shape[0]-max*2):
        rand = random.randint(min, max)
        curr_pr = dataset['close'][i]
        future_pr = dataset['close'][i + rand]
        full_pr = dataset[i-rand:i+rand]

        mi = mutual_info_regression(full_pr[full_pr.columns[1:]].iloc[0:rand], full_pr[full_pr.columns[0]].iloc[rand:rand*2])
        MIs.append(mi.mean())

        if future_pr + MARKUP < curr_pr and mi.mean() > min_Mi:
            labels.append(1.0)
        elif future_pr - MARKUP > curr_pr and mi.mean() > min_Mi:
            labels.append(0.0)
        else:
            labels.append(2.0)
    
    dataset = dataset.iloc[max:]
    dataset = dataset.iloc[:len(labels)].copy()
    dataset['labels'] = labels
    return dataset.dropna(), MIs

Pegamos um conjunto de sinais e marcamos os rótulos como em meus artigos, mas levando em conta a informação mútua (tipo de regressão) entre n cadeias do conjunto de sinais antes de abrir uma negociação e n cadeias de preços futuros.

Se a informação mútua estiver abaixo do limite, marcamos como não negociável.

Em seguida, treinamos 2 modelos em sinais e em negociação/não negociação, começando em 2019

Resultado:

Não houve muito ganho com essa abordagem

 
elibrarius #:
Não vi a sugestão)
Bem, releia minha postagem, a última imagem.
Ela ainda diz
 

A coisa lógica a fazer era tentar outras opções:

mi = mutual_info_regression(full_pr[full_pr.columns[1:]].iloc[0:rand], full_pr[full_pr.columns[0]].iloc[0:rand]) сравниваем фичи и цены в момент предсказания
mi = mutual_info_regression(full_pr[full_pr.columns[1:]].iloc[0:rand*2], full_pr[full_pr.columns[0]].iloc[0:rand*2]) сравниваем на глубину предсказания вперед + назад
mi = mutual_info_regression(full_pr[full_pr.columns[1:]].iloc[rand:rand*2], full_pr[full_pr.columns[0]].iloc[rand:rand*2]) только вперед
mi = mutual_info_regression(full_pr.iloc[0:rand], full_pr[full_pr.columns[0]].iloc[rand:rand*2])текущие цены и фичи в момент предсказания VS будущие цены

todas as opções não produzem nada

 
mytarmailS #:
Bem, releia minha postagem, a última imagem.
Ainda está escrito

Havia apenas 2 variantes nas primeiras 25 barras. E 2 erros são um pequeno erro.
E essa é apenas uma variante do gráfico entre milhares, que por acaso chamou sua atenção. A situação será diferente em outras. Você precisa criar uma estratégia (que ainda não formulou) e observar a linha de equilíbrio em novos dados (Maxim levou sua ideia até o fim e tudo ficou claro de uma vez).
 
Fiz a mesma coisa com o agrupamento há mais de um ano, depois determinei os níveis médios, como nas fotos, e fiz pedidos a partir deles. Dividi em 3 clusters: alta, baixa e reversão à média. Funciona muito bem no treinamento.
O engraçado é que, independentemente dos meios especiais que você use, não é possível obter nada de bom a partir do aleatório