以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 请问怎样引用不同周期上的判断数据 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=424) |
-- 作者:gwdpacific -- 发布时间:2009/12/9 18:48:03 -- 请问怎样引用不同周期上的判断数据 我看了《设计指南》里关于跨周期引用数据的说明,还不能很好领会,我想,引用几条不同的指标线应该没问题,但如果是一条变色线,该怎么跨周期引用呢,就如我写的下面这个程序交易公式,想用于做5分钟周期的交易,当“做空”线变红时可以买多和平空,“做空”线变绿时平多和做空,但是考虑到,当30分钟或60分钟周期指标线的颜色与当前5分钟周期的颜色相反时,按发出的交易信号去做就会亏损或利润很小,不值得去做。那么我怎么把对30或60分钟周期的判断加在里面呢?就是当30或60分钟线为红时,系统才采用5分钟周期指标线变红的信号,或者反过来,同为绿时做空。
拉升力:=(CLOSE-LLV(LOW,28))/(HHV(HIGH,30)-LLV(LOW,36))*0.6*CLOSE; D:=(做空>=REF(做空,1) AND REF(做空,1)<REF(做空,2)); begin if D then if K then
IF TIME=145500 AND THOLDING<0 then end [此贴子已经被作者于2009-12-9 19:06:45编辑过]
|
-- 作者:金字塔 -- 发布时间:2009/12/9 19:29:43 -- 第一步,制作一个名为“变色龙”的指标 拉升力:=(CLOSE-LLV(LOW,28))/(HHV(HIGH,30)-LLV(LOW,36))*0.6*CLOSE; D0:做空>=REF(做空,1),LINETHICK0; 第二步,交易模型为: 拉升力:=(CLOSE-LLV(LOW,28))/(HHV(HIGH,30)-LLV(LOW,36))*0.6*CLOSE; D:=(做空>=REF(做空,1) AND REF(做空,1)<REF(做空,2)); D30:="变色龙.D0#MIN30"; K30:="变色龙.K0#MIN30"; D60:="变色龙.D0#MIN60"; K60:="变色龙.K0#MIN60"; begin if D then if K then
IF TIME=145500 AND THOLDING<0 then end
[此贴子已经被作者于2009-12-9 19:31:05编辑过]
|
-- 作者:gwdpacific -- 发布时间:2009/12/9 19:37:10 -- 非常感谢! 刚接了学舞蹈的女儿回来,一看管理员回复了,还这么仔细严谨,感动! |
-- 作者:gwdpacific -- 发布时间:2009/12/11 1:27:14 -- 请问象这样不用多周期同向来过滤信号,而是加上判断是否逆向持仓的语句是否可行 也就是可能会有不成功的交易,但也会多一些成功的交易,并且及时补救因信号消失而造成了逆向持仓的情况,并且在红线空仓时补上多仓,绿线空仓时补上空仓。如果可行的话,怎么能让检查逆向持仓的动作发生在开仓一个K线后?
第一步,制作一个名为“变色龙”的指标 拉升力:=(CLOSE-LLV(LOW,28))/(HHV(HIGH,30)-LLV(LOW,36))*0.6*CLOSE; D0:做空>=REF(做空,1),LINETHICK0; 第二步,交易模型为: 拉升力:=(CLOSE-LLV(LOW,28))/(HHV(HIGH,30)-LLV(LOW,36))*0.6*CLOSE; D:=(做空>=REF(做空,1) AND REF(做空,1)<REF(做空,2)); D30:="变色龙.D0#MIN30"; K30:="变色龙.K0#MIN30"; D60:="变色龙.D0#MIN60"; K60:="变色龙.K0#MIN60";
多头方向:=多头 AND D30 AND D60; 空头方向:=空头 AND K30 AND K60;
begin if D then
if 空头方向 AND THOLDING>=0 then //若因信号出现又消失造成逆向持多,平多补空 TSELL(空头方向 AND THOLDING>0,1,LMT,C);
if K then begin
if 多头方向 AND THOLDING<=0 then //若因信号出现又消失造成逆向持空,平空补多 TSELLSHORT(多头方向 AND THOLDING<0,1,LMT,C); if TIME=145500 AND THOLDING>0 then IF TIME=145500 AND THOLDING<0 then end
[此贴子已经被作者于2009-12-11 1:31:56编辑过]
|