以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=171340) |
-- 作者:utada -- 发布时间:2019/7/29 19:36:30 -- 均线策略编写求助 甲、 两组均线交叉策略 <!--[if !supportLists]-->1、<!--[endif]-->长周期10K线 180天与170天交叉,金叉只能做多,死叉只能做空。 <!--[if !supportLists]-->2、<!--[endif]-->短周期10K线20天与19天交叉, 金叉只能做多,死叉只能做空。 <!--[if !supportLists]-->3、<!--[endif]-->长短周期方向一致时,开仓,不一致时平仓(不论谁先出现) <!--[if !supportLists]-->4、<!--[endif]-->止损:开仓价1%止损 <!--[if !supportLists]-->5、<!--[endif]-->止盈:浮盈大于3%时,股价回撤0.5%平仓 乙、 1、短周期10K线20天与19天交叉, 金叉只能做多,死叉只能做空。 2、止损:开仓价1%止损 3、止盈:浮盈大于3%时,股价回撤0.5%平仓 |
-- 作者:FireScript -- 发布时间:2019/7/30 11:12:15 -- 1.“10K线”这是指什么,K线周期? 2.“长短周期方向一致时”这个方向一致是指长短周期都金叉之后? 3.你这个是做期货还是股票的?“股价回撤0.5%平仓”
|
-- 作者:utada -- 发布时间:2019/7/30 14:08:26 -- 1、10‘K线,是指十分钟K线。 2、对 3、这是国内期货。
|
-- 作者:FireScript -- 发布时间:2019/7/30 14:42:53 -- ma180:ma(c,180); ma170:ma(c,170); ma20:ma(c,20); ma19:ma(c,19); kd:ma20<ma19 and ma180<ma170; kk:ma20>ma19 and ma180>ma170; pd:ma20>ma19 or ma180>ma170; pk:ma20<ma19 or ma180<ma170; 平多:sell(holding>0 and pd,holding,market); 开空:buyshort(holding=0 and kk,1,market); 平空:sellshort(holding<0 and pk,holding,market); 开多:buy(holding=0 and kd,1,market); zs:abs(c-ENTERPRICE)/ENTERPRICE>=0.01; if zs then //止损 begin sell(c<ENTERPRICE and holding>0,holding,market); sellshort(c>ENTERPRICE and holding<0,holding,market); end ad:OPENPROFITPER; if OPENPROFITPER>=3 then //3%止盈 begin sell(holding>0,holding,market); sellshort(holding<0,holding,market); end “股价回撤0.5%平仓”这个暂未处理,因为还没明确具体定义。是从什么位置回撤? |
-- 作者:utada -- 发布时间:2019/7/30 15:55:10 -- 浮盈大于3%时,股价回撤0.5%平仓 假设我100元买进,到大过103或者以上,那么价格回撤5毛就平仓。
|
-- 作者:FireScript -- 发布时间:2019/7/30 16:05:36 -- 不是按照最高盈利时候回撤0.5%?是按照开仓价作为基础计算的?这个需要再明确下。 |
-- 作者:utada -- 发布时间:2019/7/31 13:56:28 -- 从某点起,价格下跌(上涨)。达到该点价格的0.5%时 ,平仓。 |
-- 作者:FireScript -- 发布时间:2019/7/31 15:10:39 -- 上面: if OPENPROFITPER>=3 then //3%止盈 begin sell(holding>0,holding,market); sellshort(holding<0,holding,market); end 替换成下面这个 ykds:0.5/100*ENTERPRICE;//回来0.5%对应的价格点数 zdykfd:hhv(OPENPROFITPER,ENTERBARS);zdyk:hhv(OPENPROFIT,ENTERBARS); if zdykfd>=3 and OPENPROFIT-zdyk>=ykds then //3%止盈 begin sell(holding>0,holding,market); sellshort(holding<0,holding,market); end |
-- 作者:utada -- 发布时间:2019/8/1 11:47:14 -- 老师您好,我们以已经开始测试,有些数据要调整,我写了个表格在附件里。有的程序在界面上方有一个表格,参数名,缺省,最小,最大,步长,可以设置的。请您看一下,我表格里的数据能放到这里改吗? 谢谢 上传不了,有没有邮箱可以发送的?
|
-- 作者:FireScript -- 发布时间:2019/8/1 13:24:30 -- 1.可以的。这种参数的使用 需要用input函数的。举例: INPUT:N1(180,1,300,1),N2(170,1,300,1),N3(20,1,300,1),N4(19,1,300,1); ma180:ma(c,180); ma170:ma(c,170); ma20:ma(c,20); ma19:ma(c,19); 具体函数说明如下: INPUT:PNAME1(DFT,MIN,MAX,STEP) PNAME 表示参数名, DFT表示缺省值 MIN 表示最小值,MAX表示最大值 STEP 表示优化步长,除DEFAULT外都可省略 同理,止盈止损的点数一样可以这样处理。把之前代码里面的具体数值替换成参数变量就可以了。 2.周期无法通过参数调整。周期需要直接在图表上操作来切换周期。 3.止盈止损开关这种,可以这样做: INPUT:Iszy(1,0,1,0); 借用这种的止盈的代码: ykds:0.5/100*ENTERPRICE;//回来0.5%对应的价格点数 zdykfd:hhv(OPENPROFITPER,ENTERBARS);zdyk:hhv(OPENPROFIT,ENTERBARS); if zdykfd>=3 and OPENPROFIT-zdyk>=ykds and Iszy then //3%止盈 begin sell(holding>0,holding,market); sellshort(holding<0,holding,market); end 把这个Iszy 作为止盈的一个条件放进去就行了。Iszy默认是1 同理止损需要控制的地方也可以这样做。
|