七牛云的图片图床配置到腾讯云域名解析

官网的链接:
https://developer.qiniu.com/fusion/kb/1322/how-to-configure-cname-domain-name
 
一般按照上面链接创建就可以了。
 
这里有个值要注意的,主机记录
描述如下:
主机记录 填写加速域名对应的主机前缀 该参数唯一,请勿自定义

 
这里你的主机记录是你的二级域名的部分,
比如你的二级域名是 img.30daydo.com
那么这里你的主机记录就是 img
 
 
继续阅读 »
官网的链接:
https://developer.qiniu.com/fusion/kb/1322/how-to-configure-cname-domain-name
 
一般按照上面链接创建就可以了。
 
这里有个值要注意的,主机记录
描述如下:
主机记录 填写加速域名对应的主机前缀 该参数唯一,请勿自定义

 
这里你的主机记录是你的二级域名的部分,
比如你的二级域名是 img.30daydo.com
那么这里你的主机记录就是 img
 
  收起阅读 »

讯投QMT python API文档

QMT

 

 

需要的可以到公众号后台留言获取: qmt接口文档

 
需要开通qmt可以联系微信: (目前交易费率万一免五)

 
继续阅读 »

 

 

需要的可以到公众号后台留言获取: qmt接口文档

 
需要开通qmt可以联系微信: (目前交易费率万一免五)

  收起阅读 »

docker nginx+php部署的wordpress,安装插件不需要ftp账号

使用docker搭建的每一个组件,php,nginx,mysql,弄得wordpress站点。
 
配置好之后,如果需要安装第三方的应用,每次需要FTP账号,用于远程下载这个插件文件到wordpress的plugin目录下。
 
不过为了这个插件功能再开个ftp服务,还暴露了端口,有点鸡肋。
 
于是按照网上的教程倒腾,不过网上的教程都没有使用docker操作,按照他们的操作是没能把问题解决的。
 
主要是用户名不一样。
 
1. 进入nginx的容器中,注意是nginx,而不是php
docker exec -it xxxx /bin/bash
 
2. 修改nginx的 wordpress的根目录所有者权限
注意这里的用户名是 www-data , 而不是www
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

不要乱信网上的人说,要改为777, 除非你想把你的服务器送给别人做肉鸡。
 
然后刷新一下页面,就可以直接安装,而跳过那个ftp密码,
继续阅读 »
使用docker搭建的每一个组件,php,nginx,mysql,弄得wordpress站点。
 
配置好之后,如果需要安装第三方的应用,每次需要FTP账号,用于远程下载这个插件文件到wordpress的plugin目录下。
 
不过为了这个插件功能再开个ftp服务,还暴露了端口,有点鸡肋。
 
于是按照网上的教程倒腾,不过网上的教程都没有使用docker操作,按照他们的操作是没能把问题解决的。
 
主要是用户名不一样。
 
1. 进入nginx的容器中,注意是nginx,而不是php
docker exec -it xxxx /bin/bash
 
2. 修改nginx的 wordpress的根目录所有者权限
注意这里的用户名是 www-data , 而不是www
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html

不要乱信网上的人说,要改为777, 除非你想把你的服务器送给别人做肉鸡。
 
然后刷新一下页面,就可以直接安装,而跳过那个ftp密码, 收起阅读 »

docker php fpm里面有个Kdevtmpfsi挖矿病毒

官方应该不至于被植入病毒,很有可能就是使用的wordpress第三方的主题库。
一个欲思主题,一个大学主题。狗日了。
 
查看本地的连接。
netstat -atnlp

居然有2个ssh的连接,一个IP是美国的。一个是我自己的。
 
而且重启后这玩意还是自动被重连。
 
感觉被做了反向连接。
 
最后定位到的问题是,php的9000端口暴露了。导致被对方使用漏洞程序扫描,注入了病毒。
 

 
继续阅读 »
官方应该不至于被植入病毒,很有可能就是使用的wordpress第三方的主题库。
一个欲思主题,一个大学主题。狗日了。
 
查看本地的连接。
netstat -atnlp

居然有2个ssh的连接,一个IP是美国的。一个是我自己的。
 
而且重启后这玩意还是自动被重连。
 
感觉被做了反向连接。
 
最后定位到的问题是,php的9000端口暴露了。导致被对方使用漏洞程序扫描,注入了病毒。
 

 
收起阅读 »

1核2G的服务器 docker跑wordpress真够吃力

性能太烂,预览个主题要等几分钟,甚至无响应。。。。
 
现在的wordpress加的内容可真多
性能太烂,预览个主题要等几分钟,甚至无响应。。。。
 
现在的wordpress加的内容可真多

python3 安装demjson 报错 use_2to3 is invalid

ooking in indexes: https://pypi.douban.com/simple
Collecting demjson==2.2.4
Downloading https://pypi.doubanio.com/pack ... ar.gz (131 kB)
|████████████████████████████████| 131 kB 985 kB/s
ERROR: Command errored out with exit status 1:
command: /root/miniconda3/envs/py37/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-pj0ajcpl/demjson_86a1bab6643c4ed7a7b0c6bb6d3a43a2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-pj0ajcpl/demjson_86a1bab6643c4ed7a7b0c6bb6d3a43a2/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-7ve4tu87
cwd: /tmp/pip-install-pj0ajcpl/demjson_86a1bab6643c4ed7a7b0c6bb6d3a43a2/
Complete output (3 lines):
/root/miniconda3/envs/py37/lib/python3.7/site-packages/setuptools/dist.py:760: UserWarning: Usage of dash-separated 'index-url' will not be supported in future versions. Please use the underscore name 'index_url' instead
% (opt, underscore_opt)
error in demjson setup command: use_2to3 is invalid.

 记录一下解决办法:
