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

 
Aleksey Terentev:
Rete [64 GRU + 32 GRU + 2 Dense] in un problema di classificazione di OHLC -> modello Buy/Sell (7000 bar) su ~24 sessioni di allenamento dà 0,9 - 0,8 di precisione. E tutto questo in circa 30 secondi.

Cosa c'è nei cartelli e nelle indicazioni?
 
panturale:
Cosa c'è nei cartelli e nelle indicazioni?

"OpenHighLowClose -> Compra/Vendi"

aggiornamento: segnale di acquisto/vendita già postato in questo thread.

 
elibrario:
Come sono questi risultati nel trading? Qual è la crescita del deposito in % al mese/anno? Se si allena non per 7000 battute, ma per 100000?

Non ho iniziato a commerciare. Sono occupato con l'automazione.

Anche la selezione del modello di rete neurale è piuttosto sensibile. Bisogna prendere in considerazione il tipo di funzioni di attivazione negli strati, la funzione di errore, il metodo di addestramento e il corretto pre-addestramento dell'output, così come un mucchio di altre sfumature MO. Tutto l'addestramento può ridurre molto rapidamente ogni segnale a 0 nell'intervallo [-1;1].

Ecco perché non ho fretta di condividere i risultati.

 
what mean l2 norm?? - MATLAB Answers - MATLAB Central
  • www.mathworks.com
what mean l2 norm??. Learn more about matlab
 

Grazie. Proprio quello di cui hai bisogno.

 

Chi capisce R? Il primo esempio di caricamento delle citazioni tramitequantmod è un intoppo, non posso disegnare le citazioni risultanti

getSymbols("AAPL", src = "google")
plot(AAPL[, "AAPL.Close"], main = "AAPL")

//
[1] "AAPL"
> plot(AAPL[, "AAPL.Close"], main = "AAPL")
Error in if (on == "years") { : missing value where TRUE/FALSE needed


https://www.r-bloggers.com/an-introduction-to-stock-market-data-analysis-with-r-part-1/

An Introduction to Stock Market Data Analysis with R (Part 1)
An Introduction to Stock Market Data Analysis with R (Part 1)
  • ntguardian
  • www.r-bloggers.com
Around September of 2016 I wrote two articles on using Python for accessing, visualizing, and evaluating trading strategies (see part 1 and part 2). These have been my most popular posts, up until I published my article on learning programming languages (featuring my dad’s story as a programmer), and has been translated into both Russian (which...
 
Maxim Dmitrievsky:

Chi capisce R? Ho un problema nel primo esempio con il caricamento delle citazioni tramitequantmod, non riesco a disegnare le citazioni risultanti

Ho eseguito il codice dell'articolo, tutto ha funzionato dalla prima volta.
Versione R 3.4.2, ma non credo che importi molto.

 

Si sa che per addestrare un modello di classificazione, si dovrebbe bilanciare il numero di classi in modo che il numero di esempi di formazione della classe "1" coincida con il numero di esempi di formazione della classe "2" (e rimuovere gli esempi inutili).

Vedo un requisito simile per i modelli di regressione, ma è più complicato - il numero di esempi con il target di 0.001 dovrebbe essere uguale al numero di esempi di allenamento con target di -0.001,
il numero di esempi con target di 0.002 dovrebbe essere uguale al numero di esempi con target di -0.002, ecc.

Ecco uno script per fare questo bilanciamento -

#Подготовка  таблички для обучения модели, тут рандомные значения
#таргет  в колонке 11
trainTable <- cbind(matrix(runif(10000), nrow = 1000, ncol=10), 
                    round(sample(c(-runif(480)*runif(480), runif(520)*runif(520))*0.1), 3))#рандомные  значения для таргета, 3 знака после запятой.
                                                                                           #Позитивных значений на 40 больше чем негативных имитируя тренд в исходных ценах.


#Требуется  взять для обучения модели только такие строки таблицы когда число позитивных и негативных значений будет равно и отбалансировано по уровням

target <- trainTable[,11]
target <- round(target, 3) #округление  до определённой точности, тут 3 знака после запятой
targetFactor <- factor(target)
targetFactorLevels <- as.numeric(levels(targetFactor))
balancedIndexes <- c()
for(i in 1:length(targetFactorLevels)){
  idx <- which(target == targetFactorLevels[i])
  idxN <- which(target == -targetFactorLevels[i])
  minLength <- min(length(idx), length(idxN))
  balancedIndexes <- c(balancedIndexes, tail(idx, minLength), tail(idxN, minLength))
}
balancedIndexes <- sort(unique(balancedIndexes))

trainTableBalanced <- trainTable[balancedIndexes, ] #новая табличка на которой можно обучать модель
 

Quando le wavelets sono utili per le previsioni?

Quando i dati mostrano un'alta volatilità e lacune, che è tipico nella maggior parte delle serie temporali finanziarie ad alta frequenza, la previsione diventa ancora più difficile. Utilizzando i dati dei tassi di cambio ad alta frequenza, mostriamo che le wavelets che sono robuste all'alta volatilità e alle lacune sono utili predittori in applicazioni ad alta frequenza dove l'alta volatilità è la caratteristica dominante che influenza le stime di valutazione, le previsioni di zona o entrambe. I risultati indicano che la decomposizione delle serie temporali in componenti omogenee, che vengono poi utilizzate nei modelli di previsione delle serie temporali, è molto importante. Le diverse componenti diventano più utili di altre per diversi dati associati al regime di volatilità. Consideriamo una vasta gamma di modelli di serie temporali lineari e non lineari per prevedere le serie ad alta frequenza dell'apprezzamento del tasso di cambio. I nostri risultati indicano che quando i dati mostrano caratteristiche non standard con alta volatilità, i modelli non lineari superano le alternative lineari. Tuttavia, quando i dati sono nelle gamme di bassa volatilità sia per le stime che per le previsioni, prevalgono i modelli autoregressivi lineari semplici, anche se è richiesto uno sforzo considerevole per rimuovere il rumore nei dati tramite wavelets.

 
Ildottor Trader:

C'è l'idea che per addestrare un modello di classificazione, il numero di classi dovrebbe essere bilanciato in modo che il numero di esempi di formazione con classe "1" coincida con il numero di esempi di formazione con classe "2" (e rimuovere gli esempi inutili).

Vedo un requisito simile per i modelli di regressione, ma è più complicato - il numero di esempi con livello "0.001" dovrebbe essere uguale al numero di esempi di allenamento con livello "-0.001",
il numero di esempi con l'obiettivo 0,002 dovrebbe essere uguale al numero di esempi con l'obiettivo -0,002, ecc.

Ecco uno script per fare questo bilanciamento

Cosa significa essenzialmente?
Se il dollaro stava crescendo (era in tendenza) per alcuni mesi, allora smussando la quantità di esempi di allenamento mostreremo NS come se fosse stato piatto durante tutto questo tempo. E di conseguenza lo imparerà in modo piatto. È corretto? Forse, dovremmo ancora insegnarlo alla tendenza?