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

 

错在哪里,我不知道。

厣。

附加的文件:
5system2.mq4  8 kb
 
CJIeCaPb:

错在哪里,我不知道。

Ope.

while(O==3)循环中出了问题

 
CJIeCaPb:

while(O==3)循环中出了问题

吁...就是这样,我已经想通了。关闭后,票据被删除,订单必须重新运行。
 
你好!这就是问题所在,我无法打开该文件。试过不同的文件扩展名,无济于事,只是给出了:错误5004。该文件是在文件沙盒中。这都是关于手柄的,但我不知道为什么。下面是代码。
   int filehandle=FileOpen("test.txt",FILE_TXT|FILE_WRITE,";");
   if(filehandle<0)
   Alert("ошибка ",GetLastError());                          //Для проверки handle

 
 int filehandle=FileOpen("test.txt",FILE_WRITE|FILE_TXT,";");
 
evillive:
试过没有分离器--没有用。
 
Kapizdo4ka:
你好,我有这个问题,我无法打开文件。尝试了不同的文件扩展名,没有用,只是给出了:错误5004。文件在文件沙盒中。这都是关于手柄的,但我不知道为什么。下面是代码。

你是否尝试过指定该文件在一个共享文件夹中?

文件打开标志

定义如何处理该文件的标志值。标志的定义如下。

识别器

价值

描述

文件_阅读

1

文件被打开供阅读。这个标志在打开一个文件时使用(FileOpen())。FILE_WRITE和/或FILE_READ必须在文件被打开时被设置。

文件_写入

2

文件被打开以便写入。这个标志用于打开一个文件(FileOpen())。当一个文件被打开时,FILE_WRITE和/或FILE_READ标志必须被设置。

文件_BIN

4

二进制读写模式(没有从或到字符串的转换)。该标志用于打开文件(FileOpen())。

文件_CSV

8

一个csv文件(所有写入的项目都被转换为适当类型的字符串,unicode或ansi,并以分隔符分隔)。这个标志在打开一个文件时使用(FileOpen())。

FILE_TXT

16

简单的文本文件(与csv相同,但没有分隔符)。这个标志在文件被打开时使用(FileOpen())。

文件_ANSI

32

ANSI字符串(单字节字符)。这个标志在打开文件时使用(FileOpen())。

文件_UNICODE

64

UNICODE字符串(两个字节的字符)。这个标志在打开文件时使用(FileOpen())。

文件_共享_阅读

128

多个程序的共享读取访问。这个标志在打开一个文件(FileOpen())时使用,但在打开一个文件时并不代替FILE_WRITE和/或FILE_READ的需要。

文件_共享_写入

256

这个标志用于多个程序共享写入权限。这个标志用于打开文件(FileOpen()),但在打开文件时不会替代FILE_WRITE和/或FILE_READ。

文件_重写

512

文件可以被FileCopy()FileMove() 覆盖。该文件必须存在或可写。否则,文件将不会被打开

文件_COMMON

4096

文件在所有客户终端的共享文件夹中的位置/Terminal\Common\Files 。在打开文件(FileOpen())、复制文件(FileCopy()FileMove())和检查文件是否存在(FileIsExist())时使用该标志。

在打开一个文件时,可以指定一个或多个标志,这种组合被称为标志的组合。标志的组合是用逻辑OR(|)运算符号来写的,该符号放在被枚举的标志之间。例如,要同时打开一个CSV文件进行读写,你可以指定FILE_READ|FILE_WRITE|FILE_CSV组合。

 
Vinin:

你是否尝试过指定该文件在一个共享文件夹中?

文件打开标志

定义文件如何被打开的标志值。标志的定义如下。

识别器

价值

描述

文件_阅读

1

文件被打开供阅读。这个标志在打开一个文件时使用(FileOpen())。FILE_WRITE和/或FILE_READ必须在文件被打开时被设置。

文件_写入

2

文件被打开以便写入。这个标志在打开一个文件时使用(FileOpen())。当一个文件被打开时,FILE_WRITE标志必须被设置和/或FILE_READ标志必须被设置。

文件_BIN

4

二进制读写模式(未转换为字符串或从字符串转换)。该标志用于打开文件(FileOpen())。

文件_CSV

8

csv文件(所有写入的元素都被转换为适当类型的字符串,unicode或ansi,并以分隔符分隔)。这个标志在打开文件时使用(FileOpen())。

FILE_TXT

16

简单的文本文件(类型相同,但分隔符被忽略)。这个标志在打开一个文件时使用(FileOpen())。

文件_ANSI

32

ANSI类型的字符串(单字节字符)。这个标志在打开文件时使用(FileOpen())。

文件_UNICODE

64

UNICODE字符串(两个字节的字符)。这个标志在打开文件时使用(FileOpen())。

文件_共享_阅读

128

多个程序之间的共享读取访问。这个标志在打开文件(FileOpen())时使用,但不能代替打开文件时指定FILE_WRITE和/或FILE_READ。

文件_共享_写入

256

这个标志是用于多个程序共享的写访问。这个标志用于打开文件(FileOpen()),但不能代替打开文件时指定FILE_WRITE和/或FILE_READ标志的需要。

文件_重写

512

FileCopy()FileMove() 可以用来覆盖一个文件。该文件必须存在或可写。否则,文件将不会被打开

文件_COMMON

4096

文件在所有客户终端的共享文件夹中的位置 (Terminal\Common\Files 。在打开文件(FileOpen())、复制文件(FileCopy()FileMove())和检查文件是否存在(FileIsExist())时使用这个标志。

当打开一个文件时,可以指定一个或多个标志,这种组合被称为标志组合。使用逻辑OR(|)来记录标志的组合,它被放在所列标志之间。例如,要同时打开一个CSV文件进行读写,你可以指定组合FILE_READ|FILE_WRITE|FILE_CSV。

谢谢你!然而,答案原来要简单得多。这都是因为新建筑中的变化。事实证明,FileOpen函数现在必须指定uint类型,而不是像以前的版本那样指定int类型。
uint filehandle=FileOpen(filename,FILE_TXT||FILE_WRITE,"\r\n");

而现在,在出现错误的情况下,该函数返回0而不是-1。

 

勾画出一个简单的追踪止损。 bez_Level - 追踪起始水平,以点为单位。TrallStep--尾随步骤。魔力 - 魔力的数量。

问题是,如果专家顾问开了几个订单,只有第一个订单被记录下来。而且,当第一个订单关闭时,第二个订单开始颤动。我没有收到任何错误信息。我不能试图找出我做错了什么。谢谢你...

int lim=OrdersTotal()-1;

for(int i=lim; i>=0; i--)
{
如果(bez_Level>0)
{
如果(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
如果(OrderType()==OP_SELL)
{
{ 如果((OrderOpenPrice()-Ask)>(Point*bez_Level))
{
如果((OrderStopLoss()>(Ask+Point*bez_Level)+(Point*TrallStep)) ||(OrderStopLoss()==0))
{
//------修改订单并退出
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*bez_Level,OrderTakeProfit(),0))
Print("Trailing error",GetLastError())。
}
}
}
如果(OrderType()==OP_BUY)
{
如果((Bid-OrderOpenPrice()>Point*bez_Level))
{
如果(OrderStopLoss()<Bid-(Point*bez_Level)-(Point*TrallStep))
{
//------------------修改订单
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*bez_Level,OrderTakeProfit(),0))
Print("拖尾错误",GetLastError())
}
}

}

}
}
}
 

伙计们,有什么诀窍?为什么不从井田出来呢?

为什么没有进入start?????????

int init()
 {
   if(init_data()==false)error=true;
   if(error==false)load_data();
   if(error==false)count_data();
   //if(error==true)Print("---------->>>>>>> ERORR!!! <<<<<<<<<--------------");
   setparam();
   Print ("Инит завершён успешно");
   return (0);
 }

int start()
{
  // if(iTime(Symbol(),0,0) == prevtime) return(0);    //ждем нового бара
 //  prevtime = iTime(Symbol(),0,0);                   //если появился новый бар , включаемся    
   Print (" Старт после нового бара"); 
...