穷人思维

闲聊绫波丽 发表了文章 • 0 个评论 • 25 次浏览 • 2021-07-29 05:24 • 来自相关话题

夜 04:59
喝了太多茶叶, 难以入睡.
失眠
 
让你帮忙推广一些开户的事情, 完全也是当做是耳边风.
让你帮忙做一个推广的链接, 写成一个腾讯文档类似的, 合集. 以后就不用每句话 每句话这样的回复. 没做
写一些文章, 大一些主流论坛博客上推广, 或者在本网站推广. 也是完全没做. 甚至不会问, 要怎么发,发哪些内容.
 
永远想不清对方, 是怎样的人生经历, 才会造就这样的做事方式. 完全是一个不讲理的状态. 
 
一件事情做的不对, 也不会主动承认. 第一反应永远就是反驳我. 拿做了其他事情来说: 我做到了.
为什么没做我分配的任务 ? 答: 家里我做了很多家务, 没有我, 家里就很乱
 
一直不会聆听别人的话语, 急着说自己的想法. 哪怕完整听完别人一句话. 正面回复一句别人, 比如, "哦 你说的事情是因为xxxxx" , 也让人好受很多. 而不是, "哎呀, 我下班回来, 又要卖菜做饭, 很累." 永远急于表达你很累, 要照顾小孩,你怎样怎样.
 
事情这样永远不会有好转. 
 
如果你觉得生活需要改变,就需要行动, 而不是找借口.
 
当一个人习惯了总是找借口. 似乎已经找不到任何理由让他完成一件简单的事情了.  无论多么简单一件事情. 总能有一万个不完成的理由. 并且这些理由都是外部原因. 她自身是完全满分, 不是她的问题.
嗯, 因为早上老板老是开会.
嗯, 早上帮客户解决xxx问题
嗯, 早上想呕吐.
嗯,昨晚没睡好
嗯, 不知道你要推广什么内容
嗯, 不知道怎么发贴
嗯,不知道要发在那里
嗯,担心这个手机号公司会回收. 
 
书借给你,让你看. 你翻几番就说看完.
手把手教你如何做xxx. 最后就是浪费我的时间教你, 这时间同样的事情还不如我自己做,可以完成10次.
你给我的答复也是, "哦 我能力不如你xxxx"
 
可是真的原因不是不会. 如果你去背一个单词, 背了100次, 还不会, 那的确是你笨, 不会了.
可是你根本不去背, 然后就说不会. 这个是态度的问题了. 做都没去做, 然后就一直在借口,理由中徘徊.

试问, 任何一个小事情, 让你去做, 得到的都是没有去做, 然后原因就是上面的借口中的一个. 生活真的让人很绝望.
我也很累, 带不动了.
我不会的, 至少我会到网上找答案.
而不是心安理得的拿来做借口.
一个人找一次借口还能过得去, 可是总是找借口,你当被人是傻子吗? 说多了,别人都烦了. 怎么这人老有这样,那样的理由.
 
 实在想不出来人与人的区别会那么大.
 
我也很累. 我也想改变现状. 不想蜗居在这样的环境里.
这种真是低级的问题, 谁不想big house ? 谁不想吃喝有保姆照顾 ?
天天挂着嘴边有用吗? 天天说,而不去做, 改变, change , 行动, 给人觉得你只是在发白日梦.
像这个网站的文章.






有50多页, 每页十多篇文章. 是谁坚持写着堆积下来的? 
 
装睡的人是叫不醒的. 查看全部
夜 04:59
喝了太多茶叶, 难以入睡.
失眠
 
让你帮忙推广一些开户的事情, 完全也是当做是耳边风.
让你帮忙做一个推广的链接, 写成一个腾讯文档类似的, 合集. 以后就不用每句话 每句话这样的回复. 没做
写一些文章, 大一些主流论坛博客上推广, 或者在本网站推广. 也是完全没做. 甚至不会问, 要怎么发,发哪些内容.
 
永远想不清对方, 是怎样的人生经历, 才会造就这样的做事方式. 完全是一个不讲理的状态. 
 
一件事情做的不对, 也不会主动承认. 第一反应永远就是反驳我. 拿做了其他事情来说: 我做到了.
为什么没做我分配的任务 ? 答: 家里我做了很多家务, 没有我, 家里就很乱
 
一直不会聆听别人的话语, 急着说自己的想法. 哪怕完整听完别人一句话. 正面回复一句别人, 比如, "哦 你说的事情是因为xxxxx" , 也让人好受很多. 而不是, "哎呀, 我下班回来, 又要卖菜做饭, 很累." 永远急于表达你很累, 要照顾小孩,你怎样怎样.
 
事情这样永远不会有好转. 
 
如果你觉得生活需要改变,就需要行动, 而不是找借口.
 
