my blog my blog

Yearly 2016
黑群辉Docker折腾记

 

同事年前入了一个群晖NAS,前两天看H大大也入了群晖,好吧,奶牛就黑一个吧,淘宝买了一个黑群晖机,2*4T西数红盘,开始折腾。

黑群晖是要有引导U盘来带着启动的,机器自带,无非就是改改vid pid什么的小操作,不讨论,装系统也不讨论。奶牛想讨论下Docker,对Docker!

系统软件版本:DSM 5.2-5592

NAS> docker version
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): a263667
OS/Arch (client): linux/amd64
Server version: 1.6.2
Server API version: 1.18
Go version (server): go1.4.2
Git commit (server): a263667
OS/Arch (server): linux/amd64
NAS> cat /proc/version
Linux version 3.10.35 (root@builder) (gcc version 4.7.3 20130102 (prerelease) (crosstool-NG 1.18.0) ) #1 SMP Mon Aug 3 15:44:49 UTC 2015

群晖就是个linux系统,所以回归老本行。奶牛也是这周才接触Docker的,这个虚拟机很给力,奶牛欣喜之极,因为比起VM啊KVM之类的虚拟机,这个简直就是资源压缩机,因为共用系统的内核,所以,一个ubuntu的bash才耗费几M的系统资源,而且只要有个镜像,自己创建一个容器,可以算是无所不能了吧。对于网上有的那些迅雷远程下载xware啊,迅雷快鸟加速啊,还有那些bt下载奶牛不想讨论,没什么意思,因为有一个虚拟机系统了,你可以完成linux下的所有操作了。

先说说这个版本Docker的一个bug,就是在pull官方源的时候有的源没法在网页版中pull,提示命令执行错误。奶牛在6.X版本中测试发现没有此问题。不过,这都是小事儿不是?

开启NAS的ssh,直接命令行上去,默认的用户名和密码就是你设置的用户名和密码,而我们需要的是root,root密码其实也是你用户设置的那个密码。。。。汗。用root登录,可以直接用linux命令来操作docker。奶牛现在跑着kcptun来不间断代理ss,效果不错。再实现什么功能呢?还没想好,现在是只做了ddns到自有域名然后设置好了kcptun的客户端。这个Docker真的是太强大了,强烈推荐。

  
股市小记(1)–购入第一支股票

 

经过一周的学习模拟,今天购入第一支股票002340格林美。记录下今天的心得:

1.三个交易日前,macd底部金叉,估价开始回转。今天开盘后迅速拉升,涨幅3%。在中午12点挂单,下午1点开盘后立马成交,成交金额为7.35/股,成本7.355/股。

 该股在开盘不久,价格迅速拉升,应该为庄家所为。

2.购买之后发现问题,即委买委卖处均有大单挂出。如图

之后自己仔细想了很久,把自己的分析写下。

首先委卖2-5处皆是大单,更有7.40位置的2w手的压单,这是为了防止价格增长过猛,但是如果价格上涨越快岂不是月能满足庄家的出货需求?所以卖家不是为了出货,这只是一种震慑,他想让买家等待更低的价格,而卖家知难而退选择更小的利润,即压低价格出单。所以成交金额多数在7.33左右。那为什么委买也同样有很多大单呢?首先,吸筹,有多少收多少,这是庄家的首要想法,因为只有吸筹足够,洗盘彻底才能没有阻力地抬高股票价格,所以委卖的压单表示庄家还没吸筹结束。而委买的大单还有一个作用就是防止价格下跌太快,有多少庄家就吃多少,可以避免明日价格继续拉升的方便,减少拉升成本。当然也不排除是在对倒出货,一面高价卖一面低价收,不过这个利润空间貌似并不大,庄家应该在股价下滑后3个月的时间有所行动了,这点儿利益貌似太小。

3.交易时间还是应该选择下午2点左右,可以看清稳定的分时线,不盲目不盲从。

4.已经设置了止盈止损区间,下限7.205,上限8.355.

KDJ随机指标学习

 

计算方法

KDJ的计算比较复杂,首先要计算周期(n日、n周等)的RSV值,即未成熟随机指标值,然后再计算K值、D值、J值等。以n日KDJ数值的计算为例,其计算公式为
n日RSV=(Cn-Ln)/(Hn-Ln)×100
公式中,Cn为第n日收盘价Ln为n日内的最低价Hn为n日内的最高价
其次,计算K值与D值:
当日K值=2/3×前一日K值+1/3×当日RSV
当日D值=2/3×前一日D值+1/3×当日K值
若无前一日K 值与D值,则可分别用50来代替。
J值=3*当日K值-2*当日D值
以9日为周期的KD线为例,即未成熟随机值,计算公式为
9日RSV=(C-L9)÷(H9-L9)×100
公式中,C为第9日的收盘价;L9为9日内的最低价;H9为9日内的最高价。
K值=2/3×第8日K值+1/3×第9日RSV
D值=2/3×第8日D值+1/3×第9日K值
J值=3*第9日K值-2*第9日D值
若无前一日K值与D值,则可以分别用50代替

特点

在反应股市价格变化时,J最快,K指标其次,D指标最慢。K指标反应敏捷,但容易出错;D指标反映稍慢,但稳重可靠。

应用

KDJ指标是三条曲线,在应用时主要从五个方面进行考虑:KD的取值的绝对数字;KD曲线的形态;KD指标的交叉;KD指标的背离;J指标的取值大小。
1.从KD的取值方面考虑。KD的取值范围都是0~100,将其划分为几个区域:80以上为超买区(买方力量大于卖方力量),20以下为超卖区(卖方力量大于买方力量),其余为徘徊区。根据这种划分,KD超过80就应该考虑卖出了,低于20就应该考虑买入了。
2.如果K、D、J值都大于50时,为多头市场,后市看涨;如果K、D、J值都小于50时,为空头市场,后市看空。
3.KDJ指标图形中,D曲线运行速度最慢,敏感度最低;其次是K曲线,J曲线敏感度最强。
4.当J大于K、K大于D时,即3条指标曲线呈多头排列,显示当前为多头市场;当3条指标出现黄金交叉时,指标发出买入信号。
5.当3条指标曲线呈空头排列时,表示短期是下跌趋势;3条曲线出现死亡交叉时,指标发出卖出信号。
6.如果KD线交叉突破反复在50左右震荡,说明行情正在整理,此时要结合J值,观察KD偏离的动态,再决定投资行动。
 

借用一篇经典文章来分析下实例

每一个成熟的操作者都有一套自己的交易系统,而对于大部分操作者来说,指标是一个完善的操作系统中必不可少的组成要素。很多人一提到指标就比较不屑,认为 那是骗人的东西;有一些态度相对客观的人说,指标只是个参考的工具。而我想说:指标就好比一件兵器,好用与否更取决于自己的功力。它固然是个参考,但参考 的前提是已经比较深刻的理解了指标的含义与特性,否则谈什么参考?还不如一味否定来的痛快。

好了,闲话不谈。今天来讲解一下KDJ。KDJ是一个超买超卖指标,所以在我看来,他的重要价值在于对股价高位低位的研判。第一:低位金叉、高位死叉老生常谈,但却不得不谈。作为一个超买超卖指标,当然研讨的就是股价的高低位,因而高位与低位的金叉死叉才更有价值。研究一个指标,一定要从以下几个方面来看:高位、低位、多空平衡点、背离、周期共振等。天下指标是一家。具体说到KDJ,20以下金叉买入具有很高的准确性,当KDJ在80以上死叉将会有巨大的跌幅。并且这样的介入点基本都是一波趋势的起始点,不至于很短暂。大道至简,但很多人会忽略这种金叉死叉,而去追求所谓的无所不能的指标。随便找个例子:600518康美药业

第 二:K、D、J值J值是三根线中活跃性最强的,在见证拐点时,具有很好的导向性。一般来讲,J值在0以下拐头向上并上穿0轴,为短线买点;100以上拐头 向下并下穿100,为短线卖点。此外,K、D值作为J值的辅助条件,如果越过80线,将具有很强的高位警示意义。举例:002110三钢闽光2009年9 月至2010年1月

第三:解决钝化超买超卖指标都有一个共同的缺点,那就是会出现高位钝化和低位钝化,让人无所适从。实际上这个问题也比较容易解决。首先我们先分一下类,什么样的股票会钝化?在我看来,无外乎两大类:绵绵阴跌和强势逼空。先 讲强势逼空型,这种股票之所以造成KDJ的高位钝化,原因很简单,就是因为他在上攻的过程中波动比较小,一直上冲。但同时也导致在均线系统中很难破坏掉 MA5和MA10两条均线。所以当KDJ出现高位钝化以后,就要知道这种类型股票的性格,严格按照具体股票所依存的均线,参照MA5和MA10的数值和方 向来进行操作。举例:600536中国软件2009年3月到2009年4月中旬实现利润270%

绵绵阴跌型的股票实际上意思刚好相反,在对长期压制的均线实现有效突破之后才能验证行情的有效性。 举例:600331宏达股份2008年6月中旬到2008年7月中旬实现利润80%

第四:周期共振这 是所有指标都具有的特性。要了解周期共振,首先要理解周期共振形成的过程。举例就针对上面第一要点:中的低位金叉:一个月线级别的20以下金叉的形成,一 定经历了60分钟20以下金叉、日线20以下金叉以及周线20以下金叉这样一个过程,趋势的扭转都是从小周期到大周期蔓延的。这下大家就应该明白了,出现 大周期和小周期在同一点位20以下金叉共振的可能性太小了。所谓的周期共振,并不是说各大周期同时发出相同的买入信号,而在于各周期形态之间的协同度,现 汇总如下:

1、KDJ日、周、月线低位金叉——低位启动,坚决买进如 果选定的目标股日线KDJ指标的D值小于20,KDJ形成低位金叉,而此时周线KDJ的J值在20以下向上金叉KD值,或在强势区向上运动;同时月线 KDJ也在低中位运行,且方向朝上,可坚决买进。如果一只股票要产生较大的行情,必须满足周、月线指标的KDJ方向朝上,绝对没有例外!

2、KDJ日线金叉,周、月线高位运行——面临调整,不宜介入如果选定的目标股日线KDJ指标金叉,而周线J值在90以上,月线J值在80以上运行,这时,该股面临着中级调整,此时短线介入风险很大,不宜介入.

3、KDJ日线金叉,周线KDJ向上,月线KDJ向下——反弹行情,少量参与如果选定的目标股日线KDJ指标金叉,周线KDJ的运行方向朝上,而月线KDJ的运行方向朝下,则可能是反弹行情,可用少量资金参与.

4、KDJ日线金叉,周线KDJ向下,月线KDJ向上——主力洗盘,周线反转如果选定的目标股日线KDJ金叉,周线KDJ的运行方向朝下,而月线KDJ的运行方向朝上,则此时股价正在进行试盘后的洗盘,或挖坑,或主力刻意打压,可等周线KDJ方向反转后介入.

5、KDJ日、周、月线高位运行———风险在即,不宜介入如果选定的目标股日线KDJ的J值大于100,周线KDJ的J值大于90,月线KDJ的J大于80,风险就在眼前,不宜介入.

6、KDJ日线高位运行,周、月线低位运行——短线回调,二次金叉。

(1)周KDJ值在10以下;月J值在20以下;J值越低机会越大.

(2)J 值由低位向下转为向上;个股和大盘都有的机会!

(3)月KDJ低位—有大行情;周KDJ低位—有中级行情;日KDJ低位—有短线行情;

(4)月KDJ低位—选好股可重仓;月KDJ中位—选好股可中仓;月KDJ高位—随时轻仓到空仓.

(5)月KDJ高位–有大级别调整;月J 值80以上;大盘和个股有暴跌风险!周KDJ高位—有中级调整;周J 值在90以上;大盘和个股有大跌风险,日KDJ高位—有短线调整;日J 值在100以上;大盘和个股有大跌风险.

(6)[月.周.日.KDJ]指标全部在80位死叉向下发散—-要彻底清仓!!

(7)[月.周.日.KDJ]全部在20低位金叉向上发散–满仓!

(8)[月KDJ]-[周KDJ]低位金叉向上;[日KDJ]高位死叉向下;逢低买入–

(9)[月KDJ]向上;[周KDJ]向下–有中级调整要空仓!耐心等[周KDJ]金叉.

(10)[月KDJ]向下;[周KDJ]向上–只有中短线行情;用少量资金介入。

第 五:骗线股市是一个斗智斗勇的地方,这就使得很多按图索骥的交易者很容易上当受骗。但话又说回来,骗线也是一种规律,如果能够用好的话,也算是比较实用的 技术手段。今天我要讲的KDJ骗线方法,就是所谓的中高位将死不死或者中高位死叉迅速拉回的操作模式。这一招式曾经使很多的右侧交易者狼狈不堪,下面我就 来给大家揭开它的神秘面纱。此方法要满足的条件是:

1、日KDJ金叉后,股价回档收日 阴线,最好有一定的回调幅度,然后重新放量上行。

2、日线K、D两线将要死叉或在50以上快速死叉,然后随股价上涨快速拉回。

3、60分钟线KDJ低位金 叉。最好对应股票的对应级别的三浪主升浪。此方法也可应用于日线-周线级别行情的研判,条件同60分钟线-日线相同。

举例一:上证指数 2010年7月16日日线图

60分钟图

举例二:600623 双钱股份周线

关于KDJ,还有很多其他的用法,比如背离、形态等等,但这些在另外一些指标上表现会更好,我今天只是把它的一些比较优良的性能加以概括,并呈现给大家,权当抛砖引玉,希望对大家有所启迪。

WordPress 4.6使用原生字体代替谷歌字体

 

WordPress使用原生字体取代谷歌字体,所选用字体覆盖了所有主流操作系统,包括:安卓,苹果iOS,Windows,苹果macOS,以及Linux。

 

完整的 CSS 代码是这样的

font-family: -apple-system,            BlinkMacSystemFont,            "Segoe UI",            Roboto,            Oxygen-Sans,            Ubuntu,            Cantarell,            "Helvetica Neue",            sans-serif; 

这其中:

-apple-system: 用于 Safari 浏览器(iOS及macOS),和 Firefox (macOS);
BlinkMacSystemFont: 用于 Chrome 浏览器(macOS);
Segoe UI: 用于微软 Windows 系统;
Roboto: 用于安卓系统及 Chrome OS 系统;
Oxygen-Sans: 用于 KDE 系统;
Ubuntu: 用于 Ubuntu 系统;
Cantarell: 用于 GNOME 系统;
Helvetica Neue: 用于 macOS 10.11 之前的版本;
sans-Serif: 标准会滚字体,以上都没有的话,用这个字体。

可以看出,在 Safari ,Chrome,以及 iOS 和 macOS 上的 Firefox 浏览器中,都将调用系统界面默认字体;而在其他平台上,都将根据具体的字体名字来进行调用。

关于倒车影像闪屏无信号问题的原因及处理分析

 

新买的车子,安装的倒车影像恶心了自己小两周,问题就是挂倒挡之后导航和倒车影像界面来回闪屏,而且倒车影像只能显示第一帧,有时候是黑屏和导航来回闪屏显示无信号闪屏,去4S找了好几趟,结果都没有解决, 最后还是自己搞定的。

首先分析下问题发生的原因及处理。

1.4S说这个导航厂家配送过来只有行车记录仪,没有倒车影像,可能存在倒车影像不兼容的问题。刚开始我也深信这个说法,因为拆装换了好几次都没有结果。但是后来一查原理,恍然大悟,跟导航没有关系。倒车影 像是通过倒挡给信号,然后直接通过AV视频线来显示倒车摄像头的画面,所以跟导航啊系统啊都没有关系。

2.电压不稳,加了稳压器,发现有时候好有时候还是同样闪屏,大众车好有这种问题,但是在4s经过测量,电压12V+,也很稳定,大众车有的需要加继电器,但是那个闪只是画面闪动,倒车影像还是正常工作的。

3.接线问题。换了两家维修,接线都接了好几次,但是还是没有解决。但是,查过原理之后,发现问题出在了接地线上。摄像头的接地线应该是搭铁或者直接走后车灯的-级回路,但是现在很多安装倒车影像的都不接这跟地线,然后让摄像头的电流直接回导航,通过视频线,这样对导航是有电流冲击的(12v电压接一个小电阻摄像头,回负极的电流应该比较大),导致导航工作不稳定,这样子在摄像头那里把接地线接好就完美解决这个问题了。

 

原生多平台MongoDB图形管理器Robomongo

 

RT,就是这个软件Robomongo,挺好用的,网站介绍是Native and cross-platform MongoDB manager而且还是GUI的,下载地址https://robomongo.org/

Ubuntu安装Node.js教程

 

在Ubuntu服务器中端中执行如下命令可以安装4.x版本的node.js

  1. curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - 
  2. sudo apt-get install -y nodejs 

如果想安装5.x版本的node.js可以执行

  1. curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash - 
  2. sudo apt-get install -y nodejs 

编译安装就不介绍了。

Nginx反向代理网站conf配置

 

编辑vhost的conf文件

  1. server { 
  2.     listen 80; 
  3.     server_name nenew.net www.nenew.net;   
  4.      
  5.     location / {  
  6.     proxy_pass http://localhost:1337;  
  7.     }  

这样就可以让Nginx反向代理本地端口运行的网站来共享Nginx的80端口了。

Sublime Text 3 汉化插件安装教程

 

奶牛业用用Sublime Text编辑器,没用过,学习下。汉化进行如下。

1.ctrl+` 快捷键或者 View > Show Console 菜单打开命令行,输入

  1. import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)  

然后系统过一会儿会提示一个出错需要重启。

2.下载此文件并置于Preferences > Browse Packages菜单打开的目录下的Installed Packages文件夹,重启软件。

3.执行Preferences/Package Control,然后点击Package Control:Install Package,,然后在弹出的命令界面,输入Chinese,选择ChineseLocalization,安装结束后界面就变成中文了。

Sails.js配置MongoDB数据库

 

在Sails.js中,默认使用的是本地的一个数据库localDiskDb,我们在项目中如果想使用数据库MongoDB的话,需要自己手动配置,首先是config/connections.js文件,我们需要将我们想使用的数据库通过配置文件添加进去。入红字部分

  1. /** 
  2.  * Connections 
  3.  * (sails.config.connections) 
  4.  * 
  5.  * `Connections` are like "saved settings" for your adapters.  What's the difference between 
  6.  * a connection and an adapter, you might ask?  An adapter (e.g. `sails-mysql`) is generic-- 
  7.  * it needs some additional information to work (e.g. your database host, password, user, etc.) 
  8.  * A `connection` is that additional information. 
  9.  * 
  10.  * Each model must have a `connection` property (a string) which is references the name of one 
  11.  * of these connections.  If it doesn't, the default `connection` configured in `config/models.js` 
  12.  * will be applied.  Of course, a connection can (and usually is) shared by multiple models. 
  13.  * . 
  14.  * Note: If you're using version control, you should put your passwords/api keys 
  15.  * in `config/local.js`, environment variables, or use another strategy. 
  16.  * (this is to prevent you inadvertently sensitive credentials up to your repository.) 
  17.  * 
  18.  * For more information on configuration, check out: 
  19.  * http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.connections.html 
  20.  */ 
  21.  
  22. module.exports.connections = { 
  23.  
  24.   /*************************************************************************** 
  25.   *                                                                          * 
  26.   * Local disk storage for DEVELOPMENT ONLY                                  * 
  27.   *                                                                          * 
  28.   * Installed by default.                                                    * 
  29.   *                                                                          * 
  30.   ***************************************************************************/ 
  31.   localDiskDb: { 
  32.     adapter: 'sails-disk' 
  33.   }, 
  34.  
  35.   /*************************************************************************** 
  36.   *                                                                          * 
  37.   * MySQL is the world's most popular relational database.                   * 
  38.   * http://en.wikipedia.org/wiki/MySQL                                       * 
  39.   *                                                                          * 
  40.   * Run: npm install sails-mysql                                             * 
  41.   *                                                                          * 
  42.   ***************************************************************************/ 
  43.   someMysqlServer: { 
  44.     adapter: 'sails-mysql', 
  45.     host: 'YOUR_MYSQL_SERVER_HOSTNAME_OR_IP_ADDRESS', 
  46.     user: 'YOUR_MYSQL_USER', 
  47.     password: 'YOUR_MYSQL_PASSWORD', 
  48.     database: 'YOUR_MYSQL_DB' 
  49.   }, 
  50.  
  51.   /*************************************************************************** 
  52.   *                                                                          * 
  53.   * MongoDB is the leading NoSQL database.                                   * 
  54.   * http://en.wikipedia.org/wiki/MongoDB                                     * 
  55.   *                                                                          * 
  56.   * Run: npm install sails-mongo                                             * 
  57.   *                                                                          * 
  58.   ***************************************************************************/ 
  59.   MongodbServer: { 
  60.     adapter: 'sails-mongo', 
  61.     host: 'localhost', 
  62.     port: 27017, 
  63.     // user: 'username', 
  64.     // password: 'password', 
  65.     database: 'catgood' 
  66.   }, 
  67.  
  68.   /*************************************************************************** 
  69.   *                                                                          * 
  70.   * PostgreSQL is another officially supported relational database.          * 
  71.   * http://en.wikipedia.org/wiki/PostgreSQL                                  * 
  72.   *                                                                          * 
  73.   * Run: npm install sails-postgresql                                        * 
  74.   *                                                                          * 
  75.   *                                                                          * 
  76.   ***************************************************************************/ 
  77.   somePostgresqlServer: { 
  78.     adapter: 'sails-postgresql', 
  79.     host: 'YOUR_POSTGRES_SERVER_HOSTNAME_OR_IP_ADDRESS', 
  80.     user: 'YOUR_POSTGRES_USER', 
  81.     password: 'YOUR_POSTGRES_PASSWORD', 
  82.     database: 'YOUR_POSTGRES_DB' 
  83.   } 
  84.  
  85.  
  86.   /*************************************************************************** 
  87.   *                                                                          * 
  88.   * More adapters: https://github.com/balderdashy/sails                      * 
  89.   *                                                                          * 
  90.   ***************************************************************************/ 
  91.  
  92. }; 

到这里,数据库并没有切换,我们还需要设置config/models.js

  1. /** 
  2.  * Default model configuration 
  3.  * (sails.config.models) 
  4.  * 
  5.  * Unless you override them, the following properties will be included 
  6.  * in each of your models. 
  7.  * 
  8.  * For more info on Sails models, see: 
  9.  * http://sailsjs.org/#!/documentation/concepts/ORM 
  10.  */ 
  11.  
  12. module.exports.models = { 
  13.  
  14.   /*************************************************************************** 
  15.   *                                                                          * 
  16.   * Your app's default connection. i.e. the name of one of your app's        * 
  17.   * connections (see `config/connections.js`)                                * 
  18.   *                                                                          * 
  19.   ***************************************************************************/ 
  20.   connection: 'MongodbServer', 
  21.  
  22.   /*************************************************************************** 
  23.   *                                                                          * 
  24.   * How and whether Sails will attempt to automatically rebuild the          * 
  25.   * tables/collections/etc. in your schema.                                  * 
  26.   *                                                                          * 
  27.   * See http://sailsjs.org/#!/documentation/concepts/ORM/model-settings.html  * 
  28.   *                                                                          * 
  29.   ***************************************************************************/ 
  30.   migrate: 'safe' 
  31.  
  32. }; 

其中的connection后面的字段就是connection.js中配置的MongoDB的名称,然后migrate这里我们使用safe模式,其实这里有三种模式可以选择,如果注释掉这一行,启动sails lift的时候会提示。

到这里我们配置文件已经配置了,需要用npm来添加支持组件了。

  1. npm install sails-mongo 

到此为止,MongoDB的安装就完成了。