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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]请老师帮忙写一下加减仓公式,万分感谢!

   

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


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

主题:[求助]请老师帮忙写一下加减仓公式,万分感谢!

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


加好友 发短信
等级:新手上路 帖子:39 积分:0 威望:0 精华:0 注册:2015/3/21 0:52:02
[求助]请老师帮忙写一下加减仓公式,万分感谢!  发帖心情 Post By:2016/5/13 9:30:13    Post IP:115.214.212.194[只看该作者]

本人新手下面的加减仓规则实在编不出来,恳请老师帮忙编一下,谢谢!

(1)开仓加仓:
A>0时A值每增加1(如从〉=1变成〉=2时)
如B往上C往上则开多4手
如B往下C往上或B往上C往下则开多2手
如B往下C往下则开多1手
  直至A>=10时最后一次加仓

A<0时A值每减小1(如从<=-4变成<=-5时)
如B往下C往下则开空4手
如B往上C往下或B往下C往上则开空2手
如B往上C往上则开空1手
  直至A<=-10时最后一次加仓

(2)减仓平仓:
A>1时A值每减小1平仓现有多单持仓的1/(变化之前A值)  【用%表示?】(手数四

舍五入)直至A<=0全平剩余多单

A<-1时A值每增加1平仓现有空单持仓的1/(变化之前A值)  【用%表示?】(手数四

舍五入)直至A>=0时全平剩余空单


举例:
  (持多单时)如从A>=7变成A<=6则减多1/7现有持仓,
  (持空单时)如从A<=-9变成A>=-7则减空(1/9+1/8)现有持仓,
  (持多单时)如从A>=2变成A<=1则减多1/2现有持仓,
  (持多单时)如从A>=1变成A<=0则全平现有剩余多单持仓


A值会有突然大跳:如下一根K线始A值直接变化2或更多(从2直接跳空成-2等)


不知道图表能不能在减仓时用%表示?

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/5/13 9:49:09    Post IP:180.169.30.6[只看该作者]

A是整数还是有小数的?


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:39 积分:0 威望:0 精华:0 注册:2015/3/21 0:52:02
  发帖心情 Post By:2016/5/13 9:53:26    Post IP:115.214.212.194[只看该作者]

带小数的

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/5/13 10:06:17    Post IP:180.169.30.6[只看该作者]

A是有顺序的变化,比如:1,2,3,4这样的顺序。还是不规则的,比如1,4,2,-1,5,这样的无规则顺序变化?


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:39 积分:0 威望:0 精华:0 注册:2015/3/21 0:52:02
  发帖心情 Post By:2016/5/13 10:09:26    Post IP:115.214.212.194[只看该作者]

绝大多数时间是有顺序的变化,也有突跳和反向突跳

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/5/13 10:37:53    Post IP:180.173.43.114[只看该作者]

if a>0 and ref(a>0,1) and a<10 and a-ref(a,1)>1 and b>ref(b,1) and c>ref(c,1) then buY(1,4,marketr);
if a>0 and ref(a>0,1) and a<10 and a-ref(a,1)>1 and ((b>ref(b,1) and c<ref(c,1)) or (c>ref(c,1) and b<ref(b,1))) then buY(1,2,marketr);
if a>0 and ref(a>0,1) and a<10 and a-ref(a,1)>1 and b<ref(b,1) and c<ref(c,1) then buY(1,1,marketr);

if a<0 and ref(a<0,1) and a>-10 and ref(a,1)-a>1 and b<ref(b,1) and c<ref(c,1) then buyshort(1,4,marketr);
if a<0 and ref(a<0,1) and a>-10 and ref(a,1)-a>1 and ((b>ref(b,1) and c<ref(c,1)) or (c>ref(c,1) and b<ref(b,1))) then buyshort(1,2,marketr);
if a<0 and ref(a<0,1) and a>-10 and ref(a,1)-a>1 and b>ref(b,1) and c>ref(c,1) then buyshort(1,1,marketr);

if a>1 and ref(a,1)-a>1` then sell(1,round(1/ref(a,1)*holding),marketr);
if a<=0 and ref(a,1)>0 then sell(1,0,marketr);

if a<-1 and a-ref(a,1)>1 then sellshort(1,round(1/ref(a,1)*holding),marketr);
if a>=0 and ref(a,1)<0 then sellshort(1,0,marketr);



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:39 积分:0 威望:0 精华:0 注册:2015/3/21 0:52:02
  发帖心情 Post By:2016/5/13 10:49:27    Post IP:115.214.212.194[只看该作者]

if a>1 and ref(a,1)-a>1` then sell(1,round(1/ref(a,1)*holding),marketr);
老师这是“无法识别的算术表达式”

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2016/5/13 10:59:03    Post IP:180.169.30.6[只看该作者]

if a>0 and ref(a>0,1) and a<10 and a-ref(a,1)>1 and b>ref(b,1) and c>ref(c,1) then buY(1,4,marketr);
if a>0 and ref(a>0,1) and a<10 and a-ref(a,1)>1 and ((b>ref(b,1) and c<ref(c,1)) or (c>ref(c,1) and b<ref(b,1))) then buY(1,2,marketr);
if a>0 and ref(a>0,1) and a<10 and a-ref(a,1)>1 and b<ref(b,1) and c<ref(c,1) then buY(1,1,marketr);