当一个人习惯了总是找借口. 似乎已经找不到任何理由让他完成一件简单的事情了.  无论多么简单一件事情. 总能有一万个不完成的理由. 并且这些理由都是外部原因. 她自身是完全满分, 不是她的问题.
嗯, 因为早上老板老是开会.
嗯, 早上帮客户解决xxx问题
嗯, 早上想呕吐.
嗯,昨晚没睡好
嗯, 不知道你要推广什么内容
嗯, 不知道怎么发贴
嗯,不知道要发在那里
嗯,担心这个手机号公司会回收. 
 
书借给你,让你看. 你翻几番就说看完.
手把手教你如何做xxx. 最后就是浪费我的时间教你, 这时间同样的事情还不如我自己做,可以完成10次.
你给我的答复也是, "哦 我能力不如你xxxx"
 
可是真的原因不是不会. 如果你去背一个单词, 背了100次, 还不会, 那的确是你笨, 不会了.
可是你根本不去背, 然后就说不会. 这个是态度的问题了. 做都没去做, 然后就一直在借口,理由中徘徊.

试问, 任何一个小事情, 让你去做, 得到的都是没有去做, 然后原因就是上面的借口中的一个. 生活真的让人很绝望.
我也很累, 带不动了.
我不会的, 至少我会到网上找答案.
而不是心安理得的拿来做借口.
一个人找一次借口还能过得去, 可是总是找借口,你当被人是傻子吗? 说多了,别人都烦了. 怎么这人老有这样,那样的理由.
 
 实在想不出来人与人的区别会那么大.
 
我也很累. 我也想改变现状. 不想蜗居在这样的环境里.
这种真是低级的问题, 谁不想big house ? 谁不想吃喝有保姆照顾 ?
天天挂着嘴边有用吗? 天天说,而不去做, 改变, change , 行动, 给人觉得你只是在发白日梦.
像这个网站的文章.

Selection_072.png


有50多页, 每页十多篇文章. 是谁坚持写着堆积下来的? 
 
装睡的人是叫不醒的.

vim定义快捷键 运行go程序

Linux李魔佛 发表了文章 • 0 个评论 • 48 次浏览 • 2021-07-23 16:27 • 来自相关话题

您也可以~/.vimrc像这样映射一个键
 
nnoremap gr :!go run %<CR>
 
所以你可以很容易地输入gr你的vim,它就会执行。
您也可以~/.vimrc像这样映射一个键
 
nnoremap gr :!go run %<CR>
 
所以你可以很容易地输入gr你的vim,它就会执行。

chrome 屏蔽网址插件 Site Blocker 下载

闲聊李魔佛 发表了文章 • 0 个评论 • 61 次浏览 • 2021-07-21 11:52 • 来自相关话题

亲测,好用,而且免费!!!

私信获取百度网盘的下载地址
 
或者关注公众号后台回复: 
屏蔽网址
  查看全部
Selection_051.png

亲测,好用,而且免费!!!

私信获取百度网盘的下载地址
 
或者关注公众号后台回复: 
屏蔽网址
 

橙沙之味 -- 没有成为伟大的人,人生还有什么意义?来看看这部电影的答案

闲聊李魔佛 发表了文章 • 0 个评论 • 74 次浏览 • 2021-07-20 13:29 • 来自相关话题

看哭的一个影评

Selection_047.png

看哭的一个影评

港股打新行话合集

股票绫波丽 发表了文章 • 0 个评论 • 88 次浏览 • 2021-07-19 22:55 • 来自相关话题

港股打新:是指申购香港上市的新股,由于全世界的新股市场基本都是首日上涨居多,所以存在套利空间。

暗盘:上市前一天16:15分开始的交易,有些券商没有,富途辉立耀才股票价格有时不同,可高卖低买,上市再卖的持有底仓的套利

入金:钱从银行存入券商

出金:钱从券商转到银行

银证:有些券商绑定银行后实现资金秒到

孖赞:就是融资申购的意思

免费餐,38餐,100餐:免费指1w以内,38餐指的是辉立借5w融资申购以内只需要手续费38,20w以内只需要手续费100

认购倍数:比如募资1亿,结果有10亿去申购,这就是10倍认购

回拨:指国配和公开发行之间拿货比例。一般的票,是15倍认购以下,不回拨。公开占10%,国配90% 15-50倍,公开30%,50-100倍,公开40%,超购100倍以上,回拨50%,国配与公开各一半,类似康方

一手融:部分券商不满一手资金也可以融资申购

甲组:申购资金单户500w以下小散

甲尾:500w以下最高一档

乙组:申购资金单户500w以上大散

乙头:500w以上最低一档

顶头锤:有钱大老板单户顶格申购了

破发:跌破发行价

一手党:单户申购一手

