任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 899 1...892893894895896897898899900901902903904905906...1178 新评论 [删除] 2015.06.03 05:48 #8981 程序员同志们,有一个非常大的请求,请你们帮助为机器人写一段代码!该机器人的交易对象是两个木翼。当它们交叉时,它打开一个头寸,并在相反的交叉时关闭它。但它需要在相反的交叉点开设另一个位置。因此,当它关闭 "买入 "时,机器人应立即打开 "卖出",反之亦然! 附加的文件: schumacher-v1.3_1.mq4 6 kb Alexey Viktorov 2015.06.03 06:24 #8982 lufer: 谢谢,但在OnInit()中用Mas[N];是行不通的,我已经试过了。 嗯,我很抱歉,我昨天不是很清醒。或者不是很清醒。 lufer 2015.06.04 06:59 #8983 AlexeyVik: 好吧,我很抱歉,我昨天晚上不是很清醒。或者不是很清醒。)),它发生了。 lufer 2015.06.04 07:23 #8984 假设我想让数组填满从第一个形成的柱子(#1)开始的每个柱子的指标(例如ATR)的数据?也就是说,数组已经被声明,并且启动函数已经对其进行了初始化。如何正确操作?像这样?for(int i=0; i<N; i=i++){Mas[i]=iATR(NULL,0,1,i+1)。 }或者可以通过以下方式进行。for(int i=0; i<N; i=i++){ArrayFill(Mas,i,1,iATR(NULL,0,1,i+1))}或者完全是其他的东西?,到目前为止,我还没有以任何方式成功(,有什么不对,请指教,提前感谢。 Vitalie Postolache 2015.06.04 08:49 #8985 lufer:假设我想让数组填满从第一个形成的柱子(#1)开始的每个柱子的指标(例如ATR)的数据?也就是说,数组已经被声明,并且启动函数已经将其初始化。如何正确操作?像这样?for(int i=0; i<N; i=i++){Mas[i]=iATR(NULL,0,1,i+1)。 } 第一种情况就足够了。但如果你需要从第一个小节开始的数值,那么从1开始计算循环也是明智的。 lufer 2015.06.04 09:27 #8986 evillive: 第一个选项就足够了。但如果我们需要从第一根柱子开始的数值,从1开始计算周期会更合理。 我试着用1和0,但还是有问题,数值没有被写入,当我要求输出一些时,它只给出了零。 Vitalie Postolache 2015.06.04 09:39 #8987 lufer: 我试着用1和0,但还是有问题,没有写出任何数值,当我要求输出一些数值时,只输出了零。 请给我看输出代码。 lufer 2015.06.04 12:35 #8988 evillive: 显示代码,要求输出。为了以防万一,我给你看所有的代码。//+------------------------------------------------------------------+ extern int N =100; // Количество баров int Mas[]; // Объявление массива //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { ArrayResize(Mas,N,0); // Установка размера массива } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { for(int i=0; i<N; i=i++) // Цикл записи данных { Mas[i]=iATR(NULL,0,1,i+1); // Вычисление значений } Alert(Mas[0],"," ,Mas[50],"," ,Mas[99]); // Вывод на экран return; // Выход из start } //+------------------------------------------------------------------+ 使用SRC来插入代码 Vitalie Postolache 2015.06.04 13:42 #8989 lufer:为了以防万一,我给你看所有的代码。 制作一个双倍 类型的数组 lufer 2015.06.04 16:37 #8990 evillive: 制作一个双倍 类型的数组 这并没有解决问题,现在看来,OnTick() 中出了问题--当我在终端窗口加载EA时,什么都没有发生,而当我试图删除它时,终端停滞了很久,过了一会儿又删除了。我试着给一些元素手动赋值,一切都很好。关于阵列初始化周期的一些东西似乎是错误的。 1...892893894895896897898899900901902903904905906...1178 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
谢谢,但在OnInit()中用Mas[N];是行不通的,我已经试过了。
好吧,我很抱歉,我昨天晚上不是很清醒。或者不是很清醒。
假设我想让数组填满从第一个形成的柱子(#1)开始的每个柱子的指标(例如ATR)的数据?也就是说,数组已经被声明,并且启动函数已经对其进行了初始化。如何正确操作?
像这样?
for(int i=0; i<N; i=i++)
Mas[i]=iATR(NULL,0,1,i+1)。
}
或者可以通过以下方式进行。
for(int i=0; i<N; i=i++)
{
ArrayFill(Mas,i,1,iATR(NULL,0,1,i+1))}
或者完全是其他的东西?,到目前为止,我还没有以任何方式成功(,有什么不对,请指教,提前感谢。
假设我想让数组填满从第一个形成的柱子(#1)开始的每个柱子的指标(例如ATR)的数据?也就是说,数组已经被声明,并且启动函数已经将其初始化。如何正确操作?
像这样?
for(int i=0; i<N; i=i++)
Mas[i]=iATR(NULL,0,1,i+1)。
}
第一个选项就足够了。但如果我们需要从第一根柱子开始的数值,从1开始计算周期会更合理。
我试着用1和0,但还是有问题,没有写出任何数值,当我要求输出一些数值时,只输出了零。
显示代码,要求输出。
为了以防万一,我给你看所有的代码。
使用SRC来插入代码
为了以防万一,我给你看所有的代码。
制作一个双倍 类型的数组