欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 信号先有平仓后又开仓的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2652人关注过本帖树形打印复制链接

主题:信号先有平仓后又开仓的问题

帅哥哟,离线,有人找我吗?
单刀赴会
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:102 积分:0 威望:0 精华:0 注册:2017/5/18 22:49:30
信号先有平仓后又开仓的问题  发帖心情 Post By:2017/11/8 9:19:56    Post IP:123.55.3.17[只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:wqeweqw.png
图片点击可在新窗口打开查看
突破横线限价开仓 收盘跌破均线止损为什么会出现开仓BAR的开盘价平仓 代码如下:

KD:=cross(h,h1) ;          //开多条件
PD:=ref(c,1)<ref(ma1,1);          //平多条件
KK:=cross(l1,l) ;          //开空条件
PK:=ref(c,1)>ref(ma1,1);          //平空条件


平空:SELLSHORT(PK AND HOLDING<0,1,LIMITR,OPEN);                  //平空信号
开多:BUY(KD AND HOLDING=0,1,LIMITR,h1+1*MINDIFF);          //开多信号
平多:SELL(PD AND HOLDING>0,1,LIMITR,OPEN);                       //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,LIMITR,l1-1*MINDIFF);


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/11/8 9:29:48    Post IP:180.169.30.6[只看该作者]

你的问题是在为什么会出现平仓信号还是这个价格? 我看你代码里平仓是OPEN限价的,如果你说的是平多的信号。 你这个信号其实在任意当前K是稳定的,因为引用的是上一个K的稳定数据,而且开仓条件和平仓条件之间没有互斥的关系。所以这样的话,开仓和平仓信号同时触发也是可能的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
单刀赴会
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:102 积分:0 威望:0 精华:0 注册:2017/5/18 22:49:30
  发帖心情 Post By:2017/11/8 9:35:07    Post IP:123.55.3.17[只看该作者]

代码是首先有突破开多HOLIDING》0后才只能执行平多,但是却显示的是HOLIDING不大于0的时候就有平多信号了。等于就是先有平多信号才有开多信号,代码该怎么样改才能避免这错误? 还有就是我是突破限价开仓 突破的一瞬间有发单信号才发单了但是价格一回抽信号就消失了 这是那里的毛病?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/11/8 10:12:50    Post IP:180.169.30.6[只看该作者]

1.这个平仓条件要看当时的holding情况,如果在当前K之前你的holding已经大于0 了。这时候触发平仓是很正常的。你把holding输出下,看看前一个K的位置是不是已经是holding>0了。

 

2.你的第二个问题是信号闪烁吧。举个例子 c>ref(c,1)这种判断条件,当前时刻条件成立,下一秒或者2秒,因为c更新,又不符合了。这其实是很正常的。信号会基于最新的计算结果展示。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
单刀赴会
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:102 积分:0 威望:0 精华:0 注册:2017/5/18 22:49:30
  发帖心情 Post By:2017/11/8 10:14:20    Post IP:123.55.3.17[只看该作者]

怎么能价格突破一个价格就发单然后信号又不消失?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/11/8 10:31:49    Post IP:180.169.30.6[只看该作者]

以下是引用单刀赴会在2017/11/8 10:14:20的发言:
怎么能价格突破一个价格就发单然后信号又不消失?

 

除非引用稳定的数据,比如上一个K的数据这种。这样信号会稳定。

信号闪烁只能这样处理了。

 



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
单刀赴会
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:102 积分:0 威望:0 精华:0 注册:2017/5/18 22:49:30
  发帖心情 Post By:2017/11/8 10:36:49    Post IP:123.55.3.17[只看该作者]

我开仓引用的就是上一个稳定的稳定高点 然后价格突破开仓,就是突破的一瞬间有信号,如果价格又下来了就消失。比如 现价大于REF(HHV(H,20),1) 就开仓,怎么写才能才能突破的一瞬间就发单 就算价格收盘又不满足了 信号也不会消失?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/11/8 10:43:58    Post IP:180.169.30.6[只看该作者]

c一直变动,倒是当前K的最低价和最高价会稳定很多。 比如h>REF(HHV(H,20),1)  这样,H刷新只会更高,一旦触发,当前K绝对不可能消失。同理l<REF(llV(l,20),1); 这种也是  因为最低价刷新只会刷更低的价格。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
单刀赴会
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:102 积分:0 威望:0 精华:0 注册:2017/5/18 22:49:30
  发帖心情 Post By:2017/11/8 11:16:15    Post IP:123.55.3.17[只看该作者]

你把holding输出下,看看前一个K的位置是不是已经是holding>0了。怎么输出?

 回到顶部
帅哥哟,离线,有人找我吗?
单刀赴会
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:102 积分:0 威望:0 精华:0 注册:2017/5/18 22:49:30
  发帖心情 Post By:2017/11/8 11:24:05    Post IP:123.55.3.17[只看该作者]


DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  : =EMA(DIFF,9);
MACD1 := 2*(DIFF-DEA), COLORSTICK;
jc:=diff>=dea;
sc:=diff<=dea;
jc1:=BARSLAST(jc) ;
sc1:=BARSLAST(sc);

MA1:MA(C,10);
DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA  :=EMA(DIFF,9);
MACD :=2*(DIFF-DEA);
n1:sumbars(macd>0 and ref(macd<0,1),1);
n2:sumbars(macd<0 and ref(macd>0,1),1);
l1:ref(llv(low,n2),n1);
h1:ref(hhv(HIGH,n1),n2); 

//PARTLINE(jc1,hh,COLORRED);
//PARTLINE(sc1,ll,COLORGREEN);

KD:=cross(h,h1) and jc ;          //开多条件
PD:=ref(c,1)<ref(ma1,1);          //平多条件
KK:=cross(l1,l) and sc;          //开空条件
PK:=ref(c,1)>ref(ma1,1);          //平空条件


平空:SELLSHORT(PK AND HOLDING<0,1,LIMITR,OPEN);                  //平空信号
开多:BUY(KD AND HOLDING=0,1,LIMITR,h1+1*MINDIFF);          //开多信号
平多:SELL(PD AND HOLDING>0,1,LIMITR,OPEN);                       //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,LIMITR,l1-1*MINDIFF);     //开空信号
你看看我的代码 还是会出现先有平仓偷价的问题

图片点击可在新窗口打开查看此主题相关图片如下:123123123123123.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/11/8 11:24:57编辑过]

 回到顶部
总数 11 1 2 下一页