国配:国际配售。一般是大户和机构,区别于散户申购,他们是“拿货”,但分配却要看和保荐人承销团关系,比较暗箱。

百户侯:港股账户超过一百

海底捞:暗盘买进

抽飞:申购了以后最后几天撤单

卖飞:卖了以后股价又涨了

绿鞋:稳定价格机制,时灵时不灵

捷利交易宝:最常用看孖赞和新股情况的APP 查看全部
港股打新:是指申购香港上市的新股,由于全世界的新股市场基本都是首日上涨居多,所以存在套利空间。

暗盘:上市前一天16:15分开始的交易,有些券商没有,富途辉立耀才股票价格有时不同,可高卖低买,上市再卖的持有底仓的套利

入金:钱从银行存入券商

出金:钱从券商转到银行

银证:有些券商绑定银行后实现资金秒到

孖赞:就是融资申购的意思

免费餐,38餐,100餐:免费指1w以内,38餐指的是辉立借5w融资申购以内只需要手续费38,20w以内只需要手续费100

认购倍数:比如募资1亿,结果有10亿去申购,这就是10倍认购

回拨:指国配和公开发行之间拿货比例。一般的票,是15倍认购以下,不回拨。公开占10%,国配90% 15-50倍,公开30%,50-100倍,公开40%,超购100倍以上,回拨50%,国配与公开各一半,类似康方

一手融:部分券商不满一手资金也可以融资申购

甲组:申购资金单户500w以下小散

甲尾:500w以下最高一档

乙组:申购资金单户500w以上大散

乙头:500w以上最低一档

顶头锤:有钱大老板单户顶格申购了

破发:跌破发行价

一手党:单户申购一手

国配:国际配售。一般是大户和机构,区别于散户申购,他们是“拿货”,但分配却要看和保荐人承销团关系,比较暗箱。

百户侯:港股账户超过一百

海底捞:暗盘买进

抽飞:申购了以后最后几天撤单

卖飞:卖了以后股价又涨了

绿鞋:稳定价格机制,时灵时不灵

捷利交易宝:最常用看孖赞和新股情况的APP

小英雄托托 越哥解说得真棒

闲聊李魔佛 发表了文章 • 0 个评论 • 85 次浏览 • 2021-07-19 22:00 • 来自相关话题

每个人都会有一个幻想, 有两条路. 自己没走的那条是更好的路.

Selection_039.png

每个人都会有一个幻想, 有两条路. 自己没走的那条是更好的路.

可转债转股套利 收益率统计 只做大于-5%折价率以上

股票李魔佛 发表了文章 • 0 个评论 • 102 次浏览 • 2021-07-19 00:11 • 来自相关话题

结果如上:
平均收益是 0.014%

总收益率是0.225%

Selection_038.png

结果如上:
平均收益是 0.014%

总收益率是0.225%

优矿接口的日期定义真让人蛋疼

股票李魔佛 发表了文章 • 0 个评论 • 81 次浏览 • 2021-07-17 20:24 • 来自相关话题

日期查询格式是 YYYYMMDD的.
然后接口查询结果返回的是YYYY-MM-DD
难道统一一下这么难吗?
日期查询格式是 YYYYMMDD的.
然后接口查询结果返回的是YYYY-MM-DD
难道统一一下这么难吗?

国盛证券开户

券商万一免五绫波丽 发表了文章 • 0 个评论 • 107 次浏览 • 2021-07-16 21:42 • 来自相关话题

国盛金融控股集团股份有限公司全资子公司.
 
不少人觉得小券商不安全. 
小券商当然有倒闭的可能,03年到06年时国内的券商完蛋了至少十几家!

但是证券账户里的证券基金和现金都不用担心,因为07年之后三方存管的存在,证券和基金是托管在中国证券登记结算公司的,现金是托管在银行里的,证券公司就是个通道而已,倒闭就倒闭,没什么大不了。
 
国盛证券的费率:
 
股票: 万一 (默认不免5, 需要开通条件)
 
基金, ETF: 万0.6 无最低
 
可转债: 沪市 百万分之二, 深市: 十万分之五, 无最低
 
特色支持量化接口: 支持python的自动下单, 需要资金50W, 放2周左右就可以开通,开通后, 佣金同时也可以免五 !





 
 
 
需要开通的话或者了解细节可以联系:
 

备注: 量化
顺便贴一个接口API地址: 
http://121.41.137.161:9091/hub/help/api

  查看全部
国盛金融控股集团股份有限公司全资子公司.
 
不少人觉得小券商不安全. 
小券商当然有倒闭的可能,03年到06年时国内的券商完蛋了至少十几家!

但是证券账户里的证券基金和现金都不用担心,因为07年之后三方存管的存在,证券和基金是托管在中国证券登记结算公司的,现金是托管在银行里的,证券公司就是个通道而已,倒闭就倒闭,没什么大不了。
 
