//+------------------------------------------------------------------------------------------+//| ArrayGetAsSeries_плюс.mq4 |//+------------------------------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------------------------------+//------------------------------------ НАЧАЛО START -------------------------------------- 1 -int start() //функция start
{ //начало startdouble Timestart=GetTickCount(); //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта double array1[]; //объявляем массив-приемник (массив, куда будут скопированы данные)int element=ArrayCopy(array1,Open,0,0,WHOLE_ARRAY);//копируем данные по ценам открытия в пользовательский массив (начиная с нулевого бара)int size=ArraySize(array1); //устанавливаем количество элементов массива array1for(int i=0;i<=4;i++) //цикл по просмотру скопированных значений (первых пяти)
{ //начало forAlert("Значение цены открытия бара № ",i," равно ",array1[i],
"\nВремя цены открытия бара № ",i,": ",TimeToStr(iTime(NULL,0,i),TIME_DATE|TIME_MINUTES));//cообщение на экран
} //конец for//----------------------------------------------------------------------------------------- 2 -Comment("\nФункция ArrayCopy(array1[],Open,0,0,WHOLE_ARRAY) вернула: ",element,
"\nФункция ArraySize(array1) вернула: ",size,
"\nФункция ArrayGetAsSeries(array1) вернула: ",ArrayGetAsSeries(array1),
"\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000),
" секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать //сообщения на экран//----------------------------------------------------------------------------------------- 3 -return(0); //выход из start
} //конец start//-------------------------------------- КОНЕЦ START -------------------------------------- 4 -
int start() // Спец. функция start()
{ // Открытие BUYOrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
Alert (GetLastError());
return; // Выход из start()
}
int start() // Спец. функция start()
{ // Открытие BUYOrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-150*Point,Bid+150*Point);
Alert (GetLastError());
return; // Выход из start()
}
也许我解释错了,你只需要在m1 m5 m15 m30 h1 h4上标记第一根蜡烛,莫斯科时间16:00开始,指标标记(好比m15上的四根蜡烛)。
帮助和做是略有不同的事情。你不同意吗?
你不需要设置阵列的大小吗?
是的,我真的忘了,我被困住了。现在数组已经满了,但行数仍然没有显示。数组与缓冲区相连
是的,我确实忘了,我已经很累了。现在阵列已经满了,但线条还是没有显示出来。数组与缓冲区相连
你应该给我整个代码。你不想猜测你清楚的东西。
帮助和行动是略有不同的事情。你不同意吗?
我完全同意你的观点,我请求帮助,我已经摸索了两个星期,没有结果,所以你的方案也不适合我,好吧,非常感谢,我自己会想办法。
下午好...关于ArrayGetAsSeries 函数的问题。为了了解ArrayGetAsSeries 函数是如何工作的 ,写了以下脚本。
脚本复制了一个数组-时间序列的酒吧开盘价到一个自定义数组中。 很明显:这个自定义数组被组织成一个时间序列数组,因为数组元素的索引是从最后一个到第一个(这在截图中显示,警报 函数 已经输出第四个酒吧的开盘时间和价格。这个条形图上有一条垂直线标记;我们还可以看到这个条形图的开盘价,在属性窗口中我们可以看到条形图的时间与警报 功能所显示的时间相同)。但是ArrayGetAsSeries 函数返回0,这意味着:用户数组没有被组织成一个时间序列数组(屏幕截图的左上角)。
问题:为什么ArrayGetAsSeries 函数返回0,即使用户数组被组织成一个时间序列数组?
P.S. 为了不给论坛添乱,提前感谢您的回答
问:为什么ArrayGetAsSeries 函数返回0,即使用户数组被组织成一个时间序列数组?
仅仅因为你按某种顺序复制了数据,并不意味着该阵列被组织成一个时间序列 。
但问题是,开盘价的数值是在for循环中从一个已经复制的条形图中复制出来的,其索引是从最后一个到第一个。但是,就我的理解,这意味着(即从最后一个到第一个的索引),数组被组织成一个时间序列?
P.S. 谢谢你回答我之前关于FileIsEnding 和FileIsLineEnding函数 的问题
但问题是,开盘价的数值是在for循环中从一个已经复制的条形图中复制出来的,其索引是从最后一个到第一个。但是,据我所知,这意味着(即从最后一个到第一个的索引),数组被组织成一个时间序列?
P.S. 谢谢你回答我之前关于函数FileIsEnding和FileIsLineEnding的问题
不,它只意味着这些数据与一段历史相匹配。
比如说,你可以手动输入。或者从一个文本文件中写出来。或在计算中收到。
毕竟,即使输入了一些条件性数据 "1.25 1.16 1.73 1.35",我们也可能得到多年前某些货币的历史。但这并不意味着我们已经建立了一个数组时间序列
我很抱歉重复了一个问题,但在我解决这个问题之前,我不能做下面的例子。
请帮助我解决这个问题。
我写了一个简单的脚本来打开一个订单(来自MQL4教程)。
我对4位数的仪器进行了编码。
我有一个公司的账户,点后面有5位数字。
请告知如何纠正5位数的代码,为什么脚本运行时显示错误4109(不允许交易)?
我很抱歉重复了一个问题,但在我解决这个问题之前,我不能做下面的例子。
请帮助我解决这个问题。
我写了一个简单的脚本来打开一个订单(来自MQL4教程)。
我对4位数的仪器进行了编码。
我有一个公司的账户,点后面有5位数字。
能否请你修改代码,使之成为5位数,为什么运行脚本时出现4109错误(不允许交易)?
除了它根本不需要工作。你需要由你的经纪公司检查止损和取款规模是否有效。