以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  已经执行的信号因为后面信号闪烁后又消失了,怎么办?  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=158309)

--  作者:qingwa888
--  发布时间:2017/9/27 19:45:56
--  已经执行的信号因为后面信号闪烁后又消失了,怎么办?
如题,金字塔图表程序化交易小周期引用大周期的跨周期引用,因为小周期走完的时候大周期也正好符合信号,所以信号被执行了,后面大周期走完后信号不符合了,原来已经执行的信号在图表交易上消失了,这样直接导致已经开的仓位完全不被图表交易记录。而同样的情况文华财经WH8是把信号保留的,就是保留那一刻符合的信号,即时后面闪烁掉了。有什么办法可以实现跟文华财经一样吗?
--  作者:qq代人发帖
--  发布时间:2017/9/28 9:09:38
--  
这种信号闪烁的跨周期引用,一般会向前偏移引用,不引用当前的周期,而是引用上一个周期,这样信号就能保证是稳定的。
--  作者:qingwa888
--  发布时间:2017/9/28 13:49:20
--  
    谢谢解答!这个偏移引用是知道的,现在想要实现的就是不用偏移引用也可以让已经执行的信号不消失,可以吗?

    就是说即使后面大周期的信号没触发,但已经执行的信号也不消失。这个在文华wh8里的机制就是这样的,它就是:

小周期引用大周期,也不用偏移引用。如小周期5分钟K线引用30分钟k线,都是当根K线,不使用偏移。

1、小周期符合信号,大周期在小周期符合信号的那一刻也符合
2、然后系统就发指令执行开仓,后面大周期不符合了,但已经执行的信号也不消失
3、这个是文华里是这样

    但金字塔的图表交易是让信号消失的,这样会使得已经开仓的仓位得不到程序控制了(程序会认为根本没有开仓)

    有什么办法可以像文华那样吗?还是说金字塔内部机制定了只能这样了?求解,谢谢!
[此贴子已经被作者于2017/9/28 13:50:06编辑过]

--  作者:gxx978
--  发布时间:2017/9/28 14:10:37
--  
在金字塔中,信号闪烁本身就被视为是一种异常现象,由于小周期引用大周期,小周期线走完了,大周期线还没有走完,很容易在大周期走完后,由于数据变化对前面的信号产生影响,所以在金字塔中都建议客户往前偏移一根K线,引用已经固定的数据,避免信号的闪烁。金字塔中没有对消失的信号进行显示,只根据数据计算条件判断信号是否满足,满足了才会显示出来。
--  作者:2017gogogoo
--  发布时间:2017/9/28 22:14:18
--  
以下是引用gxx978在2017/9/28 14:10:37的发言:
在金字塔中,信号闪烁本身就被视为是一种异常现象,由于小周期引用大周期,小周期线走完了,大周期线还没有走完,很容易在大周期走完后,由于数据变化对前面的信号产生影响,所以在金字塔中都建议客户往前偏移一根K线,引用已经固定的数据,避免信号的闪烁。金字塔中没有对消失的信号进行显示,只根据数据计算条件判断信号是否满足,满足了才会显示出来。

金字塔在信号闪烁问题上确实做的不够,除了小周期引用大周期导致的信号闪烁外,在同一根k线上进行平仓,金字塔也无法解决信号闪烁问题,比如这样一个例子,在开仓以后,模型计算一个止损值,当价格触碰这个值的时候立即止损平仓,那么在开仓的同一根K线上就必须要用到最新价c,用到c的话信号就会闪烁,我找了很多办法都无法固定dang根K线上的这个信号!


--  作者:qwer123
--  发布时间:2017/9/29 7:18:52
--  
用金字塔的后台可以方便处理。但信号闪烁的模型你真的敢实盘?这样的模型测试结果都是虚假的,是很多骗子的长用手法。
--  作者:wenarm
--  发布时间:2017/9/29 8:37:02
--  

闪烁这种不是软件平台造成的,是你自己的策略处理上造成的。close本身就是变动的,要是不在信号触发点的位置闪动才是怪事,除非行情持续向一个方向上升或者下降。

