LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > Pine语言快速入门(五)三种退出订单(平仓)的方法

Pine语言快速入门(五)三种退出订单(平仓)的方法

2020-11-05 金金 来源:区块链网络

在学习Pine语言中的strategy()策略制定时,也经常被平仓结束持仓订单给困扰,因为方法有好几种,不能分辨到底用哪一种更合适。今天把三种退出订单()平仓的方法做个区分。

三个功能非常相近的退出订单函数是close()close_all()exit()

首先看下官方手册对三个函数的解释:

1、strateg.close()

这是从具有指定ID名称的条目持仓订单退出的命令。 如果有多个具有相同ID的挂单,则所有这些订单将立即退出。 如果在命令被触发时没有具有指定ID的持仓订单,该命令将不生效。 该命令使用市场订单平仓。 每个持仓订单均由单独的市场订单退出。(这里的市场订单我理解就是市场价平仓)

总结一下:

strategy.close

如果有多个具有相同ID的持仓,则所有这些持仓订单将立即退出(平仓)。
如果在命令被触发时没有具有指定ID的持仓订单,该命令将不生效。
该命令使用市场价平仓,每个持仓均由单独的市场价平仓。

用法: strategy.close(id, when) ,其中“id”是必填项,而“when”是可选项,代表持仓订单关闭的条件,但如果括号内不填“when”,则strategy.close上面要有if语句来确定持仓订单关闭的条件。

这一段代码如下:

if (longCondition1)
strategy.entry(“buy1”,strategy.long)
shortCondition = crossover(sma(close, 111), 2*sma(close, 350))
if shortCondition
strategy.close(“buy5”)

解释就是:如果满足条件longCondition1,则开始做多。如果情况满足条件shortCondition,则以市场价平仓。

其中的做多条件和平仓条件都是自己定义的,以上代码中平仓条件shortCondition是111日均线上穿2倍的350日均线的时候。

2、strategy.close_all_

是退出当前所有持有的市场头寸使其平仓的命令:

如果在命令被触发时没有开放的市场头寸,该命令将不会生效。

用法: strategy.close_all(when),其中“when”是确定平仓条件。

上图中:

strategy.close_all(when = open < close, comment = “close all entries”)

指的是当开盘价小于收盘价时,平掉所有持仓,并且备注“退出所有持仓”。

二者区别:

实际上,如果如果没有同时在同一个方向上多个开单(同时持有多个多单或空单),则这两个功能将执行相同的操作。只有当同时持有多个同向单子时,才能开始看到差异。

3、strategy.exit()

意思是:

这是退出特定持仓或整个市场持仓头寸的命令。

如果具有相同ID名称的持仓订单已经存在,则可以修改该订单。
如果还没有某个ID名称的开单持仓,但却生成了退出单命令,则退出单将等待直到此ID的订单挂单持仓,然后执行退出订单命令。
要停用此退出订单命令,应使用命令strategy.cancel或strategy.cancel_all。
如果函数strategy.exit被调用一次,则仅退出一次持仓头寸。
如果要多次退出,则应多次调用strategy.exit命令。
如果您使用止损和追踪止损,则它们的订单类型为“止损”,因此仅放置其中一个(应该首先执行)。

如果以下所有参数“ profit”,“ limit”,“ loss”,“ stop”,“ trail_points”,“ trail_offset”均为“ NaN”,则该命令将失败。即如果这些条件为空,则推出订单命令失效。即必须有这些条件之一。
要使用市场价格平仓,应使用命令strategy.close或strategy.close_all。

用法: strategy.exit(id, from_entry, qty, qty_percent, profit, limit, loss, stop, trail_price, trail_points, trail_offset, oca_name, comment, when)

总结:

如果您要使用市场价平仓,则应使用strategy.close()
如果您要使用市场价平掉所有仓位,则应使用strategy.close_all()
如果您想使用止损或者限价平仓,则应使用strategy.exit()

if (longCondition1)
strategy.entry(“buy1”,strategy.long)
shortCondition = crossover(sma(close, 111), 2*sma(close, 350))
if shortCondition
strategy.exit(“exit”,stop = (high+low)/2)

解释就是:如果满足条件longCondition1,则开始做多。如果情况满足条件shortCondition,则以最高价与最低价之和的二分之一价格平仓。

有想制定自己的指标和交易策略的伙伴,欢迎大家添加微信jinvlog交流。

注册Tradingview平台,点击Tradingview。

金金的分区间定投最近已经停止定投,等待更高位置,对分区间定投不了解的可以点击链接:

考虑周期的定投——才是最适合普通人的投资方法

—-

编译者/作者:金金

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...