以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助] (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=11648) |
-- 作者:XO仔 -- 发布时间:2012/5/12 15:03:33 -- [求助] 我想借用 股疯 的日内模型平仓条件 搭建我自己的模型 只是自己添加上开仓指令,但我发现 开仓指令 跟 平仓指令一样的话 模型不会反手,假如我想做一个平仓并反手的,该怎么改, 有没有大哥帮忙改一下完善一下我的模型,万分感谢!!! 给出股疯 日内模型如下: //参数设置: INPUT:P(1,0,200,1){建仓量},P1(2,0,50,1){初始止损幅度},P2(5,2,100,1){止盈幅度},P3(30,5,60,5){回撤止盈}; VARIABLE:MAXPROFIT=0,{有仓位时最大获利幅度}VMIN = 090000;{用于隔夜高开或低开时间差} WIN1:=0; WIN2:=0;//止盈、止损、回撤控制 ======================================================== //账户信息: 资产:ASSET,PRECISION0,NOAXIS,COLORFF00FF; 可用现金:CASH(0),PRECISION0,LINETHICK0; 持仓:HOLDING,LINETHICK0; 胜率:PERCENTWIN,LINETHICK0; 交易次数:TOTALTRADE,LINETHICK0; ======================================================== //主程序 ========================================================//信号模块:该模块主用于多空头及平仓信号的量化 {示例如下:开多:当MA10上穿MA20时,发出买入开仓交易指令; 平空:当MA10 上穿MA5时,发出卖出平仓交易指令;平多:当MA5上穿MA10时,发出买入平仓交 易指令;开空:当MA10下穿MA20时,发出开空交易指令;} MA5: MA(CLOSE,5),PRECISION0,; MA10:MA(CLOSE,10),PRECISION0,; MA20:MA(CLOSE,20),PRECISION0,;
开多:=CROSS(MA10,MA20); 平多:=CROSS(MA5,MA10); 开空:=CROSS(MA20,MA10); 平空:=CROSS(MA10,MA5); 交易时间:=TIME>VMIN AND TIME<150000;
======================================================== //图表日内交易模块:
IF HOLDING=0 THEN BEGIN //多头开仓 IF 交易时间 AND 开多 THEN BEGIN BUY(1,P,LIMITR,CLOSE); MAXPROFIT:=0; END
//空头开仓 IF 交易时间 AND 开空 THEN BEGIN BUYSHORT(1,P,LIMITR,CLOSE); MAXPROFIT:=0; END END
IF HOLDING>0 THEN BEGIN //多头平仓 IF 平多 THEN SELL(1,HOLDING,LIMITR,CLOSE);
//多头收盘平仓 IF NOT(交易时间) THEN SELL(1,HOLDING,LIMITR,CLOSE);
//盈亏计算 IF ENTERBARS>0 THEN BEGIN WIN1:=(C-ENTERPRICE)/ENTERPRICE*100; IF WIN1>MAXPROFIT THEN MAXPROFIT:=WIN1; WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100; END
//多头初始浮亏 P1% 止损 IF WIN1<-P1 THEN SELL(1,HOLDING,LIMITR,CLOSE);
//多头利润大于 P2% 止盈 IF WIN1>P2 THEN SELL(1,HOLDING,LIMITR,CLOSE);
//多头获利后回撤 P3%止盈 IF WIN2>P3 AND OPENPROFIT>0 THEN SELL(1,HOLDING,LIMITR,CLOSE); END
IF HOLDING<0 THEN BEGIN
//空头平仓 IF 平空 THEN SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//空头收盘平仓 IF NOT(交易时间) THEN SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//盈亏计算 IF ENTERBARS>0 THEN BEGIN WIN1:=(ENTERPRICE-C)/ENTERPRICE*100; IF WIN1>MAXPROFIT THEN MAXPROFIT:=WIN1; WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100; END
//空头初始浮亏超过 P1% 止损 IF WIN1<-P1 THEN SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//空头利润大于 P2%止盈 IF WIN1>P2 THEN SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//空头回撤 P3% 止盈 IF WIN2>P3 AND OPENPROFIT>0 THEN SELLSHORT(1,HOLDING,LIMITR,CLOSE); END
|
-- 作者:董小球 -- 发布时间:2012/5/14 10:33:36 -- 楼主 你这个代码这么长,让工作人员好好看看再答复你吧! |