以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  求助:如何编写 30分钟内涨幅超过30点 且 持仓为零 时 开多仓  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=95723)

--  作者:amealll
--  发布时间:2016/4/1 1:54:22
--  求助:如何编写 30分钟内涨幅超过30点 且 持仓为零 时 开多仓
10分钟内涨幅超过30点 且 持仓为零 时 开多仓


我写了一个
LL:=LLV(L,10);
BUY(C-LL>30 and holding=0,1,THISCLOSE);

但是不行..不知道哪里有错呢?

谢谢。

--  作者:amealll
--  发布时间:2016/4/1 1:57:11
--  
比如 现在价格为1000,过了6分钟后涨到了1030,(因为6分钟在10分钟内,)开多仓。
--  作者:jinzhe
--  发布时间:2016/4/1 9:26:00
--  

ll:l;

 

for i=1 to 10 do begin

   if c>ll[barpos-i]+30 then goto abc;

end

 

abc@ buy(holding=0,1,marketr);


--  作者:amealll
--  发布时间:2016/4/1 11:41:31
--  
谢谢回答
请问能告诉我一下我写的问题在哪么...

--  作者:jinzhe
--  发布时间:2016/4/1 13:21:15
--  
没表达出10分钟内涨10点的意思,表达的是比10分钟内最低价高30点,问题是:不是最低价也可以高30点,比如最低为5,次低为10,当前为100,那么次低的情况就被你的算式排除了
--  作者:amealll
--  发布时间:2016/4/1 20:34:43
--  
如果再加一个要求

10分钟内涨幅超过30点 且 期间从最高点回落的幅度小于15 时开多仓

比如说:
如果10分钟内1000涨到1020,再从1020跌到1005,然后从1005涨到1030的话,此时不开仓,因为从1020跌到1005幅度不不小于15.

这样的话要怎么写呢?

麻烦您了...
[此贴子已经被作者于2016/4/1 20:35:08编辑过]

--  作者:jinzhe
--  发布时间:2016/4/5 9:06:05
--  
 
10分钟内涨幅超过30点 且 期间从最高点回落的幅度小于15 时开多仓:
if h>ref(c,10)+30 and ref(hhv(h,9),1)-ref(llv(l,9),1)>15 then buy(holding=0,1,marketr);
--  作者:amealll
--  发布时间:2016/4/5 17:40:52
--  
你好,

10分钟内涨幅超过30点 且 期间从最高点回落的幅度小于15 时开多仓:
if h>ref(c,10)+30 and ref(hhv(h,9),1)-ref(llv(l,9),1)>15 then buy(holding=0,1,marketr);

这样是不行的..

比如有一组数据:

1分钟close   4分钟close  5分钟close 
1000            1020          1030

按照我的要求是满足开仓条件的,但是实际上不会开仓。

因为

首先,h>ref(c,10)+30 只是当前 high 与 十分钟前的close 相比,而我需要的是 当前high与过去十分钟的每一分钟的close相比。

您在楼上的回答

ll:l;

 

for i=1 to 10 do begin

   if c>ll[barpos-i]+30 then goto abc;

end

 

abc@ buy(holding=0,1,marketr);



就可以做到这一点。


另外,

ref(hhv(h,9),1)会等于1020(因为开仓前的一根k线就是最高价)而不是我想要的前一高点 
ref(llv(l,9),1)等于1000   1020-1000=20>15
所以不会开仓。



[此贴子已经被作者于2016/4/5 17:42:44编辑过]

--  作者:amealll
--  发布时间:2016/4/5 17:57:54
--  
在python实现条件 期间从最高点回落的幅度小于15 的话,逻辑是这样的:


1 定义一个数量为10的组
2 申明变量wh=0和wl=0
3 high>wh时wh=high且wl=low
4 low<wl时wl=low
5 wh=wh-wl
6 判断wh在组内的十个数据里有没有出现过15以上的数据,如果没有的话再判断其他条件(10分钟内是否涨幅超过30点 和 持仓是否为0)。如果有出现15以上的数据的话此根k线就不会开仓。
7 在每一根k线都运行一遍这一过程

不知道金字塔里怎么写...

--  作者:jinzhe
--  发布时间:2016/4/6 9:00:23
--  

ll:l;

 

for i=1 to 10 do begin

   if c>ll[barpos-i]+30 then goto abc;

end

 

abc@ if c<hhv(h,10)-15 then buy(holding=0,1,marketr);