开平仓代码问题 (文华财经)

投资者咨询:开平仓代码问题 (文华财经)
来源:文华财经  日期:2021-1-22 14:04
 1.出现第一个开仓信号后,在条件不变的情况下,后面再出现的信号屏蔽,是用什么代码?
2.当天出条件A1后,以账户总资金的5%开仓(多单);当天出条件A2后,以账户总资金的5%开仓(空单)
3.出现条件B1后以当天收盘前10秒钟的价格平仓(平多单);出现条件B2后以当天收盘前10秒钟的价格平仓(平空单)
技术人员回复
日期:2021-1-22 14:08
参考:

//1

不需要额外限定,一开一平模型下,开仓后出平仓信号才能继续开仓。其他的开仓条件即使满足也会过滤掉。

//2

A1,BK(MONEYTOT*0.05/(C*MARGIN*UNIT+FEE));
A2,SK(MONEYTOT*0.05/(C*MARGIN*UNIT+FEE));

//3

ISLASTKLINE && EXIST(B1,DAYBARPOS) && CLOSESEC1<=10,SP(BKVOL);
ISLASTKLINE && EXIST(B2,DAYBARPOS) && CLOSESEC1<=10,BP(SKVOL);

CHECKSIG(SP,'A',0,'C',0,0);
CHECKSIG(BP,'A',0,'C',0,0);

投资者咨询:开平仓代码问题 (文华财经)
来源:文华财经  日期:2021-1-22 14:04
 谢谢,再补充一下:
2.当天出条件A1后,以账户总资金的5%开仓(多单),以当天盘中价格到达昨天ma(c,5)时候的价位开仓 ;
   当天出条件A2后,以账户总资金的5%开仓(空单),以当天盘中价格到达昨天ma(c,5)时候的价位开仓
技术人员回复
日期:2021-1-22 14:31
参考:

EXIST(A1,DAYBARPOS) && CROSS(C,REF(MA(C,5),DAYBARPOS)),BK(MONEYTOT*0.05/(C*MARGIN*UNIT+FEE));
EXIST(A2,DAYBARPOS) && CROSSDOWN(C,REF(MA(C,5),DAYBARPOS)),SK(MONEYTOT*0.05/(C*MARGIN*UNIT+FEE));

CHECKSIG(SK,'A',0,'C',0,0);
CHECKSIG(BK,'A',0,'C',0,0);
投资者咨询:开平仓代码问题 (文华财经)
来源:文华财经  日期:2021-1-22 14:04
 谢谢,
但我语法检测时,提示   “ 过滤模型不支持指令里定义手数、价格类型,例如:BK(5)、BK(1,NEW_ORDER)”
不用管他是吧
技术人员回复
日期:2021-1-22 15:01
 去掉指标中的AUTOFILTER这句,您模型目前是加减仓模型。
投资者咨询:开平仓代码问题 (文华财经)
来源:文华财经  日期:2021-1-22 14:04
 好的,但这样的话,开仓后,后面还有开仓信号它还会再开吗?我要只开第一次
技术人员回复
日期:2021-1-22 15:09
还是一次,加减仓模型没有写入TRADE_AGAIN的请情况下,一条语句也是执行一次。

目前编写跟一开一平过滤模型效果一致。
投资者咨询:开平仓代码问题 (文华财经)
来源:文华财经  日期:2021-1-22 14:04
谢谢,问题有点多,不好意思。
 
条件B1消失后以当天收盘前10秒钟的价格平仓(平多单);条件B2消失后以当天收盘前10秒钟的价格平仓(平空单)

意思就是条件B1存在就持有多单,条件B2存在就持有空单
条件消失就平仓
这样可以写吗?
技术人员回复
日期:2021-1-22 15:33
当天的每根K线收盘时(以及最后一根K线收盘10S前)都不满足B1或者B2就平仓?

反过来编写就可以:

ISLASTKLINE && EXIST(NOT(B1),DAYBARPOS) && CLOSESEC1<=10,SP(BKVOL);
ISLASTKLINE && EXIST(NOT(B2),DAYBARPOS) && CLOSESEC1<=10,BP(SKVOL);

CHECKSIG(SP,'A',0,'C',0,0);
CHECKSIG(BP,'A',0,'C',0,0);