优矿回测可转债 代码 教程

不少投资者在投资的过程中,都想要回测自己的策略或者验证自己的想法. 不少读者也在后台留言,能否写写入门类的教程.

可是碍于非科班出生, 对于编程的一窍不通, 所以大部分止步于简单的数据统计.

比如采用excel对采集来的数据,手工测试与验证, 高级点的可以应用一些excel函数进行简单回测.

这里会有一个烦人且第一大障碍, 就是需要有采集来的数据. 首先保证这个数据的完整性与准确性. 这一步其实已经过滤掉想要回测的80%的人了. 具体优矿支持的数据。
 
 
优矿支持的数据
  • 股票:沪深交易所股票的基本信息以及日/分钟级别的股票行情。
  •  
  • 财务报表:沪深港上市公司披露的2007年会计准则变更以来的所有财务报表数据,包含三大报表和财报附注等细节。
  •  
  • 公司行为:沪深上市公司业绩预告,业绩快报,IPO,配股,分红,拆股,股改等信息。
  •  
  • 基金:场内外各类基金的基本信息,日/分钟级别的场内基金行情,日级别的场外基金净值,以及基金资产配置,收益情况,净值调整等信息。
  •  
  • 期货:国内四大期货交易所期货合约的基本信息,日/分钟的期货行情,以及国债期货的转换因子等信息。
  •  
  • 指数:国内外指数基本信息,日/分钟级别的指数行情,以及指数成分构成情况,指数成分股权重情况等信息。
  •  
  • 港股:香港交易所股票基本信息以及日级别的股票行情。
  •  
  • 大宗商品:国内各个品种(包括期货合约可交割品种)的大宗商品现货价格行情,以及产销量,库存等信息。
  •  
  • 债券:债券/回购基本信息,日级别的债券/回购行情,以及发行上市,付息,利率,评级和评级变动,债券发行人评级及变动,担保人评级及变动等信息。
  •  
  • 期权:上交所期权合约的基本信息,日/分钟级别的期权行情,以及每日盘前静态数据等信息。
  •  
  • 宏观产业:中国及全球各国宏观指标,行业经济指标等数据。


特色数据
  • 股票/指数等品种的量化因子库
  •  
  • 雪球、股吧等社交媒体数据
  •  
  • 主流媒体新闻文本和结构化数据
  •  
  • 主流渠道公告文本和结构化数据
  •  
  • 淘宝、天猫等电商数据


其实其他的聚框,米宽,箩筐等等,都是大同小异的,本文只是挑选笔者使用比较多的优矿来介绍. 不过现在优矿并不支持实盘.

本文只是做一个量化平台框架的基本介绍, 后续的文章会有进阶, 加入买卖操作, 计算最大回撤, 以及更为复杂的多因子回测. 只要有的数据,基本都可以拿来加入到你的模型之中.
 
##################################################################

因为优矿本身并不支持可转债的交易,所以系统内置的order,buy,sell函数是无法应用到可转债上面。

不过只要能够获取到每日的行情数据,那么我们就可以自己构造一个交易系统。

核心就就是每次保存你的持仓信息,等到下一次调仓时,对持仓进行比较,对于调出的转债进行移除,新加的转债进行加入。 然后统计一下当前市值,记录下来,就可以得到收益率曲线。
 
部分代码如下:
import datetime

start = '2018-01-01' # 回测起始时间
end = '2021-05-28' # 回测结束时间
benchmark = 'HS300' # 策略参考标准
freq = 'd' # 策略类型,'d'表示日间策略使用日线回测,'m'表示日内策略使用分钟线回测
refresh_rate = 5 # 调仓频率,表示执行handle_data的时间间隔,若freq = 'd' 时间间隔的单位为交易日,
hold_num = 10 # 持有转债的个数


def initialize(context):
global MyPosition, HighValue, MyCash, Withdraw, HoldRank, HoldNum,Start_Cash
MyPosition = {} #持仓
MyCash = 1000000 #现金
Start_Cash= 1000000
HighValue = MyCash #最高市值
Withdraw = 0 #最大回撤
HoldRank = hold_num #排名多少之后卖出
HoldNum = hold_num #持债支数

def bonds(beginDate=u"20170101",endDate=u"20201215",EB_ENABLE=False):
code_set = set()
df = DataAPI.MktConsBondPremiumGet(SecID=u"",
tickerBond=u"",
beginDate=beginDate,
endDate=endDate,
field=u"",
pandas="1")

cb_df = df.tickerBond.str.startswith(('12', '11'))
df = df[cb_df]
cb_df = df.tickerBond.str.startswith('117')
df = df[~cb_df]
if not EB_ENABLE:
eb = df.secShortNameBond.str.match('\d\d.*?E[123B]') # TODO 判断EB是否过滤
df = df[~eb]

ticker_list =
for _, row in df[['tickerBond', 'secShortNameBond', 'tickerEqu']].iterrows():
if row['tickerBond'] not in code_set:
ticker_list.append((row['tickerBond'], row['secShortNameBond'], row['tickerEqu']))
code_set.add(row['tickerBond'])
return list(code_set)


def handle_data(context):
global MyPosition, HighValue, MyCash, Withdraw, HoldRank, HoldNum,Start_Cash

today_date = context.now.strftime('%Y%m%d')

#每天重新计算双低排名
ticker_list=bonds(today_date,today_date)
data = DataAPI.MktConsBondPerfGet(beginDate=today_date,endDate=today_date,secID='',tickerBond=ticker_list,
tickerEqu=u"",field=u"",pandas="1")
data['secID']=data['tickerBond']
data.set_index('secID',inplace=True)
data['DoubleLow'] = data['closePriceBond'] + data['bondPremRatio']
data = data.sort_values(by="DoubleLow" , ascending=True)
PosValue = MyCash

#抛出不在持有排名HoldRank的
for stock in MyPosition.keys():
try:
CurPrice = data.loc[stock]['closePriceBond']
except:
last_date = (context.now + datetime.timedelta(days=-7)).strftime('%Y%m%d')
CurPrice=get_last_price(stock,last_date,today_date)

PosValue += MyPosition[stock] * CurPrice * 10 #计算当前市值

if stock not in data.index[:HoldRank]:
# 省略若干

log.info('{} 卖出{},{},价格:{}'.format(today_date,stock,name,CurPrice))


if PosValue > HighValue:HighValue = PosValue
if (HighValue - PosValue) / HighValue > Withdraw:Withdraw = (HighValue - PosValue) / HighValue

#买入排在HoldRank内的,总持有数量HoldNum
min_hold = min(HoldRank,len(data.index))
for i in range(min_hold):
if len(MyPosition) >= HoldNum:break
if data.index[i] not in MyPosition.keys():
# 省略若干
log.info('{} 买入{}, {}, 价格{}, 溢价率{}'.format(today_date,data.index[i],name,price,cb_ration))

ratio = (PosValue-Start_Cash)/Start_Cash*100
log.info(today_date + ': 最高市值 ' + str(HighValue) + ' , 当前市值 ' + str(PosValue) + '收益率 : '
+str(ratio)+'% , 最大回撤 ' + str(round(Withdraw*100,2))+'%') [/i][/i]

[i]欢迎讨论探索,星球里面有更多的完整策略与代码,回测数据,结论资源。
 
[/i]
继续阅读 »
不少投资者在投资的过程中,都想要回测自己的策略或者验证自己的想法. 不少读者也在后台留言,能否写写入门类的教程.

可是碍于非科班出生, 对于编程的一窍不通, 所以大部分止步于简单的数据统计.

比如采用excel对采集来的数据,手工测试与验证, 高级点的可以应用一些excel函数进行简单回测.

这里会有一个烦人且第一大障碍, 就是需要有采集来的数据. 首先保证这个数据的完整性与准确性. 这一步其实已经过滤掉想要回测的80%的人了. 具体优矿支持的数据。
 
 
优矿支持的数据
  • 股票:沪深交易所股票的基本信息以及日/分钟级别的股票行情。
  •  
  • 财务报表:沪深港上市公司披露的2007年会计准则变更以来的所有财务报表数据,包含三大报表和财报附注等细节。
  •  
  • 公司行为:沪深上市公司业绩预告,业绩快报,IPO,配股,分红,拆股,股改等信息。
  •  
  • 基金:场内外各类基金的基本信息,日/分钟级别的场内基金行情,日级别的场外基金净值,以及基金资产配置,收益情况,净值调整等信息。
  •  
  • 期货:国内四大期货交易所期货合约的基本信息,日/分钟的期货行情,以及国债期货的转换因子等信息。
  •  
  • 指数:国内外指数基本信息,日/分钟级别的指数行情,以及指数成分构成情况,指数成分股权重情况等信息。
  •  
  • 港股:香港交易所股票基本信息以及日级别的股票行情。
  •  
  • 大宗商品:国内各个品种(包括期货合约可交割品种)的大宗商品现货价格行情,以及产销量,库存等信息。
  •  
  • 债券:债券/回购基本信息,日级别的债券/回购行情,以及发行上市,付息,利率,评级和评级变动,债券发行人评级及变动,担保人评级及变动等信息。
  •  
  • 期权:上交所期权合约的基本信息,日/分钟级别的期权行情,以及每日盘前静态数据等信息。
  •  
  • 宏观产业:中国及全球各国宏观指标,行业经济指标等数据。


