10分钟内涨幅超过30点 且 持仓为零 时 开多仓
我写了一个
LL:=LLV(L,10);
BUY(C-LL>30 and holding=0,1,THISCLOSE);
但是不行..不知道哪里有错呢?
谢谢。
比如 现在价格为1000,过了6分钟后涨到了1030,(因为6分钟在10分钟内,)开多仓。
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);
没表达出10分钟内涨10点的意思,表达的是比10分钟内最低价高30点,问题是:不是最低价也可以高30点,比如最低为5,次低为10,当前为100,那么次低的情况就被你的算式排除了
如果再加一个要求
10分钟内涨幅超过30点 且 期间从最高点回落的幅度小于15 时开多仓
比如说:
如果10分钟内1000涨到1020,再从1020跌到1005,然后从1005涨到1030的话,此时不开仓,因为从1020跌到1005幅度不不小于15.
这样的话要怎么写呢?
麻烦您了...
[此贴子已经被作者于2016/4/1 20:35:08编辑过]
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);
你好,
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编辑过]
在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线都运行一遍这一过程
不知道金字塔里怎么写...
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);