国盛证券的费率:
 
股票: 万一 (默认不免5, 需要开通条件)
 
基金, ETF: 万0.6 无最低
 
可转债: 沪市 百万分之二, 深市: 十万分之五, 无最低
 
特色支持量化接口: 支持python的自动下单, 需要资金50W, 放2周左右就可以开通,开通后, 佣金同时也可以免五 !

backtest_factor.png

 
 
 
需要开通的话或者了解细节可以联系:
 

备注: 量化
顺便贴一个接口API地址: 
http://121.41.137.161:9091/hub/help/api

 

python pyecharts 多图叠加 bar和line叠加在一张图上

python李魔佛 发表了文章 • 0 个评论 • 111 次浏览 • 2021-07-10 12:21 • 来自相关话题

 
先准备一个bar图
import pyecharts.options as opts
from pyecharts.charts import Bar, Line

x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]

bar = (
Bar(init_opts=opts.InitOpts(width="1600px", height="800px"))
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="蒸发量",
y_axis=[
2.0,
4.9,
7.0,
23.2,
25.6,
76.7,
135.6,
162.2,
32.6,
20.0,
6.4,
3.3,
],
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
series_name="降水量",
y_axis=[
2.6,
5.9,
9.0,
26.4,
28.7,
70.7,
175.6,
182.2,
48.7,
18.8,
6.0,
2.3,
],
label_opts=opts.LabelOpts(is_show=False),
)
.extend_axis(
yaxis=opts.AxisOpts(
name="温度",
type_="value",
min_=0,
max_=25,
interval=5,
axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
)
)
.set_global_opts(
tooltip_opts=opts.TooltipOpts(
is_show=True, trigger="axis", axis_pointer_type="cross"
),
xaxis_opts=opts.AxisOpts(
type_="category",
axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),
),
yaxis_opts=opts.AxisOpts(
name="水量",
type_="value",
min_=0,
max_=250,
interval=50,
axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
),
)
)
再加一个折线图
line = (
Line()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="平均温度",
yaxis_index=1,
y_axis=[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
label_opts=opts.LabelOpts(is_show=False),
)
)
然后使用overlap 函数叠加在一起
 
bar.overlap(line).render_notebook()





  查看全部
 
先准备一个bar图
import pyecharts.options as opts
from pyecharts.charts import Bar, Line

x_data = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]

bar = (
Bar(init_opts=opts.InitOpts(width="1600px", height="800px"))
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="蒸发量",
y_axis=[
2.0,
4.9,
7.0,
23.2,
25.6,
76.7,
135.6,
162.2,
32.6,
20.0,
6.4,
3.3,
],
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
series_name="降水量",
y_axis=[
2.6,
5.9,
9.0,
26.4,
28.7,
70.7,
175.6,
182.2,
48.7,
18.8,
6.0,
2.3,
],
label_opts=opts.LabelOpts(is_show=False),
)
.extend_axis(
yaxis=opts.AxisOpts(
name="温度",
type_="value",
min_=0,
max_=25,
interval=5,
axislabel_opts=opts.LabelOpts(formatter="{value} °C"),
)
)
.set_global_opts(
tooltip_opts=opts.TooltipOpts(
is_show=True, trigger="axis", axis_pointer_type="cross"
),
xaxis_opts=opts.AxisOpts(
type_="category",
axispointer_opts=opts.AxisPointerOpts(is_show=True, type_="shadow"),
),
yaxis_opts=opts.AxisOpts(
name="水量",
type_="value",
min_=0,
max_=250,
interval=50,
axislabel_opts=opts.LabelOpts(formatter="{value} ml"),
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
),
)
)

再加一个折线图
line = (
Line()
.add_xaxis(xaxis_data=x_data)
.add_yaxis(
series_name="平均温度",
yaxis_index=1,
y_axis=[2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2],
label_opts=opts.LabelOpts(is_show=False),
)
)

然后使用overlap 函数叠加在一起
 
bar.overlap(line).render_notebook()


Selection_008.png

 

无论如何, 你都不能嘲笑那些努力的人

闲聊李魔佛 发表了文章 • 0 个评论 • 105 次浏览 • 2021-07-10 01:27 • 来自相关话题

至少, 我会给予他们尊重.
 
至少, 我会给予他们尊重.
 

ubuntu软件中心 正在安装的软件如何中断

Linux李魔佛 发表了文章 • 0 个评论 • 123 次浏览 • 2021-07-08 08:52 • 来自相关话题

缘由是不小心点了个升级按钮, 如果安装普通软件倒是没关系.
但是看到它里面有个系统版本升级, 丫的要帮我升级ubuntu呀. 要果断阻止呀.
 
