新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 169

 

下午好。我不能从文件中读取数据并立即将其写回。如果我取消对带有循环和MathRand() 的代码片段的注释,文件就会变得很模糊,因为它应该是这样。但是,如果行数被注释掉了(文件中已经有了混乱),那么下次我启用/禁用专家顾问时,文件将包含零。读写数组是双ROM1[128][128]和双ROM2[3][128]。这些数组在代码的其他地方没有改变,只是被读取。这里有一段代码。

int init()                                     
   {
   Print ("Сработала ф-ия init"); // Сообщение
   Handle=FileOpen("Neuro",FILE_BIN|FILE_READ|FILE_WRITE);// Открытие файла на чтение и запись   
   FileSeek(Handle, 0, SEEK_SET); //указатель на начало файла
   FileReadArray(Handle, ROM1);
   FileSeek(Handle, 131073, SEEK_SET); //указатель на конец первого массива
   FileReadArray(Handle, ROM2);

/*
   for(i=0; i<128; i++) //заполнение памяти первого слоя кашей
      {
      for(k=0; k<128; k++)
         {
         ROM1[i][k] = (MathRand()-16383)/3200;
         }
      }
   for(i=0; i<3; i++) //заполнение памяти второго слоя кашей
      {
      for(k=0; k<128; k++)
         {
         ROM1[i][k] = (MathRand()-16383)/3200;
         }
      }
*/         
   return(0);                                       
   }   
//--------------------------------------------------------------------
int deinit()                                   
   {
   FileSeek(Handle, 0, SEEK_SET);
   FileWriteArray(Handle, ROM1);
   FileSeek(Handle, 131073, SEEK_SET);
   FileWriteArray(Handle, ROM2);
   FileClose(Handle);
   return(0);                                     
   }

请帮助我理解这一点。谢谢你。
 
你好,请你告诉我如何在EA代码中写入
条件是要搜索一个信号

比如说。
市场上有一个订单,魔力565在13:00开放。
在EA中,有一个条件,为了打开订单
在市场上有一个具有565神奇数字的订单,我怎样才能在我的专家顾问中把寻找信号的时间推迟一个小时呢?
寻找信号的工作将于14:00开始。

我目前看到的情况是,在13:00,有一个Magic 565的订单被打开了
和猫头鹰在13:00:02开单。

两个相同的命令。


谢谢你。

 
var58:
你好,请你告诉我如何在EA代码中写入
条件是要搜索一个信号

比如说。
市场上有一个订单,魔力565在13:00开放。
在EA中,有一个条件,为了打开订单
在市场上有一个具有565神奇数字的订单,我怎样才能在我的专家顾问中把寻找信号的时间推迟一个小时呢?
寻找信号的工作将于14:00开始。

我目前看到的情况是,在13:00,有一个Magic 565的订单被打开了
和猫头鹰在13:00:02开单。

两个相同的命令。


谢谢你。

你可以随时搜索信号,但你必须按时间开仓。

用魔法565观察开仓的时间,并观察当前的时间。如果当前时间比用magic 565开仓的时间长了指定的分钟数,那么你就可以开仓了。

 
Artyom Trishkin:

你可以随时搜索信号,但你必须允许按时间开仓。

用魔法565查看开仓时间,查看当前时间。如果当前时间比Magik 565的开仓时间长了一定的分钟数,那么就可以开仓。


非常感谢你。它在代码中是什么样子的?
 
下午好。我不能从文件中读取数据并立即将其写回。如果我取消对带有循环和MathRand()的代码片段的注释,文件就会变得很模糊,因为它应该是这样。但是,如果行数被注释掉了(文件中已经有了混乱),那么下次我启用/禁用专家顾问时,文件将包含零。读写数组是双ROM1[128][128]和双ROM2[3][128]。这些数组在代码的其他地方没有改变,只是被读取。这里有一段代码。

一点点的。该函数不会读取二维数组的双倍数,尽管它可以正确地写入。

我做了一个循环用于逐个元素的阅读。也许,它可能对某人有用。

{
FileSeek(Handle, n,  SEEK_SET); //изменение позиции файлового курсора        
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}
 
var58:

非常感谢你。它在代码中是什么样子的?

而这并不是免费的代码编写,而是帮助那些试图自己编写,但却无法得到正确结果的人。

向我们展示你的代码中无法做到的事情--我们会帮助你。

 
Tamul:

我已经解决了一些问题。二维数组double函数不想读,尽管它写得很好。

我已经进行了逐个循环的阅读。也许有人会需要它。

{
FileSeek(Handle, n,  SEEK_SET); //изменение позиции файлового курсора        
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}

我为什么要向人们提供这样的拐杖,只是因为我自己没有应付过这个任务?

要从文件中读取一个二维数组,应该是为其准备的二维数组。

如果我没有记错的话,我没有看到文件 在被写入后被关闭。一个空文件被创建,数据被写入其中,但这个填满的文件被存储在主内存中,文件数据只能从磁盘中读取。结果是,文件看起来已经被写入,但实际上它并不在磁盘上......。为了将数据保存到磁盘,应该关闭文件或强行将其保存到磁盘

 
Artyom Trishkin:

而这并不是免费的代码编写,而是帮助那些试图自己编写,但却无法得到正确结果的人。

向我们展示你的代码中无法做到的事情,我们会提供帮助。


谢谢
 

你好!请用mql4写一个简单(非常简单)的例子。我只是一个完全的初学者。

1) 当它达到任何数值时,开一个挂单(即如果价格是0.7777,那么开一个挂单)。

2) 当一个(市场)订单达到任何数值时关闭(即如果价格是0.6666,则关闭订单)。

我甚至不能用一个唯一的订单号来关闭一个订单。我想尝试改变我的交易机器人的当前状态,但我什么都不明白。

我试着看了一下这个网站的教程,但没有效果(也许是我太笨了),而且初级的例子不知为什么在网上没有。预先感谢

 
maxon777:

你好!请用mql4写一个简单(非常简单)的例子。我只是一个完全的初学者。

1) 当它达到任何数值时,开一个挂单(即如果价格是0.7777,那么开一个挂单)。

2) 当一个(市场)订单达到任何数值时关闭(即如果价格是0.6666,则关闭订单)。

我甚至不能用一个唯一的订单号来关闭一个订单。我想尝试改变我的交易机器人的当前状态,但我什么都不明白。

我试着看了一下这个网站的教程,但没有效果(也许是我太笨了),而且初级的例子不知为什么在网上没有。预先感谢


如果你有挂单的问题,在CodeBase 上找找看,看看代码是怎么写的。