Python自学编程过程中产生了一点怀疑,请帮忙给一点意见
工科非专业出生,之前在学校写过一个简单的仪器采数实时绘图(在同学帮助下)的程序,刚毕业,目前在证券营业部打杂,看不到什么前景,每天能用的空闲时间只有 5、6 小时。正打算自己写点程序,捕捉一些交易机会。前不久刚照着网上教程的步骤敲完了第一个回测程序,很有成就感,未来想继续自己学一点机器学习的皮毛给交易程序调参抓一些交易机会,尽量实现稳定盈利,虽然很远,但总相信自己可以看到尽头。
这两天用 pymongo 遇到了一些简单的问题,但是解决不了,开始觉得弯路走的太多了,遥遥无期,自己摸索出问题,下一个呢?没有系统性的解决问题的方法,总按照教程依葫芦画瓢不是长远之道,也不知道如何继续。
Python自学编程过程中产生了一点怀疑,请帮忙给一点意见
import tushare as ts
import pandas as pd
import pymongo
import json
% matplotlib inline
data = ts.get_today_ticks(“000089”)
szjc2=json.loads(data.to_json(orient=‘records’))
ljt1107=pymongo.MongoClient(‘local’,27017)
db=ljt1107[‘szjc2’]
col=db[‘1107’]
col.insert(szjc2)
print data
df=pd.DataFrame()
df[‘price’]=data[‘price’]
df[‘change’]=df[‘price’]-df[‘price’].shift(1)
df
df[‘3’]=df[‘price’].rolling(window=3,center=False).mean()
df[‘13’]=df[‘price’].rolling(window=13,center=False).mean()
df[‘34’]=df[‘price’].rolling(window=34,center=False).mean()
df
df=df.dropna()
df[‘pos’]=0
df[‘tst’]=0
df[‘tst1’]=0
df[‘tst’][df[‘3’]>=df[‘13’]] = 10000
df[‘tst1’][df[‘13’]>=df[‘34’]]= 10000
df[‘pos’][df[‘tst1’]==df[‘tst’]] = 10000
#print type(df[‘3’]<=df[‘13’])
df[‘pos’][df[‘3’]<=df[‘13’]] = -10000
df[‘pos’]=df[‘pos’].shift(1).fillna(0)
df[‘pnl’]=df[‘change’]*df[‘pos’]
df[‘fee’]=0
df[‘fee’][df[‘pos’]!=df[‘pos’].shift(1)]=df[‘price’]200000
df[‘netpnl’]=df[‘pnl’]-df[‘fee’]
df
df[‘cumpnl’]=df[‘netpnl’].cumsum()
df[‘cumpnl’].plot()
print df
自学编程有怀疑很正常,这恰恰说明你在思考,而不是机械地学。我刚开始学Python那会儿,也经常怀疑自己是不是走错路了,尤其是看到别人轻松做出项目,自己连个循环都写不顺的时候。
关键是要明白,编程不是一蹴而就的。你现在遇到的每一个报错、每一个不理解的概念,都是必经之路。别跟别人比进度,每个人的学习路径都不一样。把注意力放在“今天比昨天多理解了一个概念”上,哪怕只是搞懂了for循环和while循环的区别,都是实实在在的进步。
建议你找个具体的小项目做,比如写个爬虫抓点数据,或者用Flask搭个最简单的网页。动手做东西,把零散的知识点串起来,那种“原来是这样”的豁然开朗感,是驱散怀疑最好的办法。
坚持写,别停。
时而能跑,时而不行,提示 local:27017: [Errno 11004] getaddrinfo failed 有时代码的也报错 df[‘close’]出问题,为了让 dataframe 的 df 得到一个满足两个条件的行号的方法也很笨…
真想深入学就别看什么教程,视频,买本好书好好看
这代码。。。先老老实实看基础吧
上班也不能看书,时间有限也没法写例子…
总有电脑可以用吧,找个好点的教程
视频也不是不能看,主要视频知信息量比较少,也有很多错误的,也就适合初入门对语言建立认知有用
建议是用互交式的 repl 学习,能够立即看到结果,也方便学习探索。这样学起来会快很多
就是点开窗口里面有 >>> ,然后可以输入的东西
每天能用的空闲时间只有 5、6 小时。
//真入行了每天顶多 2 小时空闲时间。。。
顺便送你个方便你研究的函数 dir
看了一下你的问题,似乎你只想用编程做交易,方向不太一样,提供不了太多帮助。
指的是互联网行业开发工作。
编程和学做木匠差不多,有个师傅手把手教着,效率能高 10 倍
自动化交易。。。
你还是找本 python 的入门书,系统性看一遍吧
然后再去写交易的脚本,就会好很多
太多行业都是这样
我不想深入学,只需要实现功能就行,只是发现不深入学似乎没办法了,也许多认识一些程序员朋友也好吧
看完了 a bit of python 不细致,仅仅留了印象,导致现在眼高手低下不了台了
刷书本吧,视频什么的就算了,等你打好基础,视频可以 2x 播放
看你的代码,应该在 jupyter notebook 里写的。所以有时能跑有时不能跑,八成是因为运行的顺序乱了
建议首先细化需求并文档化. 像之前这位就很详尽描述了需求, 有兴趣的看了以后自然会更进: https://www.v2ex.com/t/493732
需求分析确定后, 再谈实现方案细节.
组里开了个"万事屋": https://github.com/program-in-chinese/house_of_10000_business 就是为了对接此类需求, 有兴趣可以试试
我觉得非职业能利用代码工具也极好的。
具体到这个。
一个是乱序问题,我觉得直接 run all,自己控制下顺序没啥问题。jupyter 自带
另一个是报的错误,local:27017: [Errno 11004] getaddrinfo failed 这个意思是你的程序解析从 local => ip 挂了。要是你没有特别配置,local 本身是有问题的。要是你用的 mongo server 是本地,应该是 localhost, 或者干脆写 ip: 127.0.0.1
最后,满足两个条件那个不太明白意思,你是说想要 lambda 么? https://stackoverflow.com/questions/37428218/how-to-properly-apply-a-lambda-function-into-a-pandas-data-frame-column
什么叫空闲时间“只有” 5/6 小时。疯了。
你这时间太多
正打算自己写点程序,捕捉一些交易机会。前不久刚照着网上教程的步骤敲完了第一个回测程序,很有成就感,未来想继续自己学一点机器学习的皮毛给交易程序调参抓一些交易机会,尽量实现稳定盈利,虽然很远,但总相信自己可以看到尽头。
从这段话可以看出楼主出现了幻觉。
啊 好傻的错误 我把 localhost 打成了 local 检查好几遍没发现…太大意了 非常感谢程序跑起来了很开心~不知道怎么贴图上来…最后的意思是说想实现一个 df[‘close’]['df[‘13’]>=df[‘34’] anddf[‘3’]>=df[‘13’]]的效果 后来看了 type 不是 bool 数用不了 and 就重新做了两个空组倒腾了
也许吧~
学编程不单是自动交易还有点保密需求,正打算人找人联系计算机系的学生。。如果这段时间不顺利的话
每天空闲时间只有 5-6 个小时,还有一个小时吃饭,
你们单位真好,
import time 加入等待或者把分时数据下载后再加载。因为 tushare 是在线请求数据的所以需要等待,运气好数据快在执行可视化那步就可以在视窗中展现,如果数据没准备好,就会报错。另外,先看 python 基础,同步补充高数着重概率统计,矩阵,微积分,当然线性代数一定要好。
概率和矩阵应该可以用来快速算衍生品价格 微积分是用来干嘛的 我真的想不到