可惜找不到种植的按钮, 不得不吐槽下这个垃圾设计.
 
无奈只好ps -aux | grep soft
找到了那个软件升级中心的进程pid
再 kill -9 pid
粗暴地把软件升级中心停掉. 查看全部
缘由是不小心点了个升级按钮, 如果安装普通软件倒是没关系.
但是看到它里面有个系统版本升级, 丫的要帮我升级ubuntu呀. 要果断阻止呀.
 
可惜找不到种植的按钮, 不得不吐槽下这个垃圾设计.
 
无奈只好ps -aux | grep soft
找到了那个软件升级中心的进程pid
再 kill -9 pid
粗暴地把软件升级中心停掉.

宏信证券万一免五 开户 全市场费率最低

闲聊绫波丽 发表了文章 • 0 个评论 • 179 次浏览 • 2021-07-07 23:42 • 来自相关话题

其费率在市面上看 市面上是最低的了。





 券商 同花顺登录 股票 股票是否免5 转债免五 转债最低
宏信 不支持 万1 免5,最低0.1元 沪:百万分之2,深:十万分之4 0.01


基金免五 基金最低 两融利率
万1 0.1 6.8%起 
需要的可以加微信: 查看全部
其费率在市面上看 市面上是最低的了。

Selection_007.png

 
券商   同花顺登录   股票    股票是否免5          转债免五 转债最低                     
宏信 不支持 万1 免5,最低0.1元 沪:百万分之2,深:十万分之4 0.01


基金免五 基金最低 两融利率
万1 0.1 6.8%起
 
需要的可以加微信:

黑夜之睛

闲聊绫波丽 发表了文章 • 0 个评论 • 172 次浏览 • 2021-07-07 02:12 • 来自相关话题

一名在毕业后就做写手的愣头青。
公众号都是水粉,托。
 
知乎上的问题出一个封杀一个,都是去抽热点,并且抄袭他人的语句。

更新:原来雪球上已经有人举报他了。。。
 
这个大骗子黑夜之睛,真名叫王荍(qiao二声),祖籍江苏泰州。本科毕业于哈工大,生命科学专业。现在上海浦东的一家叫做“华尔街见闻”的公司工作

https://xueqiu.com/5569190200/75773143
  查看全部
bpQTETMdkV.png

一名在毕业后就做写手的愣头青。
公众号都是水粉,托。
 
知乎上的问题出一个封杀一个,都是去抽热点,并且抄袭他人的语句。

更新:原来雪球上已经有人举报他了。。。
 
这个大骗子黑夜之睛,真名叫王荍(qiao二声),祖籍江苏泰州。本科毕业于哈工大,生命科学专业。现在上海浦东的一家叫做“华尔街见闻”的公司工作

https://xueqiu.com/5569190200/75773143
 

国盛证券Ptrade

股票绫波丽 发表了文章 • 0 个评论 • 375 次浏览 • 2021-07-06 08:40 • 来自相关话题

目前不少在A股做量化的大部分使用tushare,优矿,米筐,聚宽等等,无论教程,还是实际操作,基本没见有教怎么用程序下单,实盘交易的。

而退而求其次使用按键精灵,模拟点击交易软件进行点击下单,非常不稳定,无法判断下单后是否成交,也无法实时获取行情数据。如果使用tushare或者新浪接口数据,扫描一次全市场的行情用时很久且不稳定,等扫描结束,再下单,此时价格可能已经是几分钟前的了,且此类接口调用次数多是会被封IP的。

笔者使用的是券商提供的量化软件:Ptrade。是恒生电子研发的提供给机构使用的程序化交易软件。提供策略回测,下单API接口,实时行情获取,并且使用的开发语言python,易于上手。

策略回测与实盘交易




研究页面

研究页面,熟悉python jupyter notebook的朋友对这个界面肯定很熟悉。

研究的页面实际就运行你逐行输出调试程序,了解每个函数的具体使用,或者你策略的中途结果调试。





 
回测策略

实际代码需要在回测策略里面写,写完后确定无误,就可以放在仿真环境下真实运行。如果你运行得到的结果很满意,那么就可以直接部署到实盘服务器上。实盘服务器是在券商那边,不需要个人购买服务器,也不需要本地开着这个Ptrade,就是说不需要在个人电脑上一直开着跑,你的最终代码和程序是在券商服务器上部署与运行,除非有报错异常停止,不然在你不暂停或者停止的前提下,可以一直运行下去。












条件满足后下单

可视化量化

同时也提供一些常见的现成的量化策略,选中后只要鼠标点点点也能够自动化跑这些策略了,当然里面很多参数都可以用鼠标点点点修改。





 
接口文档也非常详细:




 
一些常见策略代码:

集合竞价追涨停策略def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
#每天9:23分运行集合竞价处理函数
run_daily(context, aggregate_auction_func, time='9:23')

def aggregate_auction_func(context):
stock = g.security
#最新价
snapshot = get_snapshot(stock)
price = snapshot[stock]['last_px']
#涨停价
up_limit = snapshot[stock]['up_px']
#如果最新价不小于涨停价,买入
if float(price) >= float(up_limit):
order(g.security, 100, limit_price=up_limit)

def handle_data(context, data):
pass
双均线策略def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
pass

#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def handle_data(context, data):
security = g.security

#得到十日历史价格
df = get_history(10, '1d', 'close', security, fq=None, include=False)

# 得到五日均线价格
ma5 = round(df['close'][-5:].mean(), 3)

# 得到十日均线价格
ma10 = round(df['close'][-10:].mean(), 3)

# 取得昨天收盘价
price = data[security]['close']

# 得到当前资金余额
cash = context.portfolio.cash

# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10:
# 用所有 cash 买入股票
order_value(security, cash)
# 记录这次买入
log.info("Buying %s" % (security))

# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and get_position(security).amount > 0:
# 全部卖出
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
 
tick级别均线策略

通俗点就是按照秒级别进行操作。def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
#每3秒运行一次主函数
run_interval(context, func, seconds=3)

#盘前准备历史数据
def before_trading_start(context, data):
history = get_history(10, '1d', 'close', g.security, fq='pre', include=False)
g.close_array = history['close'].values

#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def func(context):

stock = g.security

#获取最新价
snapshot = get_snapshot(stock)
price = snapshot[stock]['last_px']

# 得到五日均线价格
days = 5
ma5 = get_MA_day(stock, days, g.close_array[-4:], price)
# 得到十日均线价格
days = 10
ma10 = get_MA_day(stock, days, g.close_array[-9:], price)

# 得到当前资金余额
cash = context.portfolio.cash

# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10:
# 用所有 cash 买入股票
order_value(stock, cash)
# 记录这次买入
log.info("Buying %s" % (stock))

# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and get_position(stock).amount > 0:
# 全部卖出
order_target(stock, 0)
# 记录这次卖出
log.info("Selling %s" % (stock))

#计算实时均线函数
def get_MA_day(stock,days,close_array,current_price):
close_sum = close_array[-(days-1):].sum()
MA = (current_price + close_sum)/days
return MA

def handle_data(context, data):
pass
 
macd策略def f_expma(N,m,EXPMA1,price):
a = m/(N+1)
EXPMA2 = a * price + (1 - a)*EXPMA1
return EXPMA2 #2为后一天值

#定义macd函数,输入平滑系数参数、前一日值,输出当日值
def macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,price):
EXPMA12_2 = f_expma(N1,m,EXPMA12_1,price)
EXPMA26_2 = f_expma(N2,m,EXPMA26_1,price)
DIF2 = EXPMA12_2 - EXPMA26_2
a = m/(N3+1)
DEA2 = a * DIF2 + (1 - a)*DEA1
BAR2=2*(DIF2-DEA2)
return EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2

def initialize(context):
global init_price
init_price = None
# 获取沪深300股票
g.security = get_index_stocks('000300.SS')
#g.security = ['600570.SS']
# 设置我们要操作的股票池, 这里我们只操作一支股票
set_universe(g.security)

def handle_data(context, data):
# 获取历史数据,这里只获取了2天的数据,如果希望最终MACD指标结果更准确最好是获取
# 从股票上市至今的所有历史数据,即增加获取的天数
close_price = get_history(2, '1d', field='close', security_list=g.security)
#如果是停牌不进行计算
for security in g.security:
if data[security].is_open >0:
global init_price,EXPMA12_1,EXPMA26_1,EXPMA12_2,EXPMA26_2,DIF1,DIF2,DEA1,DEA2
if init_price is None:
init_price = close_price[security].mean()#nan和N-1个数,mean为N-1个数的均值
EXPMA12_1 = init_price
EXPMA26_1 = init_price
DIF1 = init_price
DEA1 = init_price
# m用于计算平滑系数a=m/(N+1)
m = 2.0
#设定指数平滑基期数
N1 = 12
N2 = 26
N3 = 9
EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2 = macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,close_price[security][-1])
# 取得当前价格
current_price = data[security].price
# 取得当前的现金
cash = context.portfolio.cash
# DIF、DEA均为正,DIF向上突破DEA,买入信号参考
if DIF2 > 0 and DEA2 > 0 and DIF1 < DEA1 and DIF2 > DEA2:
# 计算可以买多少只股票
number_of_shares = int(cash/current_price)
# 购买量大于0时,下单
if number_of_shares > 0:
# 以市单价买入股票,日回测时即是开盘价
order(security, +number_of_shares)
# 记录这次买入
log.info("Buying %s" % (security))
# DIF、DEA均为负,DIF向下突破DEA,卖出信号参考
elif DIF2 < 0 and DEA2 < 0 and DIF1 > DEA1 and DIF2 < DEA2 and get_position(security).amount > 0:
# 卖出所有股票,使这只股票的最终持有量为0
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
# 将今日的值赋给全局变量作为下一次前一日的值
DEA1 = DEA2
DIF1 = DIF2
EXPMA12_1 = EXPMA12_2
EXPMA26_1 = EXPMA26_2
 
