⑴ 如何編程從免費股票軟體中提取實時數據
自己寫程序的話,一種方法是從已提供的信息源,例如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'))
⑵ 股票公式編輯教程
最常見的:
1、MA(X,N),求X的N周期簡單移動平均值。
演算法:(X1+X2+X3+...+Xn)/N
例如:MA(CLOSE,20),表示求20日均價。
2、EMA(X,N),求X的N周期指數平滑移動平均。
演算法:若Y=EMA(X,N)則Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。
例如:EMA(CLOSE,20),表示求20日指數平滑均價。
3、SMA(X,N,M),求X的N周期移動平均,M為權重。
演算法:若Y=SMA(X,N,M)則Y=(M*X+(N-M)*Y')/N,其中Y'表示上一周期Y值,N必須大於M。
例如:SMA(CLOSE,20,1),表示求20日移動平均價。
這三個均線函數在股軟中是通用的。關於它們的區別,開始學習時不必深究。其實數值區別也不是很大。要均線真實反映每天的價格變化,用MA,適當圓滑些,用EMA或SMA。
三、常用連接函數
有了上述基本函數,可以表述出K線和均線了,但實際應用中要復雜得多,還要一些函數把他們連接起來。
⑶ 股票軟體源代碼怎麼用
來股票軟體源碼其實就是指自標公式,也就是經過其他人修改或個人自己編寫的指標公式!同花順有相應的公式源碼,其他的股軟也有相應的公式源碼!
要想用股票軟體源代碼前提是你會編程,懂得代碼流程和代碼函數的用途你在編寫個程序(反射),將軟體源代碼讀出來,就能知道它用了哪些函數,用了哪些方法,怎樣調用的這樣你就不是知道了它是怎麼寫的,不過編寫反射程序蠻麻煩,現在我還在研究當中一般軟體漏洞 可以用這個方法檢查出來,進行報復和修復。
⑷ 關於股票操作程序化的問題 我想在通達信交易軟體內自己編程選股 從初學者學起(是電腦編程方面的)
你所說的編程是否是給指標和交易系統程序化的編寫?如果是的話,以你的學歷和知識,入門的東西很簡單,想要精通,不怎麼容易,但只要用心,有恆心是可以做到的。有關此類知識沒有專門的書籍系統的介紹的,要靠自己搜尋,等有時間我用私信或網路Hi告訴你幾個專業網站。
⑸ 如何學習同花順炒股軟體的指標編程
股票軟體的編程是比較較簡單的,
熟練使用股票軟體公式管理器中的各種函數,再有就是熟練掌握,股票分析的常用技術指標,和財務指標.
可以先從改開始,先看別人是怎麼編寫的.最後再自己編寫.
建議從通達信開始學,因為通達信公式編輯器有動態翻譯,適合新手學習,通達信和同花順,很多基礎函數都是通用的,會用通達信了,轉到同花順也容易很多.
例如下圖的指標就是macd的代碼通達信和同花順的截圖,通達信有動態翻譯,而同花順沒有.
想自學,最好的辦法就是多看,打好基礎,熟練掌握軟體中自帶的基礎公式的技術指標.各種形態指標,財務指標等等.
⑹ 在股票里有時別人會給我一些編程的代碼應該往哪裡粘貼呢,我用的是同花順
程序代碼可以在指標自編裡面添加,不同軟體可能有所區別,你可以在軟體幫助板塊搜索或者提問。