以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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=139371)

--  作者:施季礼茨
--  发布时间:2016/9/8 22:26:34
--  开仓触发价的设置
程序化开仓条件请教:逐K线下,原来写的是BUYSHORT (开空 and holding=0,1,LIMITR,(REF(LOW,1) -1)),需要市价触及(ref(LOW,1)-1))才以该价或该价出现后的市价成交(暂不考虑复杂的追价等),该怎么实现呢?LIMITR改为stop么?
另外查询STOP“一般用在测试交易策略,一般不用在图表的自动交易中”;那么实盘后台应该怎么写呢?

--  作者:pyd
--  发布时间:2016/9/9 8:53:09
--  

意思是当价格达到上根最低价是市价下单吗?写法

ll:ref(low,1);

buyshort(c=ll,1,market);


--  作者:施季礼茨
--  发布时间:2016/9/9 12:01:29
--  
逐K线模式下,本K线触及上K线低L-0.5则市价下卖单,这时K线没走完啊
--  作者:pyd
--  发布时间:2016/9/9 12:28:21
--  

ll:ref(low,1)-0.5;

buyshort(c=ll,1,market);

c在k线没走完是表示最新价


--  作者:施季礼茨
--  发布时间:2016/9/17 23:27:04
--  

您提到“ll:ref(low,1);

buyshort(c=ll,1,market);”


已改成BUYSHORT (开空 and holding=0 AND c<=(REF(LOW,1) -REF(close,1)*1.5/10000),1,MARKETR);
根据函数解释,测评:1,如果用MARKET是按次周期开盘价;2,按MARKETR是按本周期收盘价。按这样测评实际都是亏损的;我只能用LIMITR测评才能接近预期。
我的实际要求是本周期突破上周期的+-万分之1.5价位则开仓,实际是条件单,工作人员已经一再对我说只有大连可接受,参见我在http://www.weistock.com/bbs/dispbbs.asp?BoardID=2&ID=71496&replyID=&skin=1
的互动,
我还是不明白您说“c在k线没走完是表示最新价”的含义,这里需要引入“走完k线+固定轮询混合模式”么?

简单的方法,我应该用几个交易所的实盘找便宜品种测一下,找跳动大的就明白了,但是如果不测呢?

--  作者:wenarm
--  发布时间:2016/9/18 8:20:14
--  

close在最新的k上面,就是当前品种的最新的行情数据。

MARKET和MARKETR只是在图表上显示的位置由区别,在实盘中效果是一样的

 


--  作者:施季礼茨
--  发布时间:2016/9/18 17:25:41
--  
谢谢
--  作者:施季礼茨
--  发布时间:2016/9/23 1:23:04
--  还是不明白,需求很简单:突破(触发)最新价开仓

根据模拟盘观察,都是在K线走完后下单的,逐K模式,强调下我的语句判断是上根线满足开多或开空条件(比如某种CROSS),则下根线没走完但触发了比上根线高点或低点再+-2个点的价位,就以市价开仓;

现在的语句是并列条件,是不是改成IF THEN 才合理,

BUY(开多 and holding=0 and c>=(REF(high,1) + 2),1,MARKETR )

 
BUYSHORT ( 开空 AND holding=0 AND c<=(REF(LOW,1) -2),1,MARKETR);

 

这个“最新价”是K线走完才确定的么,还是要引入轮询?我一般在5K周期以上,

 
a:=REF(high,1);
b:=REF(LOW,1);

SELLSHORT(PK,0,THISCLOSE);
SELL(PD,0,THISCLOSE);

if  zxk and KK and holding=0 then begin

BUYSHORT ( c<=(b -2),1,MARKET);

end

if   zxd and Kd and holding=0,then  begin

BUY( c>=(a + 2),1,MARKET );

end

 

这样写测试通过,但对不对?先平后开的排列对么?

 


--  作者:wenarm
--  发布时间:2016/9/23 8:47:35
--  

1.if then 语句可以用来作为分支模块,你的这段代码其实没有必要。看个人使用习惯。

2.最近价就是当前的close。至于你要走完k,和固定时间间隔,是你自己决定通过什么样开仓方式检测信号,

3.你策略中不要使用中文的输入法,黄色不应该有的,红色是中文的

a:=REF(high,1);

b:=REF(LOW,1);

SELLSHORT(PK,0,THISCLOSE);
SELL(PD,0,THISCLOSE);

if  zxk and KK and holding=0 then begin

BUYSHORT ( c<=(b -2),1,MARKET);

end

if   zxd and Kd and holding=0, then  begin

BUY( c>=(a + 2)1,MARKET )

end

 


--  作者:施季礼茨
--  发布时间:2016/9/23 9:17:10
--  谢谢及时跟进,触发交易就是这么难么?

我也觉得这样改了好像和IF条件里的AND逻辑没什么区别,是我不理解轮询吧;

在哪里改为轮询呢,信号线(比如某种CROSS)出来后(比如5分钟K ),下一个5分钟内用什么轮询方法,只要在这个周期内突破前高的+2点就做多?