软件与交易接口开通条件:

开通改券商后,存入资金50W放2周即可开通,开通后可取出。

本身券商的交易费率为股票万一,可转债沪百万分之二,深十万分之五,基金万0.6 免五,非常厚道,不太了解量化行业的可以了解下,不少面向机构的量化交易软件的佣金是万2.5的,且开户门槛高,基本是500W以上,比如华泰的matic量化的门槛是1千万元起步。

所以笔者还是很推荐目前该券商的量化交易接口。

需要开通咨询了解的朋友可以扫码联系: 查看全部
目前不少在A股做量化的大部分使用tushare,优矿,米筐,聚宽等等,无论教程,还是实际操作,基本没见有教怎么用程序下单,实盘交易的。

而退而求其次使用按键精灵,模拟点击交易软件进行点击下单,非常不稳定,无法判断下单后是否成交,也无法实时获取行情数据。如果使用tushare或者新浪接口数据,扫描一次全市场的行情用时很久且不稳定,等扫描结束,再下单,此时价格可能已经是几分钟前的了,且此类接口调用次数多是会被封IP的。

笔者使用的是券商提供的量化软件:Ptrade。是恒生电子研发的提供给机构使用的程序化交易软件。提供策略回测,下单API接口,实时行情获取,并且使用的开发语言python,易于上手。

策略回测与实盘交易
UrD5TUnxZD.png

研究页面

研究页面,熟悉python jupyter notebook的朋友对这个界面肯定很熟悉。

研究的页面实际就运行你逐行输出调试程序,了解每个函数的具体使用,或者你策略的中途结果调试。

Hc8f4UtMfW.png

 
回测策略

实际代码需要在回测策略里面写,写完后确定无误,就可以放在仿真环境下真实运行。如果你运行得到的结果很满意,那么就可以直接部署到实盘服务器上。实盘服务器是在券商那边,不需要个人购买服务器,也不需要本地开着这个Ptrade,就是说不需要在个人电脑上一直开着跑,你的最终代码和程序是在券商服务器上部署与运行,除非有报错异常停止,不然在你不暂停或者停止的前提下,可以一直运行下去。

Pig1iRRQnP.png



25YjBEdOqa.png


条件满足后下单

可视化量化

同时也提供一些常见的现成的量化策略,选中后只要鼠标点点点也能够自动化跑这些策略了,当然里面很多参数都可以用鼠标点点点修改。

kTmn9iOXaS.png

 
接口文档也非常详细:
v4QFDpHNpd.png

 
一些常见策略代码:

集合竞价追涨停策略
def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
#每天9:23分运行集合竞价处理函数
run_daily(context, aggregate_auction_func, time='9:23')

def aggregate_auction_func(context):
stock = g.security
#最新价
snapshot = get_snapshot(stock)
price = snapshot[stock]['last_px']
#涨停价
up_limit = snapshot[stock]['up_px']
#如果最新价不小于涨停价,买入
if float(price) >= float(up_limit):
order(g.security, 100, limit_price=up_limit)

def handle_data(context, data):
pass

双均线策略
def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
pass

#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def handle_data(context, data):
security = g.security

#得到十日历史价格
df = get_history(10, '1d', 'close', security, fq=None, include=False)

# 得到五日均线价格
ma5 = round(df['close'][-5:].mean(), 3)

# 得到十日均线价格
ma10 = round(df['close'][-10:].mean(), 3)

# 取得昨天收盘价
price = data[security]['close']

# 得到当前资金余额
cash = context.portfolio.cash

# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10:
# 用所有 cash 买入股票
order_value(security, cash)
# 记录这次买入
log.info("Buying %s" % (security))

# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and get_position(security).amount > 0:
# 全部卖出
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))

 
tick级别均线策略

通俗点就是按照秒级别进行操作。
def initialize(context):
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
g.security = '600570.SS'
set_universe(g.security)
#每3秒运行一次主函数
run_interval(context, func, seconds=3)

#盘前准备历史数据
def before_trading_start(context, data):
history = get_history(10, '1d', 'close', g.security, fq='pre', include=False)
g.close_array = history['close'].values

#当五日均线高于十日均线时买入,当五日均线低于十日均线时卖出
def func(context):

