Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.94 KB | None | 0 0
  1. Sys.setenv(TZ = "UTC")
  2.  
  3. > currency("USD")
  4. [1] "USD"
  5. >
  6. > init_date <- "2015-12-31"
  7. >
  8. > start_date <- "2016-01-01"
  9. >
  10. > end_date <- "2016-01-05"
  11. >
  12. > init_equity <- 10000
  13. >
  14. > basic_symbols <- function() {
  15. + symbols <- c("Nasdaq_100_60m" when i take "QQQ" instead, it works!
  16. + )
  17. + }
  18. >
  19. > symbols <- basic_symbols()
  20. >
  21. >
  22. > strat.name <- "Bollinger.Band"
  23. >
  24. > rm.strat(strat.name)
  25. >
  26. > initPortf(strat.name,
  27. + symbols = symbols,
  28. + initDate = init_date)
  29. [1] "Bollinger.Band"
  30. >
  31. > initAcct(strat.name,
  32. + portfolios = strat.name,
  33. + initDate = init_date,
  34. + initEq = init_equity)
  35. [1] "Bollinger.Band"
  36. >
  37. > initOrders(portfolio = strat.name,
  38. + symbols = symbols,
  39. + initDate = init_date)
  40. >
  41. > addPosLimit(portfolio = strat.name,
  42. + symbol = symbols,
  43. + timestamp = start_date,
  44. + maxpos = 200,
  45. + longlevels = 2)
  46. >
  47. > strategy(strat.name, store = TRUE)
  48. >
  49. > strat <- getStrategy(strat.name)
  50. >
  51. > add.indicator(strategy = strat.name,
  52. + name = "BBands",
  53. + arguments = list(HLC = quote(HLC(mktdata)),
  54. + n = 20,
  55. + maType = "SMA",
  56. + sd = 2),
  57. + label = "BB.20.2")
  58. [1] "Bollinger.Band"
  59. >
  60. > add.signal(strat.name,
  61. + name="sigCrossover",
  62. + arguments = list(columns = c("Close", "up"),
  63. + relationship = "gt"),
  64. + label="Cl.gt.Upper.Band")
  65. [1] "Bollinger.Band"
  66. >
  67. > add.signal(strat.name,
  68. + name = "sigCrossover",
  69. + arguments = list(columns = c("Close", "dn"),
  70. + relationship = "lt"),
  71. + label = "Cl.lt.Lower.Band")
  72. [1] "Bollinger.Band"
  73. >
  74. > add.signal(strat.name,
  75. + name = "sigCrossover",
  76. + arguments = list(columns = c("High", "Low", "mavg"),
  77. + relationship = "op"),
  78. + label = "Cross.Mid")
  79. [1] "Bollinger.Band"
  80. >
  81. > add.rule(strategy = strat.name,
  82. + name = "ruleSignal",
  83. + arguments = list(sigcol = "Cl.gt.Upper.Band",
  84. + sigval = TRUE,
  85. + orderqty = -100,
  86. + ordertype = "market",
  87. + orderside = NULL,
  88. + threshold = NULL,
  89. + osFUN = osMaxPos),
  90. + type = "enter")
  91. [1] "Bollinger.Band"
  92. >
  93. > add.rule(strategy = strat.name,
  94. + name = "ruleSignal",
  95. + arguments = list(sigcol = "Cl.lt.Lower.Band",
  96. + sigval = TRUE,
  97. + orderqty = 100,
  98. + ordertype = "market",
  99. + orderside = NULL,
  100. + threshold = NULL,
  101. + osFUN = osMaxPos),
  102. + type = "enter")
  103. [1] "Bollinger.Band"
  104. >
  105. > add.rule(strategy = strat.name,
  106. + name = "ruleSignal",
  107. + arguments = list(sigcol = "Cross.Mid",
  108. + sigval = TRUE,
  109. + orderqty = "all",
  110. + ordertype = "market",
  111. + orderside = NULL,
  112. + threshold = NULL,
  113. + osFUN = osMaxPos),
  114. + label = "exitMid",
  115. + type = "exit")
  116. [1] "Bollinger.Band"
  117. >
  118. > applyStrategy(strategy = strat.name,
  119. + portfolios = strat.name)
  120.  
  121. open high low close
  122. 2016-01-04 15:00:00 4889.875 4889.875 4883.476 4883.476
  123. 2016-01-04 16:00:00 4860.516 4860.573 4856.573 4856.573
  124. 2016-01-04 17:00:00 4872.452 4872.452 4868.901 4868.932
  125. 2016-01-04 18:00:00 4880.133 4881.719 4880.121 4881.706
  126. 2016-01-04 19:00:00 4883.815 4883.815 4880.608 4880.963
  127. 2016-01-04 20:00:00 4873.627 4873.750 4872.290 4872.293
  128.  
  129. Error in if (length(j) == 0 || (length(j) == 1 && j == 0)) { :
  130. missing value where TRUE/FALSE needed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement