以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=163862) |
-- 作者:刘哲 -- 发布时间:2018/6/6 8:41:06 -- 策略编写求助 我是金字塔的用户,我有一个想法请老师给编一下。作螺纹钢的。
(1)如果2天线》4天线》6天线并且价格小于3500.买进开仓做多。 (2)如果价格小于20天最低价,卖出所有仓。 (3)如果价格上涨,等到2天线《4天线时卖出所有仓。 (4)每次开仓量的计算:以3500为基准。价格每小于1%开仓1手。(小于2%开仓2手.。。。小于20%开仓20手。)
作空方案相反。 |
-- 作者:fly -- 发布时间:2018/6/7 9:58:36 -- (1)策略运行周期:日K线?还是5分钟K线? (2)如果2天线〉4天线〉6天线,且价格小于3500.买进开仓做多。 开仓数量如何确定呢 条件1:如果价格小于3500时,开仓手数:1手 条件2:如果价格小于3500-3500*1%时,开仓(加仓?)手数:1手 条件3:如果价格小于3500-3500*2%时,开仓(加仓?)手数:2手 。。。。 条件21:如果价格小于3500-3500*20%时,开仓(加仓?)手数:20手 你的条件1是开仓条件 你的条件2到条件21都是要加仓吗?
|
-- 作者:刘哲 -- 发布时间:2018/6/8 15:02:00 -- 策略运行周期:日K线。 (2)如果2天线〉4天线〉6天线,且价格小于3500.买进开仓做多。 开仓数量确定的方法:算算条件满足是的价格,如果是2800,比3500小20%就开20手。 |
-- 作者:fly -- 发布时间:2018/6/8 16:17:00 -- 明白了,那就是只开仓一次,中间再满足条件也不会加仓了。 工作人员将以多仓为例,来为您编写。请您耐心等待
|
-- 作者:pyd -- 发布时间:2018/6/8 17:09:29 -- ma2:=ma(c,2); buy(holding=0 and kd,ss,marketr); //开多
[此贴子已经被作者于2018/6/11 9:00:41编辑过]
|
-- 作者:FireScript -- 发布时间:2018/6/11 14:45:34 -- c_:=(o+c+h+l)/4; ma2_:=(ref(c,1)+c_)/2; ma4_:=(ref(ma(c,3),1)*3+c_)/4; ma6_:=(ref(ma(c,5),1)*5+c_)/6; ma2:=if(ISLASTBAR,ma2_,ma(c,2));//如果是最新K,取ma2_,其他均线类似处理 ma4:=if(ISLASTBAR,ma4_,ma(c,4)); ma6:=if(ISLASTBAR,ma6_,ma(c,6)); //最新K在参与均线计算时,不以变动的C来参与,而是采用"开 高 低 收"的一个均值来减缓C的波动 //历史K取因为不再变动,按照常规方式处理 //以上代码对均线重新做了处理,该思路仅供参考 kd:= ma2>ma4 and ma4>ma6 and c<3500 and holding=0;//开多条件 pd:=(c<llv(l,20) or ma2<ma4 ) and holding>0;//平多条件 kk:=ma2<ma4 and ma4<ma6 and c>3500 and holding=0;//开空条件 pk:=(c>hhv(h,20) or ma2>ma4) and holding<0;//平空条件 ss:floor(((3500-c)/3500)*100);//手数 开多:buy(holding=0 and kd,if(ss=0,1,ss),marketr);//ss值实际可能计算出来是0,因此做个处理,如果是0 ,开仓开一手 平多:sell(holding>0 and pd,holding,marketr); 开空:buyshort(holding=0 and kk,if(ss=0,1,ss),marketr); 平空:sellshort(holding<0 and pk,holding,marketr); |