以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  enterbars貌似只能找到最近一次开多头的位置,寻找最近一次开空头的位置就会出错  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=28010)

--  作者:lucindawuyi
--  发布时间:2012/9/17 17:09:25
--  enterbars貌似只能找到最近一次开多头的位置,寻找最近一次开空头的位置就会出错
 enterbars貌似只能找到最近一次开多头的位置,寻找最近一次开空头的位置就会出错
--  作者:jinzhe
--  发布时间:2012/9/17 17:12:15
--  
能否举例说明,本地测试无问题
--  作者:lucindawuyi
--  发布时间:2012/9/17 17:16:47
--  
//多头止损价位
BuySideStopLoss:=if(holding>0,ref(llv(low,barslast(LaunchingBuySignal=1)-ENTERBARS+1),ENTERBARS),0),noaxis;
是正确的


//空头止损价位
SellSideStopLoss:if(holding<0,ref(hhv(high,barslast(LaunchingSellSignal=1)-ENTERBARS+1),ENTERBARS),0),noaxis;
返回值为0

--  作者:jinzhe
--  发布时间:2012/9/17 17:22:51
--  

e1:enterbars,linethick0;

这个放到公式里面看看对不对


--  作者:lucindawuyi
--  发布时间:2012/9/17 17:25:14
--  
多头是对的,空头的始终为-1
--  作者:lucindawuyi
--  发布时间:2012/9/17 17:37:48
--  
发现错误的地方了 不是ENTERBARS的问题
 
不过问题在于两种写法为什么会结果不一样?
1、初始出错的写法:if holding<0 and close>SellSideStopLoss then sellshort(1,0,market); 我发现在close>SellSideStopLoss条件没有满足时也平仓了
2、修正后的写法:SELLSHORT(holding<0 and close>SellSideStopLoss,0,MARKET); 就对了

请问初始写法究竟错在了哪里?

--  作者:王锋
--  发布时间:2012/9/17 17:54:28
--  

两种写法是一样的,至于为什么会开仓,建议使用一些调试手段来查找原因

参考 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=332 问题4