以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  固定止盈为什么会出现这种情况?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=172871)

--  作者:zshgll
--  发布时间:2019/11/5 14:13:33
--  固定止盈为什么会出现这种情况?

//固定止盈-持有多单 
HIGHPRICE:=HHV(HIGH,ENTERBARS+1);
IF HOLDING>0 and HIGHPRICE-ENTERPRICE>15*mindiff and c-ENTERPRICE<=0.7*(HIGHPRICE-ENTERPRICE) THEN BEGIN
多单止盈:SELL(HOLDING>0,0,market);//止盈
止盈后反向开空:buyshort(holding=0,10,market); //开空
END

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

--  作者:FireScript
--  发布时间:2019/11/5 14:29:24
--  
 HIGHPRICE:HHV(HIGH,ENTERBARS+1);

你这个原意是要取 开仓之后的最高价吧。但是操作不慎的可能会导致取到 到目前为止的所有K的最高价。
你把ENTERBARS+1  和HIGHPRICE 都输出看下。

你看下在开仓K上是不是ENTERBARS+1  等于0 了。如果是HIGHPRICE 就会取得一个很大的值。
那么这个部分:
HIGHPRICE-ENTERPRICE>15*mindiff and c-ENTERPRICE<=0.7*(HIGHPRICE-ENTERPRICE)

就很容易成立了。
ENTERBARS+1  改成ENTERBARS+2

[此贴子已经被作者于2019/11/5 14:46:12编辑过]

--  作者:zshgll
--  发布时间:2019/11/5 14:40:28
--  
HIGHPRICE:HHV(HIGH,ENTERBARS+1); 改成 HIGHPRICE:HHV(HIGH,ENTERBARS);

结果差不多,都是重复开平仓
我意思就是开多后的最高值 回落到70%的地方止盈,并且反向开仓

--  作者:FireScript
--  发布时间:2019/11/5 14:45:47
--  
 前面说错了,不是去掉+1  而是改成+2。改成+2之后才能正常取到值。
[此贴子已经被作者于2019/11/5 14:46:47编辑过]

--  作者:zshgll
--  发布时间:2019/11/5 16:32:48
--  
都行
你把ENTERBARS+1  和HIGHPRICE 都输出看下。

请问怎么输出 这些值 在K线图上?

--  作者:FireScript
--  发布时间:2019/11/5 16:36:08
--  
如果修改之后还不行,有可能是代码位置缘故,在开仓语句前还是后 函数返回值是有影响的。
或者你完整的代码发下吧。我直接看代码吧,这样方便。


输出的话,很简单。单独给他们定义一个变量就行了。
z:ENTERBARS+2;

--  作者:zshgll
--  发布时间:2019/11/5 16:46:28
--  
暂时好像可以 +2;

z:ENTERBARS+2;  这样就可以把Z值显示在K线图上吗?
--  作者:FireScript
--  发布时间:2019/11/5 16:54:37
--  
 对的。 这种方式定义的是会输出指标线的。你可以看下。

--  作者:zshgll
--  发布时间:2019/11/5 19:55:04
--  
请问多单止盈后 反向开空,如何避免下一个K线自动开多,小趋势是空方,但是大趋势还是多的 (还是在开多的范围内)
图片点击可在新窗口打开查看此主题相关图片如下:qq拼音截图未命名.jpg
图片点击可在新窗口打开查看

--  作者:zshgll
--  发布时间:2019/11/5 20:22:52
--  
我意思是知道下一个开仓信号出现再开仓,而不是因为在多单信号里下个K线就直接开多