以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  关于系统自带的止盈止损  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=74880)

--  作者:芝麻开门
--  发布时间:2015/1/23 9:11:09
--  关于系统自带的止盈止损
版主好:
1、系统自带的止盈止损的执行时机,是到达触发位置就立即执行,所以,其模式就是轮询,而且是高频,对吗?

2、自带的止盈止损在执行完毕后,是不是客户自编的公式会重新启动一次?就像又回到刚刚打开金字塔、刚刚才开始启动自动交易的那个时候?




--  作者:pyd
--  发布时间:2015/1/23 9:15:31
--  

1,即使止盈止损是要用轮询,高频检测时间间隔短可以及时检测到满足止盈止损条件。

2,“自带的执行完毕自编的重新启动”什么意思?


--  作者:yukizzc
--  发布时间:2015/1/23 9:21:19
--  

1.是的

2. 自带的止盈止损和公式没有关系,是相互独立的


--  作者:芝麻开门
--  发布时间:2015/1/23 9:41:28
--  
我的开仓代码,和平仓是关联的。也就是前面的单不平掉,后面的就开不了新仓。

系统自带的止盈止损,如果是它进行的平仓,那代码是不可能知道已经执行了平仓的,但奇怪的是,我竟然观察到了如下的情形:自带止盈止

损执行完了平仓后,代码竟然能接着就开仓!

我琢磨了很久,如果要让上面的情况发生,唯有自带止盈损执行完毕后,系统立即重启一次客户代码,才能不影响后面的开仓!

--  作者:yukizzc
--  发布时间:2015/1/23 9:44:39
--  
你是图表还是后台?开仓条件是怎么判断前面的平仓是否平了的
--  作者:pyd
--  发布时间:2015/1/23 9:47:36
--  

系统自带的是检测实际持仓,代码里是检测图表持仓,图表有持仓并且满足止盈止损条件就会去平仓,两种不会干扰。

即使系统自带的止损平仓,图表还是有持仓的,还是要等代码里止损平仓才会再开仓。

“损执行完了平仓后,代码竟然能接着就开仓!”这种情况时你输出holding看下图是否有持仓。
[此贴子已经被作者于2015/1/23 9:49:24编辑过]

--  作者:芝麻开门
--  发布时间:2015/1/23 10:02:27
--  
VARIABLE:n=0;

if date<>ref(date,1) then begin
 n:=0;
 end

 
部分代码如下:


if 开单条件1 and n=0  then begin
 buy(1,1,market);
 n:=1;
 end


if h-ENTERPRICE>=止盈 or l-enterprice<=止损 and holding>0  then begin
 sell(1,1,THISCLOSE) ;
 n:=0;    //不经过自带的平仓代码,n是不能再回到0的。如果硬要回到0,那就只有重启代码 
end



--  作者:pyd
--  发布时间:2015/1/23 10:06:16
--  

这个是控制平仓后再开仓的顺序,您现在的疑问是代码没有平仓就开仓了?

有记录下单日志吗?贴下日志


--  作者:yukizzc
--  发布时间:2015/1/23 10:10:14
--  

图表只和图上的条件结果有关系,你自带止盈止损根本没有影响。

另外你variable,你重启代码图上的开仓信号只要有,那么n就是等于1的,要变回0只要平仓信号出现。和你是否重启代码没有任何关系


--  作者:芝麻开门
--  发布时间:2015/1/23 10:19:38
--  
VARIABLE:n=0;

if date<>ref(date,1) then begin
 n:=0;
 end
 
if 开单条件1 and n=0  then begin
 buy(1,1,market);        //我观察到了此处被执行了两次,但下面的平仓代码并没有执行过一次,这怎么解释?说到底,我的问题就在这里。
 n:=1;
 end

if h-ENTERPRICE>=止盈 or l-enterprice<=止损 and holding>0  then begin
 sell(1,1,THISCLOSE) ;
 n:=0;    
end