特色数据
  • 股票/指数等品种的量化因子库
  •  
  • 雪球、股吧等社交媒体数据
  •  
  • 主流媒体新闻文本和结构化数据
  •  
  • 主流渠道公告文本和结构化数据
  •  
  • 淘宝、天猫等电商数据


其实其他的聚框,米宽,箩筐等等,都是大同小异的,本文只是挑选笔者使用比较多的优矿来介绍. 不过现在优矿并不支持实盘.

本文只是做一个量化平台框架的基本介绍, 后续的文章会有进阶, 加入买卖操作, 计算最大回撤, 以及更为复杂的多因子回测. 只要有的数据,基本都可以拿来加入到你的模型之中.
 
##################################################################

因为优矿本身并不支持可转债的交易,所以系统内置的order,buy,sell函数是无法应用到可转债上面。

不过只要能够获取到每日的行情数据,那么我们就可以自己构造一个交易系统。

核心就就是每次保存你的持仓信息,等到下一次调仓时,对持仓进行比较,对于调出的转债进行移除,新加的转债进行加入。 然后统计一下当前市值,记录下来,就可以得到收益率曲线。
 
部分代码如下:
import datetime

start = '2018-01-01' # 回测起始时间
end = '2021-05-28' # 回测结束时间
benchmark = 'HS300' # 策略参考标准
freq = 'd' # 策略类型,'d'表示日间策略使用日线回测,'m'表示日内策略使用分钟线回测
refresh_rate = 5 # 调仓频率,表示执行handle_data的时间间隔,若freq = 'd' 时间间隔的单位为交易日,
hold_num = 10 # 持有转债的个数


def initialize(context):
global MyPosition, HighValue, MyCash, Withdraw, HoldRank, HoldNum,Start_Cash
MyPosition = {} #持仓
MyCash = 1000000 #现金
Start_Cash= 1000000
HighValue = MyCash #最高市值
Withdraw = 0 #最大回撤
HoldRank = hold_num #排名多少之后卖出
HoldNum = hold_num #持债支数

def bonds(beginDate=u"20170101",endDate=u"20201215",EB_ENABLE=False):
code_set = set()
df = DataAPI.MktConsBondPremiumGet(SecID=u"",
tickerBond=u"",
beginDate=beginDate,
endDate=endDate,
field=u"",
pandas="1")

cb_df = df.tickerBond.str.startswith(('12', '11'))
df = df[cb_df]
cb_df = df.tickerBond.str.startswith('117')
df = df[~cb_df]
if not EB_ENABLE:
eb = df.secShortNameBond.str.match('\d\d.*?E[123B]') # TODO 判断EB是否过滤
df = df[~eb]

ticker_list =
for _, row in df[['tickerBond', 'secShortNameBond', 'tickerEqu']].iterrows():
if row['tickerBond'] not in code_set:
ticker_list.append((row['tickerBond'], row['secShortNameBond'], row['tickerEqu']))
code_set.add(row['tickerBond'])
return list(code_set)


def handle_data(context):
global MyPosition, HighValue, MyCash, Withdraw, HoldRank, HoldNum,Start_Cash

today_date = context.now.strftime('%Y%m%d')

#每天重新计算双低排名
ticker_list=bonds(today_date,today_date)
data = DataAPI.MktConsBondPerfGet(beginDate=today_date,endDate=today_date,secID='',tickerBond=ticker_list,
tickerEqu=u"",field=u"",pandas="1")
data['secID']=data['tickerBond']
data.set_index('secID',inplace=True)
data['DoubleLow'] = data['closePriceBond'] + data['bondPremRatio']
data = data.sort_values(by="DoubleLow" , ascending=True)
PosValue = MyCash

#抛出不在持有排名HoldRank的
for stock in MyPosition.keys():
try:
CurPrice = data.loc[stock]['closePriceBond']
except:
last_date = (context.now + datetime.timedelta(days=-7)).strftime('%Y%m%d')
CurPrice=get_last_price(stock,last_date,today_date)

PosValue += MyPosition[stock] * CurPrice * 10 #计算当前市值

if stock not in data.index[:HoldRank]:
# 省略若干

log.info('{} 卖出{},{},价格:{}'.format(today_date,stock,name,CurPrice))


if PosValue > HighValue:HighValue = PosValue
if (HighValue - PosValue) / HighValue > Withdraw:Withdraw = (HighValue - PosValue) / HighValue

#买入排在HoldRank内的,总持有数量HoldNum
min_hold = min(HoldRank,len(data.index))
for i in range(min_hold):
if len(MyPosition) >= HoldNum:break
if data.index[i] not in MyPosition.keys():
# 省略若干
log.info('{} 买入{}, {}, 价格{}, 溢价率{}'.format(today_date,data.index[i],name,price,cb_ration))

ratio = (PosValue-Start_Cash)/Start_Cash*100
log.info(today_date + ': 最高市值 ' + str(HighValue) + ' , 当前市值 ' + str(PosValue) + '收益率 : '
+str(ratio)+'% , 最大回撤 ' + str(round(Withdraw*100,2))+'%') [/i][/i]

[i]欢迎讨论探索,星球里面有更多的完整策略与代码,回测数据,结论资源。
 
[/i] 收起阅读 »

QMT无法下载python库

QMT
 
 点击打开大图

因为一直有很多朋友和我反馈,QMT经常下载python库失败。 我自己也试了下。的确,这个软件经常抽风,软件问题,实在没有办法。
券商软件做的这么垃圾的,也是第一次见。 换了谁也不想用,老是卡在这种设置问题,然后客服也找不到,也是挺郁闷的。
暂时不确定是软件本身的问题,还是券商自己的问题。
 
##### 后续更新:
券商反馈,在开盘期间做了限流,导致下载速度极慢。 在晚上的时间段,下载速度很快,一下子就下载好了。
几台服务器同时下好了。

 
继续阅读 »
 
 点击打开大图

因为一直有很多朋友和我反馈,QMT经常下载python库失败。 我自己也试了下。的确,这个软件经常抽风,软件问题,实在没有办法。
券商软件做的这么垃圾的,也是第一次见。 换了谁也不想用,老是卡在这种设置问题,然后客服也找不到,也是挺郁闷的。
暂时不确定是软件本身的问题,还是券商自己的问题。
 
##### 后续更新:
券商反馈,在开盘期间做了限流,导致下载速度极慢。 在晚上的时间段,下载速度很快,一下子就下载好了。
几台服务器同时下好了。

  收起阅读 »

30天学会Golang

适合有一定的编程基础的同学学习。
附github目录图以及github地址
 
https://github.com/Rockyzsu/GolangLearning
 



 同时欢迎关注公众号: 30天尝试新事情

 
 
继续阅读 »
适合有一定的编程基础的同学学习。
附github目录图以及github地址
 
https://github.com/Rockyzsu/GolangLearning
 



 同时欢迎关注公众号: 30天尝试新事情

 
  收起阅读 »

券商的盘后理财产品 踩坑记

建议大家都看看交割单
 
比如这个银河证券的盘后 财富星 理财产品
实际是一个盘后自动逆回购。本身收益率就低下,估计年化是2%-3%不到。
 
结果后面还有更坑的,是它的手续费。万0.3
 

 
1万的收益,收取的手续费是0.3元(其他的0.9,1元的是因为周4算3天的逆回购)
等同于你的收益30%左右还要被券商吸走。
不过这个应该写在开通协议的合同里面,只怪自己没有去看。 不过大部分人应该都不会去看的。券商就是要的这种效果。
 
 
继续阅读 »
建议大家都看看交割单
 
比如这个银河证券的盘后 财富星 理财产品
实际是一个盘后自动逆回购。本身收益率就低下,估计年化是2%-3%不到。
 
结果后面还有更坑的,是它的手续费。万0.3
 

 
1万的收益,收取的手续费是0.3元(其他的0.9,1元的是因为周4算3天的逆回购)
等同于你的收益30%左右还要被券商吸走。
不过这个应该写在开通协议的合同里面,只怪自己没有去看。 不过大部分人应该都不会去看的。券商就是要的这种效果。
 
  收起阅读 »

证券app直接开户的费率为什么那么高

要开低佣就必须注意以下几点:

1.不能直接上APP开户,否则会被随机分配营业部,然后就百分之一万只能开到默认的万3佣金。

2.低佣必须用特殊的渠道才能开到。

你要是认识一些网上的大V或者券商朋友,那就好办了,有他们的渠道的话,就可以开到万一的超低佣金。

所以说关键在于,怎么才能找到低佣的渠道呢?

找到渠道也不难,就像网上千奇百怪的优惠券,虽然不会轻易被发现,但也总有人找得到一样;就算你实在找不到,想想有没有谁是开了的,问一问也一定能得到答案。



备注:开户
否则不通过
 
继续阅读 »
要开低佣就必须注意以下几点:

