MCTrader 自动交易设定 - 独立开平仓说明

MC用户期待已久的图表独立判断自己的开平仓功能,即将上线!

独立开平仓,是依据 MC 的信号决定委托单是开仓还是平仓。

可以实现,每个图表的信号独自拥有自己的开平仓判断,而不受限于 实际资金账户的持仓和委托情况。

使用之前,请先了解以下说明。

1 MC 独立开平仓设置

  1. 若要实现 同一商品、同一账号下,多个图表的仓位独立,
    则,每个图表都需要设定为“独立开平”。
    只要有一个图表设定成“自动”,这个自动的图表仍然根据真实账户的持仓和委托判断,就其他图表的持仓也会被“自动”的图表信号平掉仓位。
  2. 除了设定上,MC的信号语法,需要有独立平仓的语法(重要)
    所谓独立平仓语法即:sell 对 buy 的平仓,buytocover 对 sellshort 的平仓。详细请看第2章说明、第3章案例。

2 MC 信号开平仓说明

以下是 MC 语法对应的开平仓关系:

MC语法

开平仓

(可对比交易追踪器)

备注 & 案例

Buy

开仓

选择“独立开平时”,不再具有平仓反向功能

假设:持有空头 -1,buy 发出的 +2,
(1)选择:“自动”时,+1平,+1开,持仓结果是 +1

(2)选择:“独立开平”时,+2 都为新仓,持仓结果是 -1 和 +2 锁仓。

Sellshort

开仓

选择“独立开平时”,不再具有平仓反向功能

假设:持有多头 +1,sellshort 发出的 -2,
(1)选择:“自动”时,-1平,-1开,持仓结果是 -1

(2)选择:“独立开平”时,-2 都为新仓,持仓结果是 +1 和 -2 锁仓。

Sell

平仓

需搭配 Buy 语法使用

Buytocover

平仓

需搭配 Sellshort 语法使用

Set系列

平仓

需搭配 Buy 和 Sellshort 语法使用

 

  1. 若信号,只有 buy 和 sellshort(无论有无 Set系列)
    则,
    buy 和 sellshort发出的委托,永远都是“开仓”,实际账号会一直开仓而导致多空并存的锁仓,而无法达到“平仓反向”功能(对比:图表回测信号是有平仓反向的,所以,只有 buy 和 sellshort时,回测和真实交易会不同)。
    Set 系列只有达到指定条件才能完成止盈止损,也就是上面的开仓不是每一笔都可以达到条件,最终还会留下多头和空头持仓,而锁仓。
  2. 若信号,包含有 buy 和 sellshort、Sell 和 Buytocover(无论有无Set系列),同时搭配 marketposition 语法控制
    则,
    buy 开仓后,可由 sell 来平仓
    sellshort 开仓后,可由 buy to cover 来平仓
    最终,可实现信号的独立开平仓。

3 案例

3.1 信号只有 buy, sellshort 和 set系列

信号:

使用内置的 MACD LE 和 MACD SE 搭配 Setstoploss, setprofittarget(语法略)

MACD LE:只负责 多头开仓
MACD SE:只负责 空头开仓
Set 系列:只负责达到止盈止损条件时的平仓(很多时候,未达到)。

委托成交情况:

我们可以从 图中看到,最终该商品的持仓仍然锁仓了。


3.2 信号有 buy, sellshort, sell, buytocover + marketposition

信号案例:

inputs: Price( Close ), FastLength( 9 ), SlowLength( 18 ) ;
variables: var0( 0 ), var1( 0 ) ;

var0 = AverageFC( Price, FastLength ) ;
var1 = AverageFC( Price, SlowLength ) ;

condition1 = CurrentBar > 1 and var0 crosses over var1 ;
condition2 = CurrentBar > 1 and var0 crosses under var1 ;

// just open long position  	
// 无持仓或者有多头时,才能开多,即可开仓也可同方向加仓                      
if condition1 and marketposition>=0 then                           
	Buy ( "MA2LE" ) next bar at market ; 

// just close short position
// 有空头时,才能平仓
if condition1 and marketposition=-1 then 	
	buytocover ("MA2CoverShort")  next bar at market ;   

// just open short position
// 无持仓或者有空头时,才能开空,即可开仓也可同方向加仓
if condition2 and marketposition<=0 then                                               
	Sell Short ( "MA2SE" ) next bar at market ;

// just close long position	
// 有多头时,才能平仓
if condition2 and marketposition=1 then 	
	sell ("MA2CoverLong")  next bar at market ;

buy:只负责 多头开仓
sellshort:只负责 空头开仓
buytocover:只负责 空头的平仓
sell:只负责 多头的平仓

该语法,由marketposition 来控制 多空的开仓、平仓,在选用“独立开平仓”设置时,可以避免产生锁仓。

© 2011-2023 MultiCharts All Rights Reserved.