这种是需要你自己条件中控制的。

 


--  作者:2017gogogoo
--  发布时间:2017/9/29 11:06:14
--  
以下是引用wenarm在2017/9/29 8:37:02的发言:

闪烁这种不是软件平台造成的,是你自己的策略处理上造成的。close本身就是变动的,要是不在信号触发点的位置闪动才是怪事,除非行情持续向一个方向上升或者下降。

这种是需要你自己条件中控制的。

 

谢谢,我不是说闪烁是软件造成的,我的意思是金字塔在解决信号闪烁问题上做的不够,需要在同一根K线上做止损平仓,这个需求应该不少吧,如果不用close来处理这个止损条件,你有别的方法吗?用到close就一定会闪烁,我尝试了好多种办法都解决不了,包括不在同一根K线上止损,而是用软件的自动止损功能,但它的止损值是固定的,我需要动态计算这个止损值,所以替代不了!

你说是策略处理上造成的,没错,但我想在同一根K线上做止损平仓的需求,你有不用close信号不闪烁的处理方法吗?


--  作者:2017gogogoo
--  发布时间:2017/9/29 11:12:30
--  

这是公式代码,图表1分钟

 

input:ss(2,1,999,1),t(0,0,400000,1),p(0,0,400000,1);
VARIABLE:kzsATR=drawnull,doubleATR=drawnull,threeATR=drawnull,cfT=0,CFP=0,eckcON=0;//eckcON为二次开仓开关。
ATR:=ref(MA(tr,20),1);
abb:=(time0-timetot0(dynainfo(207))<=20) or not(islastbar);
mck:=(h-l)/ma(tr,20);
3G:=if(ref(holding,1)<0,hhv(ref(h,1),2),drawnull);
ll:if(cfT=0 and t<>0 and date[DATACOUNT]=date,t,drawnull),LINETHICK2,colorblue;
lll:if(cfP=0 and p<>0 and date[DATACOUNT]=date,p,drawnull),LINETHICK2,COLORBROWN;


