① 正在學慣用R語言編寫股票自動交易軟體,但是對股票以及R語言都知之甚少。求高手指點。
我和你一樣,也在學,大智慧新一代,通達信,和飛狐這幾個你任選一個先學,以後慢慢的都會了。飛狐相對要復雜一些,要想編出功能更強大的公式,飛狐里還會用到VBS和JS腳本,還會用到C語言,別的公式不會用到這些。
② 如何用R語言提取股票行情數據
最上邊一行菜單欄倒數第二個「高級」-「關聯任務定義」-選取最右邊從上到下第二個按鈕,找到2009年決算任務安裝路徑-確定。 然後 最上邊一行菜單欄正數第二個「錄入」-「上年數據提取」即可 提取完了,注意修改與去年不同的科目代碼!
③ R語言如何資料庫讀取數據
R 對於基於 SQL 語言的關系型資料庫有良好 的支持,這些資料庫既有商業資料庫 Oracle、Microsoft SQL Server、IBM DB2 等,也包含在 GNU General Public License (GPL) 下發布的 MySQL 等開源資料庫。 RMySQL 包中提供了到 MySQL 資料庫的介面;RODBC 包提供了更為廣泛資料庫介面的解 決方案 支持所有標准 ODBC 介面的資料庫。通過這種方式,相同的 R 代碼可以方便地應用於 不同類型的資料庫。 library (RODBC) ch <- odbcConnect("stocksDSN",uid = "myuser",pwd = "mypassword") stocks <- sqlQuery(ch ,"select * from quotes") odbcClose(ch) 經測試,Windows 平台上的 Microsoft SQL Server、Access、Oracle、MySQL、PostgreSQL,和
④ 如何用R語言的quantmod包獲取一系列股票的歷史日線數據
我舉個例子供你參考:
> install.packages('quantmod') # 安裝安裝quantmod包
> require(quantmod)#引用quantmod包
> getSymbols("GOOG",src="yahoo",from="2013-01-01", to='2013-04-24') #從雅虎財經獲取google的股票數據
> chartSeries(GOOG,up.col='red',dn.col='green') #顯示K線圖
⑤ R語言quantmod包下載的股票數據中如何確定某一數據的日期
篩選到這個行,然後輸出
⑥ 如何利用r語言進行讀取數據文件,並繪制散點圖
首先,下載並安裝好R軟體。打開R軟體,可以看到R軟體主窗口。
2
為了方便編輯代碼,一般不在主窗口直接輸入程序。我們可以點擊「文件——新建程序腳本」,出現R編輯器。我們將在此輸入需要運行的命令。
3
使用因子格式輸入數據。這里輸入兩組數據,以便後面說明詳細使用方法。
4
輸入命令plot(x),表示繪制序列x的散點圖。選中程序,右鍵,點擊「運行當前行或選中代碼」,運行程序。按F5鍵或者Ctrl+R鍵也可以實現。在圖標顯示框出現散點圖了。
5
輸入命令plot(x,y),其中x表示自變數,y是因變數,生成y關於x的散點圖。運行命令,即出現散點圖。
6
再增加一組數據,用coplot函數繪制多變數的散點圖。coplot(x~m|y)表示在不同的y值下,x關於m的散點圖。
⑦ R語言下有沒有好的辦法獲得股票的財務數據
可用RCurl包,從新浪財經等網站下載數據,然後再分析。
include <QtCore/QCoreApplication>
#include <QAxObject>
#include <Windows.h>
int main(int argc, char *argv[])
{
//OleInitialize(0);
//CoInitialize(0);
QCoreApplication a(argc, argv);
QAxObject *asdfg = new QAxObject("Excel.Application");
return a.exec();
}
⑧ 如何編程從免費股票軟體中提取實時數據
自己寫程序的話,一種方法是從已提供的信息源,例如webservice獲取數據。還有種辦法就是去連接提供即時信息的網頁硬解析。
代碼舉例如下:
Created on Thu Jul 23 09:17:27 2015
@author: jet
"""
DAY_PRICE_COLS = ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20', 'turnover']
DAY_PRICE_URL = '%sapi.finance.%s/%s/?code=%s&type=last'
INDEX_KEY = ['SH', 'SZ', 'HS300', 'SZ50', 'GEB', 'SMEB']
INDEX_LIST = {'SH': 'sh000001', 'SZ': 'sz399001', 'HS300': 'sz399300',
'SZ50': 'sh000016', 'GEB': 'sz399006', 'SMEB': 'sz399005'}
INDEX_DAY_PRICE_COLS= ['date', 'open', 'high', 'close', 'low', 'volume',
'chg', '%chg', 'ma5', 'ma10', 'ma20',
'vma5', 'vma10', 'vma20']
K_TYPE_KEY = ['D', 'W', 'M']
K_TYPE_MIN_KEY = ['5', '15', '30', '60']
K_TYPE = {'D': 'akdaily', 'W': 'akweekly', 'M': 'akmonthly'}
MIN_PRICE_URL = '%sapi.finance.%s/akmin?scode=%s&type=%s'
PAGE_TYPE = {'http': 'http://', 'ftp': 'ftp://'}
PAGE_DOMAIN = {'sina': 'sina.com.cn', 'ifeng': 'ifeng.com'}
URL_ERROR_MSG = '獲取失敗,請檢查網路狀態,或者API埠URL已經不匹配!'
get_hist_data.py
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 23 09:15:40 2015
@author: jet
"""
import const as ct
import pandas as pd
import json
from urllib2 import urlopen,Request
def get_hist_data(code = None, start = None, end = None, ktype = 'D'):
"""
功能:
獲取個股歷史交易數據
--------
輸入:
--------
code:string
股票代碼 比如:601989
start:string
開始日期 格式:YYYY-MM-DD 為空時取到API所提供的最早日期數據
end:string
結束日期 格式:YYYY-MM-DD 為空時取到最近一個交易日數據
ktype:string(default=D, 函數內部自動統一為大寫)
數據類型 D=日K線,W=周K線,M=月K線,5=5分鍾,15=15分鍾
30=30分鍾,60=60分鍾
輸出:
--------
DataFrame
date 日期
open 開盤價
high 最高價
close 收盤價
low 最低價
chg 漲跌額
p_chg 漲跌幅
ma5 5日均價
ma10 10日均價
ma20 20日均價
vma5 5日均量
vma10 10日均量
vma20 20日均量
turnover換手率(指數無此項)
"""
code = code_to_APIcode(code.upper())
ktype = ktype.upper()
url = ''
url = get_url(ktype, code)
print(url)
js = json.loads(ping_API(url))
cols = []
if len(js['record'][0]) == 14:
cols = ct.INDEX_DAY_PRICE_COLS
else:
cols = ct.DAY_PRICE_COLS
df = pd.DataFrame(js['record'], columns=cols)
if ktype in ct.K_TYPE_KEY:
df = df.applymap(lambda x:x.replace(u',', u''))
for col in cols[1:]:
df[col]=df[col].astype(float)
if start is not None:
df = df [df.date >= start]
if end is not None:
df = df[df.date <= end]
df = df.set_index('date')
return df
def code_to_APIcode(code):
"""
功能:
驗證輸入的股票代碼是否正確,若正確則返回API對應使用的股票代碼
"""
print(code)
if code in ct.INDEX_KEY:
return ct.INDEX_LIST[code]
else:
if len(code) != 6:
raise IOError('code input error!')
else:
return 'sh%s'%code if code[:1] in ['5', '6'] else 'sz%s'%code
def get_url(ktype, code):
"""
功能:
驗證輸入的K線類型是否正確,若正確則返回url
"""
if ktype in ct.K_TYPE_KEY:
url = ct.DAY_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
ct.K_TYPE[ktype], code)
return url
elif ktype in ct.K_TYPE_MIN_KEY:
url = ct.MIN_PRICE_URL % (ct.PAGE_TYPE['http'], ct.PAGE_DOMAIN['ifeng'],
code, ktype)
return url
else:
raise IOError('ktype input error!')
def ping_API(url):
"""
功能:
向API發送數據請求,若鏈接正常返回數據
"""
text = ''
try:
req = Request(url)
text = urlopen(req,timeout=10).read()
if len(text) < 15:
raise IOError('no data!')
except Exception as e:
print(e)
else:
return text
#測試入口
print(get_hist_data('601989','2015-07-11','2015-07-22'))
⑨ 在r語言中用什麼命令讀取全部數據
使用R語言的時候,如果是少量數據,不妨使用c()或其他函數進行創建;但是對於大量數據,最好還是先通過其他更方便的軟體創建數據文件,然後使用R讀入這個文件。
.csv是非常好的數據文件格式,跨平台支持非常好。我在Excel或者SPSS中創建的數據,只要存為csv格式,就可以使用幾乎任何數據處理軟體對這些數據進行處理了。使用通用格式在多人合作、不同版本兼容等常見行為中,優勢十分明顯。另外,之所以使用不同的數據處理軟體,第一,可以取長補短。比如有些工作SPSS很復雜的,可以用R語言幾行命令搞定。第二,可以進行軟體間處理結果對照,發現問題。
R語言中讀取外部文件的最基本函數是read.table(),還有用來讀csv的read.csv(), .csv是非常好的數據文件格式,跨平台支持非常好。。
輸入help(read.table)命令,就看到了關於數據輸入函數的說明。