以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- [求助]请老师帮忙写一下加减仓公式,万分感谢! (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=97365) |
|
-- 作者:sy_cbj -- 发布时间:2016/5/13 9:30:13 -- [求助]请老师帮忙写一下加减仓公式,万分感谢! 本人新手下面的加减仓规则实在编不出来,恳请老师帮忙编一下,谢谢! (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 -- 发布时间:2016/5/13 9:49:09 -- A是整数还是有小数的? |
|
-- 作者:sy_cbj -- 发布时间:2016/5/13 9:53:26 -- 带小数的 |
|
-- 作者:jinzhe -- 发布时间:2016/5/13 10:06:17 -- A是有顺序的变化,比如:1,2,3,4这样的顺序。还是不规则的,比如1,4,2,-1,5,这样的无规则顺序变化? |
|
-- 作者:sy_cbj -- 发布时间:2016/5/13 10:09:26 -- 绝大多数时间是有顺序的变化,也有突跳和反向突跳 |
|
-- 作者:jinzhe -- 发布时间:2016/5/13 10:37:53 -- 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 ref(a,1)-a>1 and b<ref(b,1) and c<ref(c,1) then buyshort(1,4,marketr); if a>1 and ref(a,1)-a>1` then sell(1,round(1/ref(a,1)*holding),marketr); if a<-1 and a-ref(a,1)>1 then sellshort(1,round(1/ref(a,1)*holding),marketr); |
|
-- 作者:sy_cbj -- 发布时间:2016/5/13 10:49:27 -- if a>1 and ref(a,1)-a>1` then sell(1,round(1/ref(a,1)*holding),marketr); 老师这是“无法识别的算术表达式”
|
|
-- 作者:jinzhe -- 发布时间:2016/5/13 10:59:03 -- 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 ref(a,1)-a>1 and b<ref(b,1) and c<ref(c,1) then buyshort(1,4,marketr); if a>1 and ref(a,1)-a>1 then sell(1,round(1/a1*holding),marketr); if a<-1 and a-ref(a,1)>1 then sellshort(1,round(1/a1*holding),marketr); |
|
-- 作者:sy_cbj -- 发布时间:2016/5/16 11:18:30 --
老师我用你给编的代码编译后发现有很多信号不对和加减仓量不对 自己尝试修改了下发现还是不对,请老师帮忙再给看看有哪里和上面的要求不相符的吗? 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 -- 发布时间:2016/5/16 13:36:46 -- 正在处理,请耐心等待 |