1.不能直接上APP开户,否则会被随机分配营业部,然后就百分之一万只能开到默认的万3佣金。

2.低佣必须用特殊的渠道才能开到。

你要是认识一些网上的大V或者券商朋友,那就好办了,有他们的渠道的话,就可以开到万一的超低佣金。

所以说关键在于,怎么才能找到低佣的渠道呢?

找到渠道也不难,就像网上千奇百怪的优惠券,虽然不会轻易被发现,但也总有人找得到一样;就算你实在找不到,想想有没有谁是开了的,问一问也一定能得到答案。



备注:开户
否则不通过
  收起阅读 »

今年预估相关的依赖港美股打新大陆券商收益大幅下跌

1. 新人不入场
 
2. 场内的人就想往外跑。
 
3. 年底最后一个月,一些港股新股拼命发,不少是二婚股,像网易云音乐,微博这种。可能也是券商有压力,有这个发新股的需求,冷清的时候IPO上市费用相对会比热门是要低吧。排队也相对没有那么拥挤。
 
4. 富途,老虎,雪盈等可能都不好过。
 
 
继续阅读 »
1. 新人不入场
 
2. 场内的人就想往外跑。
 
3. 年底最后一个月,一些港股新股拼命发,不少是二婚股,像网易云音乐,微博这种。可能也是券商有压力,有这个发新股的需求,冷清的时候IPO上市费用相对会比热门是要低吧。排队也相对没有那么拥挤。
 
4. 富途,老虎,雪盈等可能都不好过。
 
  收起阅读 »

搜狗拼音居然还会请求本地的web 80端口?要干嘛呢

在本地的电脑做golang的Gin开发,部署了一个80端口的web接口,然后就看到搜狗拼音的请求进来了。
 
不知道它实际是做什么用的。当时,这个绝对不正常,一个输入法软件,扫描我本地文件就算了。 居然还扫描我的本地web端口,如果开启了某个端口,你居然还会自动请求我?
 

 
并且,这个数据并不是外网来的。因为我这是内网的机子,并没有和外网联通,关键我也是一个路由器连着,外网也根本进不来。
 
好了,卸载了。
继续阅读 »
在本地的电脑做golang的Gin开发,部署了一个80端口的web接口,然后就看到搜狗拼音的请求进来了。
 
不知道它实际是做什么用的。当时,这个绝对不正常,一个输入法软件,扫描我本地文件就算了。 居然还扫描我的本地web端口,如果开启了某个端口,你居然还会自动请求我?
 

 
并且,这个数据并不是外网来的。因为我这是内网的机子,并没有和外网联通,关键我也是一个路由器连着,外网也根本进不来。
 
好了,卸载了。 收起阅读 »

Goland 配置vim vimrc文件 附配置文件

vim
百度出来的很多文章都是golang配置vim的。
 
只好自己写一个简单的教程来纠正下。
 
在Goland编辑器下,使用vim插件,可以在Goland 这个IDE上运行vim编辑器操作。 

 
很多的vim操作用的是k-vim大神的配置文件,所以这里需要修改Goland的默认vim配置文件。
 
Goland的vimrc文件为 .ideavimrc ,位于C:\Users\你的用户名下面。
 
如果没有就新建一个,需要在gitbash下新建,不然windows系统是不能建一个 . 开头的文件的。
 
或者把k-vim的配置文件拷贝过滤,修改下名字,改为 .ideavimrc 就可以了。
 
当然,这个k-vim的一些配置需要做一些修改。因为这个是Linux下运行的shell的,有一些插件或者主题是不使用与Goland的,把不适用的注释掉即可。
 

这里我也提供一个修改后的k-vim版本的.ideavimrc,下载后拷贝到C:\Users\用户名 下就可以了。
 
记得重启下Goland。
 
关注公众号后,后台回复: vim 即可
 

 
继续阅读 »
百度出来的很多文章都是golang配置vim的。
 
只好自己写一个简单的教程来纠正下。
 
在Goland编辑器下,使用vim插件,可以在Goland 这个IDE上运行vim编辑器操作。 

 
很多的vim操作用的是k-vim大神的配置文件,所以这里需要修改Goland的默认vim配置文件。
 
Goland的vimrc文件为 .ideavimrc ,位于C:\Users\你的用户名下面。
 
如果没有就新建一个,需要在gitbash下新建,不然windows系统是不能建一个 . 开头的文件的。
 
或者把k-vim的配置文件拷贝过滤,修改下名字,改为 .ideavimrc 就可以了。
 
当然,这个k-vim的一些配置需要做一些修改。因为这个是Linux下运行的shell的,有一些插件或者主题是不使用与Goland的,把不适用的注释掉即可。
 

这里我也提供一个修改后的k-vim版本的.ideavimrc,下载后拷贝到C:\Users\用户名 下就可以了。
 
记得重启下Goland。
 
关注公众号后,后台回复: vim 即可
 

  收起阅读 »

gitee pages静态页面的缓存时间太久了

一篇文章删了,半天后打开 xxxx.gitee.io, 居然还在。
在仓库repo中,文件是已经不见了的。
 
看到官网的文档说,这个max-age值,设置的为24小时 -.-!
 
继续阅读 »
一篇文章删了,半天后打开 xxxx.gitee.io, 居然还在。
在仓库repo中,文件是已经不见了的。
 
看到官网的文档说,这个max-age值,设置的为24小时 -.-!
 
收起阅读 »

hexo部署到gitee 无法更改next主题的语言为中文

一切就绪,把文章推送到服务器后,打开xxx.gitee.io
 

 
 
安装网上的教程,改了_config.yml 的language为zh-CN,
清空缓存,hexo clean
重新部署上传
hexo g
hexo s
hexo g
 
然后在本地是正常显示中文的。 然后切换了其他浏览器,清空缓存,发现也是一样的。
 
个人觉得是网络DNS缓存和gitee的缓存机制有关。
所以等过了一段时间再看看效果。
顺便更新了一篇新文章上去,而新文章同样没有显示。
果然,是gitee的缓存机制的问题。
 
只能等缓存时间过后才能再去预览了。
继续阅读 »
一切就绪,把文章推送到服务器后,打开xxx.gitee.io
 

 
 
安装网上的教程,改了_config.yml 的language为zh-CN,
清空缓存,hexo clean
重新部署上传
hexo g
hexo s
hexo g
 
然后在本地是正常显示中文的。 然后切换了其他浏览器,清空缓存,发现也是一样的。
 
个人觉得是网络DNS缓存和gitee的缓存机制有关。
所以等过了一段时间再看看效果。
顺便更新了一篇新文章上去,而新文章同样没有显示。
果然,是gitee的缓存机制的问题。
 
只能等缓存时间过后才能再去预览了。 收起阅读 »

【手把手教程】空投币怎么领取,以ShiBZilla为例

空投币,简单理解为白送给你,不花钱。
记住,不要花钱,要的是白嫖,只要要你花一分钱,果断把网页关闭,然后打开手机,打几盘王者荣耀。
 既然是送钱,那么会有什么风险吗? 有,就是最后没有送钱成功,空投的币种发行失败,也就你没有撸到羊毛,你损失的时间成本,当然如果你时间不值钱,就没有什么损失的啦。
 
好。准备的东西。
 
1. 钱包地址:
就是一串数字。
钱包地址类似于你的家的地址:

 
别人给你送钱了,你得有个钱包来接呀。
 
钱包获取也很简单,找个冷钱包,自动生成。冷钱包只是个皮包,即使冷钱包丢了也没关系的。
关键不要丢的是助记词。 


助记词就是私钥,你有助记词,管它倒闭不倒闭,跟你没有任何关系。

钱包公司只是给你提供服务,私钥在,财产永远是你的。


 
助记词就是给你十来二十个单词,你记住每个单词的顺序。你用这些单词的顺序就可以完整的恢复你的钱包,在其他钱包也可以。
 
所以一定要保存好你的助记词。 最好用纸抄下来。
 
冷钱包随意找一个能用的即可。比如我用的是比特派,或者 IMtoken。到应用市场下载后,在手机里面打开,找到对应的币种。
这里我需要拿出 BSC钱包的地址就可以。 一个钱包里面可以自动生成N个币种的钱包地址。

 
这里点进去BSC钱包。
里面的收款地址就是你要提供给SHIBZILLA币官方的。

 
点进去后就是见到你的地址

 
第一步拿到自己的钱包地址了。
 
第二部。
找到有空投币的官网地址:
http://shibzillacoin.net/?ShiBZilla=B09D2 
比如我上面这个,后面带了一个推广码,很明显,这是我的一个推广链接。 我推广一个人领取空投币,我自己也可以得到一部分的空投币奖励。
 


复制并分享你的链接,你和被邀请人同时奖励 10亿枚 ShiBZilla,每人最多可邀请 40人,奖励最高可获得 400亿枚 ShiBZilla。


 
所以为了感谢我写的这篇科普文章,你可以用的链接去领取空投币ShiBZilla。
虽然我也不知道这个币市干嘛用的,只是长得很像shibi。
 