setuptools 降级:
 
pip install --upgrade setuptools==57.5.0
 
然后再pip install demjson 即可
 
如果担心setuptools 修改到系统的其他库,可以创建一个虚拟环境。
然后在虚拟环境里面对setuptools 降级,再安装demjson 
 
来个养眼图:
继续阅读 »
ooking in indexes: https://pypi.douban.com/simple
Collecting demjson==2.2.4
Downloading https://pypi.doubanio.com/pack ... ar.gz (131 kB)
|████████████████████████████████| 131 kB 985 kB/s
ERROR: Command errored out with exit status 1:
command: /root/miniconda3/envs/py37/bin/python -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-pj0ajcpl/demjson_86a1bab6643c4ed7a7b0c6bb6d3a43a2/setup.py'"'"'; __file__='"'"'/tmp/pip-install-pj0ajcpl/demjson_86a1bab6643c4ed7a7b0c6bb6d3a43a2/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-7ve4tu87
cwd: /tmp/pip-install-pj0ajcpl/demjson_86a1bab6643c4ed7a7b0c6bb6d3a43a2/
Complete output (3 lines):
/root/miniconda3/envs/py37/lib/python3.7/site-packages/setuptools/dist.py:760: UserWarning: Usage of dash-separated 'index-url' will not be supported in future versions. Please use the underscore name 'index_url' instead
% (opt, underscore_opt)
error in demjson setup command: use_2to3 is invalid.

 记录一下解决办法:
setuptools 降级:
 
pip install --upgrade setuptools==57.5.0
 
然后再pip install demjson 即可
 
如果担心setuptools 修改到系统的其他库,可以创建一个虚拟环境。
然后在虚拟环境里面对setuptools 降级,再安装demjson 
 
来个养眼图:
收起阅读 »

股票证券资金账户开户选个吉祥号-靓号888,999

一开年,好多小伙伴问我,股票资金账户开户时是否可以选个吉祥号-如含靓号666,888,999
 
一般情况下,股民开户的股东账号都是中登公司随机产生的,不可以选择。有机会选择的是资金账号哦
 
那哪些数字比较受欢迎呢,当然是689啦

“6”代表六六大顺,
“8”谐音“发”,即发财。
“9”意味长长久久。
还有,其实7比8更受宠?

因为七上八下。股指都希望永远向上,不要下啊
 

bae7e68e9aed050e10010962c5e7e3eb_(1).jpeg

 
最近 国金证券 推出了些许靓号,开头888的,需要开户的朋友请扫码联系,备注:国金开户
继续阅读 »
一开年,好多小伙伴问我,股票资金账户开户时是否可以选个吉祥号-如含靓号666,888,999
 
一般情况下,股民开户的股东账号都是中登公司随机产生的,不可以选择。有机会选择的是资金账号哦
 
那哪些数字比较受欢迎呢,当然是689啦

“6”代表六六大顺,
“8”谐音“发”,即发财。
“9”意味长长久久。
还有,其实7比8更受宠?

因为七上八下。股指都希望永远向上,不要下啊
 

bae7e68e9aed050e10010962c5e7e3eb_(1).jpeg

 
最近 国金证券 推出了些许靓号,开头888的,需要开户的朋友请扫码联系,备注:国金开户
收起阅读 »

一些个人博客wordpress的内容需要用户扫码关注才可以阅读


 
这种体验差的一批。
是什么迷之自信让这些作者对自己写的内容如此敝帚自珍?
看到这样的站点,1s都不想停留,直接关闭了。

 
这种体验差的一批。
是什么迷之自信让这些作者对自己写的内容如此敝帚自珍?
看到这样的站点,1s都不想停留,直接关闭了。

centos/ubuntu linux 下 python matplotlib 绘图中文标题乱码 解决

出现下图的错误:

20220415_688533_上声电子_zdt.png

 测试代码:
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import rcParams


plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['simhei'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False

plt.title(r'宋体 Times New Roman')
plt.axis('off')
plt.savefig('usestix.png')
 
每次换机器都遇到这个问题,所以记录下来,以免日后又在折腾
首先找到一个ttf格式的中文字体,windows系统的可以在C盘的system里面找找。
我用的是微软雅黑。msyh.ttf , 需要的可以到公众号里面取。 后台回复: msyh.ttf 即可
或者simhei.ttf
cd /usr/share/fonts/
sudo mkdir chinese
sudo cp simhei.ttf /usr/share/fonts/chinese/
sudo chmod -R 755 /usr/share/fonts/chinese

更新缓存
mkfontscale
mkfontdir
fc-cache


注意,如果你的系统没有上述命令,需要使用yum install mkfontscale mkfontdir c-cache安装
 
然后接下来这一步,很重要。
 
清理缓存,不然不会生效!!!!
rm -rf ~/.cache/matplotlib


 
matplotlib:
同时把这个msyh.ttf的文件复制到matplotlib库下的文件夹:
~python3.9/site-packages/matplotlib/mpl-data/fonts/ttf/ 
下面
 
然后运行程序,搞定~

20220415_688533_上声电子_zdt_(2).png

 
公众号:可转债量化分析

后台回复 : msyh.ttf 或者 simhei.ttf 即可获取字体文件。
继续阅读 »
出现下图的错误:

20220415_688533_上声电子_zdt.png

 测试代码:
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib import rcParams


plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['simhei'] # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False

plt.title(r'宋体 Times New Roman')
plt.axis('off')
plt.savefig('usestix.png')
 
每次换机器都遇到这个问题,所以记录下来,以免日后又在折腾
首先找到一个ttf格式的中文字体,windows系统的可以在C盘的system里面找找。
我用的是微软雅黑。msyh.ttf , 需要的可以到公众号里面取。 后台回复: msyh.ttf 即可
或者simhei.ttf
cd /usr/share/fonts/
sudo mkdir chinese
sudo cp simhei.ttf /usr/share/fonts/chinese/
sudo chmod -R 755 /usr/share/fonts/chinese

更新缓存
mkfontscale
mkfontdir
fc-cache


注意,如果你的系统没有上述命令,需要使用yum install mkfontscale mkfontdir c-cache安装
 
然后接下来这一步,很重要。
 
清理缓存,不然不会生效!!!!
rm -rf ~/.cache/matplotlib


 
matplotlib:
同时把这个msyh.ttf的文件复制到matplotlib库下的文件夹:
~python3.9/site-packages/matplotlib/mpl-data/fonts/ttf/ 
下面
 
然后运行程序,搞定~

20220415_688533_上声电子_zdt_(2).png

 
公众号:可转债量化分析

后台回复 : msyh.ttf 或者 simhei.ttf 即可获取字体文件。 收起阅读 »

积分大于200才能够发帖

本站点此前处于不允许用户发言状态。
目前可以允许积分大于200分的用户发言。 
注册给10积分,更新个人资料送200积分。
所以只要更新一下个人资料即可处于发言状态。
 

02ia8kn.jpg

 
本站点此前处于不允许用户发言状态。
目前可以允许积分大于200分的用户发言。 
注册给10积分,更新个人资料送200积分。
所以只要更新一下个人资料即可处于发言状态。
 

02ia8kn.jpg

 

东方证券万一免五开户,已取消流量费,放心使用

之前有报道说东方证券有收取流量费,在同事的争取下,现在流量费已经取消。
 
而原来的费率也不变,股票万一免五,最低0.1元起。(是的,万一免五,没有流量费,没有流量费)
微信图片_20220414135421.jpg

 
PS:
一般流量费是在高频交易里面才会有,主要因为频繁挂单,扯单造成的费率影响。
 
 
开完户后,需要入金1w后,当天即可调免五,第二天可交易。到时会有电话通知调佣成功的。届时注意电话。

有问题可以咨询微信:


 
继续阅读 »
之前有报道说东方证券有收取流量费,在同事的争取下,现在流量费已经取消。
 
而原来的费率也不变,股票万一免五,最低0.1元起。(是的,万一免五,没有流量费,没有流量费)
微信图片_20220414135421.jpg

 
PS:
一般流量费是在高频交易里面才会有,主要因为频繁挂单,扯单造成的费率影响。
 
 
开完户后,需要入金1w后,当天即可调免五,第二天可交易。到时会有电话通知调佣成功的。届时注意电话。

有问题可以咨询微信:


  收起阅读 »

国金证券如何开通科创板及开通条件是什么

国金证券如何开通科创板及开通条件是什么
 首先,科创板开通条件主要检查是否满足以下两个硬性要求
1,资金要求
开通之前的20个交易日以上,证券账户及资金账户内的资产日平均不少于50万人民币

2,交易时间要求
该账户证券交易24个月(两年)以上
 
其次,若满足以上两个要求,即可开通国金证券科创板,步骤如下:
1.登录国金证券账户
2.点击“我的”
3.点击“业务办理“
4.选择点击科创板权限设置"
5.点击”开通科创板“
 

527becca2d668d08b346577ce73ad58e.jpeg

 
恰逢目前国金有万一的活动,需要开户的朋友,请扫码联系,备注:国金开户 
继续阅读 »
国金证券如何开通科创板及开通条件是什么
 首先,科创板开通条件主要检查是否满足以下两个硬性要求
1,资金要求
开通之前的20个交易日以上,证券账户及资金账户内的资产日平均不少于50万人民币

2,交易时间要求
该账户证券交易24个月(两年)以上
 
其次,若满足以上两个要求,即可开通国金证券科创板,步骤如下:
1.登录国金证券账户
2.点击“我的”
3.点击“业务办理“
4.选择点击科创板权限设置"
5.点击”开通科创板“
 

527becca2d668d08b346577ce73ad58e.jpeg

 
恰逢目前国金有万一的活动,需要开户的朋友,请扫码联系,备注:国金开户 
收起阅读 »

银河证券如何开通科创板及开通条件是什么


中国银河证券股份有限公司(以下简称“公司”)是经国务院批准,在收购原中国银河证券有限责任公司的证券经纪业务、投行业务及相关资产的基础上,由中国银河金融控股有限责任公司作为主发起人,联合北京清源德丰创业投资有限公司、重庆水务集团股份有限公司、中国通用技术(集团)控股有限责任公司、中国建材股份有限公司4家国内投资者,于2007年1月26日共同发起设立的全国性综合类证券公司


 首先,科创板开通条件是什么?
 
重点来了: 开通条件主要检查是否满足以下两个硬性要求
1,资金要求
开通之前的20个交易日以上,证券账户及资金账户内的资产日平均不少于50万人民币

2,交易时间要求
该账户证券交易24个月(两年)以上
 
其次,若满足以上两个要求,即可开通银河证券科创板,步骤如下:
  1. 登录银河证券账户
  2. 点击“我的”
  3. 点击“业务办理“
  4. 选择点击科创板权限设置"
  5. 点击”开通科创板“

 

0303c42654bf2391f3bfcbf801a823c2.jpeg

 
恰逢目前银河有万一免五的活动,需要开户的朋友,请扫码联系,备注:银河开户 

 
 
 
 
 
继续阅读 »


中国银河证券股份有限公司(以下简称“公司”)是经国务院批准,在收购原中国银河证券有限责任公司的证券经纪业务、投行业务及相关资产的基础上,由中国银河金融控股有限责任公司作为主发起人,联合北京清源德丰创业投资有限公司、重庆水务集团股份有限公司、中国通用技术(集团)控股有限责任公司、中国建材股份有限公司4家国内投资者,于2007年1月26日共同发起设立的全国性综合类证券公司


 首先,科创板开通条件是什么?
 
重点来了: 开通条件主要检查是否满足以下两个硬性要求
1,资金要求
开通之前的20个交易日以上,证券账户及资金账户内的资产日平均不少于50万人民币

2,交易时间要求
该账户证券交易24个月(两年)以上
 
其次,若满足以上两个要求,即可开通银河证券科创板,步骤如下:
  1. 登录银河证券账户
  2. 点击“我的”
  3. 点击“业务办理“
  4. 选择点击科创板权限设置"
  5. 点击”开通科创板“

 

0303c42654bf2391f3bfcbf801a823c2.jpeg

 
恰逢目前银河有万一免五的活动,需要开户的朋友,请扫码联系,备注:银河开户 

 
 
 
 
  收起阅读 »

券商交割单是什么时候才能出来的?

如果开了免五的券商,用于交易股票。一般投资者以为自己买完股票,看到参考盈亏上马上少了5元。 就觉得这个券商没有给到他免五的优惠。
 
其实真实的费率是在交割单里面。交割单一般是当天网上中登网交割后,才会出来。
 

jgd1.jpg


jgd2.jpg

 
 
交割单制度就是优化了资金流转效率。
比如你当天买卖,买了1000元股票,又卖出了1100元股票,净差额是100元,所以最后中登 只需要转入100元给券商,其余部分的券商内部流转,并没有真实的发生资金流转。
 
需要万一免五开户的朋友可以扫码开通:
继续阅读 »
如果开了免五的券商,用于交易股票。一般投资者以为自己买完股票,看到参考盈亏上马上少了5元。 就觉得这个券商没有给到他免五的优惠。
 
其实真实的费率是在交割单里面。交割单一般是当天网上中登网交割后,才会出来。
 

jgd1.jpg


jgd2.jpg

 
 
交割单制度就是优化了资金流转效率。
比如你当天买卖,买了1000元股票,又卖出了1100元股票,净差额是100元,所以最后中登 只需要转入100元给券商,其余部分的券商内部流转,并没有真实的发生资金流转。
 
需要万一免五开户的朋友可以扫码开通:
收起阅读 »

腾讯云轻服务器 太垃圾了,大家别买

是在太拉跨了。
#### 2022-05-17更新 ########
而且续费还贼贵,3年到期就跑路啦,不续费。888
 
#############
先跑一个conda install 命令,只是为了装一个第三方库。
然后在等待的时候,去再开一个shell窗口操作。
 
结果就另外一个shell就卡住了。
 

20220412024417.png


这个现象已经经历过N次验证,轻服务器千万不要用来跑多任务,用来部署一个wordpress就差不多了。
 
只要2个轻微的程序一跑起来,系统就hang掉了。
 
这样的垃圾,续费还要1400一年。
 
继续阅读 »
是在太拉跨了。
#### 2022-05-17更新 ########
而且续费还贼贵,3年到期就跑路啦,不续费。888
 
#############
先跑一个conda install 命令,只是为了装一个第三方库。
然后在等待的时候,去再开一个shell窗口操作。
 
结果就另外一个shell就卡住了。
 

20220412024417.png


这个现象已经经历过N次验证,轻服务器千万不要用来跑多任务,用来部署一个wordpress就差不多了。
 
只要2个轻微的程序一跑起来,系统就hang掉了。
 
这样的垃圾,续费还要1400一年。
  收起阅读 »

银河证券两融最低5.3%

银河证券两融最低5.3%。
 
如果资金量大,还可以申请更优惠利率,最低4.9%。
 

20220411_001.png

 

 
c6d0aa92ad931545bb5172c453f2a454.jpeg


需要开户的朋友,请扫码联系,备注:银河两融开户
继续阅读 »
银河证券两融最低5.3%。
 
如果资金量大,还可以申请更优惠利率,最低4.9%。
 

20220411_001.png

 

 
c6d0aa92ad931545bb5172c453f2a454.jpeg


需要开户的朋友,请扫码联系,备注:银河两融开户
收起阅读 »

第一创业证券开户,支持量化聚宽,QMT


第一创业证券股份有限公司(以下简称“公司”、“第一创业”)前身是1993年4月成立的佛山证券公司。公司注册资本42.024亿元,总部设在深圳,员工超过3000人。2016年5月11日,公司首次公开发行股票并在深圳证券交易所上市交易


 
第一创业证券开户,费率如下
股票:万2.5
场内基金申购1折
可转债:沪市:万0.1  深市:万0.5
支持量化聚宽,QMT

20220410_002.png

 

 

a2f0d4bc4161fa5946f11a3f0e003536.jpeg

 
需要开户的老铁,请扫码联系,备注:第一创业开户
继续阅读 »


第一创业证券股份有限公司(以下简称“公司”、“第一创业”)前身是1993年4月成立的佛山证券公司。公司注册资本42.024亿元,总部设在深圳,员工超过3000人。2016年5月11日,公司首次公开发行股票并在深圳证券交易所上市交易


 
第一创业证券开户,费率如下
股票:万2.5
场内基金申购1折
可转债:沪市:万0.1  深市:万0.5
支持量化聚宽,QMT

20220410_002.png

 

 

a2f0d4bc4161fa5946f11a3f0e003536.jpeg

 
需要开户的老铁,请扫码联系,备注:第一创业开户
收起阅读 »

哪个券商打涨停板VIP条件单交易通道速度快 ,支持独立交易单元,最适合打板

关于最近很多朋友提问“哪个券商打涨停板VIP条件单交易通道速度快  最适合打板,支持独立交易单元”
 
其实每个证券券商都有优缺点,一般来说,大的券商,交易软件,系统投资建设等技术或许较为成熟一些,
 
小的券商相对来说软件功能可能没那么丰富,但也不存在绝对慢的说法。
 
另外,如果是高净值,资金量比较丰厚,可以申请vip交易通道。
 
例如开通支持通达信VIP交易通道或者多种条件单交易,但相对做短线的投资手法,也需要选择一些券商可以保持交易通道的稳定性和速度
 
目前比较受欢迎运用量化交易策略技术,如Ptade和qmt,获取闪电技术下单的功能。

加上拥有一个低费率且有VIP通道交易的券商,那真的是锦上添花
 

3629c347af89e0ad089be3148fa15d14.jpeg

 
需要开通低佣万一免五或开通量化交易的朋友,请扫码联系,备注:开户
继续阅读 »
关于最近很多朋友提问“哪个券商打涨停板VIP条件单交易通道速度快  最适合打板,支持独立交易单元”
 
其实每个证券券商都有优缺点,一般来说,大的券商,交易软件,系统投资建设等技术或许较为成熟一些,
 
小的券商相对来说软件功能可能没那么丰富,但也不存在绝对慢的说法。
 
另外,如果是高净值,资金量比较丰厚,可以申请vip交易通道。
 
例如开通支持通达信VIP交易通道或者多种条件单交易,但相对做短线的投资手法,也需要选择一些券商可以保持交易通道的稳定性和速度
 
目前比较受欢迎运用量化交易策略技术,如Ptade和qmt,获取闪电技术下单的功能。

加上拥有一个低费率且有VIP通道交易的券商,那真的是锦上添花
 

3629c347af89e0ad089be3148fa15d14.jpeg

 
需要开通低佣万一免五或开通量化交易的朋友,请扫码联系,备注:开户
收起阅读 »

东莞证券开户


东莞证券有限责任公司成立于1988年6月,注册资本15亿元。是东莞市国有控股的全国性综合类证券公司、规范类证券公司,是全国首批承销保荐机构之一


 东莞证券开户,费率如下

股票:万1.1
ETF/LOF:万0.6
可转债:沪市:十万分之4 深市:十万分之4

dc8460d0b0f9f49e20f8afa942722990.jpeg

 
需要开户的朋友,请扫码联系,备注:东莞证券开户
继续阅读 »


东莞证券有限责任公司成立于1988年6月,注册资本15亿元。是东莞市国有控股的全国性综合类证券公司、规范类证券公司,是全国首批承销保荐机构之一


 东莞证券开户,费率如下

股票:万1.1
ETF/LOF:万0.6
可转债:沪市:十万分之4 深市:十万分之4

dc8460d0b0f9f49e20f8afa942722990.jpeg

 
需要开户的朋友,请扫码联系,备注:东莞证券开户
收起阅读 »

ubuntu安装微信PC版

使用的方案是docker-wechat:

68747470733a2f2f6875616e2e6769746875622e696f2f646f636b65722d7765636861742f696d616765732f7465726d2d646f636861742e706e67.png

 
使用一行命令就可以安装:
curl -sL https://gitee.com/mirrors/doch ... at.sh | bash

 
前提你已经安装了docker
 
上面的命令不能用sudo安装,
如果所docker需要sudo启动,可以设置一下用户:
sudo usermod -aG docker $USER

 
20220410_001.png


 如果遇到错误:
mkdir: 无法创建目录 “/home/user/.wine/drive_c/users/user/Application Data/Tencent”: 权限不够
 
需要把用户目录下的DoWechat 文件夹给一个777的权限。
sudo chmod +R 777 DoWechat
 
 然后重新运行
curl -sL https://gitee.com/mirrors/doch ... at.sh | bash
 
就可以扫描登陆PC版微信了。
 
其底层用的就是Wine。 类似与ubuntu下的windows模拟框架。
 
 
继续阅读 »
使用的方案是docker-wechat:

68747470733a2f2f6875616e2e6769746875622e696f2f646f636b65722d7765636861742f696d616765732f7465726d2d646f636861742e706e67.png

 
使用一行命令就可以安装:
curl -sL https://gitee.com/mirrors/doch ... at.sh | bash

 
前提你已经安装了docker
 
上面的命令不能用sudo安装,
如果所docker需要sudo启动,可以设置一下用户:
sudo usermod -aG docker $USER

 
20220410_001.png


 如果遇到错误:
mkdir: 无法创建目录 “/home/user/.wine/drive_c/users/user/Application Data/Tencent”: 权限不够
 
需要把用户目录下的DoWechat 文件夹给一个777的权限。
sudo chmod +R 777 DoWechat
 
 然后重新运行
curl -sL https://gitee.com/mirrors/doch ... at.sh | bash
 
就可以扫描登陆PC版微信了。
 
其底层用的就是Wine。 类似与ubuntu下的windows模拟框架。
 
  收起阅读 »

Docker sed: cannot rename /etc/sedyGSbui: Device or resource busy

挂载nginx配置文件时会出现这个问题。 
 
比如挂载命令如下:
docker run -p 80:80 --name mynginx --privileged=true -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /data/nginx/logs:/var/log/nginx -d nginx:1.21

如果有文件存在,可以改为挂载其父母录
比如这里:
 
/data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf

把它改成 
/data/nginx/conf.d:/etc/nginx/conf.d

即可解决这个问题。
 
 
 
继续阅读 »
挂载nginx配置文件时会出现这个问题。 
 
比如挂载命令如下:
docker run -p 80:80 --name mynginx --privileged=true -v /data/nginx/html:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -v /data/nginx/logs:/var/log/nginx -d nginx:1.21

如果有文件存在,可以改为挂载其父母录
比如这里:
 
/data/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf

把它改成 
/data/nginx/conf.d:/etc/nginx/conf.d

即可解决这个问题。
 
 
  收起阅读 »

cronsun 数据备份与恢复

这对于动辄几十几百个任务的朋友来说,备份与恢复很重要。
 
cronsun提供的csctl工具可以备份和恢复cronsun的任务数据。
 
备份数据:
 
# 请将 --conf 修改为你自己保存的 base.json 文件的路径
# --file 为备份文件路径,会自动加上 .zip 后缀,这里不需要写后缀
csctl backup --conf={/path/to/base.json} --dir=./ --file=cronsun_data

恢复数据
# 请将 --conf 修改为你自己保存的 base.json 文件的路径
# --file 为备份文件路径
csctl restore --conf={/path/to/base.json} --file=./cronsun_data.zip

把数据导入之后,还需要在新的机器上,web登录,把运行的节点逐个改为新节点。 这个有点不智能,不过,相比每一个都要手动更新全部内容,也很好很多,节省很多时间了。
继续阅读 »
这对于动辄几十几百个任务的朋友来说,备份与恢复很重要。
 
cronsun提供的csctl工具可以备份和恢复cronsun的任务数据。
 
备份数据:
 
# 请将 --conf 修改为你自己保存的 base.json 文件的路径
# --file 为备份文件路径,会自动加上 .zip 后缀,这里不需要写后缀
csctl backup --conf={/path/to/base.json} --dir=./ --file=cronsun_data

恢复数据
# 请将 --conf 修改为你自己保存的 base.json 文件的路径
# --file 为备份文件路径
csctl restore --conf={/path/to/base.json} --file=./cronsun_data.zip

把数据导入之后,还需要在新的机器上,web登录,把运行的节点逐个改为新节点。 这个有点不智能,不过,相比每一个都要手动更新全部内容,也很好很多,节省很多时间了。 收起阅读 »

etcd连接带用户名与密码

如果你的etcd设置了密码,使用以下方式进行操作:
ENDPOINT = http://127.0.0.1:2379
./etcdctl --endpoints=$ENDPOINT put foo "Hello World" --user="root" --password="password"

这样就把foo的值设为 "Hello World"
 
同理,如果要读取foo的值,只需要
ENDPOINT = http://127.0.0.1:2379
./etcdctl --endpoints=$ENDPOINT get foo --user="root" --password="password"

就可以把你上一个设置的值读取出来。
 
继续阅读 »
如果你的etcd设置了密码,使用以下方式进行操作:
ENDPOINT = http://127.0.0.1:2379
./etcdctl --endpoints=$ENDPOINT put foo "Hello World" --user="root" --password="password"

这样就把foo的值设为 "Hello World"
 
同理,如果要读取foo的值,只需要
ENDPOINT = http://127.0.0.1:2379
./etcdctl --endpoints=$ENDPOINT get foo --user="root" --password="password"

就可以把你上一个设置的值读取出来。
  收起阅读 »

mongodb python同步两个数据库数据

有时候需要做一些迁移工作,需要对mongodb进行迁移。默认的工具貌似也十分好用的。缺少像Navicat 之于mysql的这样神级的软件。
 
所以自己动手写代码完成:
 
# -*- coding: utf-8 -*-
# @Time : 2022/4/6 4:41
# @File : database_migrate.py
# @Author : Rocky C@www.30daydo.com
import time
from loguru import logger
import pymongo

ignore_db = ['admin', 'config', 'local',
] # 忽略更新的库

ignore_col = [('db_stock','dfcf_list_full')]

logger.add('mongo.log')

# 数据库同步
def get_client(user, password, host, port):
connect_uri = f'mongodb://{user}:{password}@{host}:{port}'
client = pymongo.MongoClient(connect_uri)
return client


def origin():
return get_client('admin', 'password', '127.0.0.1', '27017')


def target():
return get_client('root', 'password', '127.0.0.1', '27017')


def transfer():
origin_client = origin()
target_client = target()
dbs = get_db_name(origin_client)
for db in dbs:
for col in get_collection_name(origin_client, db):

if (db,col) in ignore_col:
continue
items = []
logger.info(f'正在更新{db} {col}')
for i in get_item(origin_client, db, col):
items.append(i)

insert_item(target_client, db, col, items)
logger.info(f'更新数据库 {db} {col}')
# time.sleep(0.5)

def get_item(client, db_name, col):
return client[db_name][col].find()



def insert_item(client, db_name, col, data):
batch = 1000
count = len(data)//batch + 1
for i in range(count):
item = data[i*batch:(i+1)*batch]

if len(item)==0:
continue

try:
client[db_name][col].insert_many(item)
except Exception as e:
logger.error(e)
logger.error(f'{db_name} {col} 插入出错')


def get_db_name(client):
db_name = client.list_database_names()
dbs = []
for db in db_name:
if db not in ignore_db:
dbs.append(db)
return dbs

def delete_col(client,db,col):
try:
client[db][col].delete_many({})
except Exception as e:
logger.error(e)
logger.error(db)
logger.error(col)
return False
else:
return True

def server_compare():
'''
比较2个数据库是否相同,只是单纯比较条数
'''
origin_client = origin()
target_client = target()
dbs = get_db_name(origin_client)

for db in dbs:
for col in get_collection_name(origin_client, db):
origin_count = origin_client[db][col].count_documents({})
target_count = target_client[db][col].count_documents({})
if origin_count!=target_count:
logger.info(f'collection {db} {col}有区别')
#
if delete_col(target_client,db,col):
items = []
logger.info(f'正在更新{db} {col}')
for i in get_item(origin_client, db, col):
items.append(i)

insert_item(target_client, db, col, items)
logger.info(f'更新数据库 {db} {col}')
time.sleep(1)




def get_collection_name(client, db_name):
collection_names = client[db_name].list_collection_names(session=None)
return collection_names

def main():
server_compare()

if __name__ == '__main__':
main()

 原理就是不断迭代,不同的数据库,里面的不同的collection。
对于同名collection,通过条数是否一致,来决定是否要把原数据复制过来。 
 
保存上面文件为main.py
 
执行 python main.py
 
就可以进行数据同步工作啦。
继续阅读 »
有时候需要做一些迁移工作,需要对mongodb进行迁移。默认的工具貌似也十分好用的。缺少像Navicat 之于mysql的这样神级的软件。
 
所以自己动手写代码完成:
 
# -*- coding: utf-8 -*-
# @Time : 2022/4/6 4:41
# @File : database_migrate.py
# @Author : Rocky C@www.30daydo.com
import time
from loguru import logger
import pymongo

ignore_db = ['admin', 'config', 'local',
] # 忽略更新的库

ignore_col = [('db_stock','dfcf_list_full')]

logger.add('mongo.log')

# 数据库同步
def get_client(user, password, host, port):
connect_uri = f'mongodb://{user}:{password}@{host}:{port}'
client = pymongo.MongoClient(connect_uri)
return client


def origin():
return get_client('admin', 'password', '127.0.0.1', '27017')


def target():
return get_client('root', 'password', '127.0.0.1', '27017')


def transfer():
origin_client = origin()
target_client = target()
dbs = get_db_name(origin_client)
for db in dbs:
for col in get_collection_name(origin_client, db):

if (db,col) in ignore_col:
continue
items = []
logger.info(f'正在更新{db} {col}')
for i in get_item(origin_client, db, col):
items.append(i)

insert_item(target_client, db, col, items)
logger.info(f'更新数据库 {db} {col}')
# time.sleep(0.5)

def get_item(client, db_name, col):
return client[db_name][col].find()



def insert_item(client, db_name, col, data):
batch = 1000
count = len(data)//batch + 1
for i in range(count):
item = data[i*batch:(i+1)*batch]

if len(item)==0:
continue

try:
client[db_name][col].insert_many(item)
except Exception as e:
logger.error(e)
logger.error(f'{db_name} {col} 插入出错')


def get_db_name(client):
db_name = client.list_database_names()
dbs = []
for db in db_name:
if db not in ignore_db:
dbs.append(db)
return dbs

def delete_col(client,db,col):
try:
client[db][col].delete_many({})
except Exception as e:
logger.error(e)
logger.error(db)
logger.error(col)
return False
else:
return True

def server_compare():
'''
比较2个数据库是否相同,只是单纯比较条数
'''
origin_client = origin()
target_client = target()
dbs = get_db_name(origin_client)

for db in dbs:
for col in get_collection_name(origin_client, db):
origin_count = origin_client[db][col].count_documents({})
target_count = target_client[db][col].count_documents({})
if origin_count!=target_count:
logger.info(f'collection {db} {col}有区别')
#
if delete_col(target_client,db,col):
items = []
logger.info(f'正在更新{db} {col}')
for i in get_item(origin_client, db, col):
items.append(i)

insert_item(target_client, db, col, items)
logger.info(f'更新数据库 {db} {col}')
time.sleep(1)




def get_collection_name(client, db_name):
collection_names = client[db_name].list_collection_names(session=None)
return collection_names

def main():
server_compare()

if __name__ == '__main__':
main()

 原理就是不断迭代,不同的数据库,里面的不同的collection。
对于同名collection,通过条数是否一致,来决定是否要把原数据复制过来。 
 
保存上面文件为main.py
 
执行 python main.py
 
就可以进行数据同步工作啦。 收起阅读 »

原来便宜的腾讯云轻服务器续费要这么贵的。。。。


 
之前买的几台用来做数据库, 3年,费用才200不到,是现在续费一年的费用的零头不到。。。。
 
果然用户要先圈起来,再慢慢宰。
 
PS: 并不是买不起贵的服务器,之前部署的集群费用都1w多的,只是觉得企鹅这种圈地的做法,不得人心。
那个轻服务器,并不见得值1千多一年。 同时开2个mongodb,备份数据,已经被中断进程N次。无奈下,直接注销这个服务器。垃圾的一批
 
 
继续阅读 »

 
之前买的几台用来做数据库, 3年,费用才200不到,是现在续费一年的费用的零头不到。。。。
 
果然用户要先圈起来,再慢慢宰。
 
PS: 并不是买不起贵的服务器,之前部署的集群费用都1w多的,只是觉得企鹅这种圈地的做法,不得人心。
那个轻服务器,并不见得值1千多一年。 同时开2个mongodb,备份数据,已经被中断进程N次。无奈下,直接注销这个服务器。垃圾的一批
 
  收起阅读 »

腾讯云不同账户下内网互通是可以的,只是要收费。。

跨账号网络实例互通
 
前提条件

需要互联的私有网络 VPC 已创建。
需要互联的各 VPC 子网网段、IDC 网段没有冲突。

步骤一:账号 A 创建云联网实例

使用账号 A 登录 云联网控制台 ,在云联网管理页面,单击+新建。
在弹出框中填写云联网实例名称、描述,选择计费模式、服务质量、限速方式和关联实例的 VPC ID。


 
 
貌似也不便宜的样子。
 
算了,能用本机的数据库就用本机吧,大不了走公网,用个跳板机的,提高安全性。
继续阅读 »
跨账号网络实例互通
 
前提条件

需要互联的私有网络 VPC 已创建。
需要互联的各 VPC 子网网段、IDC 网段没有冲突。

步骤一:账号 A 创建云联网实例

使用账号 A 登录 云联网控制台 ,在云联网管理页面,单击+新建。
在弹出框中填写云联网实例名称、描述,选择计费模式、服务质量、限速方式和关联实例的 VPC ID。


 
 
貌似也不便宜的样子。
 
算了,能用本机的数据库就用本机吧,大不了走公网,用个跳板机的,提高安全性。 收起阅读 »

低门槛开通QMT

QMT
讯投QMT,支持python编写策略并实盘下单,由券商提供软件与账户。

e560aa1b9a7e230b78d3bbc72da44656.jpg


 
 
目前提供低门槛开户,且交易费率也很低,万一免五,基金ETF,LOF万0.5
 
可转债(新规)费率 沪 十万分之五,深 十万分之五
 
资金量只需要1W左右既可以开通, 只需要入金即可。
 
需要的朋友可以加微信咨询。
 

备注:低门槛QMT
 
继续阅读 »
讯投QMT,支持python编写策略并实盘下单,由券商提供软件与账户。

e560aa1b9a7e230b78d3bbc72da44656.jpg


 
 
目前提供低门槛开户,且交易费率也很低,万一免五,基金ETF,LOF万0.5
 
可转债(新规)费率 沪 十万分之五,深 十万分之五
 
资金量只需要1W左右既可以开通, 只需要入金即可。
 
需要的朋友可以加微信咨询。
 

备注:低门槛QMT
  收起阅读 »

查看docker运行的容器的启动命令

对于经常运行docker的朋友来说, 系统里面运行着大量的docker容器,然后有时候想要查看一个正在运行的容器的启动命令, 这个也是常用操作。
 
这时可以用到一个python脚本,runlike
 
安装:
pip install runlike
 
体积很小,估计就几k不到。
 
然后运行:
runlike -p 容器名字
 
继续阅读 »
对于经常运行docker的朋友来说, 系统里面运行着大量的docker容器,然后有时候想要查看一个正在运行的容器的启动命令, 这个也是常用操作。
 
这时可以用到一个python脚本,runlike
 
安装:
pip install runlike
 
体积很小,估计就几k不到。
 
然后运行:
runlike -p 容器名字
 
收起阅读 »

docker compose 部署 Wordpress

看一个B站的视频,然后顺着用官方的一个docker-compose.yml 的文件,创建的wordpress一直无法连接数据库。一直是失败的,太无语。
这个失败的wordpress的compose yaml文件如下:
 
version: '3.1'

services:

wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html

db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql

volumes:
wordpress:
db:

 
使用logs查看,报错信息如下:
MySQL Connection Error: (1045) Access denied for user 'root'@'172.23.0.3' (using password: YES)

问题的根源在于用这个compose文件创建的数据库无法连接。 这个数据用的是要大于mysql > 5.7.
创建后默认的密码是root为空,而登录需要用到一个密码转换的插件。
 
 
后面找了另外一个wordpress 可以正常运行的:
version: "3.3"

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}
 
 
继续阅读 »
看一个B站的视频,然后顺着用官方的一个docker-compose.yml 的文件,创建的wordpress一直无法连接数据库。一直是失败的,太无语。
这个失败的wordpress的compose yaml文件如下:
 
version: '3.1'

services:

wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html

db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql

volumes:
wordpress:
db:

 
使用logs查看,报错信息如下:
MySQL Connection Error: (1045) Access denied for user 'root'@'172.23.0.3' (using password: YES)

问题的根源在于用这个compose文件创建的数据库无法连接。 这个数据用的是要大于mysql > 5.7.
创建后默认的密码是root为空,而登录需要用到一个密码转换的插件。
 
 
后面找了另外一个wordpress 可以正常运行的:
version: "3.3"

services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}
 
  收起阅读 »

使用docker部署wecenter

用docker部署LNMP后,把文件拷贝过来,数据库迁移过来。
 
然后修改伪静态的配置,在网站后台改下上传文件的路径,不然图片和头像都不显示。
用docker部署LNMP后,把文件拷贝过来,数据库迁移过来。
 
然后修改伪静态的配置,在网站后台改下上传文件的路径,不然图片和头像都不显示。