以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  策略编写求助区  (http://www.weistock.com/bbs/list.asp?boardid=11)
----  求助4:这个平空条件如何写?  (http://www.weistock.com/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的发言:

楼主的要求的过于复杂,完整的策略要写完估计至少需要两个月以上的时间。

我们会根据实际情况只给您编一些示范性的策略,无法全部满足您的要求,如果你希望完整的策略编写服务,可以参考

http://www.7hcn.com/article/46287-1.html

好的,谢谢
--  作者: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=VARRIGHT; IF P2=5 THEN RESULT:=VARLEFT<=VARRIGHT; IF P2=6 THEN RESULT:=VARLEFT<>VARRIGHT; AA:RESULT; 请参考
[此贴子已经被作者于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=VARRIGHT; IF P2=5 THEN RESULT:=VARLEFT<=VARRIGHT; IF P2=6 THEN RESULT:=VARLEFT<>VARRIGHT; AA:RESULT; 请参考
--  作者:stey
--  发布时间:2011/4/19 15:21:23
--  
为什么会没有分段?