哦,对了,当时shibi也是这样子空投的,如果当时没有看上的人,后面就得几万块几万块的用真金白银买回来了。
本来白送的呢。
 
 
 
ShiBZilla币发空投,留一个BSC地址发10亿币,最后一天时间:
http://shibzillacoin.net/?ShiBZilla=B09D2
白赚的币大家可以去领一领,说不定上市值几百块钱。

 
继续阅读 »
空投币,简单理解为白送给你,不花钱。
记住,不要花钱,要的是白嫖,只要要你花一分钱,果断把网页关闭,然后打开手机,打几盘王者荣耀。
 既然是送钱,那么会有什么风险吗? 有,就是最后没有送钱成功,空投的币种发行失败,也就你没有撸到羊毛,你损失的时间成本,当然如果你时间不值钱,就没有什么损失的啦。
 
好。准备的东西。
 
1. 钱包地址:
就是一串数字。
钱包地址类似于你的家的地址:

 
别人给你送钱了,你得有个钱包来接呀。
 
钱包获取也很简单,找个冷钱包,自动生成。冷钱包只是个皮包,即使冷钱包丢了也没关系的。
关键不要丢的是助记词。 


助记词就是私钥,你有助记词,管它倒闭不倒闭,跟你没有任何关系。

钱包公司只是给你提供服务,私钥在,财产永远是你的。


 
助记词就是给你十来二十个单词,你记住每个单词的顺序。你用这些单词的顺序就可以完整的恢复你的钱包,在其他钱包也可以。
 
所以一定要保存好你的助记词。 最好用纸抄下来。
 
冷钱包随意找一个能用的即可。比如我用的是比特派,或者 IMtoken。到应用市场下载后,在手机里面打开,找到对应的币种。
这里我需要拿出 BSC钱包的地址就可以。 一个钱包里面可以自动生成N个币种的钱包地址。

 
这里点进去BSC钱包。
里面的收款地址就是你要提供给SHIBZILLA币官方的。

 
点进去后就是见到你的地址

 
第一步拿到自己的钱包地址了。
 
第二部。
找到有空投币的官网地址:
http://shibzillacoin.net/?ShiBZilla=B09D2 
比如我上面这个,后面带了一个推广码,很明显,这是我的一个推广链接。 我推广一个人领取空投币,我自己也可以得到一部分的空投币奖励。
 


复制并分享你的链接,你和被邀请人同时奖励 10亿枚 ShiBZilla,每人最多可邀请 40人,奖励最高可获得 400亿枚 ShiBZilla。


 
所以为了感谢我写的这篇科普文章,你可以用的链接去领取空投币ShiBZilla。
虽然我也不知道这个币市干嘛用的,只是长得很像shibi。
 
哦,对了,当时shibi也是这样子空投的,如果当时没有看上的人,后面就得几万块几万块的用真金白银买回来了。
本来白送的呢。
 
 
 
ShiBZilla币发空投,留一个BSC地址发10亿币,最后一天时间:
http://shibzillacoin.net/?ShiBZilla=B09D2
白赚的币大家可以去领一领,说不定上市值几百块钱。

  收起阅读 »

imgtu为什么上传二维码的图片会被删除 甚至账户被封?

 
为何二维码会被删除?

因为二维码很容易被用于黑产项目,而且无法直接识别,所以禁止上传含有二维码的相关图片.
 
为何二维码会被删除?

因为二维码很容易被用于黑产项目,而且无法直接识别,所以禁止上传含有二维码的相关图片.

截图软件sharex 上传到七牛图床 设置上传文件名与本地名一样

配置sharex上传文件到七牛图床的文章,网上很多,这里略过。

不过网上的文章使用的上传文件名是按照当时的日期设定的。

什么意思呢?

比如我用sharex截图后,截图的文件叫 hello.png ,如果用sharex上传到七牛后,它的文件名就变成了 202111282121.png,

全路径就是 http://xxx.example.com/202111282121.png.

这里假设你使用的上传的配置key如下:%y%mo%d%h%mi%s.png这样会造成一个麻烦。
 
比如的截图文件名是20211128210910.png, 21点09分10秒,然后我过了1秒钟后才开始上传,我一般手动上传,因为不希望每一个截图都上传,这样会导致部分个人隐私数据不自觉传出去,可能泄露敏感信息。

所以过了1秒钟后的上传到服务器的文件名为20211128210911.png , 21点09分11秒。

这个造成本地文件名与远程文件名不一样。如果后续你想在本地找回原来文件的副本,你根据服务器的URL地址,在本地是找不到的,只能先把文件名的日期时间精确到分钟,然后秒位使用* 星号匹配符来查找。 这样多了一重手续。

或者我有本地的截图的文件名,我想直接构造成服务器上的文件名,这是我就不能直接 http://xxxx.example/本地文件名.png 这样来构造了。 因为远程服务器的文件名和本地不一样。

网上找一一圈都没找到对应的办法,然后到官网找了一番,终于找到解决办法,很简单。

把key的值设置为  $filename$
即可。

 
markdown
继续阅读 »
配置sharex上传文件到七牛图床的文章,网上很多,这里略过。

不过网上的文章使用的上传文件名是按照当时的日期设定的。

什么意思呢?

比如我用sharex截图后,截图的文件叫 hello.png ,如果用sharex上传到七牛后,它的文件名就变成了 202111282121.png,

全路径就是 http://xxx.example.com/202111282121.png.

这里假设你使用的上传的配置key如下:%y%mo%d%h%mi%s.png这样会造成一个麻烦。
 
比如的截图文件名是20211128210910.png, 21点09分10秒,然后我过了1秒钟后才开始上传,我一般手动上传,因为不希望每一个截图都上传,这样会导致部分个人隐私数据不自觉传出去,可能泄露敏感信息。

所以过了1秒钟后的上传到服务器的文件名为20211128210911.png , 21点09分11秒。

这个造成本地文件名与远程文件名不一样。如果后续你想在本地找回原来文件的副本,你根据服务器的URL地址,在本地是找不到的,只能先把文件名的日期时间精确到分钟,然后秒位使用* 星号匹配符来查找。 这样多了一重手续。

或者我有本地的截图的文件名,我想直接构造成服务器上的文件名,这是我就不能直接 http://xxxx.example/本地文件名.png 这样来构造了。 因为远程服务器的文件名和本地不一样。

网上找一一圈都没找到对应的办法,然后到官网找了一番,终于找到解决办法,很简单。

把key的值设置为  $filename$
即可。

 
markdown 收起阅读 »

hexo使用七牛图床 放到github pages上无法显示

### 2022-05-30 更新 ######### 
问题的根源在于 谷歌浏览器 , 在https的网站里面放http格式的图片,那么http的链接会被自动转为https,从而导致找不到链接,会显示叉叉
 
 效果如下图显示:
 
 
在本地运行服务器:
hexo s
启动本地的:http://localhost:4000
 
得到的网页是正常的:
 

 
  
 
目前调试中,后续把结果更新下。
 
###更新##### 
晕死,刚写完文章就找到原因。


hexo 网站图床图片不显示

最近搭建了一个七牛云图床,外链不用 HTTPS 的话是免费的,搭配 PicGo 和 Typora 使用,在 Markdown 中插入图片非常方便,只需要复制图片,粘贴到 Typora 中,就可以自动调用 PicGo 上传并且获取链接了,但是在使用中遇到一个问题,本站在本地运行 hexo server 的情况下访问,所有图片显示正常,但是上传到服务器之后再访问,就会出现图片不显示的情况,复制图片 URL 访问也可以访问到。最终在 hexo 的 github 页面问到了可能是 Mixed Content 的问题。

具体来说,在调试工具中发现,显示存在 HTTP 和 HTTPS 资源混用的情况,导致不会读取资源。先后尝试了在 hexo\themes\...\layout\_partial\head.ejs 中添加

1 2
<meta name="referrer" content="no-referrer" /> <meta http-equiv="Content-Security-Policy" ontent="upgrade-insecure-requests">

都不起作用,而升级七牛云为 HTTPS 流量又要收费,遂干脆把网站改回到了 HTTP,因为是静态页面其实也没什么关系,而且每 3 个月重新注册一个证书有时候懒的搞,反而导致页面不能正常访问。


继续阅读 »
### 2022-05-30 更新 ######### 
问题的根源在于 谷歌浏览器 , 在https的网站里面放http格式的图片,那么http的链接会被自动转为https,从而导致找不到链接,会显示叉叉
 
 效果如下图显示:
 
 
在本地运行服务器:
hexo s
启动本地的:http://localhost:4000
 
得到的网页是正常的:
 

 
  
 
目前调试中,后续把结果更新下。
 
###更新##### 
晕死,刚写完文章就找到原因。


hexo 网站图床图片不显示

最近搭建了一个七牛云图床,外链不用 HTTPS 的话是免费的,搭配 PicGo 和 Typora 使用,在 Markdown 中插入图片非常方便,只需要复制图片,粘贴到 Typora 中,就可以自动调用 PicGo 上传并且获取链接了,但是在使用中遇到一个问题,本站在本地运行 hexo server 的情况下访问,所有图片显示正常,但是上传到服务器之后再访问,就会出现图片不显示的情况,复制图片 URL 访问也可以访问到。最终在 hexo 的 github 页面问到了可能是 Mixed Content 的问题。

