开拓者期货期权程序化系统交易论坛

标题: 关于限价的问题请教 [打印本页]

作者: fcotrader    时间: 2007-9-7 11:31:18     标题: 关于限价的问题请教

如何在交易的时候限价?
例如:
buy next bar at xxx stop;
sell next bar at xxx stop;

TB中,在下一根K线还没到限价时,就会发出信号,
请问是软件问题还是俺没搞懂?
作者: tradeblazer    时间: 2007-9-7 11:50:43

没有TS的这种限价处理方式,这种单类似于我们系统的触发单。
您可以写公式条件来监控行情达到触发单的效果。
作者: tradeblazer    时间: 2007-9-11 16:58:50

TradeStation的帮助原文:

Buy next bar at 50 stop;
When this order is generated, the following actions are taken:

to the market as a market order.

Stop orders are held on your computer and are not reflected in the market until the stop price is penetrated. If you turn off your computer, the order will not have an opportunity to be placed and filled.
作者: tradeblazer    时间: 2007-9-11 17:07:06

首先,Stop单是在您的电脑中运行,第二点,Stop单必须在下一个Bar执行。

对于这种方式,TB里面只需要写一个条件代码即可。
比如,针对上面的代码,TB的对应代码为:
If(High > 50 ) // 价格曾经到过50
{
    Buy(1,50,True); 延迟到下一个Bar,用50发送买入委托单。您也可以用其他价格。
}
作者: fcotrader    时间: 2007-9-11 21:20:24

首先谢谢回复!

但是, 经过我之前的测试,
这样的语句并不能达到预期的效果,

//If(High > 50 ) // 价格曾经到过50
//{
//   Buy(1,50,True); 延迟到下一个Bar,用50发送买入委托单。您也可以用其他价格。
//}

原意是要在50,或50以上的情况下发出 buy 的信号,
问题是,经过追踪成交记录,
在下一根线,有可能在 50 以下的地方发出信号,比如说 48 或者别的什么位置,
总之不是预期的50或以上的位置,
这不是想要的效果,

只需要在下一根线价格达到50的时候成交,那怕再下根线在45什么之类的也好,都无所谓,
需要在50成交,
上面的语句,在当前根线达到50,然后不管下根线是多少,不管三七二十一的都成交,
这的意思跟预期对不上号,对信号造成比较大的影响!

[ 本帖最后由 fcotrader 于 2007-9-11 21:47 编辑 ]
作者: nopain    时间: 2007-9-12 09:21:59

根据原文的意思:
1、当前价格突破设定的Stop价,在下一个Bar的第一个Tick产生一个卖入讯号(如果第一个Tick>=Stop价)。
2、在日线以下周期,并且当前Bar不是最后的一个Bar,会当着市价单在下一个Bar执行。
3、在日线及日线以上周期,包括日内周期的最后一个Bar,会根据第二天的开盘价来决定是否发送委托。

这包含了很多条件,这些条件都可以实现,对于测试和真实交易又有不同的处理,但不知道您要求的委托单具体是什么样的?
作者: ATL    时间: 2007-10-7 00:20:21

原帖由 nopain 于 2007-9-12 09:21 发表
根据原文的意思:
1、当前价格突破设定的Stop价,在下一个Bar的第一个Tick产生一个卖入讯号(如果第一个Tick>=Stop价)。
2、在日线以下周期,并且当前Bar不是最后的一个Bar,会当着市价单在下一个Bar执行。
3、在日线及日线以 ...


在下一个Bar的第一个Tick产生一个卖入讯号(如果第一个Tick>=Stop价) 按我的理解是在下一个BAR当中,当有一个TICK达到>=STOP价位就成交。可能是下一个BAR的第一根TICK也可能是N个TICK。

TB现有的true延迟到下一个BAR成交与这个意思相去甚远。
作者: ilian    时间: 2007-10-7 01:08:35

true延迟和STOP指令都是在下一个BAR发出委托价,前者比较怪必须要下一个BAR价格曾到于委托价才以委托价成交,哪有这么巧呢,如果大于或者小于委托价以收盘价成交,所以对于测试和实时都没有价值。当然可以用 CrossOver、CrossUnder、IIF来模拟STOP指令代价就是程序变的浮肿,可读性差,还有其它。比如,这里的系统就模拟了STOP指令:http://www.tradeblazer.net/forum/thread-551-2-2.html,如果用TS的EL写的话,因为有STOP指令程序就很简洁易懂了。 比如,Buy next bar at 50 stop接近自然语言。TB搞的像C语言.
作者: ATL    时间: 2007-10-7 01:29:30

TB的true延迟好象是下一根BAR第一个TICK就成交,不管当时价格如何。 与BUY open没有区别。对否?
作者: nopain    时间: 2007-10-7 10:55:43

原帖由 ATL 于 2007-10-7 01:29 发表
TB的true延迟好象是下一根BAR第一个TICK就成交,不管当时价格如何。 与BUY open没有区别。对否?


成交时机是一样的,但价格是您自己指定的。
作者: ilian    时间: 2007-10-7 11:38:14

原帖由 ATL 于 2007-10-7 01:29 发表
TB的true延迟好象是下一根BAR第一个TICK就成交,不管当时价格如何。 与BUY open没有区别。对否?

也不是BUY Open,前者测试还有用处。true意思是比如延迟的价格是50,如果下一根BAR的价格从开始到结束都大于50,或者都是小于50,在这种在这种情况下会以收盘价成交,如果期间到过50那么以50成交。
作者: ATL    时间: 2007-10-7 11:48:01

这样子效果就与STOP是一样的。只是多写几行代码。没TS简洁明了罢了。
作者: nopain    时间: 2007-10-7 12:57:52

为什么不用SetStopLoss呢?




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2