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

 
mytarmailS #:
Penso che la mediazione sia una cattiva idea, una pessima idea...
Soprattutto le righe non correlate, è così che dovrebbe funzionare, le montagne. Linea
Quale delle 100 linee previste dovremmo usare? La media è la soluzione più ovvia.
 
elibrarius #:
E su quale delle 100 linee previste fare un pronostico? La media è la soluzione più ovvia.
Beh, diciamo che 50 previsioni al rialzo 50 al ribasso, facciamo la media, otteniamo una previsione orizzontale, e allora?)))
 
mytarmailS #:
Beh, diciamo che 50 previsioni al rialzo 50 al ribasso, facciamo una media, otteniamo una previsione orizzontale, e allora?)))
e questo è tutto... Quali sono le opzioni?
 
elibrarius #:
e questo è tutto. Quali sono le opzioni?
Beh, come quella che ho suggerito sopra
 
elibrarius #:
E su quale delle 100 linee previste fare un pronostico?
Non ho visto alcun suggerimento)
 

Una variante del markup "informativo", un test di penna:

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

Prendiamo un insieme di segnali e marchiamo le etichette come nei miei articoli, ma tenendo conto dell'informazione reciproca (di tipo regressivo) tra n stringhe dell'insieme di segnali prima di aprire un trade e n stringhe di prezzi futuri.

Se l'informazione reciproca è al di sotto della soglia, si segna come non operare.

quindi addestrato 2 modelli sui segnali e sul trade/non trade, a partire dal 2019.

Risultati:

Non si è ottenuto molto da questo approccio

 
elibrarius #:
Non avevo visto il suggerimento)
Beh, rileggi il mio post, l'ultima immagine.
C'è ancora scritto
 

La cosa più logica da fare era provare altre opzioni:

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 будущие цены

tutte le opzioni non producono nulla

 
mytarmailS #:
Beh, rileggete il mio post, l'ultima foto.
È ancora scritto

C'erano solo 2 varianti sulle prime 25 barre. E 2 errori sono un piccolo errore.
E questa è solo una variante del grafico su migliaia, che ha catturato la tua attenzione. La situazione sarà diversa in altri casi. È necessario elaborare una strategia (che non è stata formulata) e osservare la linea di equilibrio sui nuovi dati (Maxim ha portato la sua idea fino in fondo e tutto è diventato subito chiaro).
 
Ho fatto la stessa cosa con il clustering più di un anno fa, poi ho determinato i livelli medi come nelle immagini e ho effettuato gli ordini a partire da questi. Divisi in 3 cluster up, down, mean reversion. Funziona benissimo in allenamento.
La cosa divertente è che, a prescindere dai mezzi speciali utilizzati, non è possibile ottenere nulla di buono da un'analisi casuale.