具体来说,在调试工具中发现,显示存在 HTTP 和 HTTPS 资源混用的情况,导致不会读取资源。先后尝试了在 hexo\themes\...\layout\_partial\head.ejs 中添加

1 2
<meta name="referrer" content="no-referrer" /> <meta http-equiv="Content-Security-Policy" ontent="upgrade-insecure-requests">

都不起作用,而升级七牛云为 HTTPS 流量又要收费,遂干脆把网站改回到了 HTTP,因为是静态页面其实也没什么关系,而且每 3 个月重新注册一个证书有时候懒的搞,反而导致页面不能正常访问。


收起阅读 »

猫池c3pool无法访问,只能用梯子

在腾讯云上正常运行的挖矿的程序不受影响。
 
如果现在停掉,然后重新运行挖矿程序的话,就无法连上猫池了。
 * CPU          AMD EPYC 7K62 48-Core Processor (1) 64-bit AES VM
L2:8.0 MB L3:16.0 MB 2C/2T NUMA:1
* MEMORY 3.6/3.7 GB (96%)
DIMM 0: 4 GB RAM @ 0 MHz DIMM 0
* MOTHERBOARD Tencent Cloud - CVM
* DONATE 0%
* ASSEMBLY auto:ryzen
* POOL #1 mine.c3pool.com:17777 algo auto
* COMMANDS 'h' hashrate, 'p' pause, 'r' resume, 's' results, 'c' connection
[2021-11-28 00:08:00.267] net mine.c3pool.com:17777 connect error: "operation canceled"
[2021-11-28 00:08:25.292] net mine.c3pool.com:17777 connect error: "operation canceled"
[2021-11-28 00:08:50.317] net mine.c3pool.com:17777 connect error: "operation canceled"

看了还是得用个梯子了。目前篮灯只支持在GUI模式下,在centos服务器的ssh无法启动。 哎,早知道选一台windows的服务器。
腾讯云 centos 门罗币 XMR 挖矿 教程 附代码
并且,这不是因为腾讯云屏蔽的原因,在本地自己电脑上也是无法挖,除非挂上梯子。
继续阅读 »
在腾讯云上正常运行的挖矿的程序不受影响。
 
如果现在停掉,然后重新运行挖矿程序的话,就无法连上猫池了。
 * CPU          AMD EPYC 7K62 48-Core Processor (1) 64-bit AES VM
L2:8.0 MB L3:16.0 MB 2C/2T NUMA:1
* MEMORY 3.6/3.7 GB (96%)
DIMM 0: 4 GB RAM @ 0 MHz DIMM 0
* MOTHERBOARD Tencent Cloud - CVM
* DONATE 0%
* ASSEMBLY auto:ryzen
* POOL #1 mine.c3pool.com:17777 algo auto
* COMMANDS 'h' hashrate, 'p' pause, 'r' resume, 's' results, 'c' connection
[2021-11-28 00:08:00.267] net mine.c3pool.com:17777 connect error: "operation canceled"
[2021-11-28 00:08:25.292] net mine.c3pool.com:17777 connect error: "operation canceled"
[2021-11-28 00:08:50.317] net mine.c3pool.com:17777 connect error: "operation canceled"

看了还是得用个梯子了。目前篮灯只支持在GUI模式下,在centos服务器的ssh无法启动。 哎,早知道选一台windows的服务器。
腾讯云 centos 门罗币 XMR 挖矿 教程 附代码
并且,这不是因为腾讯云屏蔽的原因,在本地自己电脑上也是无法挖,除非挂上梯子。 收起阅读 »

docker安装v2ray 图文配置教程

  1.  安装docker镜像:docker pull v2fly/v2fly-core , 这里懒得用bash安装逐个脚本了,免得出现一堆依赖关系,直接docker一行命令搞定。


  1.  

 
待续。
 
 
继续阅读 »
  1.  安装docker镜像:docker pull v2fly/v2fly-core , 这里懒得用bash安装逐个脚本了,免得出现一堆依赖关系,直接docker一行命令搞定。


  1.  

 
待续。
 
  收起阅读 »

​炒美股需要知道的3个工具

炒美股需要知道的3个工具

- tradingview.com K线王
- finviz.com 找股器、个股信息
- koyfin.com  免费的 Bloomberg
炒美股需要知道的3个工具

- tradingview.com K线王
- finviz.com 找股器、个股信息
- koyfin.com  免费的 Bloomberg

写作内容草稿

可转债正股首板 对应的转债涨幅。
可转债正股首板 对应的转债涨幅。

golang 的sync.Cond Wait 为什么要先Lock之后才能Wait ?

正确代码:
   func clickEvent(con *sync.Cond, fn HandleFun, id int) {        
fmt.Println("waiting on broadcast")

fmt.Printf("Lock %d\n", id)
con.L.Lock() //需要现先lock
con.Wait()
fn()
defer con.L.Unlock()
}

如果直接Wait,会报错,死锁
 
然后看了看源码:

Screenshot_2021-11-24_00-08-04.png

 
原来Wait函数里面,会先Unlock一次,再去跑runtime通知。
也就是你不Lock一下,进入到Wait函数就会一直锁住。
 
 
继续阅读 »
正确代码:
   func clickEvent(con *sync.Cond, fn HandleFun, id int) {        
fmt.Println("waiting on broadcast")

fmt.Printf("Lock %d\n", id)
con.L.Lock() //需要现先lock
con.Wait()
fn()
defer con.L.Unlock()
}

如果直接Wait,会报错,死锁
 
然后看了看源码:

Screenshot_2021-11-24_00-08-04.png

 
原来Wait函数里面,会先Unlock一次,再去跑runtime通知。
也就是你不Lock一下,进入到Wait函数就会一直锁住。
 
  收起阅读 »

cannot install, GOBIN must be an absolute path

原因是因为你的系统环境变量用的相对路径 %GOPATH%/bin
 
把GOPATH替换为完整的路径,比如C:\User\Admin\go\bin 即可解决问题。
原创文章,转载请注明出处: 
http://30daydo.com/article/44290
 
继续阅读 »
原因是因为你的系统环境变量用的相对路径 %GOPATH%/bin
 
把GOPATH替换为完整的路径,比如C:\User\Admin\go\bin 即可解决问题。
原创文章,转载请注明出处: 
http://30daydo.com/article/44290
  收起阅读 »

gin can not run reasons: c.engine.AppEngine undefined

gin运行报错:
# github.com/gin-gonic/gin
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\context.go:735:13: c.engine.AppEngine undefined (type *Engine ha
s no field or method AppEngine)
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\gin.go:154:3: unknown field 'UseRawPath' in struct literal of ty
pe Engine
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\gin.go:156:3: unknown field 'UnescapePathValues' in struct liter
al of type Engine
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\gin.go:508:11: engine.UseRawPath undefined (type *Engine has no
field or method UseRawPath)
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\gin.go:510:20: engine.UnescapePathValues undefined (type *Engine
has no field or method UnescapePathValues)

源码:
package main

import (
"net/http"

"github.com/gin-gonic/gin"
)

func main() {
// 1.创建路由
r := gin.Default()
// 2.绑定路由规则,执行的函数
// gin.Context,封装了request和response
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "hello World!")
})
// 3.监听端口,默认在8080
// Run("里面不指定端口号默认为8080")
r.Run(":8000")
}

版本兼容性问题,降级到 gin@1.7.2 即可解决问题。
当前最新的版本为1.7.5 
 
降级方法:

go get github.com/gin-gonic/gin@v1.7.2

 
原创文章,转载请注明出处:
http://30daydo.com/article/44289
 
继续阅读 »
gin运行报错:
# github.com/gin-gonic/gin
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\context.go:735:13: c.engine.AppEngine undefined (type *Engine ha
s no field or method AppEngine)
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\gin.go:154:3: unknown field 'UseRawPath' in struct literal of ty
pe Engine
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\gin.go:156:3: unknown field 'UnescapePathValues' in struct liter
al of type Engine
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\gin.go:508:11: engine.UseRawPath undefined (type *Engine has no
field or method UseRawPath)
C:\Users\xda\go\pkg\mod\github.com\gin-gonic\gin@v1.7.5\gin.go:510:20: engine.UnescapePathValues undefined (type *Engine
has no field or method UnescapePathValues)

源码:
package main

import (
"net/http"

"github.com/gin-gonic/gin"
)

func main() {
// 1.创建路由
r := gin.Default()
// 2.绑定路由规则,执行的函数
// gin.Context,封装了request和response
r.GET("/", func(c *gin.Context) {
c.String(http.StatusOK, "hello World!")
})
// 3.监听端口,默认在8080
// Run("里面不指定端口号默认为8080")
r.Run(":8000")
}

版本兼容性问题,降级到 gin@1.7.2 即可解决问题。
当前最新的版本为1.7.5 
 
降级方法:

go get github.com/gin-gonic/gin@v1.7.2

 
原创文章,转载请注明出处:
http://30daydo.com/article/44289
  收起阅读 »

golang文件操作之 移动文件

golang的内库os里面并没有Move的函数,如果要移动文件可以使用os.Rename
 
package main

import (
"log"
"os"
)

func main() {
oldLocation := "/var/www/html/test.txt"
newLocation := "/var/www/html/src/test.txt"
err := os.Rename(oldLocation, newLocation)
if err != nil {
log.Fatal(err)
}
}

原创文章,转载请注明出处:
http://30daydo.com/article/44288
 
继续阅读 »
golang的内库os里面并没有Move的函数,如果要移动文件可以使用os.Rename
 
package main

import (
"log"
"os"
)

func main() {
oldLocation := "/var/www/html/test.txt"
newLocation := "/var/www/html/src/test.txt"
err := os.Rename(oldLocation, newLocation)
if err != nil {
log.Fatal(err)
}
}

原创文章,转载请注明出处:
http://30daydo.com/article/44288
  收起阅读 »

2021-11-20 观点

1. 主要最近可转债 一直在涨,每次狂暴都会有人买单
 
2. 今年经济不是很景气,年末可能会有上市公司出现暴雷,还不起前,首先波及的是债券。 如果不及预期,证券市场一般以跌为敬。
 
3。 涌入了一批新人, 不看溢价率,看到正股涨,一股脑的往转债里面冲。
 
1. 主要最近可转债 一直在涨,每次狂暴都会有人买单
 
2. 今年经济不是很景气,年末可能会有上市公司出现暴雷,还不起前,首先波及的是债券。 如果不及预期,证券市场一般以跌为敬。
 
3。 涌入了一批新人, 不看溢价率,看到正股涨,一股脑的往转债里面冲。
 

腾讯云 centos 门罗币 XMR 挖矿 教程 附代码

第一步:准备工作(需要以下几样工具)

一个门罗币钱包

一台闲置的VPS(本教程使用的VPS为腾讯云轻量2核4G6M80G小鸡,操作系统为centos7) 70元一年,别买贵了
走链接买才有优惠,双十一活动结束后,但活动还在继续:
 
https://curl.qcloud.com/eCqCAb4a

 

一个矿池(本次使用的是猫池:https://c3pool.com/cn/) 
(全球XMR矿池总览:https://miningpoolstats.stream/monero)

第二步:创建钱包(本次使用的钱包为mymonero钱包)

1.打开mymonero官网,点击Create new wallet(创建一个新钱包)



2.这里会提示注意事项,选中GOT IT,然后右上角Next进入下一步



3.保存好助记词(以后登录钱包需要用到,建议手抄),然后点击右上角的Next进入下一步



4.验证助记符,把第二步保存的助记词的前七位,按照图片中显示的顺序依次选中,然后点击右上角的确定(Confirm)



5.到这里,钱包就算创建完成了,点击钱包就能显示钱包地址和其它内容


第三步:设置挖矿

1.运行一键挖矿命令

代码如下:
curl -s -L http://download.c3pool.com/xmr ... er.sh | LC_ALL=en_US.UTF-8 bash -s 你的XMR地址

 
命令运行完毕,就自动开始挖了

2.限制CPU

默认情况下,挖矿程序是100%占用CPU的性能,所以需要对CPU的占用做一些限制。这一步没有具体的比例,根据不同厂商对CPU的限制来设置百分比,原则上腾讯云的轻量服务器可以满载运行,但是保险起见,我这里设置了单核90%。

(1). 安装CPULimit

CentOS:
yum install cpulimit
 
Debian/Ubuntu:
apt-get install cpulimit
 
如果没有包,也不能编译安装,可以安装EPEL源:
#安装EPEL源 ​ 
yum -y install epel-release ​ 
#重新创建本地仓库缓存 ​ 
yum clean all && yum makecache ​ 
#然后yum下就可以了 ​ 
yum install cpulimit
 
(2). 使用CPULimits

命令格式:
cpulimit -l 限制百分比 -p 进程号 ​ 
cpulimit -e 进程名 -l 限制百分比查找占用高的进程命令

查找挖矿进程,直接top命令即可查看。如下:

PID:14967(进程号)

COMMAND:xmrig(进程名)



这里双核占用180,单核已经被限制到了90%,如果你没限制过,这里肯定是满载运行。

安装Screen:

因为要时刻监控这个进程,所以你需要用到screen。
如果提示
screen: command not found 
命令不存在可以执行:

CentOS:yum install screen
 
Debian/Ubuntu:apt-get install screen
 
使用实例

输入以下命令执行CPU的限制:
screen -S xmrig #新建会话 ​ 
cpulimit -l 180 -p 14967 
#利用pid限制程序运行的cpu ​ 
cpulimit -e xmrig -l 180 
#利用进程名限制程序运行的cpu之后,按下CTRL+A+D 退出程序。

注意:只限制CPU的一个核心占用设置为90%,如果是两个核心你需要限制到180%

效果

过几分钟,CPU使用就会限制到90左右。这时候可以查看腾讯云的后台管理



(3).其它查看进程号的方法

查看具体进程的命令:ps aux|grep xmrig第一个红框标注的就是我们要找的,可以和top命令对比下



然后,用前面的命令限制即可。

至此,你的VPS就能在后台自由的挖矿了,哪怕关闭SSH都不受影响。

第四步:看看挖矿的收益情况

算力和收益情况直接在猫池的网页上查看,猫池是机枪池,并不是指定就去挖xmr了,他可能在挖山寨币,网页上会显示换算到xmr的算力,因此他的算力可能比直接挖xmr要高很多很多。 腾讯云轻量Intel 2h4g 算力1.2kh/s左右,日收益0.5RMB左右,AMD的机器算力应该更高。

1.输入你的XMR地址,回车,稍等片刻就能看到收益了。



2.收益效果



第五步:卸载脚本

既然有了挖矿的方法,如果不想挖了怎么办?
一键命令搞定:
curl -s -L http://download.c3pool.com/xmr ... er.sh | bash -s

 
最后,
祝大家挖矿愉快,财源滚滚!
继续阅读 »
第一步:准备工作(需要以下几样工具)

一个门罗币钱包

一台闲置的VPS(本教程使用的VPS为腾讯云轻量2核4G6M80G小鸡,操作系统为centos7) 70元一年,别买贵了
走链接买才有优惠,双十一活动结束后,但活动还在继续:
 
https://curl.qcloud.com/eCqCAb4a

 

一个矿池(本次使用的是猫池:https://c3pool.com/cn/) 
(全球XMR矿池总览:https://miningpoolstats.stream/monero)

第二步:创建钱包(本次使用的钱包为mymonero钱包)

1.打开mymonero官网,点击Create new wallet(创建一个新钱包)



2.这里会提示注意事项,选中GOT IT,然后右上角Next进入下一步



3.保存好助记词(以后登录钱包需要用到,建议手抄),然后点击右上角的Next进入下一步



4.验证助记符,把第二步保存的助记词的前七位,按照图片中显示的顺序依次选中,然后点击右上角的确定(Confirm)



5.到这里,钱包就算创建完成了,点击钱包就能显示钱包地址和其它内容


第三步:设置挖矿

1.运行一键挖矿命令

代码如下:
curl -s -L http://download.c3pool.com/xmr ... er.sh | LC_ALL=en_US.UTF-8 bash -s 你的XMR地址

 
命令运行完毕,就自动开始挖了

2.限制CPU

默认情况下,挖矿程序是100%占用CPU的性能,所以需要对CPU的占用做一些限制。这一步没有具体的比例,根据不同厂商对CPU的限制来设置百分比,原则上腾讯云的轻量服务器可以满载运行,但是保险起见,我这里设置了单核90%。

(1). 安装CPULimit

CentOS:
yum install cpulimit
 
Debian/Ubuntu:
apt-get install cpulimit
 
如果没有包,也不能编译安装,可以安装EPEL源:
#安装EPEL源 ​ 
yum -y install epel-release ​ 
#重新创建本地仓库缓存 ​ 
yum clean all && yum makecache ​ 
#然后yum下就可以了 ​ 
yum install cpulimit
 
(2). 使用CPULimits

命令格式:
cpulimit -l 限制百分比 -p 进程号 ​ 
cpulimit -e 进程名 -l 限制百分比查找占用高的进程命令

查找挖矿进程,直接top命令即可查看。如下:

PID:14967(进程号)

COMMAND:xmrig(进程名)



这里双核占用180,单核已经被限制到了90%,如果你没限制过,这里肯定是满载运行。

安装Screen:

因为要时刻监控这个进程,所以你需要用到screen。
如果提示
screen: command not found 
命令不存在可以执行:

CentOS:yum install screen
 
Debian/Ubuntu:apt-get install screen
 
使用实例

输入以下命令执行CPU的限制:
screen -S xmrig #新建会话 ​ 
cpulimit -l 180 -p 14967 
#利用pid限制程序运行的cpu ​ 
cpulimit -e xmrig -l 180 
#利用进程名限制程序运行的cpu之后,按下CTRL+A+D 退出程序。

注意:只限制CPU的一个核心占用设置为90%,如果是两个核心你需要限制到180%

效果

过几分钟,CPU使用就会限制到90左右。这时候可以查看腾讯云的后台管理



(3).其它查看进程号的方法

查看具体进程的命令:ps aux|grep xmrig第一个红框标注的就是我们要找的,可以和top命令对比下



然后,用前面的命令限制即可。

至此,你的VPS就能在后台自由的挖矿了,哪怕关闭SSH都不受影响。

第四步:看看挖矿的收益情况

算力和收益情况直接在猫池的网页上查看,猫池是机枪池,并不是指定就去挖xmr了,他可能在挖山寨币,网页上会显示换算到xmr的算力,因此他的算力可能比直接挖xmr要高很多很多。 腾讯云轻量Intel 2h4g 算力1.2kh/s左右,日收益0.5RMB左右,AMD的机器算力应该更高。

1.输入你的XMR地址,回车,稍等片刻就能看到收益了。



2.收益效果



第五步:卸载脚本

既然有了挖矿的方法,如果不想挖了怎么办?
一键命令搞定:
curl -s -L http://download.c3pool.com/xmr ... er.sh | bash -s

 
最后,
祝大家挖矿愉快,财源滚滚! 收起阅读 »

golang:为什么chan关闭了也无法接受到内容呢?

go代码如下:
   package main                                                                                                                        

import "fmt"

func main() {
ch := make(chan int)
ch <- 1
close(ch)
n, ok := <-ch
if !ok {
fmt.Println("Error")
}
fmt.Println(n)
var input string
fmt.Scanln(&input)
}
 
实际程序死锁。
 
有人问,chan close后不会可以被读取到了吗?
 
但是实际程序运行到:
ch <- 1
这里, 已经被阻塞,导致报错,无法接下来的close操作。
 
加入打印信息:
package main

import "fmt"

func main() {
ch := make(chan int)
fmt.Println("start")
ch <- 1
fmt.Println("next")
close(ch)
n, ok := <-ch
if !ok {
fmt.Println("Error")
}
fmt.Println(n)
var input string
fmt.Scanln(&input)
}

实际只打印到start, next那个已经不输出了。
:!go run channel_close.go                                                                                                               
start
fatal error: all goroutines are asleep - deadlock!

goroutine 1 [chan send]:
main.main()
/home/admin/git/GolangLearning/helloworld/channel/channel_close.go:8 +0xa8
exit status 2

shell returned 1

正确的修改:
package main

import "fmt"

func main() {
ch := make(chan int)
go func() {
fmt.Println("start")
ch <- 1
fmt.Println("next")
close(ch)
}()
n, ok := <-ch
if !ok {
fmt.Println("Error")
}
fmt.Println(n)
var input string
fmt.Scanln(&input)
}

 
创建了一个免费的Go知识星球社区,欢迎加入一起讨论吧


 
继续阅读 »
go代码如下:
   package main                                                                                                                        

import "fmt"

func main() {
ch := make(chan int)
ch <- 1
close(ch)
n, ok := <-ch
if !ok {
fmt.Println("Error")
}
fmt.Println(n)
var input string
fmt.Scanln(&input)
}
 
实际程序死锁。
 
有人问,chan close后不会可以被读取到了吗?
 
但是实际程序运行到:
ch <- 1
这里, 已经被阻塞,导致报错,无法接下来的close操作。
 
加入打印信息:
package main

import "fmt"

func main() {
ch := make(chan int)
fmt.Println("start")
ch <- 1
fmt.Println("next")
close(ch)
n, ok := <-ch
if !ok {
fmt.Println("Error")
}
fmt.Println(n)
var input string
fmt.Scanln(&input)
}

实际只打印到start, next那个已经不输出了。
:!go run channel_close.go                                                                                                               
start
fatal error: all goroutines are asleep - deadlock!

goroutine 1 [chan send]:
main.main()
/home/admin/git/GolangLearning/helloworld/channel/channel_close.go:8 +0xa8
exit status 2

shell returned 1

正确的修改:
package main

import "fmt"

func main() {
ch := make(chan int)
go func() {
fmt.Println("start")
ch <- 1
fmt.Println("next")
close(ch)
}()
n, ok := <-ch
if !ok {
fmt.Println("Error")
}
fmt.Println(n)
var input string
fmt.Scanln(&input)
}

 
创建了一个免费的Go知识星球社区,欢迎加入一起讨论吧


  收起阅读 »

鹏华全球高收益债 与 鹏华全球中短债 同一个基金的姐妹基金暴雷

看之前的报道:
2018年末鹏华全球高收益债持有人户数为25445户,比成立时增长了10倍 



购买过鹏华全球高收益债的基金账户数已超16.52万



投资者平均持仓鹏华全球高收益债302.21天



持仓鹏华全球高收益债的客户中,60岁以上的客户平均收益最高,姜还是老的辣



持有鹏华全球高收益债的客户账户平均资产为54140.93元



共有20413位客户定投过鹏华全球高收益债,平均每人定投15.72次,平均持仓554天,平均盈利3315.71元



鹏华全球高收益债的平均复购间隔时间仅为8.68天,复购率为69.43%



因“申购费率优惠”共为鹏华全球高收益债投资者节省了3318万元,最精明的个人客户共节省了118万元的申购费
 

持仓鹏华全球高收益债的客户中,60岁以上的客户平均收益最高,姜还是老的辣。

惨了,这些老年人的退休金就这样打水漂了哦。
 
买的地产债,暴雷,实属也无奈。
 
现在也可以抄一些低,最好分批,因为不知道后面会不会继续跌。
继续阅读 »
看之前的报道:
2018年末鹏华全球高收益债持有人户数为25445户,比成立时增长了10倍 



购买过鹏华全球高收益债的基金账户数已超16.52万



投资者平均持仓鹏华全球高收益债302.21天



持仓鹏华全球高收益债的客户中,60岁以上的客户平均收益最高,姜还是老的辣



持有鹏华全球高收益债的客户账户平均资产为54140.93元



共有20413位客户定投过鹏华全球高收益债,平均每人定投15.72次,平均持仓554天,平均盈利3315.71元



鹏华全球高收益债的平均复购间隔时间仅为8.68天,复购率为69.43%



因“申购费率优惠”共为鹏华全球高收益债投资者节省了3318万元,最精明的个人客户共节省了118万元的申购费
 

持仓鹏华全球高收益债的客户中,60岁以上的客户平均收益最高,姜还是老的辣。

惨了,这些老年人的退休金就这样打水漂了哦。
 
买的地产债,暴雷,实属也无奈。
 
现在也可以抄一些低,最好分批,因为不知道后面会不会继续跌。 收起阅读 »

腾讯云服务器 挖矿 XMR 门罗币 撸羊毛

在群里看到有人发的,腾讯云 2核4GB内存的云主机,3年的价格是198,平均一年下来,68元。
即使是平时正常使用,这个价位也是足够便宜的了。 正常这个配置,普通的云主机,一个月也要300左右。
  
https://curl.qcloud.com/eCqCAb4a​


 
所以看到这个广告后,果断入手了1台。
 
这个费用然后算下来,云主机一天的费用大概 198 ÷3  ÷ 365 = 0.18元
就是每天成本是 1毛8
 
这个只要找一个能够覆盖1毛8的挖矿成本的,就可以白嫖这个云服务器了。
 
这次买入 挖的是XMR,使用猫池来挖。
 
经过计算,当前一个XMR价格是1600元,一台云服务器经过测试,一天可以挖到0.0004个到0.0005个左右。
收益就是0.64--0.8元,所以即使币价腰斩,或者挖币算力整个网络提升了,挖币难度增加了,也能够正常维持足够的收益来平摊服务器费用。
 
不过笔者正常在官网是居然是找不到 这个优惠信息的。 

 
貌似只能通过的推荐入口才能找到 上面的优惠
比如从这里面的URL 进去 
https://curl.qcloud.com/eCqCAb4a

 
就可以找到那个3年198元,1年70元的  双核4GB内存,80GB硬盘的云主机
 
后续:
在测试了一天后,又果断地再开了2台腾讯云服务器,一起加入到撸毛队列中。
挖矿程序运行也简单,运行起来后,基本就不用操心,会一直在后台执行
 

 
 
具体的挖矿教程和避坑指南:
http://30daydo.com/article/44282
 
有兴趣的小伙伴可以加wx一起探讨更高收益的玩法哦。
https://curl.qcloud.com/eCqCAb4a
 
详细挖矿教程:
http://30daydo.com/article/44286​


继续阅读 »
在群里看到有人发的,腾讯云 2核4GB内存的云主机,3年的价格是198,平均一年下来,68元。
即使是平时正常使用,这个价位也是足够便宜的了。 正常这个配置,普通的云主机,一个月也要300左右。
  
https://curl.qcloud.com/eCqCAb4a​


 
所以看到这个广告后,果断入手了1台。
 
这个费用然后算下来,云主机一天的费用大概 198 ÷3  ÷ 365 = 0.18元
就是每天成本是 1毛8
 
这个只要找一个能够覆盖1毛8的挖矿成本的,就可以白嫖这个云服务器了。
 
这次买入 挖的是XMR,使用猫池来挖。
 
经过计算,当前一个XMR价格是1600元,一台云服务器经过测试,一天可以挖到0.0004个到0.0005个左右。
收益就是0.64--0.8元,所以即使币价腰斩,或者挖币算力整个网络提升了,挖币难度增加了,也能够正常维持足够的收益来平摊服务器费用。
 
不过笔者正常在官网是居然是找不到 这个优惠信息的。 

 
貌似只能通过的推荐入口才能找到 上面的优惠
比如从这里面的URL 进去 
https://curl.qcloud.com/eCqCAb4a

 
就可以找到那个3年198元,1年70元的  双核4GB内存,80GB硬盘的云主机
 
后续:
在测试了一天后,又果断地再开了2台腾讯云服务器,一起加入到撸毛队列中。
挖矿程序运行也简单,运行起来后,基本就不用操心,会一直在后台执行
 

 
 
具体的挖矿教程和避坑指南:
http://30daydo.com/article/44282
 
有兴趣的小伙伴可以加wx一起探讨更高收益的玩法哦。
https://curl.qcloud.com/eCqCAb4a
 
详细挖矿教程:
http://30daydo.com/article/44286​


收起阅读 »

门罗币XMR 挖矿 常识 避免踩坑记

 
具体的撸毛教程:http://30daydo.com/article/44283​

1.XMR挖矿软件从哪里下载?
可以使用XMRig矿工: 官方 https://github.com/xmrig/xmrig
支持windows,linux
或图形化的挖矿工具


2.用XMRig要怎么设置?怎么用?
首先,关闭杀毒软件和防火墙等安全软件,下载压缩包,解压缩,找到 pool_mine_example.cmd 文件,右键,编辑,把里面的钱包地址改成自己的钱包地址,修改换成要挖的矿池,然后保存,再双击运行 pool_mine_example.cmd 文件(不是xmrig.exe)就开始挖矿了。
那个 x 是矿工号,在多台机器挖矿时,可以区分矿机,建议每台机器都设置一个不同的矿工号,否则机器将会在矿池合并显示为1台,当矿机有掉线时,不方便区分和排查矿机。
当挖矿软件运行界面里出现accepted,表示挖矿成功。

3.为什么CPU使用率只有50%?
使用率主要受制于三级缓存,在CPU使用率为50%的情况下算力最高,将线程全部跑满,反而会降低算力。



4.怎么使用显卡挖XMR?
首先,XMR的挖矿算法不适合显卡,用显卡挖不划算,如果是免费电并且显卡挖不了其他币种,那倒是可以启用显卡挖矿。


5.我的CPU算力有多少?挖XMR一天有多少收益?
算力可以矿池网站,或者自己运行挖矿软件挖一下,看看算力有多少。
在知道算力的情况下,可以通过网络上的在线收益计算器,输入算力就得出日理论收益了(注意单位1K/s=1000H/s)


6.挖矿软件报错 connection time out,连不上矿池。
一般都是自己的网络问题,或者网络限制,解决方法:修改矿池端口,或开启 TLS 安全连接。
如果还是不行,可以考虑使用个人热点,4G网测试下,或者换个宽带运营商。

7.XMR起付额是多少,不够起付额怎么办?
这个主要看矿池而定,一般起付额是0.3XMR。
有的矿池会在余额高于0.03XMR的情况下,能申请小额提币,但可能需要停机1天方可申请,且每月限申请一次小额提币。
所以,低于0.03XMR将不足于抵扣提现手续费,无法提取。

8.用什么钱包好?
新手,或者自己懒得维护钱包,可以使用交易所的钱包地址。获取方法是注册交易所,在充值里搜XMR,显示的钱包地址就可以拿来使用了。
XMR官方钱包占用硬盘空间较大,大概70-80G,需要同步数据,自己在变现时要转入交易所,自己承担这笔转账手续费。

9.为什么矿池显示已支付,但是没收到币?
首先到账不是即时的,一般支付完1小时内都可以到账。
超过半天还不到账,如果用的是本地钱包,要先同步数据到最新区块,如果已经同步到最新区块了,可能是钱包丢失了同步数据,可以删除同步数据重新同步,或者重装钱包(务必备份好钱包私钥)。
如果用的交易所钱包,看看交易所是不是暂停充值或者维护了,如果是暂停充值,在交易所恢复充值后即可给用户自动入账,或者直接咨询交易所客服。

10.启动XMRig挖矿软件,乱码
不要以管理员身份运行。
 
11. 可以使用云服务器进行挖,最好在上面用docker挖(centos),不然会被云服务商监控到进程100%导致,封禁你的服务器。
 
具体的腾讯云服务器挖矿教程 教程,附代码:
 
http://30daydo.com/article/44283​
http://30daydo.com/article/44286
 
继续阅读 »
 
具体的撸毛教程:http://30daydo.com/article/44283​

1.XMR挖矿软件从哪里下载?
可以使用XMRig矿工: 官方 https://github.com/xmrig/xmrig
支持windows,linux
或图形化的挖矿工具


2.用XMRig要怎么设置?怎么用?
首先,关闭杀毒软件和防火墙等安全软件,下载压缩包,解压缩,找到 pool_mine_example.cmd 文件,右键,编辑,把里面的钱包地址改成自己的钱包地址,修改换成要挖的矿池,然后保存,再双击运行 pool_mine_example.cmd 文件(不是xmrig.exe)就开始挖矿了。
那个 x 是矿工号,在多台机器挖矿时,可以区分矿机,建议每台机器都设置一个不同的矿工号,否则机器将会在矿池合并显示为1台,当矿机有掉线时,不方便区分和排查矿机。
当挖矿软件运行界面里出现accepted,表示挖矿成功。

3.为什么CPU使用率只有50%?
使用率主要受制于三级缓存,在CPU使用率为50%的情况下算力最高,将线程全部跑满,反而会降低算力。



4.怎么使用显卡挖XMR?
首先,XMR的挖矿算法不适合显卡,用显卡挖不划算,如果是免费电并且显卡挖不了其他币种,那倒是可以启用显卡挖矿。


5.我的CPU算力有多少?挖XMR一天有多少收益?
算力可以矿池网站,或者自己运行挖矿软件挖一下,看看算力有多少。
在知道算力的情况下,可以通过网络上的在线收益计算器,输入算力就得出日理论收益了(注意单位1K/s=1000H/s)


6.挖矿软件报错 connection time out,连不上矿池。
一般都是自己的网络问题,或者网络限制,解决方法:修改矿池端口,或开启 TLS 安全连接。
如果还是不行,可以考虑使用个人热点,4G网测试下,或者换个宽带运营商。

7.XMR起付额是多少,不够起付额怎么办?
这个主要看矿池而定,一般起付额是0.3XMR。
有的矿池会在余额高于0.03XMR的情况下,能申请小额提币,但可能需要停机1天方可申请,且每月限申请一次小额提币。
所以,低于0.03XMR将不足于抵扣提现手续费,无法提取。

8.用什么钱包好?
新手,或者自己懒得维护钱包,可以使用交易所的钱包地址。获取方法是注册交易所,在充值里搜XMR,显示的钱包地址就可以拿来使用了。
XMR官方钱包占用硬盘空间较大,大概70-80G,需要同步数据,自己在变现时要转入交易所,自己承担这笔转账手续费。

9.为什么矿池显示已支付,但是没收到币?
首先到账不是即时的,一般支付完1小时内都可以到账。
超过半天还不到账,如果用的是本地钱包,要先同步数据到最新区块,如果已经同步到最新区块了,可能是钱包丢失了同步数据,可以删除同步数据重新同步,或者重装钱包(务必备份好钱包私钥)。
如果用的交易所钱包,看看交易所是不是暂停充值或者维护了,如果是暂停充值,在交易所恢复充值后即可给用户自动入账,或者直接咨询交易所客服。

10.启动XMRig挖矿软件,乱码
不要以管理员身份运行。
 
11. 可以使用云服务器进行挖,最好在上面用docker挖(centos),不然会被云服务商监控到进程100%导致,封禁你的服务器。
 
具体的腾讯云服务器挖矿教程 教程,附代码:
 
http://30daydo.com/article/44283​
http://30daydo.com/article/44286
  收起阅读 »

vim NERDTree 目录刷新 快捷键

vim
如果在vim下创建,删除了文件,默认NERDTree不会更新
 
只要按下 r 键就可以刷新文件列表
 
 
如果在vim下创建,删除了文件,默认NERDTree不会更新
 
只要按下 r 键就可以刷新文件列表
 
 

go并发编程实战 汪明 源码 下载


 

 
源码地址下载:
链接:https://pan.baidu.com/s/1BsUCk55yIUBoZ7Ugj7IXgw 
提取码:v369
 
 
继续阅读 »

 

 
源码地址下载:
链接:https://pan.baidu.com/s/1BsUCk55yIUBoZ7Ugj7IXgw 
提取码:v369
 
  收起阅读 »