任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 248

 
你是个英雄,顺子,默默地修复代码和...好像就是这么回事。你要告诉我这是发生的事情,而我只是在胡扯?是吗?
 
Roger:
你为什么要从文件中读取?你在ReadCBOE变量中拥有整个文件,你可以使用它。

没有问题,但不是所有的字符串都适合在变量中!MT对字符串的长度 有自己的限制,而文件是从网站上写入信息的,文件的结尾是</body></html>,而字符串--在65k字符(或左右)处断裂。在任何情况下,最终的文件大小为69KB。

 
Integer:

阅读这篇文章。基本上,自然界中没有办法读取一个文件的某一行,你必须读取到某一行的所有行...文章中有一个逐行读取文本文件的功能。

哇,谢谢,我自己没有找到,应该按HTML标签搜索的。
 
Zhunko:

这就是它的作用。检查了一下。


总之,有一个错误,这里是
if (FileWriteString(hFile, sTextWrite, 10000) < 0)
,把所有的字符串写到文件里,而不考虑函数的3个参数,这是对字符串的大小负责。
 
Integer:
你是个英雄,顺子,默默地修复代码和...仿佛这就是所发生的事情。你要告诉我是这样的,而我只是在胡说八道?是吗?

固定什么?检查是否为NULL?这很好。怎么了?如果我发现了一个错误,我就把它修好。

你不修复它。我看到了。即使你指出来了,你也没有纠正它。你喜欢犯错而不改正?然后你就开始吹嘘了?

=============

我原谅了。我几乎从来不用MQL4写作。我已经写好了我需要的一切。我不与描述符和错误一起工作。它们是很久以前写的,被封装起来并被遗忘。

在C++中,描述符通常被比作NULL。

mzk_3om6u:

总之,有一个错误,这里是
if (FileWriteString(hFile, sTextWrite, 10000) < 0)
,把所有的字符串写到文件里,而不考虑负责字符串大小的3个函数参数。
不是的。它是有效的。只是这段代码并没有覆盖文件。你正在看的是一个已经写好的文件。这似乎并不奏效。事实上,它被写在了该有的地方,但延续下来的仍然是旧的那条线。

写别的东西,或删除文件,或给它加上一个只写的标志。

 
Zhunko:

固定什么?检查是否为NULL?这很好。怎么了?如果我发现了一个错误,我就把它修好。

你不修复它。我看到了。即使你指出来了,你也没有纠正它。你喜欢犯错而不改正?然后你就开始吹嘘了?

=============

我原谅了。我几乎从来不用MQL4写作。我已经写好了我需要的一切。我不与描述词和错误打交道。它们是很久以前写的,被封装起来并被遗忘。

在C++中,描述符通常被比作NULL。

不是的。它是有效的。只是这段代码并没有覆盖文件。你正在看的是一个已经写好的文件。这似乎并不奏效。事实上,它被写在了该有的地方,但延续下来的仍然是旧的那条线。

写别的东西,或删除一个文件,或设置一个只写的标志。


是的,它正在工作......谢谢。
 
你好!MetaTrader的Windows Phone或Windows RT版本是否即将推出,计划何时推出?
 
好时光。请帮助我解决这个错误。
extern int OpenHH = 14; // Время открытия ордеров (часы).
extern int OpenMM = 25; // Время открытия ордеров (минуты).

extern int CloseHH = 23; // Время закрытие/удаление ордеров (часы).
extern int CloseMM = 45; // Время закрытие/удаление ордеров (минуты).


这一部分代码是有效的,没有任何抱怨。周五的订单,23:45正常关闭。DeleteOrders()函数工作正常。

if (DayOfWeek() == 0 || DayOfWeek() == 6 ) return(0); // В выходные не работаем.
if (!IsTradeAllowed()) return(0); // Пропустить тик, если терминал занят.
if (Close_All_Orders) // Разрешение на закрытие ордеров.
if (DayOfWeek() >= 5 && // Если пятница и закрытие ордеров разрешено, то
TimeHour(TimeCurrent()) >= CloseHH && // в назначенный час
TimeMinute(TimeCurrent()) >= CloseMM ) // в назначенные минуты -
{ DeleteOrders(); return(0); } // все ордера закрываются.


打开订单的代码是通过类比来实现的。该代码在指定的形式下根本不起作用。 然而,如果我们删除或注释掉带有分钟的一行,一切都能正常工作,订单在14:00打开。函数OpenOrders()工作正常。这个(或其他)代码行的问题可能是什么。TimeMinute

(TimeCurrent())>= OpenMM ?

if (Trade) // Разрешение на торговлю.
if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час,
TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты -
{ OpenOrders(); return(0); } // открыть ордера.


PS: 基本上,互联网上有不少按时间开仓和平仓的EA。但是,由于这样或那样的原因,它们可能并不令人满意。我想处理上述错误...

谢谢你...

 
Crosswert:
下午好。帮我解决这个错误。


一切似乎都是正确的,它应该工作。在我的代码中尝试了你的代码--它在几分钟内就能发挥作用。但是只有从14:25到14:59,从15:25到15:59等等。

int start()
  {
  int OpenHH=14,OpenMM=25;
  bool Trade=true;
//----
if (Trade) // Разрешение на торговлю.
 if (TimeHour(TimeCurrent()) >= OpenHH && // В назначенный час
 TimeMinute(TimeCurrent()) >= OpenMM ) // в назначенные минуты - 
 { OpenOrders();Print("Время пришло ",TimeHour(TimeCurrent()),":",TimeMinute(TimeCurrent())); return(0); } // открыть ордера.   
//----
   return(0);
  }
//+------------------------------------------------------------------+
void OpenOrders(){return(0);}


 

也许这样更好。

if ((Hour() == OpenHH && Minute() >= OpenMM) || (Hour() > OpenHH))