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

 空投币   2020-11-05  来源:互联网  0 条评论
优质活动 币圈快讯 平台公告 行情分析
最新羊毛 最新空投 链圈挖矿 活动线报
新币上市 币圈空投 国外项目 币链屋
提醒:本站内容均转自网络,仅用于开发者下载测试,请明辨风险,若涉资金安全及隐私,请谨慎!谨慎!再谨慎!一切风险自担,涉及资金交易及个人隐私务必小心并远离,切记千万别投资,勿上当受骗。《本站免责申明》

在学习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。


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

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

本文地址:http://bilianwu.com/84307.html
版权声明:项目均采集于互联网, 空投币 无法审核全面,且希望大家能赚钱,请谨慎切勿上当受骗!
温馨提示:★★★天上真会掉馅饼!天道酬勤,都是机会!不错过每个空投糖果!真假难以辨认,尽量0撸!
重要提醒:本站内容均转自互联网,请明辨各个项目风险,不构成投资建议,如涉及资金交易,请谨慎操作与自担风险!
《新人必看》 《本站免责申明》

评论已关闭!