以下有一个筛选器,但问题是:
1.股票清单再长会有问题。请问这个如何解决?
2.股票资料若有缺失会中止运行。请问这个如何解决?
3.获取的股票资料太多,运算太花时间,能否只获取最近一个月的资料?
- library(quantmod)
- stocks <- c("CC", "CCE", "CCJ", "CCK", "CCMP", "CCO", "CCOI", "CDE", "CDEV", "CDK", "CDW", "CE", "CENT", "CENTA", "CENX", "CEQP", "CFFN", "CFR","CFX", "CG", "CGBD", "CGNX", "CHCO", "CHDN", "CHE", "CHFC", "CHGG", "CHH", "CHKP", "CHS", "CHSP", "CHUBA", "CIEN", "CIGI", "CIM", "CISN", "CIT", "CIU", "CJ", "CLB", "CLDR", "CLF", "CLGX", "CLH", "CLI", "CLNS", "CLR", "CLS", "CLVS", "CM", "CMC", "CMCT", "CMD", "CMP", "CMPR", "CNA", "CNDT", "CNHI", "CNI", "CNK", "CNMD", "CNO", "CNQ", "CNS", "CNSL", "CNX", "CODI", "COHR", "COKE", "COLB", "COLM", "COMM", "CONE", "COR", "CORE", "CORT", "COT", "COTV", "COUP", "CP", "CPA", "CPE", "CPG", "CPK", "CPN", "CPRT", "CPS", "CPT", "CQH", "CQP", "CR", "CREE", "CRI", "CRL", "CRS", "CRUS", "CRZO", "CSFL", "CSGP", "CSGS", "CSJ", "CSL", "CSOD", "CSTM", "CTB", "CTLT", "CTRE", "CUB", "CUBE", "CUDA", "CUZ", "CVA", "CVBF", "CVCO", "CVE", "CVG", "CVGW", "CVI", "CVLT", "CVNA", "CVRR", "CW", "CWH", "CWT", "CXP", "CXW", "CY", "CYBR", "CYS", "CZR", "CZZ", "DAN", "DAR", "DATA")
- stockEnv <- new.env()
- symbols <- getSymbols(stocks, src='yahoo', env=stockEnv)
- for (stock in ls(stockEnv)){
- getSymbols(stock)
- WT1 <- EMA(((stockEnv[[stock]][,2]+stockEnv[[stock]][,3]+stockEnv[[stock]][,4])/3 - EMA((stockEnv[[stock]][,2]+stockEnv[[stock]][,3]+stockEnv[[stock]][,4])/3,N=10)) / (0.015 * EMA(abs((stockEnv[[stock]][,2]+stockEnv[[stock]][,3]+stockEnv[[stock]][,4])/3 - EMA((stockEnv[[stock]][,2]+stockEnv[[stock]][,3]+stockEnv[[stock]][,4])/3,N=10)), N=10)), N=21)
- WT2 <- SMA(WT1,n=4)
- if(tail(WT1,1)>=tail(WT2,1) & tail(WT1,1)<=-63){
- cat(stock,"is true")}
- }