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

 
AlexeyVik:
没有检查,但有什么能阻止你自己检查呢?你只需要在EA名称下保存带有所有指标的模板,然后当你在测试器中启动EA时,所有指标都将被加载,并且可能 会正确工作。但有可能他们会从 "交易 "和 "账户历史 "标签中取值。
我试过了。还没有。我将再次尝试。
 
kosmos0975:
试过了。还不能看到它。我再试试。
真的有必要把指标搞得这么乱吗?把所有的东西都放到专家顾问中不是更容易吗?
 
AlexeyVik:
真的有必要对指标进行这样的歪曲吗?把一切都塞进专家顾问不是更容易吗?

随着时间的推移,"专家顾问 "将被正确操作的额外条件所束缚,变得不灵活。

(也许,这是一种变态。我们俄罗斯人不寻求简单的方法:)

 
下午好!
如何在EA中定义 "市场已关闭"?
 
abeiks:
日安! 如何在专家顾问中定义 "市场已关闭"?

你为什么要这样做呢?如果市场关闭,将没有刻度,因此,专家顾问将无法工作。

但如果你真的需要它,可以试试这个。

MarketInfo(Symbol(), MODE_TRADEALLOWED);

如果市场是开放的,它返回1;如果市场是关闭的,它应该返回0)。

 

事情是这样的--我需要确定过去100个柱子的最低和最高价格值,例如,当价格下降/上升时,再固定上升/下降,这样我就可以画出一个像1 2 3这样的反转模式。我无法理解ArrayMaximum 和iHighest函数 之间的区别。如果我理解正确的话,他们的计算结果将只是数组中指定区间的最大条的索引?在使用数组进行计算时,是否有必要像教科书第26题中的例子那样使用for运算符? 我将这段代码改为以下代码

//-------------------------------------------------------------------- //multiprice.mq4 //设计用作MQL4.手册中的一个例子。 //-------------------------------------------------------------------- extern int Quant_Bars=100; //条数 //-------------------------------------------------------------------- int start() //特殊函数 start { int i; //条数 double Minimum=Bid, //最低价格 Maximum=Bid; //最高价格 for(i=0;i<=Quant_Bars-1;i++) //从0 (!) 到 。) if (Low[i]< Minimum) // If < known Minimum=Low[i]; // then it will be Min if (High[i]> Maximum) // If > known Maximum=High[i]; // then it will be Max double Level_1, // Signal level 1 Level_2, // Signal level 2 Price; // Current price Level_1=Minimum; // Set minimum level Level_2=Maximum; // Set maximum level Price=Bid;                                  // 要求价格 if (Price<Level_1) { // 检查复合条件 Alert("已形成销售模式"); } if (Price<Level_2) { // 检查复合条件 Alert("已形成购买模式"); // 报告 } return; } //-------------------------------------------------------------------- 但它不知为何在每个tick上产生购买模式,而它应该只在最低或最高变化上发出信号。  
 
silachara:

你为什么要这样做呢?如果市场关闭,将没有刻度,因此,专家顾问将无法工作。

但如果你真的需要它,可以试试这个。

如果市场是开放的,它返回1;如果市场是关闭的,它应该返回0)。

谢谢!
供参考。我需要计算两点之间的时间。
我使用OnTimer()。
 
Deniskaaa:

事情是这样的--我需要确定过去100个柱子的最低和最高价格值,例如,当价格下降/上升时,再固定上升/下降,这样我就可以画出一个像1 2 3这样的反转模式。我无法理解ArrayMaximum和iHighest函数之间的区别。如果我理解正确的话,他们的计算结果将只是数组中指定区间的最大条的索引?在处理数组时,计算是否需要使用for语句,就像教科书中的问题26那样? 我把这段代码改成了下面的内容




如果你想通过这些信号进行交易,你不应该。如果你学习编程,请正确书写。

   Level_1, // 信号级别1 Level_2, // 信号级别2 Price; // 当前价格
在上面。
for(i=0;i<=Quant_Bars-1;i++) 替换为for(i=0;i<Quant_Bars; i++)
{
	 if (Low[i]< Minimum) // If < known	 Minimum=Low[i]; // then it will be min	 if (High[i]> Maximum) // If > known	 Maximum=High[i]; // then it will be max
}
添加了大括号。
如果(价格<Level_2)改变符号,如果(价格>Level_2)高于顶部
 
kosmos0975:

如果你想在这些信号上进行交易,不要。如果你学习编程,请正确书写。


谢谢你的答复。
 

开始学习如何处理文件。我遇到了手柄这个词。写完代码后,问题出现了。

int filehandle;
filehandle=FileOpen("news.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);
filehandle=FileOpen("news150901.csv",FILE_READ);
Print("Файл открыт успешно. Хендл файла=", filehandle);

打开第一个news.csv文件后,程序将filehandle变量设置为1。接下来,该程序打开了第二个news150901.csv文件,并将filehandle变量设置为2。事实证明,现在程序只剩下一个打开第二个文件的句柄值了。换句话说,我杀死了第一个打开的文件 的句柄值。也就是说,我只能访问数据/内容并关闭第二个文件?使用一个变量来存储打开文件的句柄是一个错误吗?使用一个变量来存储打开文件的句柄是否是个错误?