以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  我想实现亏损一千块后60个k线内不开仓。  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=164758)

--  作者:qq代人发帖
--  发布时间:2018/8/7 9:39:30
--  我想实现亏损一千块后60个k线内不开仓。
我想实现亏损一千块后(包含程序内和系统上设置的止损)60个k线内不开仓。请问这样写对吗?
IF ( NUMPROFIT( 1)<-1000*MINDIFF and EXITBARS<60) THEN 

 SETTRADESIGN(0);
ELSE
  SETTRADESIGN(1);

--  作者:banzhuan
--  发布时间:2018/8/7 10:07:24
--  
可以的。1000*MINDIFF 是1000个最小变动价位,这边不一定是一千块的概念
--  作者:ccwxning
--  发布时间:2018/8/7 10:42:35
--  
那个变动价就是一块。重点不再这。只是我在模拟是发现好像。止损后。还在继续开仓
--  作者:banzhuan
--  发布时间:2018/8/7 11:12:34
--  
是否设置了系统自带的止损止盈功能呢? 说明下具体怎么设置的;方便的话贴下完整代码,工作人员本地核实下
[此贴子已经被作者于2018/8/7 11:13:45编辑过]

--  作者:ccwxning
--  发布时间:2018/8/7 13:24:13
--  
是设置了系统自带的止损止盈功能

改成这样也是不行。
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);


--  作者:ccwxning
--  发布时间:2018/8/7 13:28:07
--  
能帮忙直接把这个代码编译一下吗?我现在就是把这个代码加进去。
--  作者:gxx978
--  发布时间:2018/8/7 14:08:32
--  

1、你是用set2变量来控制开仓的吗,那需要把set2定义为全局变量。例如:variable:set2=1;//设置set2的初始变量为1,当满足亏损条件时,再置为0

2、NUMPROFIT这个函数是基于图表的信号来计算交易盈亏的,在程序中设定的止损不会控制到策略中的开仓条件的。只有触发了信号的平仓后,才会计算盈亏。


--  作者:ccwxning
--  发布时间:2018/8/8 8:27:27
--  
gxx978非常感谢!后来查了相关函数注释,基本上差不多。程序中设定的止损不会控制到策略中的开仓条件的。只有触发了信号的平仓后,才会计算盈亏;程序的止损反而会干扰到设计策略的本意。重新开仓。策略内部NUMPROFIT这个函数确实可行。
请问可以用平仓盈亏TACCOUNT(30)来表达我的策略意图吗?兼顾程序和策略的止损。
可以这样表达亏损一千吗?
  REF(TACCOUNT(30),1)-TACCOUNT(30)>1000

我的目标是:
亏损一千后(包含程序内和系统上设置的止损)60个k线内不开仓

--  作者:gxx978
--  发布时间:2018/8/8 8:44:55
--  

TACCOUNT(30)这个函数只有最新值,无历史值,在图表程序化中是不建议使用此类函数作为开平仓条件的,会引起历史上的信号发生改变。此类函数一般用于后台程序化中。


--  作者:ccwxning
--  发布时间:2018/8/9 14:42:38
--  
 IF (  REF(TACCOUNT(30),1)-TACCOUNT(30)>1000 or TNUMPROFIT(1)<-1000)  and TEXITBARS<30 THEN
SETTRADESIGN(0);
  
ELSE
   SETTRADESIGN(1);


用后台程序可行吗?
怎么改合适?