मैं आर के लिए नौसिखिया हूं और मुझे तकनीकी संकेतक के निर्माण के साथ कुछ समस्याएं आ रही हैं। अधिक विशेष रूप से, मैं एक सूचक, Fibonacci
बनाना चाहता हूं, जिसे chartSeries
में जोड़ा जाएगा और इसमें 5 क्षैतिज रेखाएं होंगी। जिस डेटा के साथ मैं काम कर रहा हूं वह स्टॉक की समाप्ति कीमत है। तो जिस ग्राफ को मैं बनाना चाहता हूं, उसके पास अधिकतम समापन मूल्य के बिंदु पर एक क्षैतिज रेखा होगी, न्यूनतम समापन मूल्य के बिंदु में एक क्षैतिज रेखा और पिछले दो के बीच तीन क्षैतिज रेखाएं होंगी।क्वांटमोड पैकेज में तकनीकी संकेतक कैसे बनाएं
Fibonacci <- function(x) {
x <- try.xts(x, error = as.matrix)
n <- nrow(x)
min <- runMin(x,n=n)
max <- runMax(x,n=n)
high <- 0.62*(max-min) + min
middle <- 0.5*(max-min) + min
low <- 0.38*(max-min) + min
res <-cbind(na.spline(min),na.spline(max),na.spline(high),
na.spline(middle),na.spline(low))
colnames(res)<- c("min","max","high","middle","low")
reclass (res, x)
}
मैं भी निम्न कोड मौजूदा chartSeries
साजिश करने के लिए तकनीकी सूचक जोड़ने के लिए लिखा है: कोड मैं आदेश एक शेयर के समापन की कीमतों के एक समय श्रृंखला के पांच मूल्यों लेने के लिए लिखा था निम्नलिखित है quantmod
पैकेज की:
addFibonacci<- function(col = "red",overlay = TRUE){
stopifnot("package:TTR" %in% search() || require("TTR", quietly = TRUE))
lchob <- quantmod:::get.current.chob()
x <- as.matrix([email protected])
chobTA <- new("chobTA")
[email protected] <- !overlay
if (!is.OHLC(x))
stop("Fibonacci requires HL series")
else {
fibon <- Fibonacci(Cl(x))
}
[email protected] <- fibon[[email protected]]
[email protected] <- match.call()
[email protected] <- 1
[email protected] <- list(xrange = [email protected], colors = [email protected],
color.vol = [email protected], multi.col = [email protected],
spacing = [email protected], width = [email protected], bp = [email protected],
x.labels = [email protected], time.scale = [email protected],
col = col)
if (is.null(sys.call(-1))) {
TA <- [email protected]$TA
[email protected]$TA <- c(TA, chobTA)
[email protected] <- [email protected] + ifelse([email protected], 1,
0)
chartSeries.chob <- quantmod:::chartSeries.chob
do.call(chartSeries.chob, list(lchob))
invisible(chobTA)
}
else {
return(chobTA)
}
}
समस्या यह है कि सूचक चार्ट में जुड़ते नहीं है और मैं भी निम्न त्रुटि संदेश हो रही है है:
Error in do.call([email protected]$TA[[j]]@name, list([email protected]$TA[[j]])) :
'what' must be a character string or a function
क्या मैं गलत कर रहा हूँ के लिए कोई विचार?
उत्तर और सहायता के लिए आपको बहुत बहुत धन्यवाद। मुझे नहीं पता था कि मैं न्यूटीए फ़ंक्शन का उपयोग कर सकता हूं। मैं बस सोच रहा हूं कि मैं केवल addFibonacci() को क्यों नहीं बुला सकता हूं और मैं जो प्लॉट चाहता हूं उसे ले सकता हूं, जैसे सभी एडीटीए फ़ंक्शंस, और इसके बजाय मुझे चार्ट श्रृंखला फ़ंक्शन को कॉल करना है? उदाहरण के लिए जब मैं addFibonacci को कॉल करता हूं तो मैं लेता हूं: addfibonacci() में त्रुटि: ऑब्जेक्ट 'chartSeries.chob' नहीं मिला – user3017291