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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教这个思路如何编写

   

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


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

主题:请教这个思路如何编写

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


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

if holding=0 and a+b+d>2 then  buy();

什么叫根据每日满足的条件,调整至相应的仓位,如果同时不满足这三个条件则空仓;请用一个具体的例子说明下



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


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

抱歉,前笔误

sell(a=1,ss,MARKET);

sell(b=1,ss,MARKET);

sell(d=1,ss,MARKET);


条件描述清楚些。不然不知道你要表达的含义。

加仓的操作,一般都是在符合条件时,直接写buy(条件,90%,market);





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


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

在当前是空仓的状态下,必须满足至少两个条件才入场,并且按相应的仓位进行开仓(比如前一天收盘价3个条件都不满足,今天三个条件都满足了,就直接开90%仓);

上面的条件中,说的空仓,指的是holding=0 . 只要当前没有持仓,就根据当前成立的个数进行开仓,如,今天2个条件成立,就是60%?红色部分没啥意义,只要知道是否

有仓位就行

 

如果是1号开仓了,2、3、4、5、没有任何信号,等到6号时符合条件,这种情况下要怎么处理?
 
[此贴子已经被作者于2017/11/9 14:00:32编辑过]


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


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

我是想知道的是,1号开仓,比如是60%仓位吧,之后2、3、4、5号都不满足任何一个条件的情况下,在6号时怎么认定?是中间不连续的

 

[此贴子已经被作者于2017/11/9 16:40:40编辑过]


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


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

那你这种情况下,“6号相当于是在0持仓的状态下判断”如果说1号是三个条件成立,90%的总资金。

2--6号时都没有成立,6号成立了满足2个条件以上,按总资金的60%开仓,肯定会资金不足。



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


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

如果你的需求中明确是,在出现空仓->开仓后,然后之后的2天都没有条件符合,在第三天符合条件,按空仓处理(总资金的百分之60--90)。
那这种实现不了因为不符合实际。如果是按上一次的开仓情况,例如1号开仓,---2号到5号都没有 ,6号根据1号的仓位情况倒是可以试一下。



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


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

应该是这样的,你看下。有些地方可能要调整。另外,你的条件容易在行情中容易发生跳动,在最后五分钟可能存在信号闪烁造成仓位变化。需要的话,你可能要加限制。

money:=200000;
ss:FLOOR(money/close*0.3/100)*100;//求出设定资金的30%能开的数量。
ma1:=ma(c,5);
ma2:=ma(c,10);
ma3:=ma(c,20);
a:=c>=ma1;
b:=c>=ma2;
d:=c>=ma3;

sum_abd:a+b+d;
ref_abd:ref(SUM_ABD,1);

if T0TOTIME(TIMETOT0(CLOSETIME(0))-300)<=DYNAINFO(207) or (not(ISLASTBAR)) then begin
 

 if holding=0 and SUM_ABD=2 then begin
  BUY(1,SS*2,MARKET);
  
 end
 if holding=0 and SUM_ABD=3 then begin
  BUY(1,SS*3,MARKET);
  
 end
 
 IF HOLDING>0 AND SUM_ABD=0 THEN BEGIN
  SELL(1,holding,MARKET);
 END
 
 
 if  HOLDING>0 AND SUM_ABD<>0 and SUM_ABD-ref_abd>0 THEN BEGIN
  
  BUY(1,SS*(SUM_ABD-ref_abd),MARKET);//加仓情况。当前条件成立数量-昨天的成立数量=需要增加的仓位系数,(有仓位的情况下)
 
 end
 
 
 
 if  HOLDING>0 AND SUM_ABD<>0 and SUM_ABD-ref_abd<0 THEN BEGIN
  
  sell(1,SS*(ref_abd-SUM_ABD),MARKET);//减仓情况。昨天的成立数量-当前条件成立数量=需要减少的仓位系数,(有仓位的情况下)
 
 end

end
仓位:holding,LINETHICK0;



编程无捷径,技巧靠积累。
 回到顶部