Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共14 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:怎么设置一个变量记录某个状态?

1楼
wpfei123 发表于:2014/7/28 16:08:12
比如设置A:=0,如果满足一个条件后,A:=1。  程序运行过程是前一根K线一开始是A:=0,然后这根K线确实满足了条件,这时A:=1。这时问题出现了。我想在下一根k线要A:=1这个状态标记的数值,但是由于程序行是顺序执行的,在一开始还是先执行了A:=0。这个问题怎么解决?论坛里肯定有这个问题,我不知道搜什么关键字。如果简单的话,你给我说下就好了。
2楼
jinzhe 发表于:2014/7/28 16:10:05

variable:a=0;

if 条件 then a:=1;

3楼
wpfei123 发表于:2014/7/28 16:28:01
变量命名时的等于是没有冒号的。THEN后面是有冒号的。IF条件里面的判断等于不等于的时候有没有冒号啊。比如此例 A:=1还是A=1
[此贴子已经被作者于2014/7/28 16:28:44编辑过]
4楼
jinzhe 发表于:2014/7/28 16:31:19

不加,判断为什么要加冒号?

5楼
wpfei123 发表于:2014/7/28 16:40:55
哦,刚才犯傻了,判断和赋值都搞不明白了。图片点击可在新窗口打开查看
6楼
wpfei123 发表于:2014/7/28 16:58:19
TIME0=32400+1 THEN a:=0;这样写可以保证在每日9点时候将a赋值为0么?因为我在想,如果即使是1分钟图的逐K模式,逐K模式是收盘的时候才执行语句。这时又有个新问题了。如何在逐K模式下,可以控制实时,难道是用固定轮询设置1秒?怎么实现固定轮询和逐K在一个模型里面?因为开盘的时候价格剧烈我想固定轮询,以后价格变动就小多了,就逐K就可以了。难道需要弄两个模型,加载到两个图表上?
7楼
jinzhe 发表于:2014/7/29 8:56:59

用固定轮询模式,当想要即时触发下单时候不做修改,想要走完k线下单的时候把原来的条件改成ref(条件,1),比如判断条件是c>o,那么在固定轮询下实现走完k线功能,那么修改成ref(c>o,1)就行

8楼
wpfei123 发表于:2014/7/30 8:49:40
那如果这样的话,buy sell的函数里面都是按照MARKETR来弄?SELL(1,0,MARKETR);比如,每次比如15秒轮询后按照市价触发交易,下一根K线的时候,用REF(C,1),那么就是按照第二根开盘时的,不对,应该是按照下一根K线发生15秒后轮询,这样就是说REF(C,1)的想法是滞后15秒的。
9楼
jinzhe 发表于:2014/7/30 8:56:23

用market,

用这样的办法,没有什么滞后,走完k线就用ref,用固定轮询就不用,

10楼
wpfei123 发表于:2014/7/30 9:20:52
哦,MARKET和MARKETR在实际交易的时候效果是一样的都是按照市价交易,只是在回测的时候效果不同。

关于滞后的问题,是这样的,昨天我问的是我想实现开盘的时候由于价格剧烈执行轮询来触发交易,别的时候就按照K线完成收盘再触发交易就好了,也就是一个策略中用两种触发条件。你给的方法挺好,用轮询模式+REF(C,1)确实可以解决这个问题,比如15秒,15秒是60的整数倍,所以在收盘的时候是不存在漏单的,这样对于开盘的时间由于没有用REF(C,1)是不存在什么问题的。但是在开了盘以后的时间段,由于用了REF(C,1),由于模型一直处于轮询模式下,在一根K线完成收盘的那个时间点,刚好也要轮询。这个时候REF(C,1)不是应该执行的上一根K线的收盘价么?只有过了那个时间点,进入下一秒,在新的K线形成的过程中,REF(C,1)才代表上一根K线,如果是这样的话,就是滞后15秒再轮询的时候才能触发交易。

其实主要就是关于那个时间点的问题,在一根K线收盘结束的那一刻,以及轮询同时执行的时候,REF(C,1)到底代表了上一根K线还是当前收盘K线(对应要新形成的K线来说)
共14 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.01953 s, 3 queries.