以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  取第一次开仓价格  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=160258)

--  作者:waimm2020
--  发布时间:2017/12/8 11:35:34
--  取第一次开仓价格
//第一次开多单价格
nn1:barslast(HOLDING=0 AND KDTJ=1);
DD:REF(enterprice,nn1);
//第一次开空单价格
nn2:barslast(HOLDING=0 AND KKTJ=1);
KK:REF(enterprice,nn2);
请教老师,我写的取第一次开仓价格测试不对。帮忙看看问题出现在哪
谢谢!

--  作者:waimm2020
--  发布时间:2017/12/8 11:42:44
--  
也就是说初始建仓多单或者空单的价格,这里的价格可以是满足开仓条件的价格,也可以是实际成交的价格,分别怎么去取值。
--  作者:banzhuan
--  发布时间:2017/12/8 13:10:28
--  
可以用BARSSINCE函数,求得第一次条件成立的位置,然后再用ref找出该位置的价格
--  作者:waimm2020
--  发布时间:2017/12/8 14:05:40
--  
//第一次开多单价格
NN1:BARSSINCE(HOLDING=0 AND CROSS(C,HH20));
DD:REF(HH20,NN1);
//第一次开空单价格
NN2:BARSSINCE(HOLDING=0 AND CROSS(LL20,C));
KK:REF(LL20,NN2);

写出来不对,请老师帮忙看看错误在哪?
正确的写法应该怎么写?
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20171208140508.png
图片点击可在新窗口打开查看

--  作者:banzhuan
--  发布时间:2017/12/8 14:24:31
--  
aa:  BARSSINCE(BUYCON );//取得第一次满足开多条件时的位置
bb:  ref(ENTERPRICE,aa);// 

--  作者:waimm2020
--  发布时间:2017/12/8 14:36:13
--  
BUYCON的意思是满足开多条件?还是说申明一个全局变量?
--  作者:banzhuan
--  发布时间:2017/12/8 14:50:01
--  
抱歉,没说清楚,buycon就相当于您的 CROSS(C,HH20),开多的条件 
--  作者:waimm2020
--  发布时间:2017/12/8 14:50:48
--  
我没有申明全局变量,建立了一个开多条件:
KDTJ:IF(MACD>REF(MACD,1) AND MA1>MA2),1,0);

//第一次开多单价格
NN1:BARSSINCE(KDTJ=1);
DD:REF(ENTERPRICE,NN1);
这样写始终不对。请老师帮助给了正确的写法。谢谢!


--  作者:banzhuan
--  发布时间:2017/12/8 15:14:16
--  
1. 你现在的DD是要取得第一次开仓位置的前一次开仓价了,建议  DD:REF(ENTERPRICE,NN1);中, 把enterprise改成open 或 close;
2.  最新K线上的价格可以按市价来,历史的成交价格实际是取不到的,可以按第二根K的开盘价来或按本根K的收盘价来

--  作者:waimm2020
--  发布时间:2017/12/8 16:08:10
--  
MA1:=MA(C,12); MA2:=MA(C,26);
DIFF : =EMA(C,12) - EMA(C,26);
DEA  : =EMA(DIFF,9);
MACD : =2*(DIFF-DEA), COLORSTICK;
KDTJ:IF(MACD>REF(MACD,1) AND MA1>MA2,1,0);
KKTJ:IF(MACD<REF(MACD,1) AND MA1<MA2,1,0);

NN1:BARSSINCE(KDTJ=1);
DD:REF(C,NN1);
NN2:BARSSINCE(KKTJ=1);
KK:REF(C,NN2);
这是全部代码,怎么都不对。请教老师问题出现在哪?