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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 客服在吗?能用MA10定价开多开空吗?

   

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


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

主题:客服在吗?能用MA10定价开多开空吗?

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/9 21:09:08 [显示全部帖子]

判断这个条件是否成立。单独输出看下条件。另外,and 的优先级高于or.所以下面的代码逻辑上你要分析下是否符合你的想法
ENTERLONG:ma1>ma33 and (MA1<AA1 ) OR ma1>ma33 and(MA1<AA2 ) OR ma1>ma33 and(MA1<AA3 )OR ma1>ma33 and(MA1<AA4 );
EXITLONG:ma1<ma33 and (MA1>AA1 ) OR ma1<ma33 and(MA1>AA2 ) OR ma1<ma33 and(MA1>AA3 )OR ma1<ma33 and(MA1>AA4 );


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/10 8:28:07 [显示全部帖子]

开多条件是:或的关系用or,与的关系用and.

cond1:(MA1<AA1) or (MA1<AA2) or (MA1<AA3) or (MA1<AA4);

cond2:(MA1>AA0) or (MA1>AA1) or (MA1>AA2) or (MA1>AA3);



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/10 16:57:41 [显示全部帖子]

上面使用的是全局变量。个人建议你先学习基本的编程语法,最起码能读懂代码

你先把你的图和你要表达的意思形容一下。

[此贴子已经被作者于2016/3/10 16:59:11编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/10 19:16:51 [显示全部帖子]

MA1:MA(C,1) COLORWHITE, LINEDOT ;
MA33:MA(C,60)COLORGREEN,DOTLINE;

nn2:=sumbars(month<>ref(month,1),2);
ma22:=hhv(h,nn2);

//AA0:drawsl(islastbar,ma22,0,0,2),coloryellow,linedot;
//AA1:drawsl(islastbar,ma22-(ma22*0.05),0,0,2),coloryellow,linedot;
//AA2:drawsl(islastbar,ma22-(ma22*0.1),0,0,2),COLORMAGENTA,linedot;
//AA3:drawsl(islastbar,ma22-(ma22*0.15),0,0,2),coloryellow,linedot;
//AA4:drawsl(islastbar,ma22-(ma22*0.2),0,0,2),COLORMAGENTA,linedot;
//AA5:drawsl(islastbar,ma22-(ma22*0.25),0,0,2),COLORMAGENTA,linedot;//这部分是画线操作,赋值给AA变量没有意义。

cond1:=(MA1<AA2) or (MA1<AA3) or (MA1<AA4) or (MA1<AA5);
cond2:=(MA1>AA1) or (MA1>AA2) or (MA1>AA3) or (MA1>AA4);

SS:=1/close;
tt:=ss;
//没用到,可以不用放在代码里



if cross(aa2,ma1) then buy(1);
if cross(ma1,aa1) then sell(1);
if cross(aa3,ma1) then buy(1);
if cross(aa4,ma1) then buy(1);//函数语法对,是三个参数,buy(条件,手数,下单指令)

你变量AA1,AA2,....AA5.变量并不会因为划线就能获得其位置的价格。

建议你先学习基础的编程语法,在考虑代码编写这些问题。




最直接的方式,你下面直接使用下面的方式直接给aa2赋值.xxxx代表你划线位置的价格。或者你通过算法进行处理获得aa2的值

AA2:xxxx;

if cross(aa2,ma1) then buy(1,1,MARKET);

//if cross(ma1,aa1) then sell(1,1,MARKET);

//if cross(aa3,ma1) then buy(1,1,MARKET);

//if cross(aa4,ma1) then buy(1,1,MARKET);



[此贴子已经被作者于2016/3/10 19:36:47编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/10 22:03:02 [显示全部帖子]

1.你说的需求中,你画线的位置的值,你没说清楚。这个值上面是使用一个变量帮你代替。
2.划线函数只是在图形中显示,并不会有具体数值,(画饼充饥没有用的)
3.你在代码都不懂得情况下,交流起来障碍也多。
4.你必须先学习基础的编程,语法。(没有谁能一口吃个胖子)

AA0:drawsl(islastbar,ma22,0,0,2),coloryellow,linedot;//这个就是一个划线函数。根本不带返回值,赋值没有作用。

//AA2:xxxx;这个xxxx是一个具体数值。例如aa2:3500;

aa2:3500;

if cross(aa2,ma1) then buy(1,1,MARKET);//3500从下方上穿ma1均线。



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/11 8:20:37 [显示全部帖子]

文字表述下你的这个图。详细叙述写这个图描述的需求

[此贴子已经被作者于2016/3/11 8:21:06编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/11 8:47:21 [显示全部帖子]

MA1:MA(C,1) COLORWHITE, LINEDOT ;
MA33:MA(C,60)COLORGREEN,DOTLINE;

nn2:=sumbars(month<>ref(month,1),2);
ma22:hhv(h,nn2);

drawsl(islastbar,ma22,0,0,2),coloryellow,linedot;
drawsl(islastbar,ma22-(ma22*0.05),0,0,2),coloryellow,linedot;
drawsl(islastbar,ma22-(ma22*0.1),0,0,2),COLORMAGENTA,linedot;
drawsl(islastbar,ma22-(ma22*0.15),0,0,2),coloryellow,linedot;
drawsl(islastbar,ma22-(ma22*0.2),0,0,2),COLORMAGENTA,linedot;
drawsl(islastbar,ma22-(ma22*0.25),0,0,2),COLORMAGENTA,linedot;


aa0:ma22;
aa1:ma22-(ma22*0.05);
aa2:ma22-(ma22*0.1);
aa3:ma22-(ma22*0.15);
aa4:ma22-(ma22*0.2);

aa5:ma22-(ma22*0.25);

if cross(aa1,ma1) then buy(条件,手数,MARKET);
if cross(ma1,aa0) then sell(条件,手数,MARKET);
if cross(aa2,ma1) then buy(条件,手数,MARKET);
if cross(ma1,aa2) then sell(条件,手数,MARKET);
if cross(aa3,ma1) then buy(条件,手数,MARKET);



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/11 13:25:33 [显示全部帖子]

你自己使用全局变量控制处理。类似下面的方式。

VARIABLE:num=0;

//AA1开多以后不在开仓

if cross(aa1,ma1) and num=0 then

    begin

       buy(条件,手数,MARKET);
       num:=1;

end

//AA0平仓以后复位全局变量

if cross(ma1,aa0) and num=1 then

    begin

      sell(条件,手数,MARKET);
      num:=0;

end

//这个位置你如果需要限制,按上面的方式进行处理。方法类似上面的

if cross(aa2,ma1) then buy(条件,手数,MARKET);
if cross(ma1,aa2) then sell(条件,手数,MARKET);
if cross(aa3,ma1) then buy(条件,手数,MARKET);


 



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/11 15:33:45 [显示全部帖子]

没法帮你写,你自己的思路都不清楚,你你上面的图和描述只能帮你写成这样。并且,AA2....等等之间的关系是什么。你自己描述不清楚,没法帮你写。

还有就你上面的全局变量作为限制。那是因为你要求A1和A0之间的关系设置的。并不是你每句都这样,说的类似,是说处理方法,不是不断的复制这个条件。

还是建议你先线学习编程语法,理清自己的策略思路。



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2016/3/11 16:08:20 [显示全部帖子]

你关键是没表述清楚,你图中变量的关系。就没法达到你想要的要求。

[此贴子已经被作者于2016/3/11 16:08:41编辑过]


编程无捷径,技巧靠积累。
 回到顶部
总数 13 1 2 下一页