以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://www.weistock.com/bbs/list.asp?boardid=4) ---- [求助]请教公式 (http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=346) |
-- 作者:wzywzy292 -- 发布时间:2009/12/2 23:48:12 -- [求助]请教公式 MA1:=MA(C,5); MA2:=MA(C,10); MA3:=MA(C,20); 开多:ma1>ma2 and ma2>ma3; 平多:ma1<ma2; 开空:ma1<ma2 and ma2<ma3; 平空:ma1>ma2; 我想把上面的代码放入海龟交易法的代码中,可是没有信号显示,我实在弄不出,请帮忙解决,谢谢!!! [此贴子已经被作者于2009-12-3 0:16:14编辑过]
|
-- 作者:admin -- 发布时间:2009/12/3 0:45:15 -- 还是建议你再搞熟了金字塔的公式系统后再去搞海龟算法 |
-- 作者:wzywzy292 -- 发布时间:2009/12/3 23:19:23 -- 请帮我做一个,麻烦了。 |
-- 作者:金字塔 -- 发布时间:2009/12/4 10:20:32 -- 你应先把“代码放入海龟交易法的代码中”的确切含义想清楚,你是想通过多空头均线过滤还是其它意思,要考虑有无抵触、重复 |
-- 作者:wzywzy292 -- 发布时间:2009/12/4 16:24:11 -- 我想要他的资金管理和头寸管理,意思就是我不用海龟的开平仓条件,用我自己的开平仓条件来替换海龟的开平仓条件,再加上海龟的头寸管理,现在我实在编不出,请帮忙解决,先谢谢了。 [此贴子已经被作者于2009-12-4 16:25:41编辑过]
|
-- 作者:bhwhui -- 发布时间:2009/12/4 20:57:53 -- 版主也是为你好,谆谆教诲要牢记于心啊。 不才,花点时间改写了一下,不对之处请指教。另外,你的思路有个漏洞,要注意识别。。。
input:trn(20,5,30),man1(5,2,10),man2(10,5,20),man3(20,10,60); VARIABLE:dayCount=1,PositionCount=1,SellSign=0,dK=0;//加多空标志,1:多,-1:空 0:空仓 N:=MA(TR,trn); ma1:=ma(close,man1); BUYHHV:=ref(c,barslast(ma1>ma2 and ma2>ma3)); sellshortllv:=ref(c,barslast(ma1<ma2<ma3)); //记得这种算法有个漏洞! IF BARPOS>=man3 THEN IF PositionCount=2 THEN BEGIN{如到第二头寸} IF PositionCount=3 THEN BEGIN{如到第三头寸} IF PositionCount=4 THEN BEGIN IF SellSign=True THEN
|
-- 作者:admin -- 发布时间:2009/12/4 21:55:36 -- 感谢楼上的公式,但是这种算法对于初学者来说跟天书一样 |
-- 作者:wzywzy292 -- 发布时间:2009/12/4 22:33:07 -- 谢谢大侠,另外请问是什么漏洞?能告知吗?再谢!!! |
-- 作者:wzywzy292 -- 发布时间:2009/12/4 22:39:54 -- 图上还是显示不出开仓,平仓的信号。而软件自带的海龟就有开平仓信号,谢谢!!! |
-- 作者:wzywzy292 -- 发布时间:2009/12/4 22:49:25 -- VARIABLE:dayCount=1,PositionCount=1,SellSign=0; VARIABLE:EntAndExitSign=1,EntPoint=0,ExitPoint=0; VARIABLE:N=0; MA1:MA(C,5); MA3:MA(C,10); M:=MA(TR,20); BUYHHV:=HHV(H,20); SELLLLV:=LLV(L,10); ss:n,linethick0; IF BARPOS>=21 THEN BEGIN IF BARPOS=21 THEN N:=M; IF DayCount=6 OR BARPOS=21 THEN BEGIN{5天调整N值} N:=(19*N+TR)/20;{计算N值} DayCount:=2; END DayCount:=DayCount+1; EntPoint:=ENTERBARS+1; IF EntPoint=EntAndExitSign THEN BEGIN{说明STOP指令买进头寸成功} PositionCount:=PositionCount+1;{头寸计数} SellSign:=True;{开始以STOP卖出,如果达到指定的价格} END IF PositionCount=1 THEN BEGIN{第一头寸} HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模} 开1:BUY(1,HOW,STOP,BUYHHV);{在20日新高STOP指令买进} END IF PositionCount=2 THEN BEGIN{如到第二头寸} HOW:=CASH(0)*0.01/N;{波动性百分比决定头寸规模} 开2:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第一头寸)+0.5个N以STOP指令买进} END IF PositionCount=3 THEN BEGIN{如到第三头寸} HOW:=CASH(0)*0.01/N; 开3:BUY(1,HOW,STOP,ENTERPRICE+0.5*N);{在上头寸(即第二头寸)+0.5个N以STOP指令买进} END IF PositionCount=4 THEN BEGIN HOW:=CASH(0)*0.01/N; 开4:BUY(1,HOW,STOP,ENTERPRICE+0.5*N); END IF SellSign=True THEN BEGIN ExitPoint:=EXITBARS+1; IF ExitPoint=EntAndExitSign THEN BEGIN {说明卖出成功} PositionCount:=1;{头寸计算复原} SellSign:=False; END IF ENTERPRICE-2*N then SELL(1,100%,STOP,SELLLLV);{退出离盈利头寸} ELSE SELL(1,100%,STOP,ENTERPRICE-2*N);{退出亏损头寸} END END; 上面是系统自带的海龟交易法开多、平多的源码,其开多平多仓条件是: BUYHHV:=HHV(H,20); SELLLLV:=LLV(L,10); 现在我想用下面的开平仓条件代码替换掉海龟交易法中的开多平多仓条件: MA1:=MA(C,5); MA2:=MA(C,10); MA3:=MA(C,20); 开多:ma1>ma2 and ma2>ma3; 平多:ma1<ma2; 开空:ma1<ma2 and ma2<ma3; 平空:ma1>ma2; 应该如何编,请大侠出手相助,谢谢!!! [此贴子已经被作者于2009-12-4 23:05:34编辑过]
|