以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [求助]求助范例代码说明  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=144781)

--  作者:michaelyjy
--  发布时间:2016/12/15 11:29:00
--  [求助]求助范例代码说明
以下这段代码是不是有问题?
如果H和L分别代表当前k线的最高价和最低价,OPEN代表当前K线的开盘价,那从时间上来看OPEN实际上是比H和L要先出现,怎么可能以H和L作为信号而以OPEN来成交?

//如果当前是没有持仓的状态
IF POSITION=0 AND BARPOS>T20 AND H>L THEN BEGIN

//建立多头进场条件
LONG := H > T20HI ;
//多头进场
IF LONG THEN BEGIN
MYENTRYPRICE := IF(OPEN>T20HI+MINDIFF ,OPEN ,T20HI+MINDIFF ) ;
BUY( _DEBUG,POSNUM,LIMITR,MYENTRYPRICE);
POSITION := 1 ;
TURTLEUNITS := 1 ;
N := AVGTR ;
BUYORDERTHISBAR := 1;

--  作者:wenarm
--  发布时间:2016/12/15 11:56:00
--  

在当前k线上,开高低收是会变化的,刚生成K的数据,在第一笔数据时,开高低收都会有的,后面再来数据,进行组合。一次类推。最终组成一个周期k.

 

[此贴子已经被作者于2016-12-15 11:56:34编辑过]

--  作者:michaelyjy
--  发布时间:2016/12/15 12:05:10
--  
代码的意思是:如果当前K线的最高价大于 T20HI,则以当前K线的开盘价为基准开仓
请问这么理解有没错?

--  作者:wenarm
--  发布时间:2016/12/15 12:48:33
--  

基本没错,有个位置要纠正,就是如果当前K线的最高价大于 T20HI

且OPEN大于T20HI+MINDIFF的话 则用open作为开仓价。否者用T20HI加上一个变动价位作为开仓价


--  作者:michaelyjy
--  发布时间:2016/12/15 13:27:38
--  
对的。但是最高价是在开盘价之后产生的(跑完一条K线才知道最高价是多少),那为什么下单还用开盘价来作为限价的基准?
比方说15分钟为期限,9:15的K线的最高价是指9:00~9:15这段时间的最高价,假如触发信号那我下单的时点应该是在9:15,那还用9:00的开盘价来下单吗?

--  作者:wenarm
--  发布时间:2016/12/15 13:59:14
--  

1.代码进行信号检测的方式,是根据走完k或者固定时间间隔决定的

2.从历史的角度看,是k线结束以后,这根k的开高低收才会定性

但是,如果是当前K,那么是不是这根k在创建开始,一直在变动,但是其变动是根据分笔的数据,进行组合。(只有开盘价在出来以后是不糊在变化,其他的是会变化的)

如果采用开盘价的报单,当然就是9:00的开盘价了

 


--  作者:michaelyjy
--  发布时间:2016/12/15 14:17:47
--  
那请问报单的时间点是9:15吗?
--  作者:wenarm
--  发布时间:2016/12/15 14:22:47
--  

报单时间是根据软件程序化的运行方式决定的,如果你是走完K的方式,就是在9:15报单(15分钟周期,准确的说是这个k完,下根k生成时报单)

如果是固定时间间隔,在扫描到符合条件就会报单。

[此贴子已经被作者于2016-12-15 14:23:38编辑过]

--  作者:michaelyjy
--  发布时间:2016/12/15 14:26:20
--  
OK。我再确认下,如果是走完K的方式(一般就是用这种方式),那么就是以9:00~9:15的最高价作为信号,在9:15的时候以9:00的开盘价进行报单?是这个逻辑没错吧?
--  作者:wenarm
--  发布时间:2016/12/15 15:01:28
--  

没明白你上面的意思,你上面说的开盘价和最高价之间没有必然关系。这个是根据你自定的价格去处理的。

[此贴子已经被作者于2016-12-15 15:02:33编辑过]