以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=165775) |
-- 作者:陈志海11 -- 发布时间:2018/10/8 13:41:57 -- 平仓条件的书写 我的平常条件是1,以开多为例,开仓进去价格低于开仓前5日最低价为止损价格2有一定盈利后,比如说2%盈利回落到成本时,也止损,3有比较大盈利,后从高点回车10%止盈,这个要怎么写? |
-- 作者:陈志海11 -- 发布时间:2018/10/8 13:43:41 -- 开仓前5日 最低点止损点这个是固定止损,不是移动止损 |
-- 作者:FireScript -- 发布时间:2018/10/8 14:03:54 -- maxProfit:(hhv(h,ENTERBARS+2)-c)/AVGENTERPRICE;//最大盈利 currentProfit:(c-AVGENTERPRICE)/AVGENTERPRICE;//当前盈利 cd1:c<REF(llv(l,5),ENTERBARS+2) and holding>0;//开仓进去价格低于开仓前5日最低价 cd2:maxProfit>=0.02 and currentProfit<=0 and holding>0; //盈利达到2%且回撤到成本价位 cd3:maxProfit>0.1 and (hhv(h,ENTERBARS+2)-c)/hhv(h,ENTERBARS+2)>=0.1 and holding>0;//最大盈利幅度自行设置,这里暂设10% if cd1 or cd2 or cd3 then sell(1,holding,market); |
-- 作者:陈志海11 -- 发布时间:2018/10/8 14:32:47 -- 还是么有高清楚enterbars+2到底是什么意思?能解释一下吗? |
-- 作者:FireScript -- 发布时间:2018/10/8 15:00:26 -- 你直接在图表上输出下enterbars,先搞清楚输出值情况,尤其是在开仓K上的输出值。 enterbars在开仓K返回值是-1,在开仓之后第二个K,返回值是0,第三个K返回值是1. 其实你就理解成有一个错位的在这里就可以了。 假设我要调用开仓K收盘价,ref(c,enterbars) 在上图这个K上相当于 ref(c,0)调用的其实是当前K收盘价。 所以为了正确引用需要做一个偏移。也就是enterbars+1.,来确保正确的引用。 上面那个enterbars+2也是类似的原理。如果是 hhv(l,enterbars),你在开仓K上相当于运算 hhv(l,-1)肯定不对的。在第二个K上就相当于 hhv(l,0),这个含义就完全变了,是统计所有K最低价。因此也要做一个偏移来确保正确的统计。 |
-- 作者:陈志海11 -- 发布时间:2018/10/8 17:08:13 -- 那当调用开仓以来第2跟的值的时候,相当于是hhv(L,2),那么开仓以来第二跟enterbars=1,那么只需要hhv(l,enterbars+1)来表示是吗? |
-- 作者:陈志海11 -- 发布时间:2018/10/8 17:09:54 -- 是不是可以这样理解,当调用周期是开仓当天的时候只需要enterbars+1,当调用周期大于当根k线就是enterbars+2,, |
-- 作者:wenarm -- 发布时间:2018/10/8 19:30:32 -- 你自己写一个只开一次仓的条件,然后去看enterbars函数的返回值,它是从多少开始算的就知道了,至于加多少是受本周期指令和次周期指令的影响。例如 buy(BARPOS=20,1,MARKET);//buy(BARPOS=20,1,MARKETr) aa:enterbars;
|
-- 作者:陈志海11 -- 发布时间:2018/10/9 9:57:02 -- 那在次周期开仓的情况下,开仓的那根k线还回值是-1,开仓以来第一根k还回值是0,第二根k还回值是1,第三根还回值是2,实际上是开仓那根的0,开仓以来第一根所跨的周期数应该是1,第二根所跨的周期数是2,第三根所跨的周期数是3,比如说我要取开仓以来三天(所跨周期数为3)最高价,那么就是这么表示 hhv(h,enterbars+1)的是吗?怎么会表示成hhv(h,enterbars+2)? |
-- 作者:FireScript -- 发布时间:2018/10/9 10:01:51 -- +1 和+2 区别是后者是按照包含开仓K在内进行最大值统计的,前者不保本开仓K本身。 |