Generate P Value from stationary bootstrap following Politis & Romano (1994)

Generate P Value from stationary bootstrap following Politis & Romano (1994)

Manage alerts

Loading saved threads...

Pavlov · External communityPost link
External question — Quantitative Finance Stack Exchange Author: Pavlov Original post: https://quant.stackexchange.com/questions/38784 License: CC BY-SA 3.0 — https://creativecommons.org/licenses/by-sa/3.0/ Adaptation: HTML converted to plain text; contact email addresses removed. For my master thesis I am analyzing the performance of trading strategies. For this I need to avoid data snooping by utilising the FDR approach. I follow closely the procedure presented by Bajgrowicz & Scaillet (2012) in their paper Technical Trading revisited: False discoveries, persistence tests, and transaction costs . Journal of Financial Economics, Volume 106, Issue 3, December 2012, Pages 473-491 link However I became a bit stuck. I have several different time series of returns generated with trading rules and a buy and hold portfolio. These trading rules are either on an intraday or daily basis. Now, Bajwgrowicz & Scaillet describe the following procedure (see attached picture, i hope it is fine to copy from the paper). I now want to integrate this into R. For this i utilize the tsboot function and specified the parameters. Lets take for example one time series generated by the trading rules and name it ma.bt. However I am not sure if the formula and the parameters as I specified them are correct. the output I get from running the function is always somewhere around 0.4 or 0.5 - which does not make much sense for me as a p-value. Hope everything is clear in my posted question. Excuse me if anything is posted wrong - it is my first time asking a question around here. bootstrap.p <- function(rule, statistic = ts_function, b = 10) { # statistic used as per step 2: AR function ts_function <- function(tsb) { ar.fit <- ar(tsb, demean = T) c(ar.fit$order, mean(tsb), tsb) } # bootstrapping sample set.seed(1) ts <- tsboot(rule, statistic, R = 500, l = b, sim = "geom") # reshifting theta so that is meaned at 0 ts.H0 <- ts$t - mean(ts$t) p.value <- (mean(abs(ts.H0) > abs(ts$t0))) return(p.value) } bootstrap.p(ma.bt)
Quote
Report

Post Reply

Quoted from Forex.com.bd-Editorial External question — Quantitative Finance Stack Exchange Author: Pavlov Source score (net votes, not local likes): 2 Original post: https://quant.stackexchange.com/questions/38784 License: CC BY-SA 3.0 — https://creativecommons.org/licenses/by-sa/3.0/ Adaptation: HTML converted to plain text; contact email addresses removed. For my master thesis I am analyzing the performance of trading strategies. For this I need to avoid data snooping by utilising the FDR approach. I follow closely the procedure presented by Bajgrowicz & Scaillet (2012) in their paper Technical Trading revisited: False discoveries, persistence tests, and transaction costs . Journal of Financial Economics, Volume 106, Issue 3, December 2012, Pages 473-491 link However I became a bit stuck. I have several different time series of returns generated with trading rules and a buy and hold portfolio. These trading rules are either on an intraday or daily basis. Now, Bajwgrowicz & Scaillet describe the following procedure (see attached picture, i hope it is fine to copy from the paper). I now want to integrate this into R. For this i utilize the tsboot function and specified the parameters. Lets take for example one time series generated by the trading rules and name it ma.bt. However I am not sure if the formula and the parameters as I specified them are correct. the output I get from running the function is always somewhere around 0.4 or 0.5 - which does not make much sense for me as a p-value. Hope everything is clear in my posted question. Excuse me if anything is posted wrong - it is my first time asking a question around here. bootstrap.p <- function(rule, statistic = ts_function, b = 10) { # statistic used as per step 2: AR function ts_function <- function(tsb) { ar.fit <- ar(tsb, demean = T) c(ar.fit$order, mean(tsb), tsb) } # bootstrapping sample set.seed(1) ts <- tsboot(rule, statistic, R = 500, l = b, sim = "geom") # reshifting theta so that is meaned at 0 ts.H0 <- ts$t - mean(ts$t) p.value <- (mean(abs(ts.H0) > abs(ts$t0))) return(p.value) } bootstrap.p(ma.bt)

Cancel quote

Checking account access…