错误、漏洞、问题 - 页 112

 
sandex:

谁使用过OrderCheck功能。

这里有一个这样的结构。

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

编译时,我得到一个错误:'结果'--参数转换不允许。

如果你删除OrderCheck,一切都能正常编译,并在测试器中打开位置。

看一下函数的描述。它说的是MqlTradeCheckResult 响应结构。
 
Yedelkin:
请看一下该功能的描述。它说的是MqlTradeCheckResult 响应结构。

非常感谢你。

 
Dmitriy2:

下面是它的内容...

它应该计算从指定日期开始的交易利润。它给出了一个与实际情况完全不同的结果。例如,我得到了611,而不是大约2000的结果。我已经开始每天检查(评论行)。有(!!!)天的结果是一样的,但通常不是应该的......(我找不到任何规律)。 而且调试器产生的整个交易量 的周期是完全一样的。虽然我只能追踪到这个数量的交易,因为除了int变量外,其他的变量都没有显示值(表达式无法评估)。

这段代码是否正确,我是否正确使用了调试器...?

交易循环应该是

for(i=0;i<HistoryDealsTotal();i=i++)
在调试器中,使用 "步入"(F11)。然后,进入一个定义了变量或表达式的函数,将显示其值。
 
Valmars:

交易周期应该是

在调试器中,使用'Step with Entry'(F11)。然后,当你进入一个定义了变量或表达式的函数时,它将显示其值。

比方说,循环从零开始...虽然哪里写的是交易数字从零开始?从现在我们有10611个(之前是611个,而不是2000个左右),即加上原来的存款规模来看,我不确定......即使是零,甚至是一,我也不明白10,000是怎么来的。

调试器,我明白了,F11...

 
Dmitriy2:

假设周期从零开始......虽然哪里写的是交易数字从零开始?从现在我们得到10611(之前是611,而不是2000左右)的事实来看,即加上原来的存款规模,我不确定......即使是零,甚至是一,我也不明白10,000是怎么来的。

调试器,我明白了,F11...

第一笔交易通常是存款。因此,如果我没有弄错的话,第0笔交易将是一笔存款。

我可以澄清一下交易利润 的计算公式吗?

PS

如果我没记错的话,结果应该是这样计算的--总利润=利润+交换-佣金。


 
Kos:
为什么SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), 返回0?
0意味着没有限制。
 
Interesting:

第一笔交易通常是存款。所以如果我没有弄错的话,第0笔交易将是一笔存款。

你能说明用于计算交易利润的 公式吗?

PS

如果我没记错的话,结果应该是这样计算的--总利润=利润+交换-佣金。


在最后一页的完整代码中

在任何情况下,都不应该考虑本守则规定的存款。

佣金也是加号 - 是减号。

 
Yedelkin:

起初,编译器抱怨说 "#import "lbS7N_Servis.ex5 "丢失。

在删除这一行后,它放弃了。

2010.08.28 22:19:51 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=6617010000 M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) A=101699 B=101699 C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

当我把代码中的账号替换成我的账号时,我得到了。

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=1016990000 M1=1016990000

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) A=101699 B=101699 C=101699

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

MQ服务器,构建316。

谢谢你。在你身上,一切都在按部就班地进行。我还没有搞清楚。
 
sergey1294:

而我的M1并不匹配。

这意味着你也有一个错误,但比我少。

也许你应该在程序与系统的连接中寻找它。

你有什么样的系统?

我有一个core2duo 1.3 Ghz 64 Win7 HB许可证,4GB ddr 2 RAM,建立。316

 
simpleton:

而且有多达三种独特的情况。这些是被检测出来的。又有多少人未被发现?

在这种情况下,MetaQuotes要在一个月内开始2010年锦标赛吗?

哦,MetaTrader 5为我们准备了多少 "奇迹"...

赢家将是那些程序包含如此多的错误,以至于与程序中的小故障结合在一起,将产生如此大的影响,以至于没有人能够追上他们。