// MarketInfo() function example;double bid =MarketInfo("EURUSD",MODE_BID);double ask =MarketInfo("EURUSD",MODE_ASK);double point =MarketInfo("EURUSD",MODE_POINT);
int digits=MarketInfo("EURUSD",MODE_DIGITS);
int spread=MarketInfo("EURUSD",MODE_SPREAD);
OrderDelete(-1); // should produce an error 4108 or 3Print("Last error was number ", GetLastError()); // should print - Last error was number 4108Print("Last error was number ", GetLastError()); // should print - Last error was number 0 the previous call cleared the GetlastError internal variable
我修复了你建议我完成的编码练习的 "无效票 "错误。我附上了一份专家顾问的副本供您个人查看。
这个练习的OrderClose()函数部分我相信已经完成。
这个练习的Print()函数部分我认为已经完成。
我认为剩下的就是第三部分,OrderModify()函数。
谢谢你。
你没有解决这个问题,你只是绕过了这个问题,这是典型的不了解问题的情况。 正如我已经说过的,解决原因而不是症状......
你仍然没有打印USDJPY的票号,请查看 原始需求。
你的MarketInfo()调用是错误的,即使它们确实起作用 ......
西蒙。
OrderModify()函数 的执行没有错误。
OrderPrint()函数的执行没有错误。
OrderClose()函数的执行没有错误。
请发表您的答复。
谢谢你。
请发表你的答复。
你没有解决这个问题,你只是绕过了这个问题,这是典型的不了解问题的情况。 正如我已经说过的,解决原因而不是症状。
你仍然没有打印USDJPY的票号,请查看原始需求。
你的MarketInfo()调用是错误的,即使它们确实起作用 . .
此外 . . .
如果你有和以前一样的情况,没有USDJPY订单,你将有失败的OrderStopLoss(), OrderTakeProfit(), OrderSelect()和OrderType()调用。
你对这行代码的期望是什么? 请在不查阅文档的情况下回答。
GetLastError();
在最后的代码块中,为什么要执行这行代码?. . .
只有当 . . .
但你会一直执行这行代码,以及它后面的所有代码,不管TP和SL是什么?
你的MarketInfo()调用仍然是错误的 ... ...看一下文档,找出原因。
西蒙。
你并没有解决这个问题,你只是绕过了这个问题......
你认为我还没有解决什么问题?
你仍然没有打印USDJPY的票号...
你的MarketInfo()调用是错误的,即使它们确实有效。
MetaEditor字典中的MarketInfo()函数示例。
样本。
这里是我的OrderClose()函数代码块的样本。
你认为我的OrderClose()函数代码样本格式有什么问题?它看起来与MetaEditor字典提供的'MarketInfo()'样本几乎完全一样。
此外......。
你对这行代码的期望是什么? 请回答,不要翻阅它的文档。
GetLastError();
GetLastError()函数在运行测试时向 "专家 "页面打印错误。如果该函数没有发现错误,就会打印出零(0)。请注意我在上面提供的快照中打印的0。
在最后的代码块中,为什么要执行这行代码 .. . .
只有当......。
但你会一直执行这行代码,以及它后面的所有代码,不管TP和SL是什么?
是的,我很高兴你提出了这个问题,因为我将解释我这样做的原因。
如果使用多行注释"/* - */"将所有其他代码块从程序执行中省略,并且在Start()和Return(0)函数中只剩下两个代码块。
下面的代码块二是函数调用。
Print()函数继续无限期地将数字打印到专家窗格中,并继续打印。我相信如果我加入
Print()函数将只执行一次,因为一旦下面的OrderModify()函数被执行,SL和TP将不再是零,将导致Print()函数停止。
现在我意识到,由于程序的执行方式,情况并非如此。我知道程序是从上到下执行的,所以当程序第一次完成其整个周期时,它将试图再次从上到下执行,并将无法将票据打印到 "专家 "窗格中,因为美元兑日元货币对上没有订单。
谢谢你。
西蒙。
你并没有解决这个问题,你只是绕过了这个问题......
你认为我还没有解决什么问题?
由你编码while循环的方式引起的根本问题......导致OrderClose函数的无效票据 和OrderModify的未知票据2的 问题,你还没有解决这个问题,因为你已经解决了症状。
你的MarketInfo()调用是错误的,即使它们确实有效。
MetaEditor字典中的MarketInfo()函数示例。
对不起,我的错误,你已经解决了这个问题 ...... 你知道我指的问题是什么吗?
西蒙。
你对这行代码的期望是什么? 请回答,不要翻阅它的文档。
GetLastError()函数在运行测试时向 "专家 "页面打印一个错误。如果该函数没有发现错误,就会打印出零(0)。注意我在上面提供的快照中打印的0。
不,GetLastError()并不打印到日志中..它"该函数返回最后发生的错误,然后存储最后错误代码 的特殊last_error变量的值将被清零。因此,下一次调用GetLastError()将返回0。"
你图片中的0可能是来自..
Print(OrderCloseTime());
.是一个错误,因为订单不再被选择,因为它不再在订单池中,因为它现在已经被关闭,所以在历史池中。
. .. . . 添加这两行并试一下。
Print()函数将数字无限期地打印到专家窗格中,并继续打印。我相信如果我加上....
Print()函数将只执行一次,因为一旦直接在这下面的OrderModify()函数被执行,SL和TP将不再是零,将导致Print()函数停止。
现在我意识到,由于程序的执行方式,情况并非如此。我知道程序是从上到下执行的,所以当程序第一次完成其整个周期时,它将试图再次从上到下执行,并将无法将票据打印到 "专家 "窗格中,因为美元兑日元货币对上没有订单。
我想你没有理解我的意思 ......如果我加上一些大括号,也许会更清楚。......你这样做了......。
......你是想这样做吗?
西蒙。
你仍然没有打印USDJPY的票号......
要求是...... "以 "USDJPY的票号=""的形式将票号打印到日志上。
西蒙。
由你编码while循环的方式引起的根本问题......导致OrderClose函数的无效票据和OrderModify的未知票据2的问题,你还没有解决这个原因,你已经解决了症状。
我希望与你讨论这个问题本身的细微之处,使我能够集中思想解决这个问题,而不至于分心于其他的问题。
对不起,我的错误,你已经解决了这个问题......你知道我指的是什么问题吗?
是的,谢谢你提出来!
"该函数返回最后发生的错误,然后存储最后错误代码的特殊last_error变量的值将被清零。因此,下次调用GetLastError()将返回0。"
MetaEditor字典中写道。
该函数返回最后发生的错误,然后存储最后错误代码的特殊最后错误变量的值将被清零...
绿色表示理解,黄色表示不理解。
. ..添加这两行并试一下。
会做的。
我想你没明白我的意思 . . . 如果我加一些大括号也许会更清楚 .......你这样做了......。
我相信我是想这样做的......
这是因为我希望这个条件......
应用于大括号内的代码部分("{ }")。
要求是...... "以 "USDJPY的票号=""的形式将票号打印到日志上。
可以这样做。
谢谢你。
"该函数返回最后发生的错误,然后存储最后错误代码的特殊last_error变量的值将被清零。因此,下次调用GetLastError()将返回0。"
MetaEditor字典中的内容是:。
该函数返回最后发生的错误,然后存储最后错误代码的特殊最后错误变量的值将被清零...
绿色表示理解,黄色表示不理解。
好的,你可以从文档中看到GetLastError()没有打印任何东西 . . . 它只是返回 错误号码 ....所以要使用它,你需要对它做一些事情 ....
当你调用GetLast Error()时,它返回错误,然后将内部用来保存最后一个错误的变量清除为零 ... ...所以如果你这样做 ... ...
第二次调用GetLastError()将返回0,因为第一次调用将保存错误号的变量清零 ......还要记住,只保存最近的错误。
我想你没明白我的意思 ......如果我加上一些大括号,也许会更清楚。......你这样做了......。
我相信我的意思是这样做的......。
这是因为我希望这个条件......
适用于大括号内的代码部分("{ }")。
但你没有......你在设计时错过了它,然后在编码时错过了它,然后在你阅读代码并检查 它是否能达到你的目的时错过了它,然后在你测试时错过了它。......大括号是那些你必须了如指掌的基本东西之一。
你需要了解你为什么会漏掉这个问题,并解决这个问题 ...... 没有人可以为你做这些,除非你想付钱让他们为你编码。
西蒙。
你图像中的0可能是来自......。.
Print(OrderCloseTime());
Nah-uh-uh!;)
让我们沿着文档通道来一次旅行吧?哈哈哈。
注意:订单必须是先前由OrderSelect() 函数选择的。
首先,让我们都来看看我最近编写的OrderClose()函数代码块...
接下来,让我们都来看看 "专家 "窗格的快照中显示的结果......
啊,我们有什么呢?)
请发表对新附的专家顾问的回应。它是否符合您的练习所包括的所有标准?
由你的while循环编码方式引起的根本问题......导致OrderClose函数的无效票和OrderModify的未知票2的问题,你还没有解决这个原因,你已经解决了症状。
我希望与你讨论这个问题本身的细微之处,使我能够集中思想解决这个问题,而不至于分散其他点的注意力。谢谢你。