intOnInit()
{
//----------
FileTest() // функция открытия файла записи данных
point = 1/Point; // чтобы не делить на пойнт
tx=TimeCurrent();// задание времени начала работы советника//--- create timerEventSetTimer(60);
//---return(INIT_SUCCEEDED);
}
voidOnDeinit(constint reason)
{
FileClose( Handle ); // Закрываем файлAlert("Файл ",File_Name," закрыт.");// Сообщение//--- destroy timerEventKillTimer();
}
voidOnTick() // Функция start() раньше называлась
{
.................
Qnt_Symb=FileWrite(Handle,Symbol()," ТФ ",Period(),"Открыт ордер Buy по цене ",Ask,
"Ticket = ",Ticket," ProfB=",ProfB," MxProfB=",MxProfB, " ProfS=",ProfS," MxProfS=",MxProfS);//Запись в файлif(Qnt_Symb<=0) // Если не получилось
{
Alert("Ошибка записи в файл ",GetLastError());// Сообщение
};
.................
}
//-------------------------------------------------------------- 12 --int FileTest()
{
Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//Открытие файлаif(Handle==-1) // Неудача при открытии файла
{
Alert("Ошибка при открытии файла. ",// Сообщение об ошибке"Возможно, файл занят другим приложением");
}
return(Handle);
}
//+------------------------------------------------------------------+
我已经回答过你了。
你接受名单上的最后一个订单。
而你首先要弄清楚订单清单的状态有多大变化。原来是12,变成了8--已经改变了4个订单。相应地--你需要打印所有四个订单。而且你总是只打印列表中的最后一个。
你怎么知道它有多大变化?当你启动EA时,你应该在一个变量中写入订单的数量,例如,int last_total。 然后,在每个刻度上,将OrdersTotal()与last_total进行比较。如果它们不平等,那就是一种变化。将OrdersTotal()和last_total之间的差异写入一个变量,例如num_changes,并将OrdersTotal()的新状态保存到last_total。
这里可能有一些微妙之处,例如,当一个挂单被触发时。但是现在,你应该先做你需要做的事情。
知道了挂单的数量,你就可以在历史上查找它们。但是,您也可以限制对历史订单列表的监控--对历史订单列表做上述所有工作,而不是对市场订单列表。过去和现在的区别--这是你需要分析的订单量。你总是只分析列表中的最后一个订单。
然而,这不能保证历史列表中的最后一个订单是最后一个关闭的订单。这也是一个必须考虑的细微差别。但随后。
非常感谢你。这样就更清楚了。关键字--你应该一次不只打印一个而是4个订单。如果你在第一个帖子里告诉我,我就不会折磨你了。
非常感谢你。这就更有意义了。关键字是一次不打印一个而是4个订单。如果你在第一个帖子里告诉我,我就不会折磨你了。
不客气。在你自己学会对这种或那种行为进行逻辑分析之前,你不会从死胡同里走出来--你会在论坛上问。你将在论坛上提出问题。它不必与订单/清单/票据等相联系。
我认为,如果你使用苹果,你可以很容易地创建一个算法来记录桌子上有多少个苹果,然后你出去抽烟,回来的时候--苹果就少了......
你怎么知道的?容易 - 5个苹果,3个苹果。有两个人失踪了。这只猫一定有...或者以前有五个,现在有六个。有一个人出来了。从潮湿的地方,也许...不管是哪种情况,你都在脑子里计算了差异。
那么,同样的行动与算计订单有什么不同呢?同样的苹果...与其说是 "在思想上",不如说是 "在功能上"。
如果已经有超过200行的代码,不方便全部浏览,请告知如何从代码中删除该功能( 分解)。我对 "力学 "感兴趣:函数如何被 "分解",写在哪里,以便以后在主代码中调用它。
如果你有一个带有描述的例子,我希望得到一个链接。如果已经有超过200行的代码,不方便全部浏览,请告知如何从代码中删除该功能( 分解)。我对 "力学 "感兴趣:函数如何被 "分解",写在哪里,以便以后在主代码中调用它。
如果有一个带有说明的例子,我希望得到一个链接曾经是。
double a = (b + c) / (d - e);
成为了。
不客气。在你学会如何为自己制定这个或那个行动的逻辑之前,你将不会从死胡同里走出来--你将在论坛上提问。而且逻辑不能再简单了--可以用简单的话语把它组合起来。它不必与认股权证/名单/门票等联系在一起。
我认为,对于苹果,你可以很容易地创建一个跟踪其数量的算法--一切就像在现实生活中:你记得桌子上有多少个苹果,你出去抽烟,当你回来的时候,苹果就少了......
你怎么知道的?容易 - 5个苹果,3个苹果。有两个人失踪了。这只猫一定有...或者以前有五个,现在有六个。有一个人出来了。从潮湿的地方,也许...无论是哪种情况,你都在心里默默地数着差异。
那么,同样的行动与算计订单有什么不同呢?同样的苹果...与其说是 "在思想上",不如说是 "在功能上"。
明白了,谢谢你的澄清。同样的问题在我的脑海中已经存在了很长时间....我的代码假设Print()函数 会经常在日记中打印。日志中会自动打印每个未结订单和每个关闭的订单。我有很多的订单。 相应地,会有很多关于订单的记录。这些记录常常阻止我从Print()函数中获取数据,而这些数据也可能非常多。
Q: .
我怎样才能使它在我需要时,不在日记中显示 未结和已结订单的信息, 而只在Print()函数中 显示。
是否可以借助一些MQL4功能来完成,或者我应该改变MT4终端的代码?
谢谢你。明白了,谢谢你的澄清。同样的问题在我的脑海中已经存在了很长时间....我的代码假设Print()函数 会经常在日记中打印。日志中会自动打印出每一个开放的订单和每一个关闭的订单。我有很多的订单。相应地,会有很多关于订单的记录。这些记录常常阻止我从Print()函数中获取数据,而这些数据也可能非常多。
Q: .
我怎样才能使它在我需要时,不在日记中显示 未结和已结订单的信息, 而只在Print()函数中 显示。
是否可以使用一些MQL4函数来完成,或者需要修改MT4终端的代码?
谢谢你。如果你做了研究,你最好把它写在文件里。我不知道如何在日志文件中显示带有订单的行动,我认为没有这样的事情。 这是EA操作的开始和结束的条目水平。这些是日志文件条目。文件将只包含你想要的内容,日志将包含除你之外的终端记录。你可以在终端进行修改,你甚至可以编写你自己的)))但要花多少钱?
如果已经有超过200行的代码,不方便全部浏览,请告知如何从代码中删除该功能( 分解)。我对 "力学 "感兴趣:函数如何被 "分解",写在哪里,以便以后在主代码中调用它。
如果有一个带有描述的例子,我希望能有一个链接。https://www.mql5.com/ru/docs/runtime/imports
https://www.mql5.com/ru/docs/basis/preprosessor/include
和进一步的链接...一般来说:把所有 "额外 "的东西放在*.mqh库中,放在主代码的开头。 编译器会把它 "粘 "在一起
但一般来说,200行不算太多--使用
按钮,你可以放心地使用超过一千行。
如果你在做研究,最好是写到一个文件里。我不知道如何在日志文件中显示订单行动,我认为没有任何行动,这是EA工作开始和结束的记录水平。这些是日志文件条目。文件将只包含你想要的内容,日志将包含除你之外的终端记录。你可以在终端进行修改,你甚至可以编写你自己的)))但要花多少钱?
谢谢你的提示。但我想我从未在文件中写过EA。我一直在MetaEditor 4中编写EA。为了查看Pront()在所有测试期间的表现,我选择了Log - Open tab。在记事本中打开一个文件,内容与日志标签中的内容相同。对我来说,它看起来像一个日志文件。
但在我看来,我无法从这个记事本文件中删除所有开放和关闭的订单。更准确地说,你是这样。但这是非常繁琐和耗时的工作。
如果您告诉我如何使我的代码打开和关闭订单的秘密,我会非常感激,但在文件中,所有订单的打开和关闭的信息都没有,而只有Pront()函数的记录。
谢谢你的帮助。
你知道我在哪里可以读到更多关于MQL4的最新更新吗? 有很多信息,但很难找到你需要的东西。
https://www.mql5.com/ru/forum/160683/page1109#comment_15711102
谢谢你的提示。但我不认为我曾在文件中写过EA。我一直在MetaEditor 4中编写EA。要看Pront()函数在整个测试期间的输出情况,我选择日志--打开标签。在记事本中打开一个文件,内容与日志标签中的内容相同。对我来说,它看起来像一个日志文件。
但在我看来,我无法从这个记事本文件中删除所有开放和关闭的订单。更准确地说,你是这样。但这是非常繁琐和耗时的工作。
如果您能告诉我如何使我的代码打开和关闭订单的秘密,我将非常感激,但在文件中,关于打开和关闭所有订单的信息都没有,只有Pront()函数的条目。
谢谢你的帮助。
在测试器中,文件将在文件夹\tester\files中,如果你把它放在窗口,它将在文件夹\MQL4\Files中。而科瓦列夫有详细的介绍。