//+-------------------------------------------------------+//|Параметры функции PROBA.mq4|//+-------------------------------------------------------+#property strictvoidOnStart()
{
Alert(Сумма(2,5));
int Сум=0;
Сумма(2,5,Сум); // Передаем в функцию 2 числа и получаем суммуAlert(Сум);
}
int Сумма(int a, int b)
{
return a+b;
}
void Сумма(int a, int b, int & s)
{
s= a+b;
}
//+------------------------------------------------------------------+bool IsLastVolumeTheLargest(conststring symbol_name, constENUM_TIMEFRAMES timeframe,constint start_pos,constint count)
{
long array[]; // Массив для хранения объёмов//--- если скопировалось меньше, чем нужно, вернём falseif(CopyTickVolume(symbol_name,timeframe,start_pos,count,array)<count) returnfalse;
//--- вернём флаг того, что максимальный объём находится в последней ячейке массива (соответствует индексу start_pos)returnArrayMaximum(array)==count-1;
}
//+------------------------------------------------------------------+
谢谢你,但她是
iCustom来帮忙
iCustom是一个很好的解决方案,但iCustom总是执行指标的整个代码,如果我在EA中需要许多指标参数(而且是),那么我们将得到多个指标计算,而不是一个指标计算,这会大大减慢进程,直到错过当前的tick,我忘了预定义变量.....。
int rates_total=Bars;
定义的全局变量
int prev_calculated=0。
在数组元素的数量上发生崩溃
我很抱歉,但我不明白为什么oncalculate要传递预定义变量 的值,如果它们是全局的并且也是可用的。
请看一个例子
一个函数的参数可以是输入--我们传递给它的,以及输出--它返回给我们的。
计算整个指标线时 需要这些变量,但你需要一个单一的值。一切都简单多了。分析指标方案,并确定使用哪种公式进行计算。并在专家顾问中使用这个公式
伙计们,告诉我如何实现这种算法。
有一个具有体积的时间序列
我想比较Volume[1]是否大于之前的Volume[1]条, 并通过外部变量(extern int)指定一个之前条的窗口(数量)。
写一个代码样本,如果不难的话
伙计们,告诉我如何实现这种算法。
有一个具有体积的时间序列
我想比较Volume[1]是否大于之前的Volume[1]条, 并通过外部变量(extern int)指定一个之前条的窗口(数量)。
写一个代码样本,如果不难的话
它起作用了吗?以前是怎么做的?
它的工作没有错误,我似乎自己把它删除了,通过ctrl+h的自动替换,没有注意到>_<。总之,可能是光照派干的。再次感谢!
伙计们,告诉我如何实现这种算法。
有一个具有体积的时间序列
我想比较Volume[1]是否大于之前的Volume[1]条, 并通过外部变量(extern int)指定一个之前条的窗口(数量)。
写一个代码样本,如果不难的话
这并不难。我根据记忆在膝盖上写的(我可能遗漏了什么)......
你好。我不能分享这个文件。任务 - 我需要在МТ4(MQL4)测试器的手动测试过程中,在М1上生成旧时期的文件(例如M20)。为此,我写了一个 基于PeriodConverter脚本的指标。由于在测试模式下,不可能将文件(EURUSD20.csv)直接保存到历史记录文件夹中,该文件被保存在所有终端共享的文件夹中 - \MetaQuotes\Terminal\Common。然后,循环脚本在标准的M1图表上工作,将数据从文件EURUSD20.csv复制到位于History文件夹中的文件EURUSD20.hst。 如果同时在测试仪的指标中打开文件EURUSD20.csv,则无法在脚本中打开(5004 ERR_FILE_CANNOT_OPEN 文件打开错误)。如果你从测试器中删除指标,脚本中的文件被打开并复制,没有问题。该文件在指标中的打开方式如下:ExtHandle=FileOpen(c_symbol+(string)20+".csv",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_READ|FILE_COMMON);
脚本中的文件被打开如下:ExtHandleR=FileOpen("EURUSD20.csv",FILE_BIN|FILE_READ|FILE_SHARE_READ);
请指出我的错误。
你好。我不能分享这个文件。任务 - 我需要在МТ4(MQL4)测试器的手动测试过程中,在М1上生成旧时期的文件(例如M20)。为此,我写了一个 基于PeriodConverter脚本的指标。由于在测试模式下,不可能将文件(EURUSD20.csv)直接保存到历史记录文件夹中,该文件被保存在所有终端共享的文件夹中 - \\MetaQuotes\Terminal\Common。然后,循环脚本在标准的M1图表上工作,将数据从文件EURUSD20.csv复制到位于History文件夹中的文件EURUSD20.hst。 如果同时在测试仪的指标中打开文件EURUSD20.csv,则无法在脚本中打开(5004 ERR_FILE_CANNOT_OPEN 文件打开错误)。如果你从测试器中删除指标,脚本中的文件被打开并复制,没有问题。文件在指标中的打开方式如下:ExtHandle=FileOpen(c_symbol+(string)20+".csv",FILE_BIN|FILE_WRITE|FILE_SHARE_WRITE|FILE_READ|FILE_COMMON);
文件在脚本中的打开方式如下:ExtHandleR=FileOpen("EURUSD20。csv",FILE_BIN|FILE_READ|FILE_SHARE_READ|FILE_COMMON);
请指出我的错误。
你指出来了吗?
你指定了吗?
我不明白。这个选项表示文件的位置 - \MetaQuotes\Terminal\Common。如果没有这个选项,我将无法抓取在测试器中生成的文件。如果没有这个选项,文件将在MQL4\Files中搜索 - 我不能把测试人员的文件放在那里。