if a<0 and ref(a<0,1) and a>-10 and ref(a,1)-a>1 and b<ref(b,1) and c<ref(c,1) then buyshort(1,4,marketr);
if a<0 and ref(a<0,1) and a>-10 and ref(a,1)-a>1 and ((b>ref(b,1) and c<ref(c,1)) or (c>ref(c,1) and b<ref(b,1))) then buyshort(1,2,marketr);
if a<0 and ref(a<0,1) and a>-10 and ref(a,1)-a>1 and b>ref(b,1) and c>ref(c,1) then buyshort(1,1,marketr);
a1:=ref(a,1);

if a>1 and ref(a,1)-a>1 then sell(1,round(1/a1*holding),marketr);
if a<=0 and ref(a,1)>0 then sell(1,0,marketr);

if a<-1 and a-ref(a,1)>1 then sellshort(1,round(1/a1*holding),marketr);
if a>=0 and ref(a,1)<0 then sellshort(1,0,marketr);



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:39 积分:0 威望:0 精华:0 注册:2015/3/21 0:52:02
  发帖心情 Post By:2016/5/16 11:18:30    Post IP:115.214.210.128[只看该作者]

(1)开仓加仓:
A>0时A值每增加1(如从〉=1变成〉=2时)
如B往上D往上则开多4手
如B往下D往上或B往上D往下则开多2手
如B往下D往下则开多1手
  直至A>=10时最后一次加仓

A<0时A值每减小1(如从<=-4变成<=-5时)
如B往下D往下则开空4手
如B往上D往下或B往下D往上则开空2手
如B往上D往上则开空1手
  直至A<=-10时最后一次加仓

(2)减仓平仓:
A>1时A值每减小1平仓现有多单持仓的1/(变化之前A值)  【用%表示?】(手数四舍五入)直至A<=0全平剩余多单
A<-1时A值每增加1平仓现有空单持仓的1/(变化之前A值)  【用%表示?】(手数四舍五入)直至A>=0时全平剩余空单
举例:
  (持多单时)如从A>=7变成A<=6则减多1/7现有持仓,
  (持空单时)如从A<=-9变成A>=-7则减空(2/9)现有持仓,
  (持多单时)如从A>=2变成A<=1则减多1/2现有持仓,
  (持多单时)如从A>=1变成A<=0则全平现有剩余多单持仓

A值会有突然大跳:如下一根K线始A值直接变化2或更多(从2直接跳空成-2等)


老师我用你给编的代码编译后发现有很多信号不对和加减仓量不对
自己尝试修改了下发现还是不对,请老师帮忙再给看看有哪里和上面的要求不相符的吗?

if a>=1 and ref(a<=0,1) and a<11 and b>0 and D>0 then buY(1,4*M*intpart(a),marketr);
if a>=1 and ref(a<=0,1) and a<11 and ((b>0 and D<0) or (D>0 and b<0)) then buY(1,2*M*intpart(a),marketr);
if a>=1 and ref(a<=0,1) and a<11 and b<0 and D<0 then buY(1,1*M*intpart(a),marketr);

E:=intpart(a)-intpart(ref(a,1));
if a>=1 and ref(a>0,1) and a<11 and intpart(a)-intpart(ref(a,1))>=1 and b>0 and D>0 then buY(1,4*M*E,marketr);
if a>=1 and ref(a>0,1) and a<11 and intpart(a)-intpart(ref(a,1))>=1 and ((b>0 and D<0) or (D>0 and b<0)) then buY(1,2*M*E,marketr);
if a>=1 and ref(a>0,1) and a<11 and intpart(a)-intpart(ref(a,1))>=1 and b<0 and D<0 then buY(1,1*M*E,marketr);

if a<=-1 and ref(a>=0,1) and a>-11 and b<0 and D<0 then buyshort(1,4*M*intpart(a),marketr);
if a<=-1 and ref(a>=0,1) and a>-11 and ((b>0 and D<0) or (D>0 and b<0)) then buyshort(1,2*M*intpart(a),marketr);
if a<=-1 and ref(a>=0,1) and a>-11 and b>0 and D>0 then buyshort(1,1*M*intpart(a),marketr);

F:=intpart(ref(a,1))-intpart(a);
if a<=-1 and ref(a<0,1) and a>-11 and intpart(ref(a,1))-intpart(a)>=1 and b<0 and D<0 then buyshort(1,4*M*F,marketr);
if a<=-1 and ref(a<0,1) and a>-11 and intpart(ref(a,1))-intpart(a)>=1 and ((b>0 and D<0) or (D>0 and b<0)) then buyshort(1,2*M*F,marketr);
if a<=-1 and ref(a<0,1) and a>-11 and intpart(ref(a,1))-intpart(a)>=1 and b>0 and D>0 then buyshort(1,1*M*F,marketr);

a1:=ref(a,1);
if a>0 and ref(a,1)-a>=1 and a<=9 then sell(1,round(f/intpart(a1)*holding),marketr);
if a<=0 and ref(a,1)>=1 then sell(1,0,marketr);
a1:=ref(a,1);
if a<0 and a-ref(a,1)>=1 and a>=-9 then sellshort(1,round(e/intpart(a1)*holding),marketr);
if a>=0 and ref(a,1)<=-1 then sellshort(1,0,marketr);
[此贴子已经被作者于2016-5-16 11:19:22编辑过]

 回到顶部
美女呀,离线,留言给我吧!
pyd
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:8439 积分:0 威望:0 精华:0 注册:2014/7/14 13:43:36
  发帖心情 Post By:2016/5/16 13:36:46    Post IP:180.169.30.6[只看该作者]

正在处理,请耐心等待

 回到顶部
总数 12 1 2 下一页