以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 策略编写求助区 (http://222.73.7.161/bbs/list.asp?boardid=11) ---- [求助][讨论]股指日内交易 (http://222.73.7.161/bbs/dispbbs.asp?boardid=11&id=9904) |
-- 作者:人生如棋 -- 发布时间:2012/2/10 17:06:21 -- [求助][讨论]股指日内交易 请大侠们我编个程序 股指日内交易 条件以下
1.开仓条件:大于等于开盘价10个点就做多,小于等于10个点就做空;这是开仓条件 2.止损:20个点止损 3.止赢:按时间止赢,15:10分 4.一天就做一次 5.不按k线走完模型,就是最高最低价碰到就开仓,平仓也是同理 |
-- 作者:人生如棋 -- 发布时间:2012/2/10 18:57:36 -- 想了下好像写出来了,我自己把模型发出来。但最后一条, //5.不按k线走完模型,就是最高最低价碰到就开仓,平仓也是同理 请高手解决下。// variable:次数=1; //正常交易过程 //收盘前清仓
|
-- 作者:zg611029 -- 发布时间:2012/2/11 22:59:27 -- 我给过你类似的模型,结果不好。再有为什么要限制交易次数?这在策略设计时是没有道理的。 variable:a1=0; r1:=barslast(day-ref(day,1)<>0); r2:ref(o,r1); r3:r2+10; r4:r2-10; r5:=time>091500 and time<151000; if cross(h,r2) and r5 and holding=0 and a1=0 then begin buy(1,1,limitr,r3) end if cross(r4,l) and r5 and holding=0 and a1=0 then begin buyshort(1,1,limitr,r4); end if holding>0 and cross(r4,l) and r5 then begin sell(1,0,limitr,r4); a1:=1; end if holding<0 and cross(h,r3) and r5 then begin sellshort(1,0,limitr,r3); a1:=1; end if time>=151000 and holding<>0 then begin sell(holding>0,0,thisclose); sellshort(holding<0,0,thisclose); a1:=1; end 以上的代码用于测试,实际交易时用如下代码: variable:a1=0; r1:=barslast(day-ref(day,1)<>0); r2:ref(o,r1); r3:r2+10; r4:r2-10; r5:=time>091500 and time<151000; if cross(c,r2) and r5 and holding=0 and a1=0 then begin buy(1,1,limitr,r3) end if cross(r4,c) and r5 and holding=0 and a1=0 then begin buyshort(1,1,limitr,r4); end if holding>0 and cross(r4,c) and r5 then begin sell(1,0,limitr,r4); a1:=1; end if holding<0 and cross(c,r3) and r5 then begin sellshort(1,0,limitr,r3); a1:=1; end if time>=151000 and holding<>0 then begin sell(holding>0,0,thisclose); sellshort(holding<0,0,thisclose); a1:=1; end 以上代码没有测试,估计不会有大问题, |
-- 作者:zg611029 -- 发布时间:2012/2/11 23:11:02 -- 我理解你限制明天只交易一次,是为了抓单边市。如果这样你用SAR的思路可能更好。试试看吧
|
-- 作者:zg611029 -- 发布时间:2012/2/12 14:57:40 -- 把你的思路改了一下,下面的代码可以实用,长期使用肯定亏不了钱,但也赚不了大钱。建议用5分钟周期
//股指期货自动交易程序 input:n(13,5,30,1); //交易手数: r1:=barslast(day-ref(day,1)<>0); r5:ref(o,r1); if cross(h,r6) then
|
-- 作者:朱饭饭 -- 发布时间:2012/2/15 10:55:10 -- ![]() |
-- 作者:rushtaotao -- 发布时间:2012/2/16 11:00:22 -- 答复 您可以通过每隔几秒钟去检测,是否满足条件,来完成此操作,弊端就是,比如一旦在一根K线中,检测到10次满足,信号会出现10次,但是只有在第一次信号的时候开仓,但是后面9次都不开,除非就是下一根K线的时候再有信号再开了 |
-- 作者:rushtaotao -- 发布时间:2012/2/16 14:00:37 -- 或者您可以用启用交易时自带的一个“走完一根K线”或者“固定间隔时间” |