以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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 )
这个“最新价”是K线走完才确定的么,还是要引入轮询?我一般在5K周期以上, SELLSHORT(PK,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); 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点就做多? |