[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 454 1...447448449450451452453454455456457458459460461...537 新评论 Alexander 2011.06.21 00:32 #4531 smart: 我如何知道哪些指标在模板中?我安装了一个旧的模板,但不是所有的指标都能显示。我忘记了模板中包含的指标名称。谢谢你! 打开 \templates\ 文件夹,找到你的模板,用记事本打开它,寻找<windows>标签,看看哪些指标是用哪些参数包装的。 demlin 2011.06.21 01:55 #4532 tol64: demlin20.06.2011 22:02 大家好! 我有个问题,我不能让程序以点来确定订单的利润。谁来帮帮我。 在循环中尝试所有的订单。 For(i = 0; i < OrderHistoryTotal(); i++) 你用OrderSelect()按某些标准选择你需要的那一个。然后你要求OrderProfit()。这是以货币为单位的净利润。分值大约如下。 (OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots()。 检查一下,以防万一))) 谢谢你,我将尝试一下 Anatoli Kazharski 2011.06.21 02:01 #4533 写和读订单评论的信息。OrderComment()。 在开立订单时,我在注释中记录余额和止损 水平。当订单被打开时,我查看了日志。一切都是准确的。 余额为10000.00。止损1.67740。总共有15个字符。 然后使用字符串函数,我选择所需的字符并将其写入csv 文件。但我面临这样一个问题。如果触发了止损,这些字符[sl] 将被添加到评论的末尾。 而且我有19 位数字,而不是15 位。事情是这样的,我在发表评论前会检查当前余额的数字和价格的数字。这被分配到变量中,然后我用这些变量来确定我需要得到多少个数字和哪些数字。但这个[sl] 让我很为难。毕竟,如果价格有7 位数,文件将包含740,而不是1.67740。我想不出如何解决这个问题)。请帮助我。 Виктор 2011.06.21 06:18 #4534 最简单的事情就是在评论中一次性写出正确的内容。就是说,在数据之间放上分隔符。那么字符串的长度 就不重要了,你只需拉出分隔符之间的子串。 Anatoli Kazharski 2011.06.21 10:22 #4535 granit77: 最简单的方法是在评论中一次性正确书写。这就是在数据之间加上分隔符。那么字符串的长度就不重要了,只要在定界符之间拉出子串即可。 早些时候,有人向我提供了这个简单的变体。 string comment = OrderComment(); comment = StringSubstr(comment, 0, 15); // 修剪到右边。 这是一个简单的变体,但我也遇到了一些困难,但设法解决了问题。) 为什么,如果你一次把所有的东西都写对了,[sl]字就不会被加进去?如果你不介意的话,我可以举个小例子,从订单注释中提取子串 吗? Виктор 2011.06.21 11:44 #4536 tol64: 早些时候有人向我提供了这个简单的选择。这个选项很简单,但我也有困难,但还是决定了。) 为什么,如果你一次写对了所有的东西,[sl]字就不会被加上去?如果你不介意的话,我可以举个小例子,从订单注释中提取一个子字符串吗? 让他们加入。你想检索你的数据,而你并不关心它添加了什么,也不关心这个字符串有多长。 string _comment="10000.00"+"$"+"1.67740"+"#";//строка комментария. "$","#" - разделители (символы,какие понравятся) int lenstring=StringLen(_comment); //длина строки _comment int delim1,delim2; //позиции разделителей в строке _comment string balans,stoploss; //извлекаемые подстроки delim1=StringFind( _comment, "$", 0); //определяем позиции разделителей в строке _comment delim2=StringFind( _comment, "#", 0); //определяем позиции разделителей в строке _comment balans = StringSubstr( _comment,0, delim1); //извлекли строку баланс stoploss = StringSubstr( _comment,delim1+1, delim2-delim1-1);//извлекли строку стоплосс Comment("|",balans,"|",stoploss,"|");//проверка Lopator 2011.06.21 12:01 #4537 大家好。我遇到过一个有趣的情况,两台不同的电脑可以连接到同一个账户,甚至同时在该账户上进行交易。谁能告诉我是否有可能控制一台远程计算机,例如改变变量ext或至少暂停一个EA?我提前感谢你,因为我面临一个奇怪的情况,我不能接管终端的控制权,它在家里工作(例如,我自己在工作)。 Anatoli Kazharski 2011.06.21 12:28 #4538 granit77: 让他们加入。你想检索你的数据,你不关心添加了什么,也不关心这个字符串有多长。 )) 谢谢你。很好的例子!你用一个词就能搞定。这正是有时极度缺乏的那种例子。 [删除] 2011.06.21 13:48 #4539 snail09: 是的,它肯定是沸腾的。每个人都只是在回答你的...问题。也许你是 如此不了解情况? 如果有人能告诉我如何通过价格来追踪趋势线的交叉点(一条直线),这对我来说是否足够了,哪怕是一个提示?立即感谢,因为我不指望在可预见的将来得到答案。你,星星,是个洪水猛兽,愿版主原谅我......。 我不是巫师,我自己也是第一次来。8)))) [删除] 2011.06.21 14:08 #4540 peshihod:你缺乏实践。你不能运行你的程序,它不工作。一个恶性循环:没有可行的选择-->没有技能-->没有可行的选择。必须考虑一下....:-/ 要继续这个话题。 为了学习,你需要实践。 在交易终端做如下操作: 1.必须开设一个模拟账户。 在交易终端上输入账户信息:文件->登录->... 2.使用一个打开的图表或打开一个新的图表:文件->新图表->... 3.设置最大在:Service->Settings->Charts->Max.bar_history->250000 4.设置一分钟的时间框架:Charts->Period->M1_One_minute 5.进行更新:Charts->Update 6.打开策略测试器。视图->策略测试器 所有其他窗口关闭(最小化),留下一个有图表的窗口和一个有测试器的窗口。 ------------------ 接下来,在策略测试器的设置中: 7.符号:选择有一个开放图表的符号。 8.模型:按开盘价(.....) <<<此模型使用到OrderSend().>> 9.使用日期:勾选方框。 日期:_From:<Yesterday(except Saturday and Sunday)>, _to:Today 10.可视化:如果勾选则取消勾选。 11.周期:M1 12.优化:如果存在,则去除勾号。 --------------------- 进一步打开MetaEditor: 13.在交易终端菜单中:Service->Editor_MetaQuotes_Language 14.编写一个程序,例如: //===================== int i; int const=5; int Celoe, Ostatok; bool flag_Odin_Raz=true; int start() { if(flag_Odin_Raz==true) { //------------- i=0; while(i<22) { Celoe=i/const; Ostatok=MathMod(i,const); Print("При i=", i, " Celoe=", Celoe, " Ostatok=", Ostatok); i=i+1; } //------------- flag_Odin_Raz=false; } return(0); } //============================= 15.在MetaEditor中,菜单:File->Save_as:给出一个文件名,保存扩展名.mq4,文件夹应该是'experts'。 16.在MetaEditor中的菜单:File->Compile --------------------------------------- 然后在测试器中的设置: 17.顾问:找到并选择程序的文件名。 18.通过鼠标点击 "开始 "按钮。 19.在测试者->日志中 我们通过Print()信息看到程序的结果 ----------------------------------------- 为了方便查看: 20.右击日志中的任何一行->打开 这将打开带有*.log文件的日志文件夹,你可以用任何文本编辑器、记事本、Word等打开。 PS 如果文件太大,没有文本编辑器能够打开它,那么你应该使用Windows手段删除这个文件,然后从交易终端按'开始'按钮重新启动程序。测试仪文件夹。"...\Installation_folder\tester\logs",不要与另一个"...\Installation_folder\logs "混淆。 PPS 要学习如何编程,你需要一个编程语言编译器,将必要的行动的文本书写转化为 "程序"(人类可读),转化为机器命令的语言--计算机可以理解。没有实践,就不可能学习。Mql4不会创建独立的程序,*.mq4会变成*.ex4,从程序外壳运行。 *.ex4不能直接运行,上面描述的算法绕过了这一点。 [Archive!] Any rookie question, DoEasy 函数库中的图形(第九十七部分):独立处理窗体对象移动 1...447448449450451452453454455456457458459460461...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我如何知道哪些指标在模板中?我安装了一个旧的模板,但不是所有的指标都能显示。我忘记了模板中包含的指标名称。谢谢你!
打开 \templates\ 文件夹,找到你的模板,用记事本打开它,寻找<windows>标签,看看哪些指标是用哪些参数包装的。
demlin20.06.2011 22:02
大家好!
我有个问题,我不能让程序以点来确定订单的利润。谁来帮帮我。
在循环中尝试所有的订单。
For(i = 0; i < OrderHistoryTotal(); i++)
你用OrderSelect()按某些标准选择你需要的那一个。然后你要求OrderProfit()。这是以货币为单位的净利润。分值大约如下。
(OrderProfit()/10)/OrderLots()+(OrderSwap()/10)/OrderLots()。
检查一下,以防万一)))
写和读订单评论的信息。OrderComment()。
在开立订单时,我在注释中记录余额和止损 水平。当订单被打开时,我查看了日志。一切都是准确的。
然后使用字符串函数,我选择所需的字符并将其写入csv 文件。但我面临这样一个问题。如果触发了止损,这些字符[sl] 将被添加到评论的末尾。
而且我有19 位数字,而不是15 位。事情是这样的,我在发表评论前会检查当前余额的数字和价格的数字。这被分配到变量中,然后我用这些变量来确定我需要得到多少个数字和哪些数字。但这个[sl] 让我很为难。毕竟,如果价格有7 位数,文件将包含740,而不是1.67740。我想不出如何解决这个问题)。请帮助我。
最简单的方法是在评论中一次性正确书写。这就是在数据之间加上分隔符。那么字符串的长度就不重要了,只要在定界符之间拉出子串即可。
早些时候,有人向我提供了这个简单的变体。
这是一个简单的变体,但我也遇到了一些困难,但设法解决了问题。)
为什么,如果你一次把所有的东西都写对了,[sl]字就不会被加进去?如果你不介意的话,我可以举个小例子,从订单注释中提取子串 吗?
早些时候有人向我提供了这个简单的选择。
这个选项很简单,但我也有困难,但还是决定了。)
为什么,如果你一次写对了所有的东西,[sl]字就不会被加上去?如果你不介意的话,我可以举个小例子,从订单注释中提取一个子字符串吗?
让他们加入。你想检索你的数据,你不关心添加了什么,也不关心这个字符串有多长。
)) 谢谢你。很好的例子!你用一个词就能搞定。这正是有时极度缺乏的那种例子。
是的,它肯定是沸腾的。每个人都只是在回答你的...问题。也许你是 如此不了解情况?
如果有人能告诉我如何通过价格来追踪趋势线的交叉点(一条直线),这对我来说是否足够了,哪怕是一个提示?立即感谢,因为我不指望在可预见的将来得到答案。你,星星,是个洪水猛兽,愿版主原谅我......。
我不是巫师,我自己也是第一次来。8))))
你缺乏实践。你不能运行你的程序,它不工作。一个恶性循环:没有可行的选择-->没有技能-->没有可行的选择。
必须考虑一下....:-/
要继续这个话题。
为了学习,你需要实践。
在交易终端做如下操作:
1.必须开设一个模拟账户。
在交易终端上输入账户信息:文件->登录->...
2.使用一个打开的图表或打开一个新的图表:文件->新图表->...
3.设置最大在:Service->Settings->Charts->Max.bar_history->250000
4.设置一分钟的时间框架:Charts->Period->M1_One_minute
5.进行更新:Charts->Update
6.打开策略测试器。视图->策略测试器
所有其他窗口关闭(最小化),留下一个有图表的窗口和一个有测试器的窗口。
------------------
接下来,在策略测试器的设置中:
7.符号:选择有一个开放图表的符号。
8.模型:按开盘价(.....)
<<<此模型使用到OrderSend().>>
9.使用日期:勾选方框。
日期:_From:<Yesterday(except Saturday and Sunday)>, _to:Today
10.可视化:如果勾选则取消勾选。
11.周期:M1
12.优化:如果存在,则去除勾号。
---------------------
进一步打开MetaEditor:
13.在交易终端菜单中:Service->Editor_MetaQuotes_Language
14.编写一个程序,例如:
//=====================
//=============================
15.在MetaEditor中,菜单:File->Save_as:给出一个文件名,保存扩展名.mq4,文件夹应该是'experts'。
16.在MetaEditor中的菜单:File->Compile
---------------------------------------
然后在测试器中的设置:
17.顾问:找到并选择程序的文件名。
18.通过鼠标点击 "开始 "按钮。
19.在测试者->日志中
我们通过Print()信息看到程序的结果
-----------------------------------------
为了方便查看:
20.右击日志中的任何一行->打开
这将打开带有*.log文件的日志文件夹,你可以用任何文本编辑器、记事本、Word等打开。
PS
如果文件太大,没有文本编辑器能够打开它,那么你应该使用Windows手段删除这个文件,然后从交易终端按'开始'按钮重新启动程序。测试仪文件夹。"...\Installation_folder\tester\logs",不要与另一个"...\Installation_folder\logs "混淆。
PPS
要学习如何编程,你需要一个编程语言编译器,将必要的行动的文本书写转化为 "程序"(人类可读),转化为机器命令的语言--计算机可以理解。没有实践,就不可能学习。Mql4不会创建独立的程序,*.mq4会变成*.ex4,从程序外壳运行。
*.ex4不能直接运行,上面描述的算法绕过了这一点。