trading view 教程

首先,用Pine语言编写脚本的目的

一个是编写各种指标,分析走势;

一个是根据指标设定条件,制定策略,回测收益或者自动执行交易。

前者叫“study”,后者叫“strategy”

我翻译为“研究”和策略。

和其他语言一样,就是定义条件,计算机会根据条件显示结果,我们的任务就是把自己的条件,变成计算机能够看懂的语言。

先定义一个“study”,为其赋予名字,代码study(“My Script”)就代表这个study的代号是My Script,它是个标识符,要用双引号扩起来。前期先比着写就行。

1
2
3
4
study(title="一目均衡表", shorttitle="IchiEMA", overlay=true)
// 定义策略名、短标题和展示位置
// overlay为true展示在主图上
// 为false则展示在独立窗口内

plot(close),其中plot是输出函数,完整的一个study必须要有输出,括号里的是输出的内容,close是指以收盘价输出。

既然有收盘价,自然还有开盘价,最高价和最低价,分别是open,high和low。

让我们看一下MACD指标:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//@version=4
study("MACD")
fast = 12, slow = 26
fastMA = ema(close, fast)
slowMA = ema(close, slow)
macd = fastMA - slowMA
signal = sma(macd, 9)
plot(macd, color=color.blue)
plot(signal, color=color.orange)

第1行://@version=4
编译器指令的注释,它告诉编译器脚本将使用Pine的版本4。

第2行:study("MACD")
定义将出现在图表上的脚本的名称为“MACD”。

第3行:fast = 12, slow = 26
定义两个整数变量:fast和slow.

第4行:fastMA = ema(close, fast)
定义变量fastMA,EMA计算结果其参数等于fast(12)close,即收盘价。

第5行:slowMA = ema(close, slow)
定义变量slowMA,参数等于slow(26)来自close.

第6行:macd = fastMA - slowMA
定义变量macd这两个EMA的不同之处。

第7行:signal = sma(macd, 9)
定义变量signal的macd使用参数为9的SMA算法。

第8行:plot(macd, color=color.blue)
调用plot函数输出变量、macd用蓝线。

第9行:plot(signal, color=color.orange)
调用plot函数输出变量、signal用橙色的线条。

—如何用Pine语言编写完整的买进卖出策略

策略介绍

最简单的做多和平仓过程。

条件:

买入条件:RSI <30时进入多头 平仓条件:RSI> 70时平仓

订单和仓位管理

我们把做多和平仓都按一倍处理,不加杠杆,就等于现货了

1
2
3
4
5
6
7
strategy("Simple RSI", overlay=true, initial_capital=10000)
longCondition = rsi(close, 21) < 30
if (longCondition)
strategy.entry("Long 1", strategy.long)
closeCondition = rsi(close, 21) > 70
if (closeCondition)
strategy.close("Long 1")

alt text

其中strategey(),括号内可以定义默认的“开单类型”:以合约数、金额或者总持仓百分比开单,这后面如果不定义具体数量,则默认为1,即1份合约、1美元,或者1%仓位开单。

上例是默认以合约数为单位开单。

以现金和百分比开单的写法如下:

以现金为单位开单:

1
strategy(“My Strategy”, overlay=true,pyramiding=1000,default_qty_type=strategy.cash,default_qty_value=30,currency=currency.USD)

上篇文章只介绍了Pine语言的最基本逻辑,今天我们直接从例子下手,而且这实例是我自己编写出来的。

有伙伴可能觉得太快,其实这是最高效的方法,拿实例练习,即使某个语法看不懂,没事,先记下来,记得那种结果的表达方式就好,然后继续往下,快速过一遍是关键。先说下我认为学习Pine语言过程中的几个重要习惯。

学习Pine语言的重要习惯

1、勤搜索

搞定kexue上网是必须的,Pine语言用的人非常多,我们遇到的任何问题,几乎前人都遇到过,所以最快的解决办法就是去找之前的提问和回答。找到专门的讨论社区和帮助文档。

2、敢尝试

很多时候我们查到的答案和我们的具体问题并不完全一致,要敢于复制代码过来进行修改和尝试,大不了就报错,错了再找,再试。

3、做笔记

一定要做笔记和错误集合。

把每次出错的地方和最终的结决方案记下来。下次遇到就能查找,久而久之,你的常用指标和策略里的常用语法就都记住了。

4、把握整体框架和逻辑

一个指标,一定是希望特定条件下显示的特定结果。这是首先要在纸上按步骤写出结果的推理过程。

今天就拿大家比较熟悉的九神的比特币估值曲线做例子,看看它的编写过程以及最后的显示是怎样的。

九神BTC估值曲线的Pine语言编写