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

 
伙计们,很好地帮助了对。如果一般名单上没有MT,你如何添加?
 
Valeriy Yastremskiy:

文件_共享_阅读

128

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

它没有。一般来说,最好不要在每次勾选时都打开和关闭文件

它允许共享阅读,而不是共享阅读
谢谢你。它的工作!我为编译器每次都要关闭文件感到抱歉,所以我把关闭文件放在OnDeinit中。
 
HeAic:
如何替换指标中的Sleep(500)函数

如果你真的需要,自己做一个暂停,以毫秒为单位计算处理器的勾选时间。它将暂停,但整个线程都在等待。

 
  int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
  datetime time=TimeLocal();
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  FileClose(fileHandle);
  }
void OnTick()
  {
  FileWrite(fileHandle,"Время=",TimeLocal());
  }
如果"FileWrite"中不使用 "时间 "变量,为什么要声明它?如果你不申报。
int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
datetime TimeLocal();
那么编译器就会发誓,但这有什么意义呢?
 
ascerdfg:
如果 "FileWrite "中不使用变量 "time",为什么要声明它?如果你不声明:编译器会发誓,但有什么意义呢?
datetime TimeLocal();

本报讯?????

也许可以把这一行完全去掉,然后看看?

 
Valeriy Yastremskiy:

THIS IS WHAT?????

也许可以把这一行完全去掉,然后看看?

它在帮助中是这样说的:https://www.mql5.com/ru/docs/dateandtime/timelocal

不带参数的调用

datetimeTimeLocal()。

Документация по MQL5: Дата и время / TimeLocal
Документация по MQL5: Дата и время / TimeLocal
  • www.mql5.com
Дата и время / TimeLocal - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
ascerdfg:

这是在帮助文件中所说的:https://www.mql5.com/ru/docs/dateandtime/timelocal

不带参数的调用

datetimeTimeLocal()。

文件打开

该函数打开一个具有指定名称和指定标志的文件。

intFileOpen(
stringfile_name,//文件名
intopen_flags,// 标志的组合
shortdelimiter='\t',// delimiter
uintcodepage=CP_ACP//codepage
);

而这就是fileopen的写法。这不是一个如何在程序中写的例子,而是一个关于返回值类型的说明。

 qqq.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                                  https:// |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
 int fileHandle=FileOpen("logg.txt",FILE_READ|FILE_WRITE|FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_TXT|FILE_ANSI);   
//  datetime time=TimeLocal();
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  FileClose(fileHandle);
  }
void OnTick()
  {
  FileWrite(fileHandle,"Время=",TimeLocal());
  }
'qqq.mq4'       qqq.mq4 1       1
0 errors, 0 warnings, 202 msec elapsed          1       1
在oninit中将时间变量分配给本地计算机时间是有意义的,这将是EA的开始时间)))
 
谢谢你!
 
double a=20.43;
double b=20.56;
int OnInit()
  {
  return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  Print(a-b);
  }
结果是-0.12999999999999999999。为什么?
 
ascerdfg:
结果打印出-0.1299999999999999。为什么?

在计算机内存中存储实数的特点。

使用DoubleToString()来输出所需的精度

一般来说,你应该先学习基础知识,然后再尝试编写程序。

Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
Документация по MQL5: Основы языка / Типы данных / Вещественные типы (double, float)
  • www.mql5.com
Вещественные типы (или типы с плавающей точкой) представляют значения, имеющие дробную часть. В языке MQL5 есть два типа для чисел с плавающей точкой. Способ представления вещественных чисел в машинной памяти определен стандартом IEEE 754 и не зависит от платформ, операционных систем и языков программирования. Константы с плавающей точкой...
原因: