股票交易软件可编程
股票软件编程问题
展开全部 这个嘛,的确有些异想天开,但只要你努力,编个软件是做的到的。
第一步,您可以尝试在一些免费软件上写指标,很多软件都提供公式编辑功能,这些公式编辑器就是一种简化的计算机语言,如果您对股市的想法不复杂,使用别人的软件做平台,自己加些东西,可能是上手最快的办法。
如果您期望获得的是独立完整的产品,就需要找数据源了。
如果您计算机水平足够高,任何一款免费软件的数据都能够导出来。
如果您做不到这一点,可以找个免费的数据接口。
这些数据接口在许多软件论坛上有提供,至于怎样使用这些接口,您需要找接口的提供者咨询。
免费数据接口是网上的一些编程高手提供的,有些收费,有些免费。
即使收费,费用也不高。
找到数据后,就可以写自己的软件了。
通过各软件商的摸索,股票软件几乎唯一的选择是C语言。
早前人们尝试过几乎所有当前流行的计算机语言写股票软件,但目前大品牌的正版付费软件几乎都是C语言写的,其他语言在处理数据流上效率太低,以至于不能商品化。
当您的软件已经可以向市场推广时,就需要购买正式的数据源了。
来自交易所的数据有两个版本:Level-1和Level-2,Level-1每年约80万,Level-2是买不到的,后者属于特许经营,您需要是注册资本1000万以上的公司,通过向交易所特别申请才能获得。
运营Level-2数据的投资额大约是3000万/年,包括研发、市场和数据传输平台。
如果您的软件创新度有限,您的商业机会不多。
如果您有自己的创造,那您就有机会了。
在这个市场上,获得每年3000万的营业额不困难。
如果您试图获得每年上亿的营业额并在创业板上市,您需要找到不低于4000万的风险投资,并且组建一个不小于150人的团队。
祝您成功吧,有志者事竟成。
怎样自制股票交易软件指标公式?
1.、如果券商能提供接口,那非常简单。
不过对绝大多数人,这是废话,一是券商不给提供,二是即使提供了,你的程序也得到营业部去跑。
2、 券商不提供接口,那就只能从交易软件客户端来想办法了方法一:keyboard和mouse模拟的办法,比较笨的办法,速度快不起来。
按我以往的经验,这种模拟keyboard和mouse的操作,因为要和UI打交道,很多地方得Sleep,不然很容易出错,自动下单,出错了可不是好玩的,那损失的都是钱。
要想尽量减少出错,stress test的时候每步的sleep时间都得足够长,但这样一来,要足够可靠的话,整个过程估计3-5秒也完成不了。
这个办法虽然是笨点,但如果对速度和可靠性的要求不高,也是可以接受的,毕竟要比手动操作要快。
(对可靠性有担心的,可以留着交易软件每次下单前的确认窗口,这样还可以有最后一次人工确认的机会,但这样一来,批量下单就下不了了)。
方法二:跳过交易软件的UI层,直接调用下层的函数完成交易。
大致方法是,1,得要code injection, 进程注入,你的代码得在交易软件的context下运行才行,2. 用debugger慢慢去看,了解交易软件自身是如何调用下层的函数去完成下单,比方说通达信的交易软件,与交易相关的函数,基本在tc.dll和tcapi.dll里面。
这个办法弄通了,那下单估计可以在100ms以内完成,就完全和UI无关了。
方法三:从基于web和wap的交易上面动脑筋,这个渠道的下单方式,应该是http post了一些数据回server, 研究一下具体的格式就可以了。
这条途径,从client来讲,下单的速度应该和方法二差不多。
3、FIX协议也是一种可能的突破口,部分柜台系统供应商已有现成的FIX产品,有基金、QFII客户的部分券商有采购(如中信证券),可以尝试一下。
如何给炒股软件设计编程选股条件,比如:头一天涨停,第二天跳空...
编程不难,难的是能设计出稳定盈利的程序。
先学习通达信里的编程吧,很简单的。
我也是非计算机专业的,在大三时花了半学期就摸透了。
你如果认真学习,一周内就能掌握了。
没有什么技术含量。
股票软件程序化交易不太现实,目前好像没有券商不支持。
期货程序化交易一般是用文华财经。
从学会到精通一个月左右。
编程不难,难在编出稳定盈利的程序。
先看一下里面的函数,都有介绍的。
网上有很多教程。
很好编的,没有C语言那么复杂。
有问题可以继续追问
怎样使用股票交易软件?
1、股票代码:输入代码后,交易行为按委托要求进行该代码所代表的股票、权限、基金的对象进行操作。
2、交易类型:选择项,包括委买(按输入的指定价格买入)、委卖(按输入的指定价格卖出)、扫货(自动以当前价格起向上逐档买入,直至数量达到委托数量)、清仓(自动以当前价格起向下逐档卖出,直至数量达到委托数量)。
3、委托价格:输入的委买、委卖价格。
扫货、清仓则无。
我下载的股票交易软件不能用我下载的股票交易软件开始还能用。
可是...
自己写程序的话,一种方法是从已提供的信息源,例如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 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) raise IOError(\'no data!\') except Exception as e:print(e) else:return text#测试入口 print(get_hist_data(\'601989\',\'2015-07-11\',\'2015-07-22\'))