///////////////////收盘和夜盘平仓模块//////////////////////////////////////////////////////////////////////////////
neipan:=STRNCMP(STKNAME,\'螺纹\',4)=0 or STRNCMP(STKNAME,\'矿石\',4)=0 or STRNCMP(STKNAME,\'轧卷\',4)=0 or
  STRNCMP(STKNAME,\'焦炭\',4)=0 or STRNCMP(STKNAME,\'焦煤\',4)=0 or STRNCMP(STKNAME,\'玻璃\',4)=0 or
  STRNCMP(STKNAME,\'动力\',4)=0 or STRNCMP(STKNAME,\'鸡蛋\',4)=0 or STRNCMP(STKNAME,\'硅铁\',4)=0 or
  STRNCMP(STKNAME,\'锰硅\',4)=0 or STRNCMP(STKNAME,\'橡胶\',4)=0 or STRNCMP(STKNAME,\'玉米\',4)=0 or
  STRNCMP(STKNAME,\'淀粉\',4)=0 ; //内盘品种
youse:=STRNCMP(STKNAME,\'沪铜\',4)=0 or STRNCMP(STKNAME,\'沪锌\',4)=0 or STRNCMP(STKNAME,\'沪铝\',4)=0 or
  STRNCMP(STKNAME,\'沪镍\',4)=0 or STRNCMP(STKNAME,\'沪锡\',4)=0 or STRNCMP(STKNAME,\'沪铅\',4)=0 ;
guijin:=STRNCMP(STKNAME,\'白银\',4)=0 or STRNCMP(STKNAME,\'黄金\',4)=0;
huanggongnongchan:=STRNCMP(STKNAME,\'沥青\',4)=0 or STRNCMP(STKNAME,\'豆一\',4)=0 or 
  STRNCMP(STKNAME,\'塑料\',4)=0 or STRNCMP(STKNAME,\'豆粕\',4)=0 or STRNCMP(STKNAME,\'棕榈\',4)=0 or
  STRNCMP(STKNAME,\'聚氯\',4)=0 or STRNCMP(STKNAME,\'豆油\',4)=0 or STRNCMP(STKNAME,\'豆粕\',4)=0 or
  STRNCMP(STKNAME,\'聚丙\',4)=0 or STRNCMP(STKNAME,\'棉花\',4)=0 or STRNCMP(STKNAME,\'新菜\',4)=0 or
  STRNCMP(STKNAME,\'白糖\',4)=0 or STRNCMP(STKNAME,\'P\',1)=0  or STRNCMP(STKNAME,\'甲醇\',4)=0 or
  STRNCMP(STKNAME,\'菜粕\',4)=0 ;

IFclose:=if(time=190000  or (time=050000 and youse) or (time=063000 and guijin) or
  (time=033000 and huanggongnongchan) or (time=030000 and strleft(stkname,4)=\'沥青\'),1,0 );
  
if IFclose and abb and dynainfo(55)<>c and holding<0 then begin
 sellshort(1,holding,marketr);
 kzsATR:=drawnull;
 doubleATR:=drawnull;
 threeATR:=drawnull;
end
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 


//开空
if  l<=ll then begin
 if o>=ll and holding=0 and not(IFclose) then BEGIN 
  buyshort(1,ss,limitr,ll-mindiff*4);
  kzsATR:=ll+max(mindiff*2,ATR);
  doubleATR:=ll-ATR*2;
  threeATR:=ll-ATR*3;
 end
 cfT:=1;
end

if l<=lll then begin
 if  o>=lll and holding=0 and eckcON=1 and not(IFclose) then BEGIN 
  buyshort(1,ss,limitr,lll-mindiff*4);
  kzsATR:=lll+max(mindiff*2,ATR);
  doubleATR:=lll-ATR*2;
  threeATR:=lll-ATR*3;
  cfP:=1;
 end  
 if l<lll then cfP:=1;
end
 

 
//破3根K线最高价平仓
if  holding<0 and h>3G then BEGIN
  SELLSHORT(1,holding,marketr);
 kzsATR:=drawnull;
 doubleATR:=drawnull;
 threeATR:=drawnull;
 eckcON:=1;
end


 
//ATR止损
if holding<0 then begin
 if l<doubleATR then kzsATR:=min(kzsATR,ENTERPRICE+mindiff*4);//突破2倍ATR后下移止损
 if l<threeATR  then kzsATR:=min(kzsATR,ENTERPRICE+mindiff*2);//突破3倍ATR后下移止损
end

CorH:=if(enterbars=0 or kzsATR<ref(kzsATR,1),c,h);
if  CorH>kzsATR and holding<0 then BEGIn
 SELLSHORT(1,holding,marketr); 
 kzsATR:=drawnull;
 doubleATR:=drawnull;
 threeATR:=drawnull;
 eckcON:=1; 
end

 

//脉冲大K线平仓
ccl:=openint<ref(openint,1);
if  holding<0 and ccl and mck>5 and (c-l)>mindiff*2 then begin
 sellshort(1,holding,marketr);
 kzsATR:=drawnull;
 doubleATR:=drawnull;
 threeATR:=drawnull;
end

 

//日内全局变量归零处理
//if time=CLOSETIME(0) then eckcON:=0;

 
止损线:min(3G,kzsatr),colorred;


//调试
2atrr:doubleATR;
3atr:threeatr;
//qqqqq:EXTGBDATA(\'A1\')

[此贴子已经被作者于2017/9/29 11:13:59编辑过]

--  作者:wenarm
--  发布时间:2017/9/29 11:22:00
--  

没办法,在图表中不能做到鱼和熊掌兼得的。你即需要即时止损触发,又需要图表中产生的信号稳定。

 或者你考虑使用后台,后台没有闪烁的概念,触发就是触发,不会牵扯到历史k线信号虚拟的计算。

[此贴子已经被作者于2017/9/29 11:23:08编辑过]