欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于加仓算法的代码实现问题,请指教

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2278人关注过本帖树形打印复制链接

主题:关于加仓算法的代码实现问题,请指教

帅哥哟,离线,有人找我吗?
lisunnyday
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:81 积分:0 威望:0 精华:0 注册:2016/3/22 16:42:57
关于加仓算法的代码实现问题,请指教  发帖心情 Post By:2016/4/15 16:25:14    Post IP:123.119.42.55[只看该作者]

我想做个加仓算法,思路是:  当加仓条件满足的时候,每次加仓是前两次加仓的和,即用斐波那契的算法来加仓。
代码如何实现呢 ?  
目前我的代码在实现 加仓手数和 计算加仓后的持仓均价都除了问题,所以只能请教金字塔的高手。 


如下是我的代码:

 当期上一次开仓手数:= REF(加仓手数,1);
 
 当前上上次开仓手数:= REF(加仓手数,BARSLAST(加仓条件)+1);

 //加仓模块
if 加仓条件 then 
begin 
    if 当期开仓次数 = 1 then 
    begin 
    加仓手数:= 开仓手数基数+加仓手数;
    end
    else begin 
    //用斐波那契手法计算加仓数量 
     加仓手数:= 当前上上次开仓手数 + 当期上一次开仓手数;
    end
    
BUY(1,加仓手数,LIMITR,CLOSE);         
当期开仓次数:= 当期开仓次数+1;
当期开仓手数:= 加仓手数 + 当期开仓手数;
当期开仓均价:=( CLOSE * 当期开仓手数 + 当期开仓均价 * 当期上一次开仓手数 )/ (当期开仓手数 + 当期上一次开仓手数 );
   
end 

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/4/15 17:14:06    Post IP:58.246.57.26[只看该作者]

hh:=1;
ref(h,h1);
hh:=2;
ref(hh,1);
因为你的改变的加仓手数是在后面修改,所以前面取得的加仓手数不是后面修改的值.看下我上面的例子,两个ref所取到的hh是不同的 ,你要在最后进行一个加仓:=加仓手数
然后去取这个加仓

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2016/4/17 17:23:05    Post IP:116.216.0.83[只看该作者]

variable:num[]=0;
variable:i=1;


if c>o  and i>2 then
BEGIN
buy(1,num[UBOUND(num)-1]+num[UBOUND(num)],marketr);
num:=num[UBOUND(num)-1]+num[UBOUND(num)];
end


if c>o  and i<=2 then
BEGIN
buy(1,1,marketr);
num:=1;
i:=i+1;
end

看下这么使用,手数就是斐波那契排序


 回到顶部