MQL5的股权振荡器意味着 - 页 6 1234567 新评论 DV2010 2011.01.21 14:17 #51 joo: 最好是尽可能不频繁地写入文件,所以最好是以数组的形式进行。测量数值的频率不应超过每分钟一次,否则在图表上的显示会出现问题(而且是不合理的资源消耗)。也就是说,在运行结束后。但这种变体也是可能的。 该算法出现的情况如下。 1) 在测试器中运行专家。 2)我们测量了感兴趣的价值。 3)将 此值记录到文件中。 4) 我们把真值写到一个单独的文件中,这意味着我们有一个新的值。 5)启动一个无限循环,在标志文件中退出条件为假。 6) 在一个单独的图表中,脚本读取带有标志的文件,如果有一个新的值,在图表上画出一个风险,将假值写入文件。 这大致是测试器中测试的视觉模式的样子。 等一下,比赛会结束,也许会有更多优雅和美丽的解决方案出现。 joo, 等等,如果价值是所有人都感兴趣的,那么兴趣的价值是什么? :) 我认为是这样的。 1.在专家顾问的OnTick中,我们形成一个计数状态的程序化数组。 2.在测试结束后,将这个程序数组作为一个整体写入文件(最好将每个参数写入一个单独的文件)。 3. 然后在指标OnInit中获取指定的一维数组。 4.并将其复制到OnCalculated中的指标数组。 唯一的问题是,由于某些原因,即使是写数组也是一个问题(见上文)。 Andrey Dik 2011.01.21 14:48 #52 DV2010: 等等,如果我对所有的值都感兴趣,那么另一个感兴趣的值是什么? :)我并不关心所有的人。DV2010。 我认为它是这样的 1.让我们在专家顾问的OnTick中形成计数状态的程序阵列。 2.在测试结束后,将这个程序数组作为一个整体写入文件(最好将每个参数写入一个单独的文件)。你可以做到这一点。DV2010。 3. 然后在指标OnInit中获取指定的一维数组。 那为什么要在Oninite?你只需要做一次吗?你说过,你几乎要实时监控测试。DV2010。 4.并将其复制到OnCalculated中的指标数组。 唯一的问题是,由于某些原因,即使是写数组也是一个问题(见上文)。 问题将是你不能在图表上显示邮政数据。当然,除非你收集蜱虫,然后.......。总之,我已经警告过你了--每分钟保存数据不要超过一次。但如果你想分析,比如说,不与交易工具绑定,你也可以把它上传到一个excel文件。 DV2010 2011.01.21 15:08 #53 joo,不!:) 到目前为止,我所需要的就是让测试器完成它的工作,在历史上得到我想要的账户指标曲线的震荡器! 告诉我,在你看来,为什么我的专家顾问(我在上面引用的代码和下面的链接)拒绝记录数据? 附加的文件: Expert_FileWriteEquity.mq5 1 kb Rashid Umarov 2011.01.21 15:50 #54 DV2010: 罗什我 不明白到底是什么原因,但与我的指标不同,当你开始用你的指标时,你会得到一个信息。 现在我根据你的代码做了一个类似的简单的智能交易系统,它应该把所有的股权值写入文件(我只改变了所有值的输出,包括写入的零字节,使变量成为全局变量,并把文件的打开和写入分为OnInit和OnTick),但是尽管没有写入错误,文件也被创建了,但记录和文件都是空的。 有什么问题吗?FileClose(filename); DV2010 2011.01.21 16:06 #55 Rosh:你没有搞砸任何事情,是吗? 我做了,但与纠正后的(FileClose(handle);)差别不大,感觉不到:) 还是不写!:)同时,它像一个游击队员一样保持沉默(除非你把0个字节被写成 "解释")。 Rashid Umarov 2011.01.21 16:27 #56 DV2010: 乱七八糟的,但与纠正后的(FileClose(handle);)区别不大:) 还是不写!:)同时,它又像游击队一样沉默不语(除非你把写了0个字节算作一种 "解释")。 我不知道你在那里做什么。这里有一个有效的变体//+------------------------------------------------------------------+ //| Demo_File_Common_EA.mq5 | //| Copyright 2011, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2011, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" //--- input parameters input string filename="equity.txt"; int handle; string common_folder; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- common_folder=TerminalInfoString(TERMINAL_COMMONDATA_PATH); //--- handle=FileOpen(filename,FILE_WRITE|FILE_READ|FILE_COMMON); //--- return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- FileClose(handle); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if(handle!=INVALID_HANDLE) { FileSeek(handle,0,SEEK_END); uint written=FileWrite(handle,TimeToString(TimeCurrent()),AccountInfoDouble(ACCOUNT_EQUITY)); if(written>0) { //PrintFormat("Записано %d байт в общую папку всех терминалов - %s",written,common_folder); } } else { Print("Не удалось открыть на запись файл ",filename,". Ошибка ",GetLastError()); } } //+------------------------------------------------------------------+ DV2010 2011.01.21 17:00 #57 Rosh: 我不知道你在那里做什么。这里有一个可行的方案 很好!所以,要写一个文件,除了FileWrite之外,你还需要通过FileSeek设置一个指针。 Документация по MQL5: Файловые операции / FileWrite www.mql5.com Файловые операции / FileWrite - Документация по MQL5 DV2010 2011.01.21 17:23 #58 ...关于昨天已经提出的一个问题。 我把它插入到OnTick和OnCalculated中。Print("ObjectsTotal =", ObjectsTotal(ChartID())); 但经过测试,尽管存在与开仓和平仓有关的对象(终端中的箭头和线条参数可以在:图表>对象>对象列表中看到),但由于某种原因,返回值为0。 谁能告诉我为什么会发生这种情况? 会不会是测试人员没有看到自己自动创建的对象? Rashid Umarov 2011.01.21 17:28 #59 DV2010:谁能告诉我为什么会出现这种情况?测试人员是否根本看不到它自动创建的对象? 测试过程中创建的图形对象与 测试结束后 打开的图表上的对象没有任何关系。这意味着,没有办法达到测试 结束后在图表上出现的 进入/退出箭头。 DV2010 2011.01.21 18:17 #60 Rosh: 测试期间创建的图形对象与 测试后 打开的图表上的对象没有任何关系。换句话说,在测试完成后,没有办法到达图表上出现的 进入/退出箭头。 这正是我所担心的! 好吧,那么我将不得不画出 我自己的对象,尽管我所需要的只是根据相应头寸的结果符号(盈利或亏损)来改变线条的颜色,因为从快速分析盈利和亏损交易分布的角度来看,结果颜色比方向颜色更重要。更重要的是--如果只是因为人们可以在图表上看到向上或向下的方向(通过线条的斜率和箭头的颜色),而要了解使用标准方法的交易的利润或损失,有必要每次都将头寸类型与市场方向进行比较)。 而且,如果测试器中只有几个位置,那就很好。但如果有数百或数千人呢?在标准方法中,在这种情况下不可能看到亏损和盈利头寸的分布,而如果用红线显示亏损的交易,用蓝线显示盈利的交易,即使在最小的范围内也很可能看到分布。 为什么这很重要?因为一个交易系统在不同的时间段会有不同的表现,要找出它最薄弱的地方,并通过这些点来解决,你需要对那些系列亏损交易的价格动态有一个了解。 许多交易者的要求是私人性质的,既有优点也有缺点,即从 "或多或少 "的类别。 在我看来,在MetaTrader的界面上设置交易行类型的可能性,将使许多交易者的历史分析更加舒适,而从程序的角度来看,我认为这很容易做到,没有缺点。换句话说,我们需要一个替代传统的按头寸类型处理的变量,即按交易结果处理的变量。因此,也许你可以添加或至少在论坛参与者中进行投票? 可能有两种方法来实施它。 1.对象绘制与OnTcik EA的连接,因此这些对象可以通过编程来改变。 2.在窗口界面层面增加设置。 账户状态的振荡器将部分解决这个问题,但只是部分,因为交易有效性的最方便的表现形式--是它们的视觉表现,最接近于价格动态。 总的来说,在我看来,测试器和交易效率的可视化是目前第五版最薄弱的地方。到目前为止,我们这里只有以前版本的图表和结果形式的遗产,但它们都只允许我们判断专家顾问的一般有效性,而且印象可能是欺骗性的(已经发生了很多次,专家顾问的权益图是稳步上升的,而仔细检查会发现更大的相对缩减和其他 "惊喜")。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
最好是尽可能不频繁地写入文件,所以最好是以数组的形式进行。测量数值的频率不应超过每分钟一次,否则在图表上的显示会出现问题(而且是不合理的资源消耗)。也就是说,在运行结束后。但这种变体也是可能的。
该算法出现的情况如下。
1) 在测试器中运行专家。
2)我们测量了感兴趣的价值。
3)将 此值记录到文件中。
4) 我们把真值写到一个单独的文件中,这意味着我们有一个新的值。
5)启动一个无限循环,在标志文件中退出条件为假。
6) 在一个单独的图表中,脚本读取带有标志的文件,如果有一个新的值,在图表上画出一个风险,将假值写入文件。
这大致是测试器中测试的视觉模式的样子。
等一下,比赛会结束,也许会有更多优雅和美丽的解决方案出现。
joo, 等等,如果价值是所有人都感兴趣的,那么兴趣的价值是什么? :)
我认为是这样的。
1.在专家顾问的OnTick中,我们形成一个计数状态的程序化数组。
2.在测试结束后,将这个程序数组作为一个整体写入文件(最好将每个参数写入一个单独的文件)。
3. 然后在指标OnInit中获取指定的一维数组。
4.并将其复制到OnCalculated中的指标数组。
唯一的问题是,由于某些原因,即使是写数组也是一个问题(见上文)。
等等,如果我对所有的值都感兴趣,那么另一个感兴趣的值是什么? :)
我并不关心所有的人。
我认为它是这样的
1.让我们在专家顾问的OnTick中形成计数状态的程序阵列。
2.在测试结束后,将这个程序数组作为一个整体写入文件(最好将每个参数写入一个单独的文件)。
你可以做到这一点。
3. 然后在指标OnInit中获取指定的一维数组。
那为什么要在Oninite?你只需要做一次吗?你说过,你几乎要实时监控测试。
4.并将其复制到OnCalculated中的指标数组。
唯一的问题是,由于某些原因,即使是写数组也是一个问题(见上文)。
问题将是你不能在图表上显示邮政数据。当然,除非你收集蜱虫,然后.......。总之,我已经警告过你了--每分钟保存数据不要超过一次。但如果你想分析,比如说,不与交易工具绑定,你也可以把它上传到一个excel文件。
joo,不!:)
到目前为止,我所需要的就是让测试器完成它的工作,在历史上得到我想要的账户指标曲线的震荡器!
告诉我,在你看来,为什么我的专家顾问(我在上面引用的代码和下面的链接)拒绝记录数据?
罗什
我 不明白到底是什么原因,但与我的指标不同,当你开始用你的指标时,你会得到一个信息。现在我根据你的代码做了一个类似的简单的智能交易系统,它应该把所有的股权值写入文件(我只改变了所有值的输出,包括写入的零字节,使变量成为全局变量,并把文件的打开和写入分为OnInit和OnTick),但是尽管没有写入错误,文件也被创建了,但记录和文件都是空的。
有什么问题吗?
你没有搞砸任何事情,是吗?
我做了,但与纠正后的(FileClose(handle);)差别不大,感觉不到:)
还是不写!:)同时,它像一个游击队员一样保持沉默(除非你把0个字节被写成 "解释")。
乱七八糟的,但与纠正后的(FileClose(handle);)区别不大:)
还是不写!:)同时,它又像游击队一样沉默不语(除非你把写了0个字节算作一种 "解释")。
我不知道你在那里做什么。这里有一个有效的变体
我不知道你在那里做什么。这里有一个可行的方案
...关于昨天已经提出的一个问题。
我把它插入到OnTick和OnCalculated中。
但经过测试,尽管存在与开仓和平仓有关的对象(终端中的箭头和线条参数可以在:图表>对象>对象列表中看到),但由于某种原因,返回值为0。
谁能告诉我为什么会发生这种情况?
会不会是测试人员没有看到自己自动创建的对象?
谁能告诉我为什么会出现这种情况?
测试人员是否根本看不到它自动创建的对象?
测试期间创建的图形对象与 测试后 打开的图表上的对象没有任何关系。换句话说,在测试完成后,没有办法到达图表上出现的 进入/退出箭头。
这正是我所担心的!
好吧,那么我将不得不画出 我自己的对象,尽管我所需要的只是根据相应头寸的结果符号(盈利或亏损)来改变线条的颜色,因为从快速分析盈利和亏损交易分布的角度来看,结果颜色比方向颜色更重要。更重要的是--如果只是因为人们可以在图表上看到向上或向下的方向(通过线条的斜率和箭头的颜色),而要了解使用标准方法的交易的利润或损失,有必要每次都将头寸类型与市场方向进行比较)。
而且,如果测试器中只有几个位置,那就很好。但如果有数百或数千人呢?在标准方法中,在这种情况下不可能看到亏损和盈利头寸的分布,而如果用红线显示亏损的交易,用蓝线显示盈利的交易,即使在最小的范围内也很可能看到分布。
为什么这很重要?因为一个交易系统在不同的时间段会有不同的表现,要找出它最薄弱的地方,并通过这些点来解决,你需要对那些系列亏损交易的价格动态有一个了解。
许多交易者的要求是私人性质的,既有优点也有缺点,即从 "或多或少 "的类别。 在我看来,在MetaTrader的界面上设置交易行类型的可能性,将使许多交易者的历史分析更加舒适,而从程序的角度来看,我认为这很容易做到,没有缺点。换句话说,我们需要一个替代传统的按头寸类型处理的变量,即按交易结果处理的变量。因此,也许你可以添加或至少在论坛参与者中进行投票?
可能有两种方法来实施它。
1.对象绘制与OnTcik EA的连接,因此这些对象可以通过编程来改变。
2.在窗口界面层面增加设置。
账户状态的振荡器将部分解决这个问题,但只是部分,因为交易有效性的最方便的表现形式--是它们的视觉表现,最接近于价格动态。
总的来说,在我看来,测试器和交易效率的可视化是目前第五版最薄弱的地方。到目前为止,我们这里只有以前版本的图表和结果形式的遗产,但它们都只允许我们判断专家顾问的一般有效性,而且印象可能是欺骗性的(已经发生了很多次,专家顾问的权益图是稳步上升的,而仔细检查会发现更大的相对缩减和其他 "惊喜")。