以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 关于加仓算法的代码实现问题,请指教 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=96350) |
-- 作者:lisunnyday -- 发布时间:2016/4/15 16:25:14 -- 关于加仓算法的代码实现问题,请指教 我想做个加仓算法,思路是: 当加仓条件满足的时候,每次加仓是前两次加仓的和,即用斐波那契的算法来加仓。 代码如何实现呢 ? 目前我的代码在实现 加仓手数和 计算加仓后的持仓均价都除了问题,所以只能请教金字塔的高手。 如下是我的代码: 当期上一次开仓手数:= REF(加仓手数,1); 当前上上次开仓手数:= REF(加仓手数,BARSLAST(加仓条件)+1); //加仓模块 if 加仓条件 then begin if 当期开仓次数 = 1 then begin 加仓手数:= 开仓手数基数+加仓手数; end else begin //用斐波那契手法计算加仓数量 加仓手数:= 当前上上次开仓手数 + 当期上一次开仓手数; end
BUY(1,加仓手数,LIMITR,CLOSE);
当期开仓次数:= 当期开仓次数+1;
当期开仓手数:= 加仓手数 + 当期开仓手数;
当期开仓均价:=( CLOSE * 当期开仓手数 + 当期开仓均价 * 当期上一次开仓手数 )/ (当期开仓手数 + 当期上一次开仓手数 ); end |
-- 作者:yukizzc -- 发布时间:2016/4/15 17:14:06 -- hh:=1;
ref(h,h1); hh:=2; ref(hh,1); 因为你的改变的加仓手数是在后面修改,所以前面取得的加仓手数不是后面修改的值.看下我上面的例子,两个ref所取到的hh是不同的 ,你要在最后进行一个加仓:=加仓手数 然后去取这个加仓
|
-- 作者:yukizzc -- 发布时间:2016/4/17 17:23:05 -- variable:num[]=0;
看下这么使用,手数就是斐波那契排序 |