2013.08.0113:44:272013.02.0115:00 trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.379312013.08.0113:44:272013.02.0115:00 trendfishing_play_ground EURUSD,H1: Order Lots Open = 0.182013.08.0113:44:272013.02.0115:00 trendfishing_play_ground EURUSD,H1: Order Ticker Number = 102013.08.0113:44:272013.02.0115:00 trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.090002013.08.0113:44:272013.02.0115:00 trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.010002013.08.0113:44:272013.02.0115:00 trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.01000
2013.08.0114:19:362013.02.0115:00 trendfishing_play_ground EURUSD,H1: Current Bid: 1.35972 FirstTarget_Buy: 1.379312013.08.0114:19:362013.02.0115:00 trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.379312013.08.0114:19:362013.02.0115:00 trendfishing_play_ground EURUSD,H1: Order Lots Open = 0.182013.08.0114:19:362013.02.0115:00 trendfishing_play_ground EURUSD,H1: Order Ticker Number = 92013.08.0114:19:362013.02.0115:00 trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.090002013.08.0114:19:362013.02.0115:00 trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.010002013.08.0114:19:362013.02.0115:00 trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.01000
你的意思是如果我把 "if(FirstTarget_Buy == Bid)"?(显然不是这样,因为它不起作用。)
或者类似于 . . .
. . . . 考虑到比较双数的问题(价格!=价格吗?)
你还需要考虑价差问题,以及你的目标是包括还是不包括价差的。
(叹气)好吧--谢谢你的帮助,猛禽!这正变得令人沮丧。我发誓,它不需要如此耗费时间......上面的If语句是行不通的。
我真的是一筹莫展了......
如果我不包括上面的 "如果 "语句(在这种情况下什么都不会发生),而只是把关闭顺序改为 "出价",它就会关闭几个半成品(半成品的半成品等)--但我不知道它是如何知道何时关闭这个半成品的......
如果有更多的建议,我们将不胜感激,感谢您的帮助!
(叹气)好吧--谢谢你的帮助,Raptor!这变得令人沮丧了。我发誓,它不需要如此耗费时间......上面的If语句是行不通的。
我真的是一筹莫展了......
如果我不包括上面的 "如果 "语句(在这种情况下什么都不会发生),而只是把关闭顺序改为 "出价",它就会关闭几个半成品(半成品的半成品等)--但我不知道它是如何知道何时关闭这个半成品的......
如果你没有指定一个必须满足的价格条件,那么它就会尽快关闭一半的订单,Bid 始终是Bid,对关闭OP_BUY有效。
if语句会起作用 . . . 如果它没有找到原因,在它之前添加一个Print() . . . 在它之后。
别担心,当你的代码按照你的要求工作时,你在策略测试器中运行它,发现它就像抛硬币一样好时,就会变得更加令人沮丧了。![](https://c.mql5.com/mql4/forum/2013/08/rofl.gif)
"当你的代码按照你的要求运行时,你在策略测试器中 运行它,发现它就像抛硬币一样好
是的,我只能想象!我实际上已经写了6页(不知道那是多少行)的代码--我正在加入这些关键部分......其中之一是在1:1时关闭50%,并移动到收支平衡......。但是NOOOOOO,这个地段的关闭恰好是反直觉的(就我而言)。
好的,谢谢!你能不能启发我,为什么有时我运行ST,然后停止它,在日志内什么都没有打印出来...?
你看的是正确的日志标签吗?有两个......你应该看的是策略测试器 窗口中的那个,你应该看的是专家标签旁边的那个。 最好的方法是查看保存在tester/logs中的日志文件。![](https://c.mql5.com/mql4/forum/2013/08/wink.gif)
这很完美 - firsttarget_buy是完全正确的。关闭的手数也是完全正确的。这一切都在挂单上打印出来--但是,即使我的计算正确,它也没有在这个价格上关闭?我是在 "OP_BUY "时选择它的...我很抱歉问了这么多问题,但我不明白为什么这不起作用?
你没有在if()前加上打印,没有打印你怎么知道Bid大于或等于FirstTarget_buy?
如果不是这样,那么if()就不是真的,订单也不是部分关闭的 ... ...如果它仍然是一个挂单,那么它就不是一个OP_BUY。
我可以看到当买入价等于或大于"FirstTarget_buy"?我在交易中测试,一直运行到2:1回报率的止盈目标......。所以我知道它的回报率是1:1 - 这就是手数应该减半的地方...所有的打印功能 在挂单时都会打印出来(即如果有一个挂单,我停止测试,所有的打印都会显示出来--然而,如果我在一个挂单触发后停止测试,在日志中没有任何打印出来的 "打印"?)
我不相信我被这个问题困扰了--这正成为迄今为止最大的挑战--但我觉得我还有其他更复杂的事情......
(更新:我假设我需要逐点监测Bid,以便将价格拉入我的 "for "循环?
为了使 "IF() "语句为真,Bid最终将等于我的"FirstTarget_buy"?
我可以看到当买入价等于或大于"FirstTarget_buy"?我在交易中测试,一直运行到2:1回报率的止盈目标......。所以我知道它的回报率是1:1 - 这就是手数应该减半的地方...所有的打印功能都是在挂单上打印出来的(即如果有一个挂单,我停止测试,所有的打印都会显示出来--然而,如果我在一个挂单触发后停止测试,在日志中没有任何打印出来的 "打印"?)