以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 策略编写求助区 (http://weistock.com/bbs/list.asp?boardid=11) ---- 求助:一个完整的后台交易模型方案 (http://weistock.com/bbs/dispbbs.asp?boardid=11&id=12915) |
-- 作者:小布丁 -- 发布时间:2012/7/13 11:00:27 -- 求助:一个完整的后台交易模型方案 一、已知的多空出入场规则: variable:cc=0; cangwei:=5;//仓位 pp:=barslast(date<>ref(date,1))+1; entime:=pp>1 and pp<245; extime:=pp>260; bcond:=c>ma(c,10); scond:=c<ma(c,10); if bcond or extime and cc<0 then cc:=0; if scond or extime and cc>0 then cc:=0; if bcond and entime and cc=0 then cc:=1; if scond and extime and cc=0 then cc:=-1; cw:=cangwei*cc;//定义每一次交易的开仓手数cw,cw为理论持仓。 二、需要实现的后台交易方案: 1、K线走完模式下提前10秒下单 通过在后台交易指令中加入时间限制开关 [abb:=time0-timetot0(dynainfo(207))<=10;] 实现。后台交易选择固定轮询间隔1秒。 2、委托单历时超过30秒仍未成交自动撤单 [tsubmit(0)、tcancel] 3、实时监控理论持仓与实际买持和实际卖持是否一致。实际买持小于理论多单则补足理论多单。实际买持大于理论多单则平掉多余仓位。实际卖持与理论空单同样处理。[通过新定义中间变量cw与tbuyholdingex/tsellholdingex的差值cangcha是否为零来判断]。 4、在每一次开多和开空之前检测是否有反向单存在,不允许出现锁单的情况,如账户存在反向单则先平掉反向单再发单。 5、将每一次交易的结果发送到指定邮箱123@163.com 6、将每一次交易的结果发送到指定QQ群12345 7、全自动无人值守方案(包括计算机的自动开关机、金字塔软件的自动重启关闭、自动登录多账户、自动启动后台交易、非正常关闭情况下重启软件等)
|
-- 作者:董小球 -- 发布时间:2012/7/13 11:26:17 -- 楼主你的方案里,1、2、3、4、5都可以通过指标语言来实现,6恐怕要通过VBA才能实现,7无法实现 根据你所说的,我给出一个例子,你学习一下里面的方法,就可以实现你的需求 当然,我所给出的例子,为了方便理解,只是一个不考虑是否盈亏的非常简单的MA均线指标,但是这个简单指标里,我把众多交易技巧都覆盖了在里面,只要你方法学会,形式可以做任意的变换~ //MA均线交易指标-后台交易 VARIABLE:A=0; //条件判断 ZH1:\'1000\'; PZ1:\'IF00\'; MA5:MA(CLOSE,5); MA10:MA(CLOSE,10); CONDBUY:=CROSS(MA5,MA10); CONDSELL:=CROSS(MA10,MA5); //控制日内交易次数 IF TTOTALDAYTRADE>=300 THEN EXIT; //开仓和平仓 TBUY(CONDBUY AND TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10,1,LMT,CLOSE,0,ZH1,PZ1 ); TSELL(CONDSELL,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1); //加仓 IF TBUYHOLDINGEX( ZH1,PZ1 ,0 )<10 THEN BEGIN 阳线加仓:TBUY(CLOSE>OPEN,2,LMT,CLOSE,ZH1,PZ1); 阴线加仓:TBUY(CLOSE<OPEN,1,LMT,CLOSE,ZH1,PZ1); END //止损止盈 IF DYNAINFO( 7)-TAVGENTERPRICEEX2(ZH1 ,PZ1 ,0 )>20*MINDIFF THEN BEGIN TSELL(1,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1); END //止损 IF TAVGENTERPRICEEX2(ZH1 ,PZ1 ,0 )-C>10*MINDIFF THEN BEGIN TSELL(1,TBUYHOLDINGEX( ZH1,PZ1 ,0 ),MKT,0,ZH1,PZ1); END //监控未成交单 WCJ:=TREMAINQTY( 1, ZH1,PZ1); IF WCJ<>0 THEN BEGIN A:=WCJ; END //对为成交单撤单,并追单 IF WCJ>0 THEN BEGIN TCANCELEX(1,1,ZH1,PZ1 ); TBUY(WCJ=0,A,MKT,0,ZH1,PZ1); END //监控持仓和资金状况 当前持仓量:=TBUYHOLDINGEX( ZH1,PZ1 ,0 ); 当前可用资金:=TACCOUNT(19); DEBUGOUT(\'当前持仓量%.2f\',当前持仓量 ); DEBUGOUT(\'当前可用资金%.2f\',当前可用资金 ); //收盘前强平 IF CURRENTTIME>=150000 THEN BEGIN TSELL(1,0,MKT,0,ZH1,PZ1); END //其他操作 |
-- 作者:王锋 -- 发布时间:2012/7/13 12:13:50 -- 参考 阿火秘笈 http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=9439 里面的多个问题已经都涉及到了 |
-- 作者:luqi -- 发布时间:2012/7/13 12:25:56 -- 哈哈,这个得找火哥啊,一切都搞定。我一个朋友用服务器交易就是你这样子的。。。。。。。。。。。。。。。。。。 |
-- 作者:小布丁 -- 发布时间:2012/7/13 13:08:15 -- 知道问题,知道解决的思路是一回事,但真正要写起来就没那么容易了。 以上问题,楼主等于没说。
|
-- 作者:阿火 -- 发布时间:2012/7/15 19:19:49 -- 哈,过奖。过奖了 第七点我可没做过哦 其他的几点早已实现并实盘了。 |