❶ 在編程中如何能能獲得股票的數據 例如當前價,最高價,最低價,當前成交量等等
要看使和什麼數據了,每個軟體數據的存儲格式不同,有的還是加密存儲的(如指南針)。
以常見的錢龍數據來說吧(錢龍是最簡單的存儲格式)當前價,最高價,最低價,當前成交量等等都是以隨機文件存儲的長整型數據。下面是讀取錢龍數據的C源碼,你可以參考一下:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
typedef struct { ------->定義數據類型
unsigned long date; ------->定義日期為長整
unsigned long open; ------->定義開盤為..
unsigned long high; ------->定義最高為..
unsigned long low; ------->定義最低為..
unsigned long close; ------->定義收盤為..
unsigned long travl; ------->定義成交量..
unsigned long traca; ------->定義成交額..
char unuse[12];
} RECORD;
RECORD reco;
int readrec(FILE *);
void main()
{
FILE *fp;
if((fp = fopen("000001.day","rb")) == NULL) // 打開深發展日線
{ printf("Error: Can't open 000001.DAY !\n");
exit(0); }
readrec(fp);
fclose(fp);
if(getch()==0) getch();
exit(0);
}
int readrec(FILE *fp)
{
float fn;
while (! feof(fp)) {
fread(&reco,sizeof(RECORD),1,fp);
printf("%10lu ",reco.date);
fn=float(reco.open)/1000;
printf("%8.2f ",fn);
fn=float(reco.high)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.low)/1000; .
printf("%8.2f ",fn); .
fn=float(reco.close)/1000; .
printf("%8.2f ",fn); .
printf("%8lu ",reco.travl); .
printf("%8lu\n",reco.traca);
}
printf("\n");
return 0;
❷ 股票軟體如何開發的用什麼語言數據的獲得方式
K-JAVA功能可以做移動商務、移動辦公 、信息點播、股票、外匯、地址簿、日歷、文件管理 、天氣預報等;
股票軟體使用的是JAVA語言,該可以跨平台運行,軟體開發商可以很容易的開發應用程序;股票行情軟體是基於Java計算機編程語言上的,也就是K-JAVA即J2ME軟體平台,專門用於嵌入式設備的JAVA軟體。
Java包含了一種計算機編程語言和一個平台,隨著K-Java技術的不斷完善與發展,發展商們將對具有K-Java功能的手機用戶提供更還更全面的服務。如: 互動游戲、互動新聞 、增強手機連接到無線網路後進行數據交換的安全性、 載以Java語言寫成的內容、遙控家用電器。
軟體開發商以K-Java編程語言為手機開發應用程序,可以提供,游戲,個人信息處理,股票,電子地圖等服務程序。 Java有許多值得稱道的優點,如簡單、面向對象、分布式、解釋性、可靠、安全、結構中立性、可移植性、高性能、多線程、動態性等。
❸ 如何編程從免費股票軟體中提取實時數據
自己寫程序的話,一種方法是從已提供的信息源,例如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'))
❹ 怎麼用matlab編程把股票交易的分筆數據處理成1分鍾數據
P=[];『輸入,開盤價,最高價,最低價,收盤價成交量依次5天的數據』
T=[];』輸出,即第二日的收盤』
net=newff(minmax(P),[7,1],,'traingdx');
net.trainParam.epochs=1000; 『最大訓練次數,根據需要可自行調節』
net.trainParam.goal=0.01; 『誤差』
net.trainParam.lr=0.01; 『學習率』
net=train(net,P,T); 『訓練網路』
test=[];『待預測數據輸入』
out=sim(net,test); 『模擬預測』
我的這個程序沒有進行初始化,你還需要先將數據進行初始化後才能算。
❺ 如何編程從免費股票軟體中提取實時數據
自己寫程序的話,一種方法是從已提供的信息源,例如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、打開通達信交易軟體。
2、到股票查看界面。選擇左上角的「功能」--「專家系統」--「公式管理器」,或者直接按快捷鍵Ctrl+F鍵,打開公式管理器。
3、在公式管理器編輯界面,選擇你要導入的公式類型,選擇「其他類型」或「條件選股公式」,然後點擊右上角的「新建」按鈕。
4、給公式取一個名字便於識別,對公式進行一定的描述,然後寫上源代碼,或者導入源代碼,最後再點測試公式。看是否能測試通過。通過後,最後確定。
5、利用我們製作好的公式來進行選出滿足公式的股票。點擊左上角的「功能」,選擇「選股器」裡面的「綜合選股」或「條件選股」。
6、在公式中,下拉菜單,找到我們製作好的公式。
7、「加入條件」,點擊右下角「執行選股」,數據就會開始分析。
8、把得到的股票添加到自選的板塊,這樣數據分析完後,找到相應的板塊,比如,添加到自選股板塊中。按F6查看自選股板塊,就得到了這個公式篩選出來的股票了。
❼ 如何獲得股票行情數據,自己編程處理進行數據挖掘
行情數據可到通達信或者同花順觀看
❽ 想編寫股票自動交易軟體,讀取通達信行情數據,操縱券商交易軟體自動下單,學什麼編程語言好呢
要自己實現一款能夠自動盯盤、自動成交的軟體是不現實的,沒有Window底層的編程經驗,不了解Windows底層機制是不可能完成的,Window底層的編程主要用VC,現在已經有很多類似的軟體,比如金牛盯盤、金鷹股票自動交易軟體等,都很不錯,如果論使用簡單和方便,金鷹股票自動交易軟體應該是很不錯的
❾ 股票軟體編程問題
這個嘛,的確有些異想天開,但只要你努力,編個軟體是做的到的。
第一步,您可以嘗試在一些免費軟體上寫指標,很多軟體都提供公式編輯功能,這些公式編輯器就是一種簡化的計算機語言,如果您對股市的想法不復雜,使用別人的軟體做平台,自己加些東西,可能是上手最快的辦法。
如果您期望獲得的是獨立完整的產品,就需要找數據源了。如果您計算機水平足夠高,任何一款免費軟體的數據都能夠導出來。如果您做不到這一點,可以找個免費的數據介面。這些數據介面在許多軟體論壇上有提供,至於怎樣使用這些介面,您需要找介面的提供者咨詢。免費數據介面是網上的一些編程高手提供的,有些收費,有些免費。即使收費,費用也不高。
找到數據後,就可以寫自己的軟體了。通過各軟體商的摸索,股票軟體幾乎唯一的選擇是C語言。早前人們嘗試過幾乎所有當前流行的計算機語言寫股票軟體,但目前大品牌的正版付費軟體幾乎都是C語言寫的,其他語言在處理數據流上效率太低,以至於不能商品化。
當您的軟體已經可以向市場推廣時,就需要購買正式的數據源了。來自交易所的數據有兩個版本:Level-1和Level-2,Level-1每年約80萬,Level-2是買不到的,後者屬於特許經營,您需要是注冊資本1000萬以上的公司,通過向交易所特別申請才能獲得。運營Level-2數據的投資額大約是3000萬/年,包括研發、市場和數據傳輸平台。
如果您的軟體創新度有限,您的商業機會不多。如果您有自己的創造,那您就有機會了。在這個市場上,獲得每年3000萬的營業額不困難。
如果您試圖獲得每年上億的營業額並在創業板上市,您需要找到不低於4000萬的風險投資,並且組建一個不小於150人的團隊。
祝您成功吧,有志者事竟成。
❿ 想編寫股票自動交易軟體,學什麼語言好
Python 作為自動化交易的入門編程的計算機語言還不錯。也可參考現有的雲交易(或自動炒股交易)軟體,畢竟已投入使用的產品相對來說會更成熟和穩定。