stock = g.security

#获取最新价
snapshot = get_snapshot(stock)
price = snapshot[stock]['last_px']

# 得到五日均线价格
days = 5
ma5 = get_MA_day(stock, days, g.close_array[-4:], price)
# 得到十日均线价格
days = 10
ma10 = get_MA_day(stock, days, g.close_array[-9:], price)

# 得到当前资金余额
cash = context.portfolio.cash

# 如果当前有余额,并且五日均线大于十日均线
if ma5 > ma10:
# 用所有 cash 买入股票
order_value(stock, cash)
# 记录这次买入
log.info("Buying %s" % (stock))

# 如果五日均线小于十日均线,并且目前有头寸
elif ma5 < ma10 and get_position(stock).amount > 0:
# 全部卖出
order_target(stock, 0)
# 记录这次卖出
log.info("Selling %s" % (stock))

#计算实时均线函数
def get_MA_day(stock,days,close_array,current_price):
close_sum = close_array[-(days-1):].sum()
MA = (current_price + close_sum)/days
return MA

def handle_data(context, data):
pass

 
macd策略
def f_expma(N,m,EXPMA1,price):
a = m/(N+1)
EXPMA2 = a * price + (1 - a)*EXPMA1
return EXPMA2 #2为后一天值

#定义macd函数,输入平滑系数参数、前一日值,输出当日值
def macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,price):
EXPMA12_2 = f_expma(N1,m,EXPMA12_1,price)
EXPMA26_2 = f_expma(N2,m,EXPMA26_1,price)
DIF2 = EXPMA12_2 - EXPMA26_2
a = m/(N3+1)
DEA2 = a * DIF2 + (1 - a)*DEA1
BAR2=2*(DIF2-DEA2)
return EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2

def initialize(context):
global init_price
init_price = None
# 获取沪深300股票
g.security = get_index_stocks('000300.SS')
#g.security = ['600570.SS']
# 设置我们要操作的股票池, 这里我们只操作一支股票
set_universe(g.security)

def handle_data(context, data):
# 获取历史数据,这里只获取了2天的数据,如果希望最终MACD指标结果更准确最好是获取
# 从股票上市至今的所有历史数据,即增加获取的天数
close_price = get_history(2, '1d', field='close', security_list=g.security)
#如果是停牌不进行计算
for security in g.security:
if data[security].is_open >0:
global init_price,EXPMA12_1,EXPMA26_1,EXPMA12_2,EXPMA26_2,DIF1,DIF2,DEA1,DEA2
if init_price is None:
init_price = close_price[security].mean()#nan和N-1个数,mean为N-1个数的均值
EXPMA12_1 = init_price
EXPMA26_1 = init_price
DIF1 = init_price
DEA1 = init_price
# m用于计算平滑系数a=m/(N+1)
m = 2.0
#设定指数平滑基期数
N1 = 12
N2 = 26
N3 = 9
EXPMA12_2,EXPMA26_2,DIF2,DEA2,BAR2 = macd(N1,N2,N3,m,EXPMA12_1,EXPMA26_1,DEA1,close_price[security][-1])
# 取得当前价格
current_price = data[security].price
# 取得当前的现金
cash = context.portfolio.cash
# DIF、DEA均为正,DIF向上突破DEA,买入信号参考
if DIF2 > 0 and DEA2 > 0 and DIF1 < DEA1 and DIF2 > DEA2:
# 计算可以买多少只股票
number_of_shares = int(cash/current_price)
# 购买量大于0时,下单
if number_of_shares > 0:
# 以市单价买入股票,日回测时即是开盘价
order(security, +number_of_shares)
# 记录这次买入
log.info("Buying %s" % (security))
# DIF、DEA均为负,DIF向下突破DEA,卖出信号参考
elif DIF2 < 0 and DEA2 < 0 and DIF1 > DEA1 and DIF2 < DEA2 and get_position(security).amount > 0:
# 卖出所有股票,使这只股票的最终持有量为0
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
# 将今日的值赋给全局变量作为下一次前一日的值
DEA1 = DEA2
DIF1 = DIF2
EXPMA12_1 = EXPMA12_2
EXPMA26_1 = EXPMA26_2

 
软件与交易接口开通条件:

开通改券商后,存入资金50W放2周即可开通,开通后可取出。

本身券商的交易费率为股票万一,可转债沪百万分之二,深十万分之五,基金万0.6 免五,非常厚道,不太了解量化行业的可以了解下,不少面向机构的量化交易软件的佣金是万2.5的,且开户门槛高,基本是500W以上,比如华泰的matic量化的门槛是1千万元起步。

所以笔者还是很推荐目前该券商的量化交易接口。

需要开通咨询了解的朋友可以扫码联系: