在 2023 年 小米 IoT 生态伙伴大会 上宣布将向个人开发者开放。12 月 1 日即可申请内测，总共有 1000 个名额。根据小米 文档 的介绍。个人开发者目前存在一些限制。为帮助个人开发者更快的完成开发，平台提供了极简开发流程，删减了一些不必要的功能，并预置了一些产品模板，下面是个人与企业开发者的区别：个人开发者不用创建产品，可以在产品模板功能的基础上，选择性实现其中的部分功能，不能增加或修改模板功能。不用在 https://iot.mi.com 上传固件、扩展程序版本，按照本文固件、扩展程序的开发文档在本地开发完后，将固件刷写到设备，将扩展程序刷写到 Debug 版米家 App 便可使用。不能上线产品，不能将设备分享给他人使用，但可以使用自己的账号控制设备。其中这个第三点，对我家就不太方便了，意味着即便我将自动浇水接入米家，也只有我自己能够通过米家控制。所以只能够继续保留目前的服务器控制方式，同时添加针对米家的支持。接下来，就让我记录一下开发过程吧。申请我第一时间提交了申请。一周的等待后，成功通过申请。开发固件开发文档参考开发文档中提供的实例，初步实现了一个 Arduino 的串口通讯库（Serial MIIO）。不过因为目前个人开发者的权限过于少，比如没法分享设备给家庭中的其他成员，导致开发动力缺失，目前这个库处于停更中。希望小米早日开放更多权限，到时候我再来继续更新吧。Vela 开源内测最近小米终于开始 Vela 开源内测，不过报名之后暂时没有消息，等待中。Vela 开源https://github.com/open-vela/docs/blob/dev/README_zh-cn.md现在已经正式开源，但我最近没时间去尝试了。
Ubuntu Server 22.04 已经发布一年多，但我一直没去升级，甚至腾讯云也早就有了镜像。最近突然想到去升级一下，这次我准备使用 do-release-upgrade 来升级系统版本。备份直接通过云硬盘的快照功能。升级参考 How To Upgrade to Ubuntu 22.04 Jammy Jellyfish。sudo apt update && sudo apt upgrade && sudo apt dist-upgrade sudo do-release-upgrade升级过程中提示我开放 1022 端口。接下来会将 focal 重命名为 jammy，我之前设置的镜像源直接就可以使用，不需要做额外修改。Do you want to start the upgrade? 12 packages are going to be removed. 168 new packages are going to be installed. 875 packages are going to be upgraded. You have to download a total of 1,032 M. This download will take about 5 minutes with your connection. Installing the upgrade can take several hours. Once the download has finished, the process cannot be canceled. Continue [yN] Details [d]确认之后就是漫长的等待，等一切就绪就会提示是否重启。重启之后，便成功升级到 22.04.报错W: http://mirrors.tencentyun.com/docker-ce/linux/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.apt sudo apt-key export 0EBFCD88 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg重装系统我似乎把 Python 环境弄坏了，poetry 工作不正常，总是提示我找不到 pip。想了想，还是像 之前 那样直接重装系统吧。Docker这次 Docker 直接通过 get.docker.com 的脚本来安装，比之前真是方便太多了。curl -fsSL https://get.docker.com -o install-docker.sh sudo sh install-docker.sh --mirror Aliyun接下来是设置文件夹权限，除了 postgres/pgdata 为 root:root，blog/usr 为 www-data:www-data，其他都设置为当前用户。配置通过之前写好的 dotfiles，基本上需要的东西都可以自动安装。git clone https://github.com/he0119/dotfiles.git WAKATIME_API_KEY=key ./install.sh
所谓波段交易，是跟随一个上涨线段-D的交易策略。一般地，任何标的都可以按照交易信号-D进行买卖。特殊地，波段交易是指按照三大指数的交易信号-D规划交易。因为指数运动的涨跌轮回-D非常地明显，跟随一个上涨线段-D就变得方便。加上指数ETF和多数行业ETF与指数运动强关联，交易这些ETF便可以有效避免个股风险。长期关注行业ETF和不多的龙头个股，非常有助于我们更好地进行分析和交易。如果一个标的离开波段低位，就已经在一个上涨线段-D的生成途中。按照波段交易的基本规则，最重要的就是简单持有足够长的时间，直到时间或空间的原因进入波段高位，然后按照见顶信号-D执行一次卖出或分仓卖出。波段低位建仓之后简单持有一段时间，一个上涨线段-D自然而然地带来价差收益，不论交易标的是龙头个股还是ETF基金，波段交易者都要努力去找到这种美好的感觉。一个波段的筑底过程可谓是千变万化的，找到底部需要等待的耐心和尝试的勇气。当一个下跌线段-D已经确立的时候，需要做的是管住手、只看不动，没有出现见底信号-D是绝对没必要去尝试的。等待见底的过程并不难受反而很快乐，因为我们知道可以用更低的价格进行买入；我们并不害怕价格出现持续下跌，关键原因是在下跌的初期就已经退出观望了。当一个见底信号-D出现的时候，我们显然可以积极地进行尝试交易。不过，在三大指数同步见底之前的试仓，其总仓位和分仓位都必须严格控制。分仓位不能高于个股仓位的3成，总仓位必须控制在总资金的3成以内。因为尝试建仓很可能遭遇失败，一旦失败必须立即推出且会产生小幅亏损。失败的次数越多离波段的真底就越近，我们总有机会让一部分仓位买在低点附近，这样想参与每一次尝试就心平气和了。确立向上反转-Q之后可以正式建仓，总仓位必须到达总资金的6成以上，这部分仓位原则上持有到波段高位才能卖出。当三大指数同步离开波段低位，一个上涨线段-D就在运行途中了。一个上涨线段-D的运行时间会多于数十个交易日，接下来的任务就是观察上涨是否延续，寻找合适的机会规划短线交易提高交易效益了。在一个上涨线段-D的正常运行途中，任何一个回调走势的下跌线段-Q和下跌线段-H都是短线买入时机，在某些标的快速上涨的时段甚至利用回调走势的下跌线段-5才能实现买入。如果在短线加仓之后出现继续下跌，在上涨线段-D没有被破坏的前提下，可以容忍小幅被套等待上涨线段-H的逐步生成，在一个新的上涨线段-H的上行途中，大概率不仅会解套也可以实现盈利出局。一个上涨线段-D的结束也是千变万化的，三大指数的波段结束有时同步、有时异步，退出ETF或个股的仓位要按照它们自己的交易信号。出现见顶信号-D时减仓要果断，见顶信号-D失效之后是否买回要慎重决定，除非处于主升浪-D或主升浪-W，都可以选择不参与上涨线段-D的延长时段。总仓位必须坚持越来越低，这样可以有效防止顶部区域快速下跌的伤害。波段交易讲究的是利用每个波段不断积累盈利，完全没有必要一定要买得最低、买得最高。所以，一定要防止波段低位的买入抢跑，也要防止波段高位的卖出滞后。每年里波段买入的机会有1-3个，买入之后ETF和个股退出的时机并不一致，只需要按照它们自己的见顶信号-D退出就好。如果你对一件事情非常地感兴趣，做这件事情的时候你就会乐在其中。我习惯于把股票交易看作一种游戏，并且把每个波段都看成是一次新的游戏，不仅可以享受不确定性带来的快乐，还可以同时享受到获得收益的快乐，这样的兴趣爱好显然是无比美妙的。成熟的波段交易者不用耗费太多时间和精力，股票交易完全可以和其他事业一起同时兼顾，并为我们的幸福生活提供一份额外的保障。
波段交易是一种投机策略，其本质是跟随一个上涨线段-D，通过低买高卖获取价差。为了克服交易决策的主观性，买入和卖出都必须拥有规则。理想的规则必须具有概率优势，即按照规则交易必然会大概率盈利。幸运的是，在经历十多年的观察和实践之后，终于找到了具有概率优势的交易规则，从而建立起了自己的交易策略。回顾历程，不怕失败、不断尝试的勇气，注重细节、注重创新的习惯，才最终建构了较为完整的交易体系。通过在三大指数上进行历史回测，交易规则的概率优势已经得以验证。作为跟随上涨线段-D的波段交易，买卖决策的依据是顶底信号-D，有些时候需要借助顶底信号-H和涨跌浪-H进行研判。一、按照见底信号-D执行买入任何一个见底信号-D出现之时，都是可以进行买入尝试的。使用见底信号-D进行买入，在交易实践中逐步积累的经验有：1.如果下跌线段-D形成回调走势或震荡走势，或者在一个典型的下跌浪-D之后，此时的见底信号-D成功率会大大提升。2.如果见底信号-D出现在底背离区，或新的见底信号-D位置高于旧的见底信号-D，此时的见底信号-D更加不能错过。3.如果下跌线段-D形成下跌走势，或者在有一个典型的下跌浪-W之中，此时的见底信号-D成功率会相对降低，可以观察一天再决定是否进行试仓。4.出现见底信号-D买入之后，如果没有形成上涨浪-D方向线就继续向下，则应该及时退出试仓的全部仓位。5.出现见底信号-D买入之后，如果形成的上涨浪-D价格涨幅不大，且受压于小通道而继续向下，则应该及时退出试仓的全部仓位。6.在一个下跌线段-D中可能出现多个见底信号-D，越是后面出现的见底信号-D月值得尝试，因为见底信号-D出现的次数不会太多。二、按照见顶信号-D执行卖出任何一个见顶信号-D出现之时，都是可以进行卖出尝试的。使用见顶信号-D进行卖出，在交易实践中逐步积累的经验有：1.如果买入之后出现典型的上涨浪-D，只要上涨浪-D不被破坏就不要轻易卖出，可以在中途利用5、Q的风险低位进行加仓。2.如果价格运行在小通道-D之上，则当前的上涨浪-D就属于主升浪-D，遇到主升浪-D一定要抓住机会重仓参与。3.按照一个见顶信号-D卖出之后，如果方向线-D重新开始回升，则说明见顶信号-D已经失效，可以及时买回已卖出的部分仓位。4.如果价格运行在大通道-D之上，则当前处于快涨甚至快牛状态下，一旦见顶信号-D失效必须及时买回原有仓位。5.一段急速上涨之后，价格在波段高位区间震荡，而见顶信号-D频繁出现，此时可以按照涨跌浪-H进行短线交易。6.见顶信号-D出现次数越多，上涨线段-D结束风险越大，见顶信号-D失效买回仓位时，必须保证持有的仓位变得越来越小。7.三大指数同步出现见顶信号-D，构成一个波段高位的顶部共振，此时应该按照个股交易信号及时退出仓位。三、交易过程的仓位控制策略仓位控制是风险控制的关键，风险位置越高仓位必须越低。仓位分成总仓位和分仓位两个部分，在交易实践中逐步积累的经验有：1.合理分仓可以降低风险，避免可能出现的个股风险。交易标的控制在8个以内，最大的分仓位可以为3成。2.上涨线段-D尚未确立之时，总仓位必须控制在3成以内，可以对多个标的进行试仓，以便最后选择适合重仓的标的。3.向上反转-Q已经完成之后，总仓位应当及时提升至6成以上，尽量选择处于主升浪-D的标的进行持有。4.一旦风险值-D进入波段高位之后，必须严格控制重新买回或新建仓位，应当始终确保总仓位变得越来越小。5.一旦上涨线段-D的高点出现之后，新的下跌线段-D可能在生成之中，要时刻关注是否出现向下反转-Q。6.在一个下跌线段-D的生成途中，最简单的方法就是保持空仓，没有出现见底信号-D之前，绝不随意地进行任何买入尝试。7.大盘指数重新开启上涨线段-D时，不形成下跌线段-D的板块和个股会相对强势，可以依据方向线-D重新向上进行买入。
任何一个上涨线段-D的生成，必然从一个上涨线段-H开始。在更小的级别上观察和分析，可以清楚地看到走势的演化过程。一个上涨线段-D的生成之初，一定可以看到一个向上反转-5，之后继续扩大为向上反转-Q，之后演化为向上反转-H，最后才可能确认上涨线段-D的生成。如果向上反转的级别不能逐步扩大，就只能止步于5、Q或H级别上的反弹，也就无法真正形成一个上涨线段-D，原来的下跌线段-D也就会继续下去。多周期图是常用的行情分析工具，一些做得好的软件还能实现同一时间在不同周期上的鼠标联动。将多周期图的周期设置为5、Q、H和D，技术指标设置为“线段走势”和“高低风险”，就可以比较方便地利用多周期图观察走势演化。由于可以同时观察到不同周期上的走势演化，使用多周期图观察走势会有一览纵山小的感觉。如果用一个较大的显示器甚至大屏幕电视进行显示，利用多周期图分析证券的走势演化简直是一种享受。先在5上观察价格和风险值的变化，可以轻松地观察出上涨线段-5和下跌线段-5，如果5的线段顶点出现的是G-DD，则当前一定处于一个下跌线段-Q之中。如果风险值-5在底部区域持续一段时间之后，突然出现触及顶部区域并在下跌轮回中价格不创新低，与此同时大风险-5也出现了底部抬高，此时就已经开启了一个上涨线段-Q。通常的上涨线段-Q具有很小的惯性，不能演化成上涨线段-H的情况很常见，所以在交易中要综合判断、谨慎跟随。上涨线段-Q和下跌线段-Q是观察走势演化的关键单元，向上反转-Q（和向下反转-Q）具有足够的惯性，一方面一定会导致一个上涨线段-H（和下跌线段-H）的生成，另一方面较大概率会导致上涨线段-D（和下跌线段-D）的生成，所以在分析上涨线段-D和下跌线段-D的生成中非常好用。如果仅仅在风险值-D处于波段高位和波段低位时，与见底信号-D和见顶信号-D相结合进行使用，就可以让判断的成功率得以提高，不过波段低位可能出现的再次触底也是无法避开的。一个下跌线段-D进入波段低位之后，满足如下条件可以买入试仓的仓位：一是首次出现见底信号-D的当日尾盘；二是首次出现见底信号-D之后出现向上反转-Q之时；三是前期出现见底信号-D之后，在底背离区-D出现向上反转-Q之时。尽量在一个回调或震荡的下跌线段-Q的底部买入，尽量不要在一个上涨线段-Q的顶部买入，通常只需要等待几天就能找到更好的买入时机。如果习惯于在下跌线段-Q的底部买入，一年下来可以让收益率提升好几个百分点。如果试仓买入之后很快出现向下反转-Q，就必须研判目前是否只是一个Q或H的反弹，一旦确认属于反弹就必须及时退出交易，最佳时机是风险值-G在高位出现见顶信号-H之时，不能在一个下跌线段-D中继续持仓，终结失败的交易是为了等待下一次的买入机会。如果前期买入之后价格出现持续上涨，可以利用下跌线段-Q不创新低的D点进行加仓，这样的加仓在风险值-D进入波段高位之前都可以执行；风险值-D进入波段高位之后出现见顶信号-D，甚至可以提前到出现见顶信号-H，就可以逐步执行减仓实现这个波段的获利了结，如果确认出现向下反转-Q时必须立即清仓。
一、价格运动属于一种波动波动是一种常见的物质运动形式。我们将某一物理量的扰动或振动在空间逐点传递时形成的运动形式称为波动。证券的价格运动是一种波动，也就必然地遵从波动的一般规律。与我们所熟知的简谐波不同，由于人的参与和人性的影响，价格运动是一种变异的、特殊的波动。周期性是波动的外在表现，价格运动也就必然具有周期性。当然，其周期性与简谐波有着显著的差异：一方面，一段上涨之后必然是一段下跌，一段下跌之后必然是一段上涨，这种轮回现象是必然出现的；另一方面，每一段上涨和每一段下跌的时间和空间却具有显著差异，表现出比简谐波复杂得多的千变万化。平衡性是波动的内在本质，价格波动是围绕价值线进行的。我们学习简谐波时方向是水平的，而自然界的波动现象显然不止于水平方向。波动的平衡线是水平的就是震荡行情，波动的平衡线是向上的就是牛市行情，波动的平衡线是向下的就是熊市行情。跟随一个价值线向上的标的很有必要，我们不仅可以获得波动本身的收益，还可以获得其价值增长带来的收益。二、利用风险值揭示概率优势只从价格一个维度上观察，价格运动的规律性不强。均线类指标之所以有用，是因为人们比较广泛地使用，群体性的认知和行为造就了其效果。均线的压力和支撑作用是应当关注的，所以，三大工具之一的“线段走势”中就集成了均线，小通道其实就是一种基于均线的通道线，在观察价格运动的基本类型上很有用。如果价格持续运行在小通道H的上方，且小通道的方向明显向上，则当前运行的是一个主升浪。如果价格持续运行在小通道L的下方，且小通道的方向明显向下，则当前运行的是一个主跌浪。如果价格在小通道附近来回穿越，且小通道基本上是走平的，则当前运行的是一个震荡浪。主升浪要坚持做多，主跌浪要坚持做空，震荡浪要减小周期规划交易，这就是不同价格运动类型所对应的交易方案。从价格和时间两个维度上观察，价格运动的规律性更强。以过去较长一段时间价格的最高价和最低价建立一个标尺，我们将当前价格在这一标尺上的位置高低称为风险值。当前所处的位置越高下跌的风险就越大，所处的位置越低下跌的风险就越小，因为一段上涨之后必然跟随一段下跌，一段下跌之后必然跟随一段上涨。不过，风险值到达高位之后并非价格一定立即下跌，但是距离下跌的时间会越来越近，下跌也就开始出现了概率优势；风险值到达低位之后并非价格一定立即上涨，但是距离上涨的时间会越来越近，上涨也就开始出现了概率优势。没有人知道下一秒价格会涨还是跌，我们也很难预测未来一天价格会涨还是跌。因为影响价格涨跌的因素太多，我们无法知道这些因素的权重及其合成的结果，所以，我们选择不花任何精力去预测涨还是跌，而把主要精力放在如何应对即将到来的涨跌上。虽然某一周期的价格涨跌看起来是随机的，但是几十上百个周期的价格涨跌却并不随机，上涨或下跌会开始出现一定的概率优势，利用价格上涨的概率优势规划交易才是证券交易的正确方向。三、跟随上涨线段-D的波段交易以风险值穿越20和80作为依据，连接最近的两个价格的最高点和最低点，就可以得到上涨和下跌的线段。上涨线段和下跌线段在任何一个时间粒度上都可以看到：30以下的小周期的线段并不重要，它们的惯性太小、切换时间太短且价格差值较小，不推荐绝大多数交易者将其用于交易；对于波段交易者而言，非常重要的是W、D和H的线段，参考W和D去跟随上涨线段-D，这就是一个波段交易者所要做的事情。从不同的时间粒度上观察价格运动，可以看到不同的上涨线段和下跌线段，时间粒度越小看到的上涨线段和下跌线段越多，时间粒度越大看到的上涨线段和下跌线段就越少。大周期的一个上涨线段（或下跌线段）是由小周期的一个或多个上涨线段和下跌线段经过合成而得到的，周期越大的线段惯性越强、持续时间越长，周期越小的线段惯性越弱、持续的时间越短。对于一个波段交易者而言：上涨线段-W和下跌线段-W非常重要，它们对应的是我们常说的牛市和熊市，决定着时段和个股是否值得参与交易；上涨线段-D和下跌线段-D最为重要，波段交易的本质就是跟随一个上涨线段-D，通过低位买入、高位卖出而获取稳定的盈利；上涨线段-H（上涨线段-30）和下跌线段-H（下跌线段-30）比较重要，既可以用于判断线段-D（或线段-W）及时发现反转，也可以在一个上涨线段-H上规划短线交易。
有时人们会以拖延或懒惰作为理由，将自己正在犯的重大错误搪塞过去，就好像自己本来就能够很怎么样，问题只是出在自己的拖延或懒惰而已。然而，这种自己给自己找台阶的做法危害很大，可以说是我们成功之路上的一个大敌。自己之所以现在没有变成自己想要的样子，其实并不真是拖延和懒惰引起的，它们只是一种表象而不是问题的本质。一个人之所以会拖延或懒惰，主要应该有三类可能的原因：一是还没有真正意识到正在做的事情的价值，二是并没有真正相信自己的努力可以成功，三是还没有真正懂得如何去做这件事情。要真正做成功一件事情，价值认知、相信自己和学会去做是缺一不可的，任何一个环节出现了问题，表现出来的现象都会拖延或懒惰。清晰认知到一件事情的意义和价值，是我们开始行动和走向成功的动力之源。比如，当我们清晰认知到博士学位或交易研究的意义和价值，就一定会把它作为自己当前最重要的事情，按照要事优先的原则实现时间、精力和热情的大力投入，这样攻读学位或交易研究自然会成为我们生活的焦点和热点。在解决了价值认知的事情之后，要让自己持续、稳定地行动起来，还必须真的相信自己可以取得成功。许多时候我们表面上是在拖延或懒惰，本质上是对自己可以取得成功没有信心，或者对自己这样做就能取得成功还没有信心。其实，自己是不是具有实力、这样做能不能成功，都是只有在实践中试过才能知道的，既然自己做的事情如此重要和富有价值，为什么要对自己没信心、对做法没信心呢？必须知道，一味地怀疑自己的能力、怀疑方法的力量，不敢于挑战自我、不善于循道而行，缺乏尝试的勇气、缺少坚持的毅力，这正是多数人之所以不能成功的原因所在。没有真正懂得如何去做一件事情，这也是很多人一开始行动就会遇到的。不过，这种困难其实解决起来相对容易，我们可以向老师、同事和朋友去寻求帮助和启发，我们也可以去互联网查询资料和寻找志趣相投的人。行动开始之初就应该制定一个详尽的行动方案，并在后续的执行过程中不断反思和改进，通过持续地查漏补缺、完善计划和调整行动，我们就会真正懂得如何去完成自己想要做的事情。王阳明先生说：“知是行之始，行是知之成”。之所以会“懂得那么多的道理仍然过不好这一生”，其实是那些道理并非真懂了，自己想要的并非真的认定了。一件事情之所以引发不了自己去践行，可能是我们并非认定了真要做、真相信这样可以做到、真正知道如何去尝试。让我们再次确认价值、建立信心，一起去做到“要事优先、迎难而上”吧！
我们会时常在网络上看到好文章，于是，复制并保存下来是自然而然的。但是，网络复制的文章，粘贴到word文档中常常会有多余的空格符和分段符，如何快速处理，得到一个很完美的文章文本呢？方法其实很简单：第一步：查找内容“^p^p”，替换为“^p”；全部替换；第二步：查找“空格+^p”，替换为“空”；全部替换；简单的两步，就可以把网上的好文章保存下来了。最近用这种方法处理了一些文本，特地在此记下来，免得下次又忘了，也分享给大家。