上篇文章只介绍了Pine语言的最基本逻辑,今天我们直接从例子下手,而且这实例是我自己编写出来的。
有伙伴可能觉得太快,其实这是最高效的方法,拿实例练习,即使某个语法看不懂,没事,先记下来,记得那种结果的表达方式就好,然后继续往下,快速过一遍是关键。先说下我认为学习Pine语言过程中的几个重要习惯。
学习Pine语言的重要习惯
1、勤搜索
搞定kexue上网是必须的,Pine语言用的人非常多,我们遇到的任何问题,几乎前人都遇到过,所以最快的解决办法就是去找之前的提问和回答。找到专门的讨论社区和帮助文档。
2、敢尝试
很多时候我们查到的答案和我们的具体问题并不完全一致,要敢于复制代码过来进行修改和尝试,大不了就报错,错了再找,再试。
3、做笔记
一定要做笔记和错误集合。
把每次出错的地方和最终的结决方案记下来。下次遇到就能查找,久而久之,你的常用指标和策略里的常用语法就都记住了。
4、把握整体框架和逻辑
一个指标,一定是希望特定条件下显示的特定结果。这是首先要在纸上按步骤写出结果的推理过程。
今天就拿大家比较熟悉的九神的比特币估值曲线做例子,看看它的编写过程以及最后的显示是怎样的。
九神BTC估值曲线的Pine语言编写
1、明确九神BTC估值曲线的表达式
拟合的表达式是:
币龄是比特币出生了多少天(比特币的生日是2019年1月3日),即任意一天和比特币生日之间的间隔天数。但经过反复演算之后确认九神的用的起始日期是2009年1月9日,这一天是比特币正常区块开始的时间。
其中的参数5.755和16.751,随着时间的拉长,数据的增多,九神也是一值在优化,如果使用这个曲线的伙伴,记得保持对九神微博的关注,保持数据的更新。
要注意计算机对于加减乘除的识别和我们理解的一样,能够直接表达,但之外其他大部分数学运算都和我们想的不太一样,碰到这些之后,都要单独列出来。
这个表达式中,我们要解决的几个问题:
1)“币龄”代表任意一天和2009年1月9日之间的间隔天数。
定义一个天数的变量“days”,因为Pine中同类型的变量或者常量是可以直接加减的,days的表达式:
days = (time- timestamp(2009, 01, 09, 00, 00)) / (24 * 60 * 60 * 1000)
其中time是指当前的时间点函数,timestamp是指特定时间的一个函数,但它们代表的是“自UTC时间1970年1月1日00:00:00以来所经过的毫秒数”,也就是说起点都是1970年1月1日00:00:00。不管起点如何,其差值是不会变的,不影响我们计算间隔天数。
要注意,直接相减得出的时间间隔单位是毫秒,后面要换算成天,即表达式最后的“/ (24 * 60 * 60 * 1000)”。
2)对数的表达
Pine中给了最常用的两种对数表达,自然对数log(),和以10为底的对数log10(),可以直接用。
3)指数的表达
Pine中给出了以e为底的指数函数e^x,就需要把其他数为底的指数函数换算成e^x的表达式。
定义比特币估值为“pvoluation”,e^x在Pine中的表达为“exp(x)”,则
就可写为
pvoluation=exp(log(10)(5.755log10(days)-16.751))
2、输出曲线
输出函数plot中设定曲线显示的颜色和现实的形状(圆点等),之后就可以“add to chart”进行检测了。
最后输出结果如下,脚本在底部,感兴趣的伙伴可以自行试一下。
感谢阅读。
注册Tradingview平台,点击Tradingview。
有想制定自己的指标和交易策略的伙伴,欢迎大家添加微信jinvlog交流。
金金的分区间定投这两天已经停止定投,等待更高位置,对分区间定投不了解的可以点击链接:
考虑周期的定投——才是最适合普通人的投资方法
版权声明:项目均采集于互联网, 戴诗东 无法审核全面,且希望大家能赚钱,请谨慎切勿上当受骗!
温馨提示:★★★天上真会掉馅饼!天道酬勤,都是机会!不错过每个空投糖果!真假难以辨认,尽量0撸!