我想实现亏损一千块后(包含程序内和系统上设置的止损)60个k线内不开仓。请问这样写对吗?
IF ( NUMPROFIT( 1)<-1000*MINDIFF and EXITBARS<60) THEN
SETTRADESIGN(0);
ELSE
SETTRADESIGN(1);
那个变动价就是一块。重点不再这。只是我在模拟是发现好像。止损后。还在继续开仓
是否设置了系统自带的止损止盈功能呢? 说明下具体怎么设置的;方便的话贴下完整代码,工作人员本地核实下
[此贴子已经被作者于2018/8/7 11:13:45编辑过]
是设置了系统自带的止损止盈功能
改成这样也是不行。
IF ( NUMPROFIT( 1)<-1000*MINDIFF and EXITBARS<60) THEN
set2:=0;
ELSE
set2:=1;
IF HOLDING=0 OR THOLDING2=0 THEN BEGIN
IF zhanghao and (开多平空条件 OR 开多平空条件3) and set2=1 THEN BEGIN
多开: BUY(1,1,LIMITR,H-LONG2*MINDIFF);
能帮忙直接把这个代码编译一下吗?我现在就是把这个代码加进去。
1、你是用set2变量来控制开仓的吗,那需要把set2定义为全局变量。例如:variable:set2=1;//设置set2的初始变量为1,当满足亏损条件时,再置为0
2、NUMPROFIT这个函数是基于图表的信号来计算交易盈亏的,在程序中设定的止损不会控制到策略中的开仓条件的。只有触发了信号的平仓后,才会计算盈亏。
gxx978非常感谢!后来查了相关函数注释,基本上差不多。程序中设定的止损不会控制到策略中的开仓条件的。只有触发了信号的平仓后,才会计算盈亏;程序的止损反而会干扰到设计策略的本意。重新开仓。策略内部NUMPROFIT这个函数确实可行。请问可以用平仓盈亏TACCOUNT(30)来表达我的策略意图吗?兼顾程序和策略的止损。
可以这样表达亏损一千吗?
REF(TACCOUNT(30),1)-TACCOUNT(30)>1000
我的目标是:
亏损一千后(包含程序内和系统上设置的止损)60个k线内不开仓
TACCOUNT(30)这个函数只有最新值,无历史值,在图表程序化中是不建议使用此类函数作为开平仓条件的,会引起历史上的信号发生改变。此类函数一般用于后台程序化中。
IF ( REF(TACCOUNT(30),1)-TACCOUNT(30)>1000 or TNUMPROFIT(1)<-1000) and TEXITBARS<30 THEN
SETTRADESIGN(0);
ELSE
SETTRADESIGN(1);
用后台程序可行吗?
怎么改合适?