2楼
代码如下:
韬客社区www.talkfx.co
3楼
我逐一排查过【sell】单子,B 是代表开仓到现在的持有”天数“ 正常
lowestprice 这些天中的代表最低价格 正常
N代表最大盈利的点数 这个在屏蔽了Orderclose函数之后是正常的
但是没有屏蔽就不正常,比实际大了3、4倍的样子
现在这个条件运行起来,就是无限得开仓平仓开仓平仓,每次-2个点,搞不懂,求解答!
点评
发表于 2015-08-23 05:07
发表于:2015-08-23 05:07只看该作者
4楼
本帖最后由 席主党刀飞 于 2015-8-23 13:24 编辑
你的这些代码,和问题是一对的吗?
iccmmmm 发表于 2015-8-23 13:01
我逐一排查过【sell】单子,B 是代表开仓到现在的持有”天数“ 正常 ...
谁也没有看到这柄刀是从什么地方来的,但却全都知道是什么人来了 ...
发表于:2015-08-23 05:15只看该作者
5楼
本帖最后由 scalping 于 2015-8-23 13:33 编辑
我告诉你。你在取未平仓单子的时候是通过循环按位置取的,比如第一个单子,第二个单子....,然而你却在循环内平仓了一个单子,再循环回来的时候单子数量已经发生了变化,位置也就发生了变化。如果平一个单子,第二个单子号会变成1的,你再去取的第二个实际上是最开始的第三个单子了,不知道我说明白了吗。
6楼
席主党刀飞 发表于 2015-8-23 13:07
你的这些代码,和问题是一对的吗?
韬客社区www.talkfx.co
7楼
scalping 发表于 2015-8-23 13:15
我告诉你。你在取未平仓单子的时候是通过循环按位置取的,比如第一个单子,第二个单子....,然而你却在循环 ...
点评
发表于 2015-08-23 05:51
韬客社区www.talkfx.co
发表于:2015-08-23 05:51只看该作者
8楼
本帖最后由 scalping 于 2015-8-23 14:10 编辑
很多办法。比如先你这样循环取出ticket number,存入数组再去循环。或者平仓后修改index,都行。我的做法是从高向低循环。
for(int i=ordersTotal-1; i>=0; i--){
iccmmmm 发表于 2015-8-23 13:48
那该怎么办? 平仓条件如果放到循环外面的话,就执行不了了吧,Orderclose是要先select之后获取ticket号 ...
韬客社区www.talkfx.co
9楼
问题太多,首先你没有对各变量参数初始化,其次买单和卖单最好分开遍历。就先这些吧。
万事东流水,小舟顺势乘。悠然波中钓,霞日伴我行。
10楼
白水示申 发表于 2015-8-23 14:03
问题太多,首先你没有对各变量参数初始化,其次买单和卖单最好分开遍历。就先这些吧。
韬客社区www.talkfx.co
11楼
scalping 发表于 2015-8-23 13:51
很多办法。比如先你这样循环取出ticket number,存入数组再去循环。或者平仓后修改index,都行。我的做法 ...
点评
发表于 2015-08-23 06:23
韬客社区www.talkfx.co
12楼
变量每次运算周期前需要清零,订单操作要有单号列表刷新,避免误操作。
万事东流水,小舟顺势乘。悠然波中钓,霞日伴我行。
发表于:2015-08-23 06:23只看该作者
13楼
本帖最后由 scalping 于 2015-8-23 14:25 编辑
不是说改成从高到低循环也行了吗。除非有特殊要求不想改变平仓顺序,比如要曲线好看什么的。
iccmmmm 发表于 2015-8-23 14:18
感谢!等我学了数组试试。。。
韬客社区www.talkfx.co
发表于:2015-08-23 07:23只看该作者
15楼
本帖最后由 scalping 于 2015-8-23 16:19 编辑
仔细一看,为了判断买单卖单特意写入OrderComment()也是理解不了啦。
OrderType()不能用了吗。找k的位置,不是有个iBarShift吗。把0.1改成OrderLots()吧。
韬客社区www.talkfx.co
16楼
选单条件中你还缺少订单类型条件=buy还是=sell