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


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

   

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


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

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

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


加好友 发短信
等级:黑侠 帖子:618 积分:2624 威望:0 精华:0 注册:2010/4/25 15:17:16
  发帖心情 Post By:2013/1/31 14:13:10 [只看该作者]

定啊火  第19   优化输出指定指标值   太有用了


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


加好友 发短信
等级:新手上路 帖子:97 积分:340 威望:0 精华:0 注册:2011/1/5 9:37:59
  发帖心情 Post By:2013/2/2 19:44:29 [只看该作者]

人才啊

 回到顶部
帅哥哟,离线,有人找我吗?
时间蛰虎
  113楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:406 积分:1996 威望:0 精华:0 注册:2012/4/26 10:28:35
阿火贴真是极品  发帖心情 Post By:2013/2/26 22:16:34 [只看该作者]

这样各策略的开平仓互不干扰是吗?比如我有A,B,C策略后台同时监控同一品种同一资金账户,A,B,C策略的新开仓条件都有THOLDING2=0,如果采用你的方法,那就都可以同时或各自开仓了,互相之间的开平仓都被有效隔开了是吗?

 回到顶部
帅哥哟,离线,有人找我吗?
时间蛰虎
  114楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:406 积分:1996 威望:0 精华:0 注册:2012/4/26 10:28:35
阿火贴都是极品啊!  发帖心情 Post By:2013/2/26 22:21:26 [只看该作者]

如果采用第七例这样各策略的开平仓互不干扰是吗?比如我有A,B,C策略后台同时监控同一品种同一资金账户,A,B,C策略的新开仓条件都有THOLDING2=0,如果采用您的方法,那就都可以同时或各自开仓了,互相之间的开平仓都被有效隔开了是吗?

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


加好友 发短信
等级:论坛游民 帖子:239 积分:746 威望:0 精华:0 注册:2013/2/24 9:55:42
  发帖心情 Post By:2013/2/28 8:44:49 [只看该作者]

阿火老师:我最近刚解除程序交易,只是有一点儿编程的基础,看到您的帖子兴奋不已。先谢谢您!

混合模式我很困惑,我有几个小问题,可能很幼稚,希望您抽一点儿时间帮我解答:

1:《《if holding=0 and cc<0 then buyshort(1,1,limitr,o);》》您前面给的程序里的这个语句,限价交易的O是本周起的开盘价,还是下一K的开盘价?
2:《《……
if holding=0 and cc<0 then buyshort(1,1,limitr,o);

if cc>0 and l<zs then begin

 sell(1,1,limitr,min(o,zs-0.6));

 cc:=0;

end
……》》这两个语句,条件成立后是立即执行,还是走完k执行??

3:混合模式的交易程序图表交易时,我是运行在“固定时间间隔”还是“走完一个K线”?

4:您下面的这个程序是运行在轮询模式还是走完一个K?


{{{{
那么,如果是 K线走完模式和盘中模式并存,怎么做呢?也简单,就是在“开盘价下单语句”后面加入蓝色部分的“盘中下单语句”就行了

如下:

runmode:0;

variable:zs=0,cc=0;

ma5:=ma(c,5);

ma20:=ma(c,20);

entertime:=time>100000 and time<144500;

if holding>0 and cc<=0 then sell(1,1,limitr,o);

if holding<0 and cc>=0 then sellshort(1,1,limitr,o);

if holding=0 and cc>0 then buy(1,1,limitr,o);

if holding=0 and cc<0 then buyshort(1,1,limitr,o);

if cc>0 and l<zs then begin

 sell(1,1,limitr,min(o,zs-0.6));

 cc:=0;

end

if cc<0 and h>zs then begin

 sellshort(1,1,limitr,max(o,zs+0.6));

 cc:=0;

end

if cc>0 and ma5<ma20 then cc:=0;

if cc<0 and ma5>ma20 then cc:=0;

if cc=0 and ma5>ma20 and entertime then begin

 cc:=1;

 zs:=c-10;

end

if cc=0 and ma5<ma20 and entertime then begin

 cc:=-1;

 zs:=c+10;

end

if time>=150000 then begin

 cc:=0;

end

}}}}




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


加好友 发短信
等级:新手上路 帖子:86 积分:167 威望:0 精华:0 注册:2012/9/5 21:00:26
  发帖心情 Post By:2013/3/2 10:45:13 [只看该作者]

很好

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


加好友 发短信
等级:黑侠 帖子:830 积分:911 威望:0 精华:0 注册:2012/9/1 9:19:48
  发帖心情 Post By:2013/3/4 14:36:07 [只看该作者]

阿火,你在搞个,信号出来未走完K线,提前下单的模板吧

 


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


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

以下是引用时间蛰虎在2013-2-26 22:21:26的发言:
如果采用第七例这样各策略的开平仓互不干扰是吗?比如我有A,B,C策略后台同时监控同一品种同一资金账户,A,B,C策略的新开仓条件都有THOLDING2=0,如果采用您的方法,那就都可以同时或各自开仓了,互相之间的开平仓都被有效隔开了是吗?

 

不要用tholding2 ,这是函数取值的是实际持仓

用3个全局变量分别记住3个模型的持仓方向 , 比如 cc1 cc2 cc3

那么,3个模型一起做, 总持仓就是cc:= x1*cc1+x2*cc2+x3*cc3 (其中,x1 x2 x3是每个模型要做的单量)

然后把cc 和实际账户的真实持仓做对比,多退少补

比如 cc=5 ,

实际持仓为 3 ,那么就是开多2手

实际持仓为-1,那么就是平空1手,开多5手

实际持仓为7,那么就是平多2手

……

 

 

原理很简单。大家不要懒,用心理解

[此贴子已经被作者于2013-3-8 9:55:06编辑过]

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


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

延后开仓的写法

最近碰到几个塔友说是为了避免滑点,问延迟开仓的写法, 效果如何先不管,这里只管技术上的实现方法

这里介绍一下图表交易的写法

 

目的:信号成立后不开仓,延后15秒开仓

原理:只有最后一根K线的信号才会执行指令,所以只要处理一下就行了。

很显然,必须用固定轮询模式

 

正常的信号是这样:

ma5:=ma(c,5);

ma10:=ma(c,10);

bbb:=ref(ma5>ma10,1);

sss:=ref(ma5<ma10,1);

if holding>0 and sss then sell(1,1,limitr,o);

if holding=0 and bbb then buy(1,1,limitr,o);

 

处理方法:非最后一根K线,保持原来的信号,最后一根K线,信号延后15秒出现

abb:=not(islastbar) or (islastbar and mod(dynainfo(207),100)>15);// mod(dynainfo(207),100) 这个获取的是tick时间的秒数

ma5:=ma(c,5);

ma10:=ma(c,10);

bbb:=ref(ma5>ma10,1);

sss:=ref(ma5<ma10,1);

//这里要注意的问题是,延后15秒后,信号出现时的价格不是open了,以open下单可能成交不了,所以下单价格要处理下

if holding>0 and sss and abb then begin if islastbar then sell(1,1,market);else sell(1,1,limitr,o);end//最后一根K线market下单(也可改其他价格),否则open下单

if holding=0 and bbb and abb then begin if islastbar then buy(1,1,market);else buy(1,1,limitr,o);end

[此贴子已经被作者于2013-3-8 10:17:20编辑过]

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


加好友 发短信
等级:新手上路 帖子:3 积分:3 威望:0 精华:0 注册:2012/4/28 0:48:31
  发帖心情 Post By:2013/3/12 15:40:13 [只看该作者]

马克

 回到顶部