ইয়াহু ফিনান্স থেকে স্টক মূল্য আমদানি করবেন?


26

আমি ইয়াহু ফিনান্স থেকে "সর্বশেষ বাণিজ্য" শেয়ারের দামটি আরয়েতে আমদানি করতে চাই The উদ্দেশ্যটি হল (প্রায়) রিয়েল টাইম ডেটার সাথে কাজ করা। কোন সমাধান আছে?

কোন সহায়ক মন্তব্যের জন্য আগাম ধন্যবাদ।


উত্তর:


14

এটি সত্যিই কোনও পরিসংখ্যানের প্রশ্ন নয় (সম্ভবত এটি এসওতে স্থানান্তরিত হতে পারে?), তবে কোয়ান্টমোডে একটি দুর্দান্ত ফাংশন রয়েছে যা ডার্ক হাতে হাতে যা করেছে তা করে। দেখুন 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

আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ। স্ট্যাকেক্সচেঞ্জে আমি এখানে বেশ নতুন। আমি কীভাবে আমার প্রশ্নকে এসও-তে স্থানান্তর করতে পারি?
স্টিভেন

@ স্টিভেন: আপনাকে স্বাগতম প্রশ্নগুলি কীভাবে সরানো যায় আমি নিশ্চিত নই; আমি মনে করি মডারেটররা এটি করতে পারে।
জোশুয়া উলিরিচ

15

এটি দেওয়া খুব সহজ যে প্রদত্ত ইউআরএলটি সরাসরি আর পড়তে পারে। কীটি ইউআরএল তৈরি করতে হয় তা সহজভাবে জানা যায়। 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 মিনিটের বিলম্বিত --- তবে কিছু সূচকগুলি রিয়েল-টাইম। রিয়েল-টাইম ডেটা এক্সচেঞ্জগুলির জন্য একটি বড় ব্যবসা এবং প্রধান উপার্জন যাতে তারা এটিকে দেয় না। এছাড়াও, এবং আমি যদি সঠিকভাবে মনে রাখি তবে গুগল এবং ইয়াহুতে ফিনান্স পৃষ্ঠাগুলিতে আরও নতুন এবং আরও রিয়েল-টাইম প্রদর্শনগুলি আরও কিছু এজেএক্সির ব্যবহার করে যা বাইরে থেকে দুধের পক্ষে শক্ত।


এটি আজ আমার পক্ষে কার্যকর হয়নি, আমি আমার স্বাভাবিক তথ্য উত্সগুলি (কোয়ান্ডল এবং কোয়ান্টমোড) থেকে কোনও কারণে 2001 এর আগে ফিরে যাওয়া সংমিশ্রিত নাসডাক সূচকটি ডাউনলোড করতে সক্ষম হইনি এবং বিকল্পগুলির সন্ধান করছিলাম।
প্যাট্রিকটি

4

ইয়াহু থেকে "সিউডো-রিয়েল টাইম" ডেটা সংগ্রহ এবং চার্ট করতে আমি এখানে একটি ছোট ফাংশন লিখেছি:

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 মিনিট অপেক্ষা করতে হবে।
Zach

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.