一、区间突破策略
本例着重说明如何使用自定义规则创建策略 开仓 多仓:突破最近60分钟的高点 空仓:跌破最近60分钟的低点 平仓 平多:跌破近10分钟的低点 平空:突破近10分钟的高点
1. 新建规则
1.1 开多仓规则 -long position opening conditions
条件 price("BTC_USDT", 0, "usdt") > max_price("BTC_USDT", 60, "usdt") and order_collateral("usdt") ==0 and position("BTC_USDT", "usdt") == 0
(1)price("BTC_USDT", 0, "usdt") > max_price("BTC_USDT", 60, "usdt") 此条件表示当前最新BTC永续合约价格大于最近60分钟BTC永续合约的最高价。
(2)and order_collateral("usdt") ==0 此条件表示当前策略没有挂单,order_collateral为预设函数,表示获取未完成订单的保证金,如果该函数返回值为0,表示目前策略没有进行中的挂单。
(3)and position("BTC_USDT", "usdt") == 0 此条件表示策略当前仓位为0,position为预设函数,返回指定市场下,策略当前仓位数量。
执行逻辑
类型:合约交易;交易市场:BTC/USDT 永续合约;委托类型:限价;杠杆倍数:5X;方向:做多;限价:bid_price("BTC_USDT”, 1, "usdt");数量:1。

1.2 开空仓规则 -short position opening conditions
条件 price("BTC_USDT", 0, "usdt") < min_price("BTC_USDT", 60, "usdt") and order_collateral("usdt") ==0 and position("BTC_USDT", "usdt") == 0
(1)price("BTC_USDT", 0, "usdt") < min_price("BTC_USDT", 60, "usdt") 此条件表示当前最新BTC永续合约价格低于最近60分钟BTC永续合约的最低价。
(2)and order_collateral("usdt") ==0 此条件表示当前策略没有挂单。
(3)and position("BTC_USDT", "usdt") == 0 此条件表示策略当前仓位为0 。
执行逻辑
类型:合约交易;交易市场:BTC/USDT 永续合约;委托类型:限价;杠杆倍数:5x;方向:做空;限价:ask_price("BTC_USDT", 1, "usdt");数量:1。

1.3 平多仓规则 -close long position
条件 price("BTC_USDT", 0, "usdt") < min_price("BTC_USDT", 10, "usdt") and order_collateral("usdt") ==0 and position("BTC_USDT", "usdt") > 0
(1)price("BTC_USDT", 0, "usdt") < min_price("BTC_USDT", 10, "usdt") 此条件表示当前最新BTC永续合约价格低于最近10分钟BTC永续合约的最低价。
(2)and order_collateral("usdt") ==0 此条件表示策略当前没有挂单。
(3)and position("BTC_USDT", "usdt") > 0 此条件表示策略之前已经建立仓位,在此基础上进行平仓操作。
执行逻辑
类型:合约交易;交易市场:BTC/USDT 永续合约;委托类型:限价;杠杆倍数:5x;方向:做空;限价:ask_price("BTC_USDT”, 1, "usdt");数量:1。

1.4 平空仓规则 -close short position
条件 price("BTC_USDT", 0, "usdt") > max_price("BTC_USDT", 10, "usdt") and order_collateral("usdt") ==0 and position("BTC_USDT", "usdt") < 0
(1)price("BTC_USDT", 0, "usdt") > max_price("BTC_USDT", 10, "usdt") 此条件表示当前最新BTC永续合约价格高于最近10分钟BTC永续合约的最高价。
(2)and order_collateral("usdt") ==0 此条件表示策略当前没有挂单。
(3)and position("BTC_USDT", "usdt") < 0 此条件表示策略之前已经建立仓位,在此基础上进行平仓操作。
执行逻辑
类型:合约交易;交易市场:BTC/USDT 永续合约;委托类型:限价;杠杆倍数:5x;方向:做多;限价:ask_price("BTC_USDT", 1, "usdt");数量:1。

2. 创建策略
按照先开仓再平仓的执行顺序依次添加“long position opening conditions” 、“short position opening conditions”、“close long position”、“close short position”这些规则。

二、极值突破策略
本例着重说明如何使用自定义变量创建策略
开多仓/平空仓
其中:price(t)表示当前时刻的最新价格
close(t-1)表示上一时刻的收盘价格
开空仓/平多仓
1. 新建变量
变量名称:
range
条件
true
变量值
max_price("BTC_USDT", 10, "usdt") - min_price("BTC_USDT", 10, "usdt")

2. 新建规则
2.1 开多仓规则-open long
条件 price("BTC_USDT", 0, "usdt")>price("BTC_USDT", 1, "usdt")+get_value("range")*0.5 and order_collateral("usdt") ==0 and position("BTC_USDT", "usdt") == 0
(1)price("BTC_USDT", 0, "usdt")>price("BTC_USDT", 1, "usdt")+get_value("range")0.5 此条件表示多单开仓条件 : price(t) > Close(t-1) + 0.5range 其中自定义变量“range”,通过get_value函数访问。
(2)and order_collateral("usdt") ==0 此条件表示策略当前没有进行中的挂单。
(3)and position("BTC_USDT", "usdt") == 0 此条件表示策略没有已开仓位。
执行逻辑
类型:合约交易;交易市场:BTC/USDT 永续合约;委托类型:限价;杠杆倍数:5x;方向:做多;限价:bid_price("BTC_USDT", 1, "usdt");数量:1。

2.2 开空仓规则-open short
条件 price("BTC_USDT", 0, "usdt")<price("BTC_USDT", 1, "usdt") - get_value("range")*0.5 and order_collateral("usdt") ==0 and position("BTC_USDT", "usdt") == 0
(1)price("BTC_USDT", 0, "usdt")<price("BTC_USDT", 1, "usdt") - get_value("range")*0.5
此条件表示开空仓条件:
其中自定义变量“range”,通过get_value函数访问。
(2)and order_collateral("usdt") ==0 此条件表示策略当前没有进行中的挂单。
(3)and position("BTC_USDT", "usdt") == 0 此条件表示策略没有已开仓位。
执行逻辑
类型:合约交易;交易市场:BTC/USDT 永续合约;委托类型:限价;杠杆倍数:5x;方向:做空;限价:ask_price("BTC_USDT", 1, "usdt");数量:1。

2.3 平多仓规则-close long
条件 price("BTC_USDT", 0, "usdt")<price("BTC_USDT", 1, "usdt") - get_value("range")*0.5 and order_collateral("usdt") ==0 and position("BTC_USDT", "usdt") > 0
(1)price("BTC_USDT", 0, "usdt")<price("BTC_USDT", 1, "usdt") - get_value("range")*0.5
此条件表示平多仓条件:
其中自定义变量“range”,通过get_value函数访问。
(2)and order_collateral("usdt") ==0 此条件表示策略当前没有进行中的挂单。
(3)and position("BTC_USDT", "usdt") > 0 此条件表示当前已有多仓仓位,在此基础上进行平仓操作。
执行逻辑
类型:合约交易;交易市场:BTC/USDT 永续合约;委托类型:限价;杠杆倍数:5x;方向:做空;限价:ask_price("BTC_USDT", 1, "usdt");数量:1。

2.4 平空仓规则-close short
条件 price("BTC_USDT", 0, "usdt")>price("BTC_USDT", 1, "usdt")+get_value("range")*0.5 and order_collateral("usdt") ==0 and position("BTC_USDT", "usdt") < 0
(1)price("BTC_USDT", 0, "usdt")>price("BTC_USDT", 1, "usdt")+get_value("range")*0.5
此条件表示平空仓条件 :
其中自定义变量“range”,通过get_value函数访问。
(2)and order_collateral("usdt") ==0 此条件表示策略当前没有进行中的挂单。
(3)and position("BTC_USDT", "usdt") < 0 此条件表示当前已有空仓仓位,在此基础上进行平仓操作。
执行逻辑
类型:合约交易;交易市场:BTC/USDT 永续合约;委托类型:限价;杠杆倍数:5x;方向:做多;限价:bid_price("BTC_USDT", 1, "usdt");数量:1。

3. 创建策略
在使用自定义变量的情况下,应将自定义变量的执行顺序排在规则之前,例如“range”自定自定义变量的执行顺序为1,而开平仓规则的执行顺序为2到5。

本产品最终解释权归Gate所有。
