fork download
  1.  
  2. Macd <- function(data,fast=12,slow=26,difnm=9){
  3. n <- fast
  4. m <- slow
  5. x <- difnm
  6. total <- m+x
  7. Dl <- (Hi(data)+Lo(data)+2*Cl(data))/4
  8. nEMA <- runMean(Dl,n=n)
  9. mEMA <- runMean(Dl,n=m)
  10. DIF <- nEMA-mEMA
  11. MACD <- runMean(DIF,n=x)
  12. nEMA <- nEMA[total]
  13. mEMA <- mEMA[total]
  14. MACD <- MACD[total]
  15. DIF <- DIF[total]
  16. Date <- as.character(index(data[total,]))
  17. all <- data.frame(Date,MACD,DIF,stringsAsFactors = FALSE)
  18.  
  19. for(w in c((total+1):nrow(data))){
  20. todayCl <- as.numeric(Dl[w])
  21. nEMA=(nEMA*(n-1)+todayCl*2)/(n+1)
  22. mEMA=(mEMA*(m-1)+todayCl*2)/(m+1)
  23. DIF=nEMA-mEMA
  24. MACD=(MACD*(x-1)+DIF*2)/(x+1)
  25. Date <- as.character(index(data[w,]))
  26. all <- rbind(all,c(Date,MACD,DIF))
  27. }
  28. all$Date <- as.Date(all$Date)
  29. all$MACD <- round(as.numeric(all$MACD),2)
  30. all$DIF <- round(as.numeric(all$DIF),2)
  31. all$OSC <- all$DIF-all$MACD
  32. all <- as.xts(read.zoo(all))
  33.  
  34. }
  35.  
  36. #--------------------------------------
  37. K <- "K>80" %in% input$checkstrategy
  38. M <- "M<50" %in% input$checkstrategy
  39.  
  40.  
  41. if(K&M){
  42. cond1 <- kd$k>80&macd$m<50
  43. plstrategy(data2,cond1)
  44.  
  45. }
  46. else if(K){
  47. cond1 <- kd$k>80
  48. plstrategy(data2,cond1)
  49. }
  50. else if(M){
  51. cond1 <- macd$m<50
  52. plstrategy(data2,cond1)
  53. }
  54.  
Success #stdin #stdout #stderr 0.2s 39128KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Error in match(x, table, nomatch = 0L) : object 'input' not found
Calls: %in% -> match
Execution halted