以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 策略编写求助区 (http://222.73.7.161/bbs/list.asp?boardid=11) ---- 求助4:这个平空条件如何写? (http://222.73.7.161/bbs/dispbbs.asp?boardid=11&id=6133) |
-- 作者:九府巡按 -- 发布时间:2011/4/13 10:05:57 -- 求助4:这个平空条件如何写? 平空条件(由不同参数产生不同的平空条件,由用户自行选择): 五种平仓方式(五个参数可复选) 1. 自定义强制平仓时间(一个自由参数); 2、在某个时间Q前输r%平仓即买入价*(1-r%)平仓;(两个自由参数) 3、在某个时间Q前赚r%平仓 即买入价*(1+r%)平仓;(两个自由参数) 4、在某个时间Q前跟踪trail止盈(损)r%平仓即买入后达到最高点以下r%平仓(两个自由参数); 5、按公式来平仓。(假设N点满足条件,N点在Q之前),公式形如: (0-1之间的一个数Ж1)乘以 {M点所在1分钟的(开盘价或最高价或最低价或收盘价,共四个参数)}(大于或小于或等于或大于等于或小于等于,共六个参数)(0-1之间的一个数Ж2)乘以 (OMAX之类)(加 或 减 或 乘 或 除共四个参数) (0-1之间的数Ж3)乘以 (OMAX之类)(加 或 减 或 乘 或 除共四个参数) (0-1之间的数Ж4)乘以 (OMAX之类) 上述五种平仓方式共需要10组,每组独立拥有一套参数,执行相似功能,同步运作,互不干扰,即N系列包括(N1,N2, N3…N10);Ж系列包括(Ж101, Ж102, … , Ж110); Q系列包括(Q1,Q2, Q3…Q10);r系列包括(r1,r2, r3…r10);以及相关所需的操作符逻辑符10组 注释: 绿色文字表示这些参数是用户自由选择参数。 OMAX之类是指以下数据的其中一个: 从时间T之前的一段时间(时间B至时间C)内拿到的每一分钟的Open的最大值(OMAX),最小值(OMIN),平均值(OAVE);2、每一分钟的High的最大值(HMAX),最小值 (HMIN),平均值(HAVE);3、每一分钟的Low的最大值(LMAX),最小值(LMIN),平均值(LAVE);4、每一分钟的Close的最 大值(CMAX),最小值(CMIN),平均值(CAVE)。 这些参数的数据需保留备查,并且在每次下单时,将相应的(OMAX, OMIN。。。等内容记录在一个log文件中) [此贴子已经被作者于2011-4-13 10:11:04编辑过]
|
-- 作者:董小球 -- 发布时间:2011/4/13 13:05:38 -- 楼主你的条件我表示看不懂
建议你写成 1条件是什么 2条件是什么 3条件是什么 开多操作的时候需要满足那些条件 同理 开空等操作~
另外你说的什么N点 M点 怎么确认这些点位,你得吧自己的想法量化出来,我们才好写成代码! |
-- 作者:九府巡按 -- 发布时间:2011/4/13 16:07:24 -- 你好,根据你的要求,将条件作了一些修改,增加了一些内容。 交易标的:股指期货 下列用到的时间点,次序如图所示: B--------------------C----------------A----------------E 准备工作: 在开盘以后的任何时间点假设是A点(该时间点A可选),可以拿到之前一段时间内(初始时间可选, 结束时间可选,假定时间B到时间C)每一分钟的Open的最大值(OMAX)(时间A到时间B之间有几个Open,就将这些Open取个最大值,其他同理),最小值(OMIN),平均值(OAVE);2、每一分钟的High的最大值(HMAX),最小值 (HMIN),平均值(HAVE);3、每一分钟的Low的最大值(LMAX),最小值(LMIN),平均值(LAVE);4、每一分钟的Close的最大值(CMAX),最小值(CMIN),平均值(CAVE)。 (这些参数的数据需保留备查,并且在每次下单时,将下单时间点相应的(OMAX, OMIN。。。等内容记录在一个log文件中)) 监控并准备开仓的条件: 开多条件: 时间A到时间E之间的某一分钟如果出现: ( 0-1之间的数) 乘以(该分钟的High 或 Low 或 Open 或 Close) (大于 或 小于 或 等于) (0-1之间的数)乘以 (OMAX之类)(加 或 减 或 乘 或 除) (0-1之间的数)乘以 (OMAX之类)(加 或 减 或 乘 或 除) (0-1之间的数)乘以 (OMAX之类) 以上()内的内容为自由定制内容。(上面表达式形如:0.2*High>0.11*OMAX-0.5*HAVE/0.7*LAVE) 如果A点就满足买入条件,就忽略买人条件,只监控抛空条件。 在时间A到E之间,最多建仓一次,平仓一次。 开空条件:时间A到时间E之间的某一分钟如果出现: ( 0-1之间的数) 乘以(该分钟的High 或 Low 或 Open 或 Close) (大于 或 小于 或 等于) (0-1之间的数)乘以 (OMAX之类)(加 或 减 或 乘 或 除) (0-1之间的数)乘以 (OMAX之类)(加 或 减 或 乘 或 除) (0-1之间的数)乘以 (OMAX之类) 以上()内的内容为自由定制内容。(上面表达式形如:0.4*Low<0.99*OMAX/0.37*HAVE+0.19*CAVE) 如果A点就满足抛空条件,就忽略抛空条件,只监控买人条件。 在时间A到E之间,最多建仓一次,平仓一次。 建仓之后,有五种平仓方式(可复选) 1. 自定义强制平仓时间;(平仓时间可选) 2、在某段时间内输g%平仓(多仓就是买入价*(1-g%)平仓,空仓就是卖出价*(1+g%)平仓);(某段时间的开始和结束可选) 3、在某段时间内赚g%平仓(多仓就是买入价*(1+g%)平仓,空仓就是卖出价*(1-g%)平仓);(某段时间的开始和结束可选) 4、在某段时间内跟踪trail止盈(损)g%平仓(trail止盈(损) 是指买入后达到最高点以下g%,抛空后达到最低点以上g%);(某段时间的开始和结束可选) 5、在某段时间内某一分钟满足形如0.4*Low<0.95*OMAX/0.357*HMIN+0.119*CAVE的条件即平仓。平仓条件完整描述为:(某段时间的开始和结束可选) ( 0-1之间的数) 乘以(High 或 Low 或 Open 或 Close) (大于 或 小于 或 等于) (0-1之间的数)乘以 (OMAX之类)(加 或 减 或 乘 或 除) (0-1之间的数)乘以 (OMAX之类)(加 或 减 或 乘 或 除) (0-1之间的数)乘以 (OMAX之类) 以上()内的内容为自由定制内容。 以上参数需要有10套(每套执行相似功能,同步运作,互不干扰)。即(A包括 A1,A2,...,A10; B包括B1,B2,...,B10; 。。。。依此类推,另外平仓方式也需要有10套配套参数,需要用到OMAX1,OMAX2,HAVE10等配套数据共计120组) [此贴子已经被作者于2011-4-13 16:15:18编辑过]
|
-- 作者:王锋 -- 发布时间:2011/4/13 16:19:20 -- 楼主的要求的过于复杂,无法通过PEL语言完成,只能是VBA以上的策略语言才能完成,并且还要设计复杂的窗体,完整的策略要写完估计至少需要两个月以上的时间。 我们会根据实际情况只给您编一些示范性的策略,但这也需要一些日期,无法全部满足您的要求,如果你希望完整的策略编写服务,可以参考 http://www.7hcn.com/article/46287-1.html 期货中国网的有偿策略编写服务 [此贴子已经被作者于2011-4-13 16:22:10编辑过]
|
-- 作者:九府巡按 -- 发布时间:2011/4/13 16:46:36 -- 以下是引用王锋在2011-4-13 16:19:20的发言: 好的,谢谢
楼主的要求的过于复杂,完整的策略要写完估计至少需要两个月以上的时间。 我们会根据实际情况只给您编一些示范性的策略,无法全部满足您的要求,如果你希望完整的策略编写服务,可以参考 |
-- 作者:guotx2010 -- 发布时间:2011/4/13 22:50:11 -- 看到你的要求了,确实过于复杂,使用VBA都需要花较长时间写出来,估计没有人愿意免费帮你写。 我对VBA写策略比较熟悉,如果你愿意付费,我们可以谈谈。 |
-- 作者:stey -- 发布时间:2011/4/19 15:04:25 -- 我理解的一个思路 { 5、在某段时间内某一分钟满足形如0.4*Low<0.95*OMAX/0.357*HMIN+0.119*CAVE的条件即平仓。平仓条件完整描述为:(某段时间的开始和结束可选) ( 0-1之间的数)VAR1 乘以 VAR2(High 或 low="Low" 或 open="Open" 或 Close) (大于 或 小于 或 等于) VAR3(0-1之间的数)乘以 VAR4(OMAX之类)(加 或 减 或 乘 或 除) VAR5(0-1之间的数)乘以 VAR6(OMAX之类) (加 或 减 或 乘 或 除) VAR7(0-1之间的数)乘以 VAR8(OMAX之类) 以上()内的内容为自由定制内容。 以上参数需要有10套(每套执行相似功能,同步运作,互不干扰)。即(A包括 A1,A2,...,A10; B包括B1,B2,...,B10; 。。。。依此类推,另外平仓方式也需要有10套配套参数,需要用到OMAX1,OMAX2,HAVE10等配套数据共计120组) } INPUT:P1(1,1,4,1){High 或 low="Low" 或 open="Open" 或 Close} ,P2(1,1,5,1){>,=,<,>=,<=,<>} ,P3(1,1,12,1){Open的最大值(OMAX),最小值(OMIN),平均值(OAVE);2、每一分钟的High的最大值(HMAX),最小值 (HMIN),平均值(HAVE);3、每一分钟的Low的最大值(LMAX),最小值(LMIN),平均值(LAVE);4、每一分钟的Close的最 大值(CMAX),最小值(CMIN),平均值(CAVE)} ,P4(1,1,4,1){+,-,*,/} ,P5(1,1,12,1){Open的最大值(OMAX),最小值(OMIN),平均值(OAVE);2、每一分钟的High的最大值(HMAX),最小值 (HMIN),平均值(HAVE);3、每一分钟的Low的最大值(LMAX),最小值(LMIN),平均值(LAVE);4、每一分钟的Close的最 大值(CMAX),最小值(CMIN),平均值(CAVE)} ,P6(1,1,4,1){+,-,*,/} ,P7(1,1,12,1){Open的最大值(OMAX),最小值(OMIN),平均值(OAVE);2、每一分钟的High的最大值(HMAX),最小值 (HMIN),平均值(HAVE);3、每一分钟的Low的最大值(LMAX),最小值(LMIN),平均值(LAVE);4、每一分钟的Close的最 大值(CMAX),最小值(CMIN),平均值(CAVE)} ; VAR1:=0.2; VAR3:=0.95; VAR5:=0.357; VAR7:=0.119; N:=10; IF P1=1 THEN VAR2:=HIGH; IF P1=2 THEN VAR2:=LOW; IF P1=3 THEN VAR2:=OPEN; IF P1=4 THEN VAR2:=CLOSE; VARLEFT:=VAR1*VAR2; IF P3=1 THEN VAR4:=HHV(O,N); IF P3=2 THEN VAR4:=LLV(O,N); IF P3=3 THEN VAR4:=MA(O,N); {...} IF P5=1 THEN VAR6:=HHV(O,N); IF P5=2 THEN VAR6:=LLV(O,N); IF P5=3 THEN VAR6:=MA(O,N); {...} IF P7=1 THEN VAR8:=HHV(O,N); IF P7=2 THEN VAR8:=LLV(O,N); IF P7=3 THEN VAR8:=MA(O,N); {...} IF P4=1 AND P6=1 THEN VARRIGHT:=VAR3*VAR4+VAR5*VAR6+VAR7*VAR8; IF P4=1 AND P6=2 THEN VARRIGHT:=VAR3*VAR4+VAR5*VAR6-VAR7*VAR8; IF P4=1 AND P6=3 THEN VARRIGHT:=VAR3*VAR4+VAR5*VAR6*VAR7*VAR8; IF P4=1 AND P6=4 THEN VARRIGHT:=VAR3*VAR4+VAR5*VAR6/(VAR7*VAR8); IF P4=2 AND P6=1 THEN VARRIGHT:=VAR3*VAR4-VAR5*VAR6+VAR7*VAR8; IF P4=2 AND P6=2 THEN VARRIGHT:=VAR3*VAR4-VAR5*VAR6-VAR7*VAR8; IF P4=2 AND P6=3 THEN VARRIGHT:=VAR3*VAR4-VAR5*VAR6*VAR7*VAR8; IF P4=2 AND P6=4 THEN VARRIGHT:=VAR3*VAR4-VAR5*VAR6/(VAR7*VAR8); IF P4=3 AND P6=1 THEN VARRIGHT:=VAR3*VAR4*VAR5*VAR6+VAR7*VAR8; IF P4=3 AND P6=2 THEN VARRIGHT:=VAR3*VAR4*VAR5*VAR6-VAR7*VAR8; IF P4=3 AND P6=3 THEN VARRIGHT:=VAR3*VAR4*VAR5*VAR6*VAR7*VAR8; IF P4=3 AND P6=4 THEN VARRIGHT:=VAR3*VAR4*VAR5*VAR6/(VAR7*VAR8); IF P4=4 AND P6=1 THEN VARRIGHT:=VAR3*VAR4/(VAR5*VAR6)+VAR7*VAR8; IF P4=4 AND P6=2 THEN VARRIGHT:=VAR3*VAR4/(VAR5*VAR6)-VAR7*VAR8; IF P4=4 AND P6=3 THEN VARRIGHT:=VAR3*VAR4/(VAR5*VAR6)*VAR7*VAR8; IF P4=4 AND P6=4 THEN VARRIGHT:=VAR3*VAR4/(VAR5*VAR6)/(VAR7*VAR8); {>,=,<,>=,<=,<>} IF P2=1 THEN RESULT:=VARLEFT>VARRIGHT; IF P2=2 THEN RESULT:=VARLEFT=VARRIGHT; IF P2=3 THEN RESULT:=VARLEFT [此贴子已经被作者于2011-4-19 15:18:23编辑过]
|
-- 作者:admin -- 发布时间:2011/4/19 15:12:07 -- 连个段落也米有啊 |
-- 作者:stey -- 发布时间:2011/4/19 15:20:45 -- { 5、在某段时间内某一分钟满足形如0.4*Low<0.95*OMAX/0.357*HMIN+0.119*CAVE的条件即平仓。平仓条件完整描述为:(某段时间的开始和结束可选) ( 0-1之间的数)VAR1 乘以 VAR2(High 或 low="Low" 或 open="Open" 或 Close) (大于 或 小于 或 等于) VAR3(0-1之间的数)乘以 VAR4(OMAX之类)(加 或 减 或 乘 或 除) VAR5(0-1之间的数)乘以 VAR6(OMAX之类) (加 或 减 或 乘 或 除) VAR7(0-1之间的数)乘以 VAR8(OMAX之类) 以上()内的内容为自由定制内容。 以上参数需要有10套(每套执行相似功能,同步运作,互不干扰)。即(A包括 A1,A2,...,A10; B包括B1,B2,...,B10; 。。。。依此类推,另外平仓方式也需要有10套配套参数,需要用到OMAX1,OMAX2,HAVE10等配套数据共计120组) } INPUT:P1(1,1,4,1){High 或 low="Low" 或 open="Open" 或 Close} ,P2(1,1,5,1){>,=,<,>=,<=,<>} ,P3(1,1,12,1){Open的最大值(OMAX),最小值(OMIN),平均值(OAVE);2、每一分钟的High的最大值(HMAX),最小值 (HMIN),平均值(HAVE);3、每一分钟的Low的最大值(LMAX),最小值(LMIN),平均值(LAVE);4、每一分钟的Close的最 大值(CMAX),最小值(CMIN),平均值(CAVE)} ,P4(1,1,4,1){+,-,*,/} ,P5(1,1,12,1){Open的最大值(OMAX),最小值(OMIN),平均值(OAVE);2、每一分钟的High的最大值(HMAX),最小值 (HMIN),平均值(HAVE);3、每一分钟的Low的最大值(LMAX),最小值(LMIN),平均值(LAVE);4、每一分钟的Close的最 大值(CMAX),最小值(CMIN),平均值(CAVE)} ,P6(1,1,4,1){+,-,*,/} ,P7(1,1,12,1){Open的最大值(OMAX),最小值(OMIN),平均值(OAVE);2、每一分钟的High的最大值(HMAX),最小值 (HMIN),平均值(HAVE);3、每一分钟的Low的最大值(LMAX),最小值(LMIN),平均值(LAVE);4、每一分钟的Close的最 大值(CMAX),最小值(CMIN),平均值(CAVE)} ; VAR1:=0.2; VAR3:=0.95; VAR5:=0.357; VAR7:=0.119; N:=10; IF P1=1 THEN VAR2:=HIGH; IF P1=2 THEN VAR2:=LOW; IF P1=3 THEN VAR2:=OPEN; IF P1=4 THEN VAR2:=CLOSE; VARLEFT:=VAR1*VAR2; IF P3=1 THEN VAR4:=HHV(O,N); IF P3=2 THEN VAR4:=LLV(O,N); IF P3=3 THEN VAR4:=MA(O,N); {...} IF P5=1 THEN VAR6:=HHV(O,N); IF P5=2 THEN VAR6:=LLV(O,N); IF P5=3 THEN VAR6:=MA(O,N); {...} IF P7=1 THEN VAR8:=HHV(O,N); IF P7=2 THEN VAR8:=LLV(O,N); IF P7=3 THEN VAR8:=MA(O,N); {...} IF P4=1 AND P6=1 THEN VARRIGHT:=VAR3*VAR4+VAR5*VAR6+VAR7*VAR8; IF P4=1 AND P6=2 THEN VARRIGHT:=VAR3*VAR4+VAR5*VAR6-VAR7*VAR8; IF P4=1 AND P6=3 THEN VARRIGHT:=VAR3*VAR4+VAR5*VAR6*VAR7*VAR8; IF P4=1 AND P6=4 THEN VARRIGHT:=VAR3*VAR4+VAR5*VAR6/(VAR7*VAR8); IF P4=2 AND P6=1 THEN VARRIGHT:=VAR3*VAR4-VAR5*VAR6+VAR7*VAR8; IF P4=2 AND P6=2 THEN VARRIGHT:=VAR3*VAR4-VAR5*VAR6-VAR7*VAR8; IF P4=2 AND P6=3 THEN VARRIGHT:=VAR3*VAR4-VAR5*VAR6*VAR7*VAR8; IF P4=2 AND P6=4 THEN VARRIGHT:=VAR3*VAR4-VAR5*VAR6/(VAR7*VAR8); IF P4=3 AND P6=1 THEN VARRIGHT:=VAR3*VAR4*VAR5*VAR6+VAR7*VAR8; IF P4=3 AND P6=2 THEN VARRIGHT:=VAR3*VAR4*VAR5*VAR6-VAR7*VAR8; IF P4=3 AND P6=3 THEN VARRIGHT:=VAR3*VAR4*VAR5*VAR6*VAR7*VAR8; IF P4=3 AND P6=4 THEN VARRIGHT:=VAR3*VAR4*VAR5*VAR6/(VAR7*VAR8); IF P4=4 AND P6=1 THEN VARRIGHT:=VAR3*VAR4/(VAR5*VAR6)+VAR7*VAR8; IF P4=4 AND P6=2 THEN VARRIGHT:=VAR3*VAR4/(VAR5*VAR6)-VAR7*VAR8; IF P4=4 AND P6=3 THEN VARRIGHT:=VAR3*VAR4/(VAR5*VAR6)*VAR7*VAR8; IF P4=4 AND P6=4 THEN VARRIGHT:=VAR3*VAR4/(VAR5*VAR6)/(VAR7*VAR8); {>,=,<,>=,<=,<>} IF P2=1 THEN RESULT:=VARLEFT>VARRIGHT; IF P2=2 THEN RESULT:=VARLEFT=VARRIGHT; IF P2=3 THEN RESULT:=VARLEFT |
-- 作者:stey -- 发布时间:2011/4/19 15:21:23 -- 为什么会没有分段? |