-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathalphaModelsTemp.R
More file actions
executable file
·37 lines (32 loc) · 1.29 KB
/
Copy pathalphaModelsTemp.R
File metadata and controls
executable file
·37 lines (32 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
fillOrders4.1.alphaModel <- function(model, ...) {
model$positions <- sign(model$signals)
colnames(model$positions) <- "Positions"
model
}
signals.ancillary1.1.alphaModel <- function(model) {
stopifnot(inherits(model, "alphaModel"))
ts.prices <- model$ancillary$prices
func.name <- match.fun(model$signal.list$filter.func)
signal.list <- model$signal.list$filter.params
signal.list[3] <- 0
model$signals <- xts(
do.call(
func.name,
append(list(coredata(ts.prices)), signal.list)
),
order.by=index(model$prices)
)
model$signals[1,] <- na.omit(model$signals)[1,]
model$signals <- na.locf(model$signals)
look.back <- model$signal.list$filter.params[3]
model$signals <- diff(model$signals, look.back)
model$signals[1:look.back,] <- 0.0
colnames(model$signals) <- "Signals"
model
}
model.values <- function(comb, model.input) {
func.signal <- list(filter.params=c(model.input$signal.list$filter.params[1],comb[['width']],comb[['window']],model.input$signal.list$filter.params[4]))
model <- update.alphaModel(model=model.input, func.signal=func.signal)
model <- recalc.alphaModel(model)
c(pnl=model$performance$CumPnL, width=comb[['width']], window=comb[['window']])
}