以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=171670) |
-- 作者:D -- 发布时间:2019/8/16 0:35:48 -- [求助]后台倒金字塔加仓怎么写? 1 2 4 8 16 按照这个顺序 后台倒金字塔加仓怎么写?
|
-- 作者:FireScript -- 发布时间:2019/8/16 9:15:01 -- 可以把加仓手数单独定义成一个全局变量: GLOBALVARIABLE:ss:=1;
if 加仓条件 then begin tbuy(1,ss,mkt); ss:=if(ss<=8,ss*2,ss); //加仓手数递增,最多不超过16 end |
-- 作者:D -- 发布时间:2019/8/16 10:34:01 -- 没有逐步加上去,是一下子开到17手的,这个怎么回事? |
-- 作者:FireScript -- 发布时间:2019/8/16 10:45:33 -- if 加仓条件 then begin tbuy(1,ss,mkt); ss:=if(ss<=8,ss*2,ss); //加仓手数递增,最多不超过16 end 这个加仓条件必须严格,也就是说这个条件触发了,下单必须是一定会触发的。如果你这里tbuy里面还有单独写一个开仓条件,那可能就会导致ss直接就增加到了最大值。不过你这里增加到了17是怎么回事,是有其他改变手数的操作了吧。 最好可以提供下你加仓部分的代码给我看下。
|
-- 作者:D -- 发布时间:2019/8/16 10:52:06 -- 很简单的开仓条件,就上根k线的阴阳: openlong:=REF(C>O,1); openshort:=REF(C<O,1); //后台下单 if openlong then begin tbuy(1,ss,mkt); ss:=if(ss<=8,ss*2,ss); //加仓手数递增,最多不超过16 end if openshort then begin tbuy(1,ss,mkt); ss:=if(ss<=8,ss*2,ss); //加仓手数递增,最多不超过16 end |
-- 作者:FireScript -- 发布时间:2019/8/16 11:23:31 -- 那这样吧。 GLOBALVARIABLE:ss:=1; openlong:=REF(C>O,1); openshort:=REF(C<O,1); //后台下单 if openlong then begin tbuy(1,ss,mkt); ss:=if(tENTERVOL<=8,tENTERVOL*2,16); //加仓手数递增,最多不超过16 end if openshort then begin tbuy(1,ss,mkt); ss:=if(tENTERVOL<=8,tENTERVOL*2,16); //加仓手数递增,最多不超过16 end |
-- 作者:D -- 发布时间:2019/8/16 13:53:22 -- 问题如下: 1,从2手开始不正确 2,最高加仓到46手,不是16手
|
-- 作者:FireScript -- 发布时间:2019/8/16 14:03:37 -- 我修改后的是从1手开始的。你可以再确认下。就是6楼的那个代码。 2.ss:=if(tENTERVOL<=23,tENTERVOL*2,16); //加仓手数递增,最多不超过16 这里改成23即可。
|