Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
braverock
GitHub Repository: braverock/portfolioanalytics
Path: blob/master/inst/tests/test_demo_max_qu.R
1433 views
1
##### Load packages #####
2
require(testthat)
3
require(PortfolioAnalytics)
4
5
##### Source Demo Script #####
6
source(system.file("demo/demo_max_quadratic_utility.R", package="PortfolioAnalytics"))
7
8
9
##### init.portf objectives #####
10
context("objectives for quadratic utility")
11
12
test_that("init.portf contains mean as an objective",
13
{ expect_that(init.portf$objectives[[1]]$name == "mean", is_true()) })
14
15
test_that("init.portf contains StdDev as an objective",
16
{ expect_that(init.portf$objectives[[2]]$name == "StdDev", is_true()) })
17
18
##### ROI, full_investment, long only, max qu ######
19
context("maxQU.lo.ROI")
20
21
test_that("risk aversion parameter = 4",
22
{ expect_equal(maxQU.lo.ROI$portfolio$objectives[[2]]$risk_aversion, 4) })
23
24
test_that("maxQU.lo.ROI objective measure mean = 0.007813251",
25
{ expect_equal(as.numeric(extractObjectiveMeasures(maxQU.lo.ROI)$mean), 0.007813251, tolerance=1e-6) })
26
27
test_that("maxQU.lo.ROI objective measure StdDev = 0.01556929",
28
{ expect_equal(as.numeric(extractObjectiveMeasures(maxQU.lo.ROI)$StdDev), 0.01556929, tolerance=1e-6) })
29
30
test_that("maxQU.lo.ROI min box constraints are not violated",
31
{ expect_that(all(extractWeights(maxQU.lo.ROI) >= maxQU.lo.ROI$portfolio$constraints[[2]]$min), is_true()) })
32
33
test_that("maxret.lo.ROI max box constraints are not violated",
34
{ expect_that(all(extractWeights(maxQU.lo.ROI) <= maxQU.lo.ROI$portfolio$constraints[[2]]$max), is_true()) })
35
36
##### ROI, full_investment, long only, max qu to approximate max return ######
37
context("maxQU.maxret.ROI")
38
39
test_that("risk aversion parameter = 1e-6",
40
{ expect_equal(maxQU.maxret.ROI$portfolio$objectives[[2]]$risk_aversion, 1e-6) })
41
42
test_that("maxQU.maxret.ROI objective measure mean = 0.008246053",
43
{ expect_equal(as.numeric(extractObjectiveMeasures(maxQU.maxret.ROI)$mean), 0.008246053, tolerance=1e-6) })
44
45
test_that("maxQU.maxret.ROI objective measure StdDev = 0.03857144",
46
{ expect_equal(as.numeric(extractObjectiveMeasures(maxQU.maxret.ROI)$StdDev), 0.03857144, tolerance=1e-6) })
47
48
test_that("maxQU.maxret.ROI min box constraints are not violated",
49
{ expect_that(all(extractWeights(maxQU.maxret.ROI) >= maxQU.maxret.ROI$portfolio$constraints[[2]]$min), is_true()) })
50
51
test_that("maxQU.maxret.ROI max box constraints are not violated",
52
{ expect_that(all(extractWeights(maxQU.maxret.ROI) <= maxQU.maxret.ROI$portfolio$constraints[[2]]$max), is_true()) })
53
54
##### ROI, full_investment, long only, max qu to approximate min StdDev ######
55
context("maxQU.minvol.ROI")
56
57
test_that("risk aversion parameter = 1e6",
58
{ expect_equal(maxQU.minvol.ROI$portfolio$objectives[[2]]$risk_aversion, 1e6) })
59
60
test_that("maxQU.minvol.ROI objective measure mean = 0.00603498",
61
{ expect_equal(as.numeric(extractObjectiveMeasures(maxQU.minvol.ROI)$mean), 0.00603498, tolerance=1e-6) })
62
63
test_that("maxQU.minvol.ROI objective measure StdDev = 0.008251084",
64
{ expect_equal(as.numeric(extractObjectiveMeasures(maxQU.minvol.ROI)$StdDev), 0.008251084, tolerance=1e-6) })
65
66
test_that("maxQU.minvol.ROI min box constraints are not violated",
67
{ expect_that(all(extractWeights(maxQU.minvol.ROI) >= maxQU.minvol.ROI$portfolio$constraints[[2]]$min), is_true()) })
68
69
test_that("maxQU.minvol.ROI max box constraints are not violated",
70
{ expect_that(all(extractWeights(maxQU.minvol.ROI) <= maxQU.minvol.ROI$portfolio$constraints[[2]]$max), is_true()) })
71
72