初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1076 1...106910701071107210731074107510761077107810791080108110821083...1503 新评论 leonerd 2019.06.28 17:33 #10751 如何在一行中读取一个大文件? FileReadString() 当从bin-file读取时,必须指定要读取的字符串的长度。当从txt文件中读取时,不需要字符串的长度,字符串将从当前位置读到换行字符"\r\n"。当从csv文件中读取时,字符串的长度也不是必需的,字符串将从当前位置开始读取,直到最近的分隔符或文本字符串的结束符为止。 整个文件的唯一标志是FILE_BIN,但在MQL5中,与MQL4不同,它被限制在4095字节。我还能如何从文件中获取一行大的文本? Igor Makanu 2019.06.29 01:02 #10752 Сергей Таболин: 我不是这个意思。 "而用逻辑NOT来解决--反转位,但我没有终端-- 我不 记得如何 在MQL中做位操作NOT,我也不想看在线帮助"。 我的意思是,要么给我一个证据,要么就不要把水搅浑))))。 "任何人都可能犯错。只有强者才能承认错误!"。如果还没有人发表意见,这就是我的智慧)))。如果有人已经说过--我已经重复了一位智者的智慧))))。 我还是不明白你的说法?你是在暗示我应该向你证明什么?- 为什么?)))) 在这里,我通过NOT重现,并检查了所有讨论的变体。 void OnStart() { //--- uint TForiginal=OBJ_PERIOD_M1|OBJ_PERIOD_M2|OBJ_PERIOD_M3|OBJ_PERIOD_M4|OBJ_PERIOD_M5|OBJ_PERIOD_M6|OBJ_PERIOD_M10| OBJ_PERIOD_M12|OBJ_PERIOD_M15|OBJ_PERIOD_M20|OBJ_PERIOD_M30|OBJ_PERIOD_H1; uint TFwithNOT=(~OBJ_PERIOD_H1&OBJ_PERIOD_H2)-1; uint TFwithShift=OBJ_ALL_PERIODS>>9; Print("TForiginal = ",TForiginal); Print("TFwithNOT = ",TFwithNOT); Print("TFwithShift = ",TFwithShift); } //+------------------------------------------------------------------+ NOT变体适用于任何TF,但根据(~TF_以下我们显示&TF_一比所需TF大)-1来填充。 Anzhela Sityaeva 2019.06.29 08:51 #10753 大家好!还有一个问题... 有一个MQL5程序,它有一个 "输入参数 "的设置(很多)。该程序根据需要进行计算并创建/删除和管理图形对象。 从设置窗口改变输入参数后,产生事件Init,这导致程序初始化和 "重新计算 "和 "重新绘制 "对象,原则上这是需要的,但当图表周期改变(和其他)时,事件Init也会产生 ,结果是每次都重复这个过程,即使不需要它。 问题:如果输入参数没有改变,但在程序(终端)开始时留下初始化,我如何在 Init事件中排除程序 初始化? 可能的变体:记住设定的值,并在 Init事件发生时进行比较,如果它们不同,允许初始化,但有很多输入参数...... Alexey Viktorov 2019.06.29 09:14 #10754 Anzhela Sityaeva: 大家好!还有一个问题... 有一个MQL5程序,它有一个 "输入参数 "的设置(很多)。该程序根据需要进行计算并创建/删除和管理图形对象。 从设置窗口改变输入参数后,事件 Init被生成,这导致了程序初始化和 "重新计算 "和 "重新绘制 "对象,原则上,这是需要的,但是当图表周期改变时(和其他), 事件Init也被生成 ,结果是这个过程每次都在重复,即使不需要。 问题:如果输入参数没有改变,但在程序(终端)开始时留下初始化,我如何在 Init事件中排除程序 初始化 ? 可能的变体:记住设定的值,当事件 Init发生时,比较它们,如果它们不同,允许初始化,但有很多输入参数...... 这里有一些关于另一个类似问题的提示 关于交易、自动交易系统和策略测试的论坛 在EA中工作,但在指标中不正确,指标启动时有音乐。 Ihor Herasko, 2019.06.17 14:12 是的。 当指标启动时,它会创建一个全局 终端变量。比如--我被启动了。 播放问候语。 卸载时(在OnDeinit中检查),全局终端变量被删除。 如果在操作过程中,TF被改变或参数被改变,那么在OnInit退出时,终端的全局变量被检查。如果是这样,那么就不播放问候语。如果没有,就会播放问候语。 关于交易、自动交易系统和策略测试的论坛 它在专家顾问中起作用,但在指标中却不正确,在指标启动时有音乐。 Taras Slobodyanik, 2019.06.17 16:25 5.你也可以把一个对象留在图表上,并在开始时检查其存在状态。 Anzhela Sityaeva 2019.06.29 09:53 #10755 Alexey Viktorov: 这里有一些关于另一个类似问题的提示 谢谢你的回答,看来在我们的案例中,我们将不得不通过图上的 "空白 " 来描述 几十个对应关系的变化状态,以跟踪它们的变化,或者只要没有太多的对象,就得忍受不必要的初始化...... Alexey Viktorov 2019.06.29 11:12 #10756 Anzhela Sityaeva: 谢谢你的回答,看来在我们的案例中,我们将不得不通过图上的 "空白 " 来描述 几十个对应关系的变化状态,以跟踪它们的变化,或者只要没有那么多的对象,就忍受不必要的初始化...... 但你问的问题是。 安热拉-斯蒂亚耶娃。 大家好!还有一个问题... 有一个MQL5程序,它有设置(很多)"输入参数"。该程序根据需要进行计算并创建/删除和管理图形对象。 从设置窗口改变输入参数后,产生事件Init,这导致程序初始化和 "重新计算 "和 "重新绘制 "对象,原则上这是需要的,但当图表周期 (和其他)改变时, 事件Init也 会产生 ,结果是每次都重复这个过程,即使不需要。 问题:如果输入参数没有改变,但在程序(终端)开始时留下初始化,我如何在 Init事件中排除程序 初始化 ? 可能的变体:记住设定的值,当事件 Init发生时,比较它们,如果它们不同,允许初始化,但有很多输入参数...... 而在你的情况下,其中一个提示将防止这些不必要的对象重绘。如果这些对象在OnDeinit()中被删除,你应该在切换图表时也禁止删除这些对象。 这是一个关于交易、自动交易系统和策略测试的论坛。 如何在图表关闭时删除终端的全局变量? Alexey Viktorov, 2019.06.29 08:40 请注意这个表格 理论_计划 0 专家通过调用ExpertRemove()停止工作 REASON_REMOVE 1 从图表中删除的程序 原因_重新编译 2 程序重新编译 原因_图表变化 3 图表符号或周期已被改变 原因_chartclose 4 该图表已关闭 原因_参数 5 输入参数被用户改变 REASON_ACCOUNT 6 另一个账户被激活或重新连接到交易服务器,因为账户设置被改变了 原因_模板 7 应用了另一个图表模板 拒绝接受的原因 8 OnInit()处理程序返回一个非零值 解释_关闭 9 终点站已关闭 并在你的代码的这一行 if(reason==1) GlobalVariableDel("val"); 但是,如果我没有记错的话,你的问题的开头,最好是这样写条件 if(reason != REASON_CHARTCHANGE) GlobalVariableDel("val"); 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 [存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. Questions from Beginners MQL5 Anzhela Sityaeva 2019.06.29 11:15 #10757 Alexey Viktorov: 但在你的问题中,它是 在你的情况下,这些提示之一将防止这些不必要的对象重绘。如果这些对象在OnDeinit()中被删除,那么在切换图表时,你也应该禁止删除这些对象。 方向很明确,让我们试一试......。谢谢你的答复。 [删除] 2019.06.29 13:10 #10758 我没有在Codebase中找到一个 可以设置收盘条件的EA例子,而不仅仅是标准的SL/TP。谁能给我一个提示? Alexey Viktorov 2019.06.29 13:27 #10759 Sprut112: 我没有在Codebase中找到一个 可以设置收盘条件的EA例子,而不仅仅是标准的SL/TP。谁能给我一个提示? 开启和关闭条件之间的区别是什么? Fast235 2019.06.29 15:21 #10760 Sprut112: 我在Codebase中没有发现一个EA的例子,可以写出一个头寸的平仓条件,而不仅仅是标准的SL/TP。谁能告诉我? 弗拉基米尔-卡尔普托夫在他的代码中有这样的条件,但你必须自己学会如何阅读他的代码) 1...106910701071107210731074107510761077107810791080108110821083...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如何在一行中读取一个大文件?
FileReadString()
当从bin-file读取时,必须指定要读取的字符串的长度。当从txt文件中读取时,不需要字符串的长度,字符串将从当前位置读到换行字符"\r\n"。当从csv文件中读取时,字符串的长度也不是必需的,字符串将从当前位置开始读取,直到最近的分隔符或文本字符串的结束符为止。
我不是这个意思。
"而用逻辑NOT来解决--反转位,但我没有终端-- 我不 记得如何 在MQL中做位操作NOT,我也不想看在线帮助"。
我的意思是,要么给我一个证据,要么就不要把水搅浑))))。
"任何人都可能犯错。只有强者才能承认错误!"。如果还没有人发表意见,这就是我的智慧)))。如果有人已经说过--我已经重复了一位智者的智慧))))。
我还是不明白你的说法?你是在暗示我应该向你证明什么?- 为什么?))))
在这里,我通过NOT重现,并检查了所有讨论的变体。
NOT变体适用于任何TF,但根据(~TF_以下我们显示&TF_一比所需TF大)-1来填充。
大家好!还有一个问题...
有一个MQL5程序,它有一个 "输入参数 "的设置(很多)。该程序根据需要进行计算并创建/删除和管理图形对象。
从设置窗口改变输入参数后,产生事件Init,这导致程序初始化和 "重新计算 "和 "重新绘制 "对象,原则上这是需要的,但当图表周期改变(和其他)时,事件Init也会产生 ,结果是每次都重复这个过程,即使不需要它。
问题:如果输入参数没有改变,但在程序(终端)开始时留下初始化,我如何在 Init事件中排除程序 初始化?
可能的变体:记住设定的值,并在 Init事件发生时进行比较,如果它们不同,允许初始化,但有很多输入参数......
大家好!还有一个问题...
有一个MQL5程序,它有一个 "输入参数 "的设置(很多)。该程序根据需要进行计算并创建/删除和管理图形对象。
从设置窗口改变输入参数后,事件 Init被生成,这导致了程序初始化和 "重新计算 "和 "重新绘制 "对象,原则上,这是需要的,但是当图表周期改变时(和其他), 事件Init也被生成 ,结果是这个过程每次都在重复,即使不需要。
问题:如果输入参数没有改变,但在程序(终端)开始时留下初始化,我如何在 Init事件中排除程序 初始化 ?
可能的变体:记住设定的值,当事件 Init发生时,比较它们,如果它们不同,允许初始化,但有很多输入参数......
这里有一些关于另一个类似问题的提示
关于交易、自动交易系统和策略测试的论坛
在EA中工作,但在指标中不正确,指标启动时有音乐。
Ihor Herasko, 2019.06.17 14:12
是的。
关于交易、自动交易系统和策略测试的论坛
它在专家顾问中起作用,但在指标中却不正确,在指标启动时有音乐。
Taras Slobodyanik, 2019.06.17 16:25
5.你也可以把一个对象留在图表上,并在开始时检查其存在状态。这里有一些关于另一个类似问题的提示
谢谢你的回答,看来在我们的案例中,我们将不得不通过图上的 "空白 " 来描述 几十个对应关系的变化状态,以跟踪它们的变化,或者只要没有那么多的对象,就忍受不必要的初始化......
但你问的问题是。
大家好!还有一个问题...
有一个MQL5程序,它有设置(很多)"输入参数"。该程序根据需要进行计算并创建/删除和管理图形对象。
从设置窗口改变输入参数后,产生事件Init,这导致程序初始化和 "重新计算 "和 "重新绘制 "对象,原则上这是需要的,但当图表周期 (和其他)改变时, 事件Init也 会产生 ,结果是每次都重复这个过程,即使不需要。
问题:如果输入参数没有改变,但在程序(终端)开始时留下初始化,我如何在 Init事件中排除程序 初始化 ?
可能的变体:记住设定的值,当事件 Init发生时,比较它们,如果它们不同,允许初始化,但有很多输入参数......
而在你的情况下,其中一个提示将防止这些不必要的对象重绘。如果这些对象在OnDeinit()中被删除,你应该在切换图表时也禁止删除这些对象。
这是一个关于交易、自动交易系统和策略测试的论坛。
如何在图表关闭时删除终端的全局变量?
Alexey Viktorov, 2019.06.29 08:40
请注意这个表格
理论_计划
0
专家通过调用ExpertRemove()停止工作
REASON_REMOVE
1
从图表中删除的程序
原因_重新编译
2
程序重新编译
原因_图表变化
3
图表符号或周期已被改变
原因_chartclose
4
该图表已关闭
原因_参数
5
输入参数被用户改变
REASON_ACCOUNT
6
另一个账户被激活或重新连接到交易服务器,因为账户设置被改变了
原因_模板
7
应用了另一个图表模板
拒绝接受的原因
8
OnInit()处理程序返回一个非零值
解释_关闭
9
终点站已关闭
并在你的代码的这一行
但是,如果我没有记错的话,你的问题的开头,最好是这样写条件
但在你的问题中,它是
在你的情况下,这些提示之一将防止这些不必要的对象重绘。如果这些对象在OnDeinit()中被删除,那么在切换图表时,你也应该禁止删除这些对象。
我没有在Codebase中找到一个 可以设置收盘条件的EA例子,而不仅仅是标准的SL/TP。谁能给我一个提示?
开启和关闭条件之间的区别是什么?
我在Codebase中没有发现一个EA的例子,可以写出一个头寸的平仓条件,而不仅仅是标准的SL/TP。谁能告诉我?
弗拉基米尔-卡尔普托夫在他的代码中有这样的条件,但你必须自己学会如何阅读他的代码)