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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → 阿火秘笈_编写技巧十九(12月5日更新_做参数优化时优化指定指标的方法)

   

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


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

主题:阿火秘笈_编写技巧十九(12月5日更新_做参数优化时优化指定指标的方法)

帅哥哟,离线,有人找我吗?
蔡宛宏
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:129 积分:473 威望:0 精华:0 注册:2011/12/6 14:06:35
  发帖心情 Post By:2012/1/16 16:35:08 [只看该作者]

谢谢楼主分享


 回到顶部
帅哥哟,离线,有人找我吗?
青蚨之美
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:13 积分:45 威望:0 精华:0 注册:2011/12/10 16:41:02
  发帖心情 Post By:2012/1/25 17:22:58 [只看该作者]

以下是引用solarhe2006在2011-12-30 9:45:39的发言:
图片点击可在新窗口打开查看
青蚨之美

,是以前和讯上的青蚨之美吗?如果是,可以加我QQ聊聊994515961.

你的文笔不错,现在也研究程序化了吗

很抱歉,不是。我也看过和讯的,撞名。

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/2/2 8:31:13 [只看该作者]

十、在小周期级别上记录大周期指标的实际走势的方法

这里以1分钟引用3分钟的macd为例,常规方法只能在1分钟K线上显示3分钟K线的macd走势,至于3分钟内部每根1分钟K线的macd走势不知道

方法原理:获取上一根3分钟的diff、dea、macd,然后配合1分钟的CLOSE计算出实际的diff、dea、macd

第一步、首先在macd指标里加入以下2句:

   ema12: ema(c,12),linethick0;
   ema26: ema(c,26),linethick0;

第二步、复制以下代码即可

runmode:1;
em1:=stkindi(stklabel,'macd.ema12',0,17,-1);
em2:=stkindi(stklabel,'macd.ema26',0,17,-1);
ema12:=em1*11/13+c*2/13;
ema26:=25/27* em2 +c*2/27;
diff:ema12-ema26;
dea1:=stkindi(stklabel,'macd.dea',0,17,-1);
dea:dea1*4/5+diff/5;

 

 

十一、日内重新计算指标(macd)的方法,以避免跳空对指标造成的影响。

这里顺带介绍一下日内重新计算指标的方法,这样可以避免跳空对指标造成的影响。

比较难的是macd,kdj之类的,均线之类的简单

这里依然以macd为例

runmode:0;

variable:ema12=c,ema26=c,dea=0;

if day<>ref(day,1) then begin

  ema12:=c;

  ema26:=c;

  dea:=0;

end

ema12:=ema12*11/13+c*2/13;

ema26:=ema26*25/27+c*2/27;

diff:ema12-ema26;

dea:=dea*4/5+diff/5;
dea1:dea;

macd:2*(diff-dea),colorstick;

[此贴子已经被作者于2012-2-2 8:41:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
天狼出击
  24楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:99 积分:309 威望:0 精华:0 注册:2011/3/23 20:52:24
  发帖心情 Post By:2012/2/5 4:02:42 [只看该作者]

 

  请问如何把移动止损写入下面模型中

input:cang1(1,0,10,1),cang2(1,0,10,1);
variable:cc1=0,cc2=0;

hi:=ref(hhv(h,10),1);
lo:=ref(llv(l,10),1);
if cc1>0 and l<lo then begin
 pc:=min(max(holding,0),cang1);
 kc:=cang1-pc;
 if pc>0 then sell(1,pc,limitr,min(o,lo-0.2)-0.6);
 if kc>0 then buyshort(1,kc,limitr,min(o,lo-0.2)-0.6);
 cc1:=0;
end
if cc1<0 and h>hi then begin
 pc:=min(abs(min(holding,0)),cang1);
 kc:=cang1-pc;
 if pc>0 then sellshort(1,pc,limitr,max(o,hi+0.2)+0.6);
 if kc>0 then buy(1,kc,limitr,max(o,hi+0.2)+0.6);
 cc1:=0;
end
if cc1=0 and h>hi then begin
 pc:=min(abs(min(holding,0)),cang1);
 kc:=cang1-pc;
 if pc>0 then sellshort(1,pc,limitr,max(o,hi+0.2)+0.6);
 if kc>0 then buy(1,kc,limitr,max(o,hi+0.2)+0.6);
 cc1:=1;
end
if cc1=0 and l<lo then begin
 pc:=min(max(holding,0),cang1);
 kc:=cang1-pc;
 if pc>0 then sell(1,pc,limitr,min(o,lo-0.2)-0.6);
 if kc>0 then buyshort(1,kc,limitr,min(o,lo-0.2)-0.6);
 cc1:=-1;
end


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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/2/9 10:21:36 [只看该作者]

以下是引用天狼出击在2012-2-5 4:02:42的发言:

 

  请问如何把移动止损写入下面模型中

input:cang1(1,0,10,1),cang2(1,0,10,1);
variable:cc1=0,cc2=0;

hi:=ref(hhv(h,10),1);
lo:=ref(llv(l,10),1);
if cc1>0 and l<lo then begin
 pc:=min(max(holding,0),cang1);
 kc:=cang1-pc;
 if pc>0 then sell(1,pc,limitr,min(o,lo-0.2)-0.6);
 if kc>0 then buyshort(1,kc,limitr,min(o,lo-0.2)-0.6);
 cc1:=0;
end

……

……

以上的方法是把各个模型组合成同一个模型

止损在各个模型中实现


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


加好友 发短信
等级:黑侠 帖子:635 积分:1329 威望:0 精华:0 注册:2010/9/10 23:31:32
  发帖心情 Post By:2012/2/9 22:18:45 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信 BOO
等级:论坛游民 帖子:378 积分:1856 威望:0 精华:0 注册:2010/1/25 18:04:12
  发帖心情 Post By:2012/2/11 19:09:22 [只看该作者]

/////////////////////////////////模型1——10周期反手
hi:=ref(hhv(h,10),1);
lo:=ref(llv(l,10),1);
if cc1>0 and l<lo then begin
 pc:=min(max(holding,0),cang1);
 kc:=cang1-pc;
 if pc>0 then sell(1,pc,limitr,min(o,lo-0.2)-0.6);
 if kc>0 then buyshort(1,kc,limitr,min(o,lo-0.2)-0.6);
 cc1:=0;
end
请问后面的-0.6是什么意思啊?谢谢

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/2/12 19:12:39 [只看该作者]

突破即时下单,所加的超价啊。这样评测才合理

有些人突破不加任何 超价,这样不科学的

 

比如 buy(h>3000,1,limitr,3000);  价格突破3000,最少也是要3000.2吧,怎么能在3000这个位置买到呢?

[此贴子已经被作者于2012-2-13 14:56:37编辑过]

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


加好友 发短信 BOO
等级:论坛游民 帖子:378 积分:1856 威望:0 精华:0 注册:2010/1/25 18:04:12
  发帖心情 Post By:2012/2/13 20:42:22 [只看该作者]

哦。谢谢!

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2012/2/16 12:12:11 [只看该作者]

十二、突破模型信号也会消失的一个例子及其处理方法,大家小心。

 

比如,大家常用的四周法则,一般人都是这样写的

 

//4周转向
hh:=ref(hhv(h,20),1);
ll:=ref(llv(l,20),1);

entertime:=time<=143000;

if h>hh then begin//突破高点,平空做多
 sellshort(1,1,limitr,max(o,hh+0.2)+0.6);
 buy(holding=0 and entertime,1,limitr,max(o,hh+0.2)+0.6);
end

if l<ll then begin
 sell(1,1,limitr,min(o,ll-0.2)-0.6);//突破低点,平多做空
 buyshort(holding=0 and entertime,1,limitr,min(o,ll-0.2)-0.6);
end

if time>=150000 then begin//收盘平仓
 sell(1,1,limitr,o);
 sellshort(1,1,limitr,o);
end

 

咋一看,没啥问题。其实信号也是会消失的,或者出现“才买入,又立马卖出”的情况

比如某根K线,h>hh 和 l<ll 同时成立的时候。而盘后静态来看,是看不出问题的

 

一般模型遵循的写法是先平后开,且要同时注意做多条件和做空条件同时成立时的处理 

以上模型,改写为如下,信号就不会闪烁:

//4周转向
hh:=ref(hhv(h,20),1);
ll:=ref(llv(l,20),1);

entertime:=time<=143000;

if holding<0 and h>hh then begin

 sellshort(1,1,limitr,max(o,hh+0.2)+0.6);//先是平仓

 buy(1,1,limitr,max(o,hh+0.2)+0.6);

 goto skip@;

end

if holding>0 and l<ll then begin

 sell(1,1,limitr,min(o,ll-0.2)-0.6);//先是平仓

 buyshort(1,1,limitr,min(o,ll-0.2)-0.6);

end

skip@;

//注意做多条件和做空条件同时成立的处理方法,这里采用20周期均线向上才做多,向下才做空
if holding=0 and h>hh and ref(c,1)>ref(c,20) and entertime then buy(1,1,limitr,max(o,hh+0.2)+0.6);//后开仓
if holding=0 and l<ll  and ref(c,1)<ref(c,20) and entertime then buyshort(1,1,limitr,min(o,ll-0.2)-0.6);//后开仓
if time>=150000 then begin
 sell(1,1,limitr,o);
 sellshort(1,1,limitr,o);
end

[此贴子已经被作者于2012-2-16 20:31:31编辑过]

 回到顶部
总数 146 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..15