以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 循环问题求教 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=85592) |
-- 作者:Prongs -- 发布时间:2015/9/24 10:42:08 -- 循环问题求教 写了一个网格交易的模型,单行执行没有问题,但是改成循环语句就出问题了,感觉好像不是完全执行完第一个循环再去执行第二个循环,而是整体在执行循环,请问是哪里出了问题?
单行是可以执行的: input: P(2600,0,50000,1), J(3,1,10,1),N(10,1,100,1); //初始价格,网格宽度,每笔手数
if TREMAINQTY(1,\'\',\'\')<=0*n then if TREMAINQTY(1,\'\',\'\')<=1*n then if TREMAINQTY(1,\'\',\'\')<=2*n then if TREMAINQTY(1,\'\',\'\')<=3*n then if TREMAINQTY(1,\'\',\'\')<=4*n then
if TREMAINQTY(1,\'\',\'\')<=5*n then if TREMAINQTY(1,\'\',\'\')<=6*n then if TREMAINQTY(1,\'\',\'\')<=7*n then if TREMAINQTY(1,\'\',\'\')<=8*n then if TREMAINQTY(1,\'\',\'\')<=9*n then
if TREMAINQTY(4,\'\',\'\')<=9*n then if TREMAINQTY(4,\'\',\'\')<=8*n then if TREMAINQTY(4,\'\',\'\')<=7*n then if TREMAINQTY(4,\'\',\'\')<=6*n then if TREMAINQTY(4,\'\',\'\')<=5*n then
if TREMAINQTY(4,\'\',\'\')<=3*n then if TREMAINQTY(4,\'\',\'\')<=2*n then if TREMAINQTY(4,\'\',\'\')<=1*n then if TREMAINQTY(4,\'\',\'\')<=0*n then
循环执行会出现问题: input: P(2600,0,50000,1), J(3,1,10,1),N(10,1,100,1),M(10,1,30,1); //初始价格,网格宽度,每笔手数,网格数量 FOR i=1 TO M DO if TREMAINQTY(1,\'\',\'\')<=(i-1)*n then FOR u=1 TO M DO if TREMAINQTY(4,\'\',\'\')<=(10-u)*n then
|
-- 作者:jinzhe -- 发布时间:2015/9/24 10:52:43 -- 处理中,请稍等 |
-- 作者:wenarm -- 发布时间:2015/9/24 13:50:21 -- 循环次数并没有你说的现象。你参考下面的调试代码。使用的debugfile输出的。
FOR i=1 TO M DO BEGIN FOR u=1 TO M DO |
-- 作者:yukizzc -- 发布时间:2015/9/24 13:51:48 -- 同一条开仓语句在循环体内只会执行一次的,所以和你写很多个if条件里面的开仓交易。 执行结果是不同的 |
-- 作者:Prongs -- 发布时间:2015/9/24 14:32:22 -- 同一条开仓语句在循环体内只会执行一次是什么意思?是说我循环10次只会执行一次开仓? 现在账户挂单实际的流程是买单挂一张,卖单挂一张,买单挂一张,卖单再挂一张... 而单行执行的话是挂完全部买单再挂全部卖单,所以导致执行结果不同 |
-- 作者:fly -- 发布时间:2015/9/24 14:53:08 -- 1. 现在账户挂单实际的流程是买单挂一张,卖单挂一张,买单挂一张,卖单再挂一张...
这个执行结果,是您上面说到的,是吧 input:P(2600,0,50000,1), J(3,1,10,1),N(10,1,100,1),M(10,1,30,1); //初始价格,网格宽度,每笔手数,网格数量 FOR i=1 TO M DO BEGIN FOR u=1 TO M DO
2. 单行执行的话是挂完全部买单再挂全部卖单 这个结果是那个代码执行的
您是要实现哪种结果? 3.您运行在几分钟K线下, 运行模式是:固定时间间隔吗 [此贴子已经被作者于2015/9/24 15:02:08编辑过]
|
-- 作者:Prongs -- 发布时间:2015/9/24 15:10:52 -- 我需要的是单行执行的效果,就是全部挂完买单再挂卖单,但是循环写法不是这样执行的 我是直接在用分笔数据,固定时间间隔运行 |
-- 作者:yukizzc -- 发布时间:2015/9/25 9:25:37 -- 这就是我和你说的,循环体内不会重复执行同一条开仓语句。因为你是分笔周期所以变成了,第一根k执行买卖,然后第二根马上k又买卖了。 要执行重复运行在开仓语句后面加上ALLOWREPEAT。但这个如果你用在分钟周期会导致每次运行都重复报单。 |