新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 240 1...233234235236237238239240241242243244245246247...1953 新评论 Alexey Viktorov 2017.06.28 12:05 #2391 Санек:1) - 该部分打开文件11112222.txt,从其中读取数据。//=================================BUY========================================= int handle2 = FileOpen("11112222.txt", FILE_CSV|FILE_READ, ";");//код открывает файл для чтения2) - 接下来是如果handle2>0的条件 if(handle2>0) // если в файле больше 0, то есть 1, то открывать BUY {3) - 这是我不明白的部分。 Print(FileReadString(handle2));4) - 这一部分关闭了文件。 FileClose(handle2); // закрытие текстового файла5) - 由于条件handle2>0被满足,即文件11112222.txt包含1,买入订单 被打开。 //ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ if(OrdersTotal() == 0) // если нет открытых ордеров то открывать ордер на покупку { OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0); // первым указывается ЛОСЬ, вторым ПРОФИТ FileClose(handle2); // закрытие текстового файла } else Print("NE USPESHNO!!!"); FileClose(handle2); // закрытие текстового файла }//=================================конец кода BUY========================================= 我把哪些部分搞混了?1) 打开文件,但不读取其内容。2) 文件的句柄总是大于零。因此,如果文件存在,无论其内容如何,该条件将始终成立。3) 这正是在读取文件的内容。虽然我不明白为什么要读字符串,如果要读数字的话......。但它仍然可以成为另一个问题。现在最主要的是描述行动的顺序。4)当然,文件必须被关闭,它就会关闭。而只有下一个子句需要附加条件,这取决于你在子句3中读到的内容,但不是第二个子句。 Artyom Trishkin 2017.06.28 12:09 #2392 Alexey Viktorov:1)打开一个文件,但不读取其内容。2)一个文件柄总是大于零。因此,如果文件存在,无论其内容如何,该条件将始终成立。3) 这正是在读取文件的内容。但我不明白为什么要读一个字符串,如果要读一个数字的话......。但它仍然可以指的是另一个问题。现在最主要的是描述行动的顺序。4)文件必须关闭,当然,它正在被关闭。而只有下一个子句应该是有条件的,这取决于你在子句3中读到的内容,但不是第二子句。不...INVALID_HANDLE的值为-1。这时它就会出现文件打开错误,然后就会得到一个卖出信号...其他常数用于表示参数和变量的状态的特殊常数。可以是以下值。恒定描述价值NULL任何类型的空。也表示空字符串状态0空白表示参数的空状态-1EMPTY_VALUE指标缓冲区中的空值2147483647 (0x7FFFFFFFF)CLR_NONE, clrNONE没有颜色。默认值,指向空值的指针。用于自定义指标-1芯片_MAX终端中同时打开的图表的最大可能数量100不合法的手脚不正确的手柄-1IS_DEBUG_MODE调试模式下的mq5-程序的标志在调试模式下不等于零,否则为0is_profile_mode剖析模式下的mq5-程序的标志在剖析模式下不等于零,否则为0WHOLE_ARRAY表示到数组末端的剩余元素数,即整个数组将被处理。0錯誤的值一个常数可以隐含地被转换为任何枚举类型-1 [存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. Any questions from newcomers 命名常量 - 其他常量 cripple 2017.06.28 12:28 #2393 没有看到这个主题,所以我创建了一个新的主题。请看https://www.mql5.com/ru/forum/206126 Как в тестере стратегий получить TimeGMT(); 2017.06.28www.mql5.com Справочник MQL5, Дата и время, TimeGMT TimeGMT - При работе в тестере стратегий время TimeGMT() всегда равно моделируемому серверному времени TimeT... Санек 2017.06.28 12:43 #2394 Alexey Viktorov:1)打开一个文件,但不读取其内容。2) 一个文件柄总是大于零。相应地,如果文件存在,无论其内容如何,该条件将始终成立。3) 这正是在读取文件的内容。但我不明白为什么要读一个字符串,如果要读一个数字的话......。但它仍然可以指的是另一个问题。现在最主要的是描述行动的顺序。4)文件必须关闭,当然,它正在被关闭。而只有下一个项目应该是有条件的,这取决于你在第3项中读到的内容,但不是第二个项目。亲爱的MQL大师--如果你没有问题,请帮我解决这个代码,我在搜索引擎上花了半天时间,但我没有找到类似的东西。我想这只是几行字,但对一个有经验的用户来说,这只是几分钟的事))) igorbel 2017.06.28 17:19 #2395 c++中的dll如何从mql4中获取一个字符串并将其转换为char*?struct MqlStr { int len; char *string; }; static int proc_func(char* Name); MT4_EXPFUNC int __stdcall myfunc(MqlStr sym_name) { proc_func(sym_name[0].string); } int proc_func(char* Name) { } 这就是正确的代码,不是吗? toni_stark 2017.06.28 18:51 #2396 大家好,请告诉我,我 大约一年前写了一个EA,它工作得很好。这段时间我一直没有使用它。我不知道该怎么做,我只是不知道该怎么做。会不会是因为我改变了Build?我目前正在使用Build 1090。 Konstantin Erin 2017.06.28 18:58 #2397 Санек: 亲爱的MQL大师--如果你不难帮我解决这段代码,我花了半天时间在搜索引擎中挖掘,但我找不到类似的东西。这似乎是几行字的问题,对于一个有知识的人来说,这只是三分钟的问题)))。花了我两个小时。我必须逐件检查系统。在相邻的图表上同时运行两个EA--一切都将是可见的。专家顾问1 =写到文件//+------------------------------------------------------------------+ //| Запись в файл -1 0 1 1.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(7); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждые 7 секунд | //+------------------------------------------------------------------+ void OnTimer() { int x=0; if(rand()<20000) { x=1; if(rand()<16000) x=-1; } ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 3); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор",(string)x+" Открываю",20,"Arial",Yellow); ChartRedraw(0); Sleep(2000); int handle = FileOpen("123.txt", FILE_BIN | FILE_WRITE); if(handle == -1) { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } ObjectSetText("Семафор",(string)x+" Записываю",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileWriteInteger(handle, x, 4); Sleep(2000); ObjectSetText("Семафор","",20,"Arial",White); ChartRedraw(0); FileClose(handle); }EA 2 = 读取文件//+------------------------------------------------------------------+ //| Чтение файла -1 0 1 2.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(1); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждую секунду | //+------------------------------------------------------------------+ void OnTimer() { int x=0; ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 2); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор","",20,"Arial",Yellow); ChartRedraw(0); Sleep(500); int handle = FileOpen("123.txt", FILE_BIN | FILE_READ); // Получаем НОМЕР файла в ОС if(handle == -1) // Если производится запись, файл занят, будет ошибка { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } x = FileReadInteger(handle,4); // Получаем СОДЕРЖИМОЕ файла ObjectSetText("Семафор",(string)x+" Прочитал",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileClose(handle); } [删除] 2017.06.28 22:21 #2398 toni_stark:大家好,请给我一些建议,我 在一年前写了一个EA,它运行良好。这段时间我一直没有使用它。我不知道该怎么做,我只是不知道该怎么做。会不会是因为我改变了Build?我目前正在使用Build 1090。这很有可能,已经有很多创新了。首先要检查是否有编译错误。有#PropertyStrict指令。 Artyom Trishkin 2017.06.28 22:33 #2399 Vladimir Zubov: 很可能有很多的创新。首先要检查是否有编译错误。有了#PropertyStrict指令。没有这样的指令。有的。#property strict toni_stark 2017.06.29 15:27 #2400 Vladimir Zubov: 很可能有很多的创新。首先要检查是否有编译错误。有了#PropertyStrict指令。阿尔乔姆-特里什金。没有这样的指令。有的。但我无法打开 我电脑上以ex4为扩展名的EA文件,但通过MetaEditor却没有这个文件。请告诉我这是什么原因。 1...233234235236237238239240241242243244245246247...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1) - 该部分打开文件11112222.txt,从其中读取数据。
//=================================BUY=========================================
int handle2 = FileOpen("11112222.txt", FILE_CSV|FILE_READ, ";");//код открывает файл для чтения
2) - 接下来是如果handle2>0的条件
if(handle2>0) // если в файле больше 0, то есть 1, то открывать BUY
{
3) - 这是我不明白的部分。
Print(FileReadString(handle2));
4) - 这一部分关闭了文件。
FileClose(handle2); // закрытие текстового файла
5) - 由于条件handle2>0被满足,即文件11112222.txt包含1,买入订单 被打开。
//ОТКРЫТИЕ ОРДЕРА НА ПОКУПКУ
if(OrdersTotal() == 0) // если нет открытых ордеров то открывать ордер на покупку
{
OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, 0, 0); // первым указывается ЛОСЬ, вторым ПРОФИТ
FileClose(handle2); // закрытие текстового файла
}
else
Print("NE USPESHNO!!!");
FileClose(handle2); // закрытие текстового файла
}
//=================================конец кода BUY=========================================
1) 打开文件,但不读取其内容。
2) 文件的句柄总是大于零。因此,如果文件存在,无论其内容如何,该条件将始终成立。
3) 这正是在读取文件的内容。虽然我不明白为什么要读字符串,如果要读数字的话......。但它仍然可以成为另一个问题。现在最主要的是描述行动的顺序。
4)当然,文件必须被关闭,它就会关闭。
而只有下一个子句需要附加条件,这取决于你在子句3中读到的内容,但不是第二个子句。
1)打开一个文件,但不读取其内容。
2)一个文件柄总是大于零。因此,如果文件存在,无论其内容如何,该条件将始终成立。
3) 这正是在读取文件的内容。但我不明白为什么要读一个字符串,如果要读一个数字的话......。但它仍然可以指的是另一个问题。现在最主要的是描述行动的顺序。
4)文件必须关闭,当然,它正在被关闭。
而只有下一个子句应该是有条件的,这取决于你在子句3中读到的内容,但不是第二子句。
不...INVALID_HANDLE的值为-1。
这时它就会出现文件打开错误,然后就会得到一个卖出信号...
其他常数
用于表示参数和变量的状态的特殊常数。可以是以下值。
恒定
描述
价值
NULL
任何类型的空。也表示空字符串状态
0
空白
表示参数的空状态
-1
EMPTY_VALUE
指标缓冲区中的空值
2147483647 (0x7FFFFFFFF)
CLR_NONE, clrNONE
没有颜色。默认值,指向空值的指针。用于自定义指标
-1
芯片_MAX
终端中同时打开的图表的最大可能数量
100
不合法的手脚
不正确的手柄
-1
IS_DEBUG_MODE
调试模式下的mq5-程序的标志
在调试模式下不等于零,否则为0
is_profile_mode
剖析模式下的mq5-程序的标志
在剖析模式下不等于零,否则为0
WHOLE_ARRAY
表示到数组末端的剩余元素数,即整个数组将被处理。
0
錯誤的值
一个常数可以隐含地被转换为任何枚举类型
-1
没有看到这个主题,所以我创建了一个新的主题。请看https://www.mql5.com/ru/forum/206126
1)打开一个文件,但不读取其内容。
2) 一个文件柄总是大于零。相应地,如果文件存在,无论其内容如何,该条件将始终成立。
3) 这正是在读取文件的内容。但我不明白为什么要读一个字符串,如果要读一个数字的话......。但它仍然可以指的是另一个问题。现在最主要的是描述行动的顺序。
4)文件必须关闭,当然,它正在被关闭。
而只有下一个项目应该是有条件的,这取决于你在第3项中读到的内容,但不是第二个项目。
亲爱的MQL大师--如果你没有问题,请帮我解决这个代码,我在搜索引擎上花了半天时间,但我没有找到类似的东西。
我想这只是几行字,但对一个有经验的用户来说,这只是几分钟的事)))
c++中的dll如何从mql4中获取一个字符串并将其转换为char*?
这就是正确的代码,不是吗?大家好,请告诉我,我 大约一年前写了一个EA,它工作得很好。这段时间我一直没有使用它。我不知道该怎么做,我只是不知道该怎么做。会不会是因为我改变了Build?我目前正在使用Build 1090。
这似乎是几行字的问题,对于一个有知识的人来说,这只是三分钟的问题)))。
花了我两个小时。我必须逐件检查系统。在相邻的图表上同时运行两个EA--一切都将是可见的。专家顾问1 =写到文件
//+------------------------------------------------------------------+ //| Запись в файл -1 0 1 1.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(7); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждые 7 секунд | //+------------------------------------------------------------------+ void OnTimer() { int x=0; if(rand()<20000) { x=1; if(rand()<16000) x=-1; } ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 3); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор",(string)x+" Открываю",20,"Arial",Yellow); ChartRedraw(0); Sleep(2000); int handle = FileOpen("123.txt", FILE_BIN | FILE_WRITE); if(handle == -1) { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } ObjectSetText("Семафор",(string)x+" Записываю",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileWriteInteger(handle, x, 4); Sleep(2000); ObjectSetText("Семафор","",20,"Arial",White); ChartRedraw(0); FileClose(handle); }
EA 2 = 读取文件
//+------------------------------------------------------------------+ //| Чтение файла -1 0 1 2.mq4 | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| Инициализация - установка интервала таймера | //+------------------------------------------------------------------+ void OnInit() { EventSetTimer(1); } //+------------------------------------------------------------------+ //| Деинициализация - удаление метки | //+------------------------------------------------------------------+ void OnDeinit(const int Зачем) { ObjectDelete("Семафор"); } //+------------------------------------------------------------------+ //| По таймеру каждую секунду | //+------------------------------------------------------------------+ void OnTimer() { int x=0; ObjectCreate("Семафор",OBJ_LABEL,0,0,0); ObjectCreate("Семафор", OBJ_LABEL, 0, 0, 0); // Создание ObjectSet("Семафор", OBJPROP_CORNER, 2); // В правый нижний угол ObjectSet("Семафор", OBJPROP_XDISTANCE, 0); // Координата X ObjectSet("Семафор", OBJPROP_YDISTANCE, 40); // Координата Y ObjectSetText("Семафор","",20,"Arial",Yellow); ChartRedraw(0); Sleep(500); int handle = FileOpen("123.txt", FILE_BIN | FILE_READ); // Получаем НОМЕР файла в ОС if(handle == -1) // Если производится запись, файл занят, будет ошибка { ObjectSetText("Семафор","Ошибка",20,"Arial",Salmon); ChartRedraw(0); return; } x = FileReadInteger(handle,4); // Получаем СОДЕРЖИМОЕ файла ObjectSetText("Семафор",(string)x+" Прочитал",20,"Arial",DeepSkyBlue); ChartRedraw(0); FileClose(handle); }
大家好,请给我一些建议,我 在一年前写了一个EA,它运行良好。这段时间我一直没有使用它。我不知道该怎么做,我只是不知道该怎么做。会不会是因为我改变了Build?我目前正在使用Build 1090。
这很有可能,已经有很多创新了。首先要检查是否有编译错误。有#PropertyStrict指令。
很可能有很多的创新。首先要检查是否有编译错误。有了#PropertyStrict指令。
没有这样的指令。
有的。
很可能有很多的创新。首先要检查是否有编译错误。有了#PropertyStrict指令。
没有这样的指令。
有的。
但我无法打开 我电脑上以ex4为扩展名的EA文件,但通过MetaEditor却没有这个文件。请告诉我这是什么原因。