আমি ইয়াহু ফিনান্স থেকে "সর্বশেষ বাণিজ্য" শেয়ারের দামটি আরয়েতে আমদানি করতে চাই The উদ্দেশ্যটি হল (প্রায়) রিয়েল টাইম ডেটার সাথে কাজ করা। কোন সমাধান আছে?
কোন সহায়ক মন্তব্যের জন্য আগাম ধন্যবাদ।
আমি ইয়াহু ফিনান্স থেকে "সর্বশেষ বাণিজ্য" শেয়ারের দামটি আরয়েতে আমদানি করতে চাই The উদ্দেশ্যটি হল (প্রায়) রিয়েল টাইম ডেটার সাথে কাজ করা। কোন সমাধান আছে?
কোন সহায়ক মন্তব্যের জন্য আগাম ধন্যবাদ।
উত্তর:
এটি সত্যিই কোনও পরিসংখ্যানের প্রশ্ন নয় (সম্ভবত এটি এসওতে স্থানান্তরিত হতে পারে?), তবে কোয়ান্টমোডে একটি দুর্দান্ত ফাংশন রয়েছে যা ডার্ক হাতে হাতে যা করেছে তা করে। দেখুন getQuote()এবং yahooQF()। টাইপিং yahooQF()আপনি ব্যবহার করতে পারেন এমন সমস্ত সম্ভাব্য উদ্ধৃতি ফর্ম্যাটগুলির একটি মেনু নিয়ে আসবে।
> require(quantmod)
> getQuote("QQQQ;SPY", what=yahooQF("Last Trade (Price Only)"))
Trade Time Last
QQQQ 2011-03-17 12:33:00 55.14
SPY 2011-03-17 12:33:00 128.17
এটি দেওয়া খুব সহজ যে প্রদত্ত ইউআরএলটি সরাসরি আর পড়তে পারে। কীটি ইউআরএল তৈরি করতে হয় তা সহজভাবে জানা যায়। 1990 সালের দশকের শেষের দিকে ডিজে প্যাডজেনস্কি কোডের উপর ভিত্তি করে এখানে একটি দ্রুত এবং নোংরা উদাহরণটি দিয়েছেন যা আমি পার্ল মডিউল ইয়াহু-ফিনান্সকোট (যা অবশ্যই এখানে সিপিএএন-তেও আছে) বজায় রেখে চলেছি ।
আপনি যদি কিছুটা আর জানেন, কোডটি স্ব-বর্ণনামূলক হওয়া উচিত। বিন্যাসের স্ট্রিংয়ের জন্য ডকুমেন্টেশন পাওয়া কিছুটা জটিল তবে উদাহরণস্বরূপ পার্ল মডিউলটিতে কিছু রয়েছে।
R> syms <- c("^GSPC", "^IXIC")
R> baseURL <- "http://download.finance.yahoo.com/d/quotes.csvr?e=.csv&f="
R> formatURL <- "snl1d1t1c1p2va2bapomwerr1dyj1x"
R> endURL <- "&s="
R> url <- paste(baseURL, formatURL, endURL, paste(syms, collapse="+"), sep="")
R> read.csv(url, header=FALSE)
V1 V2 V3 V4 V5 V6 V7
1 ^GSPC S&P 500 INDEX,RTH 1256.88 3/16/2011 4:04pm 0 0.00%
2 ^IXIC NASDAQ Composite 2616.82 3/16/2011 5:30pm 0 0.00%
V8 V9 V10 V11 V12 V13 V14
1 4282084608 0 N/A N/A 1256.88 1279.46 1249.05 - 1280.91
2 0 0 N/A N/A 2616.82 0.00 0.00 - 0.00
V15 V16 V17 V18 V19 V20 V21 V22
1 1010.91 - 1344.07 N/A N/A N/A N/A N/A N/A SNP
2 2061.14 - 2840.51 N/A N/A N/A N/A N/A N/A NasdaqSC
R>
তিনটি কলাম আপনার শেষ বাণিজ্য। উন্মুক্ত বাজারের সময় আপনি কম এনএ এবং আরও ডেটা ভেরিয়েবল পাবেন। তবে লক্ষ করুন যে বেশিরভাগ দাম 15 বা 20 মিনিটের বিলম্বিত --- তবে কিছু সূচকগুলি রিয়েল-টাইম। রিয়েল-টাইম ডেটা এক্সচেঞ্জগুলির জন্য একটি বড় ব্যবসা এবং প্রধান উপার্জন যাতে তারা এটিকে দেয় না। এছাড়াও, এবং আমি যদি সঠিকভাবে মনে রাখি তবে গুগল এবং ইয়াহুতে ফিনান্স পৃষ্ঠাগুলিতে আরও নতুন এবং আরও রিয়েল-টাইম প্রদর্শনগুলি আরও কিছু এজেএক্সির ব্যবহার করে যা বাইরে থেকে দুধের পক্ষে শক্ত।
ইয়াহু থেকে "সিউডো-রিয়েল টাইম" ডেটা সংগ্রহ এবং চার্ট করতে আমি এখানে একটি ছোট ফাংশন লিখেছি:
require(quantmod)
Times <- NULL
Prices <- NULL
while(1) {
tryCatch({
#Load current quote
Year <- 1970
currentYear <- as.numeric(format(Sys.time(),'%Y'))
while (Year != currentYear) { #Sometimes yahoo returns bad quotes
currentQuote <- getQuote('SPY')
Year <- as.numeric(format(currentQuote['Trade Time'],'%Y'))
}
#Add current quote to the dataset
if (is.null(Times)) {
Times <- Sys.time()-15*60 #Quotes are delayed 15 minutes
Prices <- currentQuote['Last']
} else {
Times <- c(Times,Sys.time())
Prices <- rbind(Prices,currentQuote['Last'])
}
#Convert to 1-minute bars
Data <- xts(Prices,order.by=Times)
Data <- na.omit(to.minutes(Data,indexAt='endof'))
#Plot the data when we have enough
if (nrow(Data)>5) {
chartSeries(Data,theme='white',TA='addRSI(n=5);addBBands(n=5)')
}
#Wait 1 second to avoid overwhelming the server
Sys.sleep(1)
#On errors, sleep 10 seconds and hope it goes away
},error=function(e) {print(e);Sys.sleep(10)})
}
এটি এর মতো চার্ট তৈরি করে:

আপনি অন্যান্য উদ্দেশ্যে ডেটা ব্যবহার করতে পারেন।
require(quantmod)থেকে trailing }গত লাইনে নিজে সব। গ্রাফটি দেখাতে আপনাকে কমপক্ষে 5 মিনিট অপেক্ষা করতে হবে।
library(quantmod)
getSymbols("LT.NS",src="yahoo")