[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 573 1...566567568569570571572573574575576577578579580...652 新评论 Рустам 2012.02.18 02:22 #5721 //+------------------------------------------------------------------+ //| iTicks.mq4 | //| Copyright © 2009, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #include <WinUser32.mqh> extern int delay_MSecond = 2000; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- while(!IsStopped()){ PostMessageA (WindowHandle (Symbol(), Period()), WM_COMMAND, 33324, 0); PostMessageA (WindowHandle (Symbol(), 0), RegisterWindowMessageA ("MetaTrader4_Internal_Message"), 2, 1); Sleep(delay_MSecond); } //---- return(0); } //+------------------------------------------------------------------+ alkador 2012.02.18 03:15 #5722 如何向策略测试员 进行查询?例如,如何执行以下命令。"在一个特定的时间范围内对一个EA运行测试,有一个特定的集 文件,完成后, 保存报告"。 Victor Nikolaev 2012.02.18 04:26 #5723 alsu: 要一下子理解别人的代码是很难的...如果让我猜,我会在Neuron.Study()函数中检查Imin,Imax,Jmin,Jmax值。在纪元0时,值32被传递为lR,然后用于索引(通常我们对数组的索引是从0到大小-1)。很可能这就是错误所在。 事实上,这个错误与这些计算有关。谢谢 Victor Nikolaev 2012.02.18 04:40 #5724 alkador: 如何处理对策略测试员的查询?例如,如何执行以下命令。"以一定的时间间隔在EA上运行测试,有一定的设定 文件,完成后, 保存报告"。 启动时的配置 客户端可以用预定义的设置启动。为此,配置文件的名称作为一个参数传递给客户终端。 比如说。 terminal.exe config\start.ini terminal.exe test1.txt terminal.exe "C:\Program Files\MetaTrader 4\config\settings25.ini" 如果没有指定完整的文件路径(Drive:\SubDirectory\FileName),文件将在客户终端目录中搜索。配置文件有以下几行。 [参数] = [值]。 注释以分号(;)开始,不进行评估。 配置文件的参数可以分为几组:一般设置、代理服务器设置(终端设置表中的 "服务器 "标签)、FTP设置(终端设置表中的 "发布 "标签)、专家顾问设置(终端设置表中的 "专家顾问 "标签)、专家顾问或脚本的单次启动设置、策略测试器启动设置。 常见设置 Profile- profiles目录下的子目录名称。图表将根据指定的配置文件在客户终端打开。如果不指定这个选项,将打开当前的配置文件。 MarketWatch- 文件的名称(\symbolsets目录),其中包含要在市场观察窗口显示的符号列表。这种文件可以通过"市场观察-符号集-另存为 "窗口的 上下文菜单命令来接收。 Login- 启动时要连接到的账户的号码。如果缺少这个参数,将使用当前的登录方式。 密码- 登录的密码。如果客户终端在磁盘上存储个人数据,并且要连接的账号在列表中,则该参数将被忽略。 服务器- 应该进行连接的贸易服务器的名称。服务器名称与存储在配置目录中的相应srv文件的名称一致。如果要连接的账户信息被保存在磁盘上,这个参数将被忽略。 AutoConfiguration- "true "或 "false",取决于是否应启用自动配置。如果缺少这个参数,将使用当前服务器设置中的值。 DataServer- 数据中心的地址。如果服务器自动配置被启用,这个条目可以被忽略。如果缺少这个参数,将使用当前服务器设置中的值。 EnableDDE- "true "或 "false",取决于是否要启用DDE服务器。如果没有这个参数,那么将使用当前服务器设置的值。 EnableNews- "true "或 "false",取决于是否应该允许接收新闻。如果这个参数不存在,将使用当前服务器设置中的值。 例子。 ;常用设置 Profile=test 3 MarketWatch=set2.set Login=12345 Password=xxxxxx Server=MetaQuotes-demo AutoConfiguration=false DataServer=192.168.0.1:443 EnableDDE=true EnableNews=false 代理设置 ProxyEnable- "true "或 "false",取决于是否应使用代理服务器与交易服务器连接。 ProxyServer- 代理服务器的地址。 ProxyType- 代理服务器的类型。它可以是 "HTTP"、"SOCKS4 "或 "SOCKS5"。 ProxyLogin- 代理服务器登录。 ProxyPassword- 访问代理服务器的密码。 如果缺少这些参数中的任何一个,将使用客户终端的当前设置(客户终端设置表中的 "服务器 "选项卡中的 代理设置)。 例子。 ;代理设置 ProxyEnable=true ProxyServer=proxy.company.com:3128 ProxyType=HTTP ProxyLogin=user45 ProxyPassword=xxx FTP设置 FTPEnable- 启用/禁用发布。可接受的值是 "真 "或 "假"。 FTPPassiveMode- 启用/禁用无源模式。 可接受的值是 "真 "或 "假"。 FTPAccount- 其状态数据将被发送到FTP的账户号码。 FTPServer- FTP服务器的地址。 FTPLogin- 在FTP服务器上登录以获得授权。 FTPPassword- 访问FTP服务器的密码。 FTPPath- FTP服务器上放置报告的目录名称。 FTPPeriod- 发送报告到FTP服务器的周期,以分钟为单位。 如果缺少所列的任何一个参数,将使用客户终端的当前设置(终端设置表中的 "发布 "选项卡)。 例子。 ; ftp设置 FTPEnable=true FTPPassiveMode=false FTPAccount=12345 FTPServer=ftp.company.com FTPLogin=admin FTPPassword=pAssWOrd123 FTPPath=/inetpub FTPPeriod=10 专家设置 ExpertsEnable- 启用/停用专家。 ExpertsDllImport- 启用/禁用DLL导入。 ExpertsDllConfirm- 启用/禁用DLL函数调用的手动确认。 ExpertsExpImport- 允许/禁止从外部专家顾问或MQL4库导入函数。 ExpertsTrades- 启用/停用EA交易。 ExpertsTradesConfirm- 启用/禁用专家顾问对交易操作的手动确认。 注意: 专家顾问组的所有参数只能取值 "真 "或 "假"。 如果没有上述任何参数,则使用当前的客户终端设置(终端设置表中的 "Expert Advisors "标签)。 例子。 ;专家设置 ExpertsEnable=true ExpertsDllImport=true ExpertsExpImport=true ExpertsTrades=true ExpertsTradesConfirm=false 单一专家顾问和/或脚本设置 符号- 符号的名称,其图表必须在终端启动后立即打开。关闭客户终端后,关于这个额外图表的信息不会被保存。如果终端在没有配置文件的情况下重新启动,这个图表将不会被打开。如果没有这个参数,就不会打开额外的图表。 周期- 图表的周期(M1, M5, M15, M30, H1, H4, D1, W1, MN)。如果没有这个参数,则使用H1。 Template- 模板文件的名称(\templates目录),要应用到图表中。 专家- 客户端启动后将启动的专家顾问的名称。专家顾问在根据符号和周期参数打开的图表上启动。如果缺少符号参数,则不会打开其他图表,EA将在当前配置文件中的第一个图表上启动。如果当前配置文件中没有图表,专家顾问将不会被启动。如果没有这个参数,将不会启动专家。 ExpertParameters- 包含EA参数的文件名(\experts\presets目录)。这样的文件可以通过按 "输入参数-保存 "按钮在专家顾问属性窗口中 创建。它通常用于存储参数,这些参数与默认参数不同。如果没有这个参数,将使用默认参数。 脚本- 客户端启动后要启动的脚本的名称。该脚本的启动规则与专家顾问相同(如上所述)。 ScriptParameters- 包含脚本参数的文件名(\experts\presets目录)。这个文件的生成方式与专家顾问的生成方式相同。 例子。 打开图表并运行专家和/或脚本 符号=EURUSD Period=H4 Template=popular.tpl Expert=MACD Sample ExpertParameters=macd.set Script=period_converter ScriptParameters= 策略测试器的启动设置 TestExpert- 要启动测试的专家顾问的名称。如果缺少这个参数,则不进行测试。 TestExpertParameters- 包含参数的文件名(\tester目录)。 这种文件可以在专家顾问的属性窗口中 按 "输入参数-保存 "按钮创建。 它通常用于存储不同于默认参数的参数。在 "测试 "和 "优化 "选项卡中 被测试的EA的其他参数(如果没有这个参数,则在 "输入参数 "选项卡中) 会在最后一次测试后自动保存在\tester\[专家名称].ini文件中的值。 TestSymbol- 工具的名称,专家顾问的测试将在其上进行。如果这个参数不可用,则使用测试仪中最后使用的值。 TestPeriod- 图表周期(M1, M5, M15, M30, H1, H4, D1, W1, MN)。 如果没有这个参数,则使用H1。 TestModel- 0,1或2,取决于测试模型(所有刻度,基准,公开价格)。如果该参数不可用,则使用值0(所有刻度线)。 TestOptimization- 启用/禁用优化。可接受的值是 "真 "或 "假"。如果该参数不可用,则使用值 "false"。 TestDateEnable- 启用/禁用 "使用日期 "选项。 可接受的值是 "真 "或 "假"。如果该选项不可用,则使用 "false"。 TestFromDate- 测试范围的起始日期为YYY.MM.DD。如果没有这个参数,则使用 "1970.01.01"。 TestToDate- 测试范围结束日期,格式为YYY.MM.DD。如果没有这个参数,它将是1970.01.01。 TestReport- 测试报告文件的名称。该文件将在客户终端目录下创建。可以指定相对路径,例如:tester/MovingAverageReport"。如果在报告文件名中没有指定扩展名,将使用".htm "扩展名。如果不指定这个参数,将不会生成测试报告。 TestReplaceReport- 允许/不允许重复写入报告文件。 可接受的值是 "真 "或 "假"。如果设置了 "false",并且该名称的报告文件已经存在,报告文件名称将被附加上方括号中的序列号。例如,"MovingAverageReport[1].htm"。如果没有这个参数,将使用 "false"。 TestShutdownTerminal- 在测试后启用/禁用终端关闭。可接受的值是 "真 "或 "假"。如果没有这个参数,则使用 "false "值。如果用户在测试过程中按下了 "停止 "按钮,这个参数的值就被重置为 "false",因为用户控制了。 例子。 ;启动策略测试器 TestExpert=移动平均 TestExpertParameters=ma0.set TestSymbol=EURUSD TestPeriod=H1 TestModel=2 TestOptimization=false TestDateEnable=true TestFromDate=1970.01.01 TestToDate=2006.06.06 TestReport=MovingAverageReport TestReplaceReport=false TestShutdownTerminal=true Vadim Zhunko 2012.02.18 06:03 #5725 AndEv: 如果有人知道,我有个问题:我需要一个循环脚本,在当前图表中每0.5秒 "按 "一次 "刷新 "按钮,并重新初始化指标。"我试图用WindowRedraw()制作一个循环脚本。我试图用WindowRedraw()和Sleep(500)做一个循环脚本,但指标没有被重新初始化。 该库 包含MT4控制的各种功能。包括为专家顾问和指标更新图表的功能。甚至还有独立的功能。我运行了一次脚本,就这样了。它被卸载,图表继续更新,直到你卸载MT4。 Victor Nikolaev 2012.02.18 12:50 #5726 改编自 Armen63 18.02.2012 14:47|嗨,所有的 帮助,请 不知道如何实现它......谁能告诉我吗? 在这个过程中,你会发现,卖出和买入的订单 都是不一样的,Total1 = OrdersTotal()。 如果(Total1 <= MaxOrders || MaxOrders == 0),就可以控制所有的订单,包括卖出和买入。 alkador 2012.02.18 13:20 #5727 至Armen63 int CountBuys() { int l_count_4 = 0; int l_ord_total_12 = OrdersTotal(); for (int l_pos_8 = 0; l_pos_8 < l_ord_total_12; l_pos_8++) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue; if (OrderType() == OP_BUY) l_count_4++; } return (l_count_4); } int CountSells() { int l_count_4 = 0; int l_ord_total_12 = OrdersTotal(); for (int l_pos_8 = 0; l_pos_8 < l_ord_total_12; l_pos_8++) { OrderSelect(l_pos_8, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic) continue; if (OrderType() == OP_SELL) l_count_4++; } return (l_count_4); } link1 2012.02.18 13:49 #5728 亲爱的论坛用户,你们好! 我刚刚开始学习mql4,并决定编写我自己的EA。 你知道如何在代码中写出以下条件:如果最后三个卖价高于前一个(ask3>ask2>ask1),那么就下一个买单 我希望我把想法说清楚了),如果有什么不对的地方,请问,我会说明的) 我将非常感谢您的帮助 )) roman epifanov 2012.02.18 14:06 #5729 像这样。datetime ask=TimeCurrent(); double ask1=0,ask2=0,ask3=0; ask1=Ask; if(ask!=TimeCurrent()){ask2=Ask;ask=TimeCurrent()} if(ask!=TimeCurrent()){ask3=Ask;} 也许我错了,我只是在学习。 Victor Nikolaev 2012.02.18 14:14 #5730 openlive: 例如,也许我错了,我只是在学习 。 如果我们假设EA处理每一个tick,那么我们的做法应该有点不同。 int start(){ static double ask1=1, ask2=-1, ask3=-1; ask3=ask2; ask2=ask1; ask1=Ask; if (ask3>0) { if (ask1>ask2) { if (ask2>ask3) { //условие выполнено для бай } } if (ask1<ask2) { if (ask2<ask3) { //условие выполнено для селл } } } } 1...566567568569570571572573574575576577578579580...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如何向策略测试员 进行查询?例如,如何执行以下命令。"在一个特定的时间范围内对一个EA运行测试,有一个特定的集 文件,完成后, 保存报告"。
要一下子理解别人的代码是很难的...如果让我猜,我会在Neuron.Study()函数中检查Imin,Imax,Jmin,Jmax值。在纪元0时,值32被传递为lR,然后用于索引(通常我们对数组的索引是从0到大小-1)。很可能这就是错误所在。
事实上,这个错误与这些计算有关。谢谢
如何处理对策略测试员的查询?例如,如何执行以下命令。"以一定的时间间隔在EA上运行测试,有一定的设定 文件,完成后, 保存报告"。
启动时的配置
客户端可以用预定义的设置启动。为此,配置文件的名称作为一个参数传递给客户终端。
比如说。
如果没有指定完整的文件路径(Drive:\SubDirectory\FileName),文件将在客户终端目录中搜索。配置文件有以下几行。
[参数] = [值]。
注释以分号(;)开始,不进行评估。
配置文件的参数可以分为几组:一般设置、代理服务器设置(终端设置表中的 "服务器 "标签)、FTP设置(终端设置表中的 "发布 "标签)、专家顾问设置(终端设置表中的 "专家顾问 "标签)、专家顾问或脚本的单次启动设置、策略测试器启动设置。
常见设置
Profile- profiles目录下的子目录名称。图表将根据指定的配置文件在客户终端打开。如果不指定这个选项,将打开当前的配置文件。
MarketWatch- 文件的名称(\symbolsets目录),其中包含要在市场观察窗口显示的符号列表。这种文件可以通过"市场观察-符号集-另存为 "窗口的 上下文菜单命令来接收。
Login- 启动时要连接到的账户的号码。如果缺少这个参数,将使用当前的登录方式。
密码- 登录的密码。如果客户终端在磁盘上存储个人数据,并且要连接的账号在列表中,则该参数将被忽略。
服务器- 应该进行连接的贸易服务器的名称。服务器名称与存储在配置目录中的相应srv文件的名称一致。如果要连接的账户信息被保存在磁盘上,这个参数将被忽略。
AutoConfiguration- "true "或 "false",取决于是否应启用自动配置。如果缺少这个参数,将使用当前服务器设置中的值。
DataServer- 数据中心的地址。如果服务器自动配置被启用,这个条目可以被忽略。如果缺少这个参数,将使用当前服务器设置中的值。
EnableDDE- "true "或 "false",取决于是否要启用DDE服务器。如果没有这个参数,那么将使用当前服务器设置的值。
EnableNews- "true "或 "false",取决于是否应该允许接收新闻。如果这个参数不存在,将使用当前服务器设置中的值。
例子。
代理设置
ProxyEnable- "true "或 "false",取决于是否应使用代理服务器与交易服务器连接。
ProxyServer- 代理服务器的地址。
ProxyType- 代理服务器的类型。它可以是 "HTTP"、"SOCKS4 "或 "SOCKS5"。
ProxyLogin- 代理服务器登录。
ProxyPassword- 访问代理服务器的密码。
如果缺少这些参数中的任何一个,将使用客户终端的当前设置(客户终端设置表中的 "服务器 "选项卡中的 代理设置)。
例子。
FTP设置
FTPEnable- 启用/禁用发布。可接受的值是 "真 "或 "假"。
FTPPassiveMode- 启用/禁用无源模式。 可接受的值是 "真 "或 "假"。
FTPAccount- 其状态数据将被发送到FTP的账户号码。
FTPServer- FTP服务器的地址。
FTPLogin- 在FTP服务器上登录以获得授权。
FTPPassword- 访问FTP服务器的密码。
FTPPath- FTP服务器上放置报告的目录名称。
FTPPeriod- 发送报告到FTP服务器的周期,以分钟为单位。
如果缺少所列的任何一个参数,将使用客户终端的当前设置(终端设置表中的 "发布 "选项卡)。
例子。
专家设置
ExpertsEnable- 启用/停用专家。
ExpertsDllImport- 启用/禁用DLL导入。
ExpertsDllConfirm- 启用/禁用DLL函数调用的手动确认。
ExpertsExpImport- 允许/禁止从外部专家顾问或MQL4库导入函数。
ExpertsTrades- 启用/停用EA交易。
ExpertsTradesConfirm- 启用/禁用专家顾问对交易操作的手动确认。
如果没有上述任何参数,则使用当前的客户终端设置(终端设置表中的 "Expert Advisors "标签)。
例子。
单一专家顾问和/或脚本设置
符号- 符号的名称,其图表必须在终端启动后立即打开。关闭客户终端后,关于这个额外图表的信息不会被保存。如果终端在没有配置文件的情况下重新启动,这个图表将不会被打开。如果没有这个参数,就不会打开额外的图表。
周期- 图表的周期(M1, M5, M15, M30, H1, H4, D1, W1, MN)。如果没有这个参数,则使用H1。
Template- 模板文件的名称(\templates目录),要应用到图表中。
专家- 客户端启动后将启动的专家顾问的名称。专家顾问在根据符号和周期参数打开的图表上启动。如果缺少符号参数,则不会打开其他图表,EA将在当前配置文件中的第一个图表上启动。如果当前配置文件中没有图表,专家顾问将不会被启动。如果没有这个参数,将不会启动专家。
ExpertParameters- 包含EA参数的文件名(\experts\presets目录)。这样的文件可以通过按 "输入参数-保存 "按钮在专家顾问属性窗口中 创建。它通常用于存储参数,这些参数与默认参数不同。如果没有这个参数,将使用默认参数。
脚本- 客户端启动后要启动的脚本的名称。该脚本的启动规则与专家顾问相同(如上所述)。
ScriptParameters- 包含脚本参数的文件名(\experts\presets目录)。这个文件的生成方式与专家顾问的生成方式相同。
例子。
策略测试器的启动设置
TestExpert- 要启动测试的专家顾问的名称。如果缺少这个参数,则不进行测试。
TestExpertParameters- 包含参数的文件名(\tester目录)。 这种文件可以在专家顾问的属性窗口中 按 "输入参数-保存 "按钮创建。 它通常用于存储不同于默认参数的参数。在 "测试 "和 "优化 "选项卡中 被测试的EA的其他参数(如果没有这个参数,则在 "输入参数 "选项卡中) 会在最后一次测试后自动保存在\tester\[专家名称].ini文件中的值。
TestSymbol- 工具的名称,专家顾问的测试将在其上进行。如果这个参数不可用,则使用测试仪中最后使用的值。
TestPeriod- 图表周期(M1, M5, M15, M30, H1, H4, D1, W1, MN)。 如果没有这个参数,则使用H1。
TestModel- 0,1或2,取决于测试模型(所有刻度,基准,公开价格)。如果该参数不可用,则使用值0(所有刻度线)。
TestOptimization- 启用/禁用优化。可接受的值是 "真 "或 "假"。如果该参数不可用,则使用值 "false"。
TestDateEnable- 启用/禁用 "使用日期 "选项。 可接受的值是 "真 "或 "假"。如果该选项不可用,则使用 "false"。
TestFromDate- 测试范围的起始日期为YYY.MM.DD。如果没有这个参数,则使用 "1970.01.01"。
TestToDate- 测试范围结束日期,格式为YYY.MM.DD。如果没有这个参数,它将是1970.01.01。
TestReport- 测试报告文件的名称。该文件将在客户终端目录下创建。可以指定相对路径,例如:tester/MovingAverageReport"。如果在报告文件名中没有指定扩展名,将使用".htm "扩展名。如果不指定这个参数,将不会生成测试报告。
TestReplaceReport- 允许/不允许重复写入报告文件。 可接受的值是 "真 "或 "假"。如果设置了 "false",并且该名称的报告文件已经存在,报告文件名称将被附加上方括号中的序列号。例如,"MovingAverageReport[1].htm"。如果没有这个参数,将使用 "false"。
TestShutdownTerminal- 在测试后启用/禁用终端关闭。可接受的值是 "真 "或 "假"。如果没有这个参数,则使用 "false "值。如果用户在测试过程中按下了 "停止 "按钮,这个参数的值就被重置为 "false",因为用户控制了。
例子。
如果有人知道,我有个问题:我需要一个循环脚本,在当前图表中每0.5秒 "按 "一次 "刷新 "按钮,并重新初始化指标。"我试图用WindowRedraw()制作一个循环脚本。我试图用WindowRedraw()和Sleep(500)做一个循环脚本,但指标没有被重新初始化。
改编自
嗨,所有的 帮助,请 不知道如何实现它......谁能告诉我吗? 在这个过程中,你会发现,卖出和买入的订单 都是不一样的,Total1 = OrdersTotal()。
如果(Total1 <= MaxOrders || MaxOrders == 0),就可以控制所有的订单,包括卖出和买入。
至Armen63
亲爱的论坛用户,你们好!
我刚刚开始学习mql4,并决定编写我自己的EA。
你知道如何在代码中写出以下条件:如果最后三个卖价高于前一个(ask3>ask2>ask1),那么就下一个买单
我希望我把想法说清楚了),如果有什么不对的地方,请问,我会说明的)
我将非常感谢您的帮助 ))
例如,也许我错了,我只是在学习 。
如果我们假设EA处理每一个tick,那么我们的做法应该有点不同。