服务器上是否有打勾历史? - 页 4 1234567 新评论 Forex Trader 2006.10.18 08:44 #31 我认为索兰建议的有合理的依据,但就我个人而言,我需要他们进行研究,恐怕我在一周内很难提供什么严肃的东西,我有这样一个指标,就在分支出现的一周前,我的一个朋友写道,但有一个问题--他在每次初始化后都会删除带刻度的文件,他和我都无法完成这项工作。它根据一个固定的体积形成条形,因为有时一个刻度线来了,而体积没有变化1。 //+------------------------------------------------------------------+ //| TickSaver.mq4 | //| Copyright © 2006, Cherednikov K.M. | //| mailto:chkm76@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Cherednikov K.M." #property link "mailto:chkm76@mail.ru" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Black #include <WinUser32.mqh> //---- input parameters extern int NumTicksPerBar=3; extern int Minutes_for_HSTfilename=3; //---- buffers double ExtMapBuffer1[]; //---- глобальные переменные int hFile=-1; int iFilePos; int CurrTickNumber=0; datetime i_time, i_time_bar0; double d_open, d_low, d_high, d_close, d_volume; double d_low_bar0, d_high_bar0, d_volume_bar0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { int nVersion=400; string szCopyright; string szSymbol=Symbol(); int iDigits=Digits; int iUnused[13]; //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); hFile=FileOpenHistory(szSymbol + Minutes_for_HSTfilename + ".hst", FILE_READ); if(FileSize(hFile)<0){ // Дабы не затереть реальные файлы историй, в имя файла добавлен "0" перед периодом hFile=FileOpenHistory(szSymbol + Minutes_for_HSTfilename + ".hst", FILE_BIN|FILE_WRITE); if(hFile < 0) return(-1); //---- Записать заголовок hst-файла szCopyright="(C)opyright 2003, MetaQuotes Software Corp."; FileWriteInteger(hFile, nVersion, LONG_VALUE); FileWriteString(hFile, szCopyright, 64); FileWriteString(hFile, szSymbol, 12); FileWriteInteger(hFile, Minutes_for_HSTfilename, LONG_VALUE); // файл - М2 FileWriteInteger(hFile, iDigits, LONG_VALUE); FileWriteInteger(hFile, 0, LONG_VALUE); FileWriteInteger(hFile, 0, LONG_VALUE); FileWriteArray(hFile, iUnused, 0, 13); FileFlush(hFile); iFilePos=FileTell(hFile); } else{ iFilePos=FileTell(hFile); } i_time = CurTime(); i_time_bar0 = Time[0]; d_open = Close[0]; d_low = d_open; d_high = d_open; d_close = d_open; d_volume = 1; d_volume_bar0 = Volume[0]; /*d_low_bar0 = Low[0]; d_high_bar0 = High[0];*/ //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { if(hFile>=0) { FileClose(hFile); hFile=-1; } return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { CurrTickNumber++; //********* Обновление данных в переменных текущего бара ************** d_close = Close[0]; if (d_low > d_close) d_low = d_close; if (d_high < d_close) d_high = d_close; // Объем if (i_time_bar0!=Time[0]) // если на реальном графике появился новый бар, а для // нас еще не набралось тиков закончить тиковый бар... { //расчитать изменение объема с учетом пополнения предыдущего реального бара d_volume += Volume[1] + Volume[0] - d_volume_bar0; i_time_bar0 = Time[0]; } else { //расчитать изменение объема только с учетом текущего реального бара d_volume += Volume[0] - d_volume_bar0; } d_volume_bar0 = Volume[0]; // Обновление данных последнего бара FileSeek(hFile, iFilePos, SEEK_SET); FileWriteInteger(hFile, i_time, LONG_VALUE); FileWriteDouble(hFile, d_open, DOUBLE_VALUE); FileWriteDouble(hFile, d_low, DOUBLE_VALUE); FileWriteDouble(hFile, d_high, DOUBLE_VALUE); FileWriteDouble(hFile, d_close, DOUBLE_VALUE); FileWriteDouble(hFile, d_volume, DOUBLE_VALUE); if (CurrTickNumber==NumTicksPerBar) { iFilePos=FileTell(hFile); CurrTickNumber=0; i_time = CurTime();// / 60 / Minutes_for_HSTfilename; //i_time *= 60 * Minutes_for_HSTfilename; d_open = Close[0]; d_low = d_open; d_high = d_open; d_close = d_open; d_volume = 1; FileWriteInteger(hFile, i_time, LONG_VALUE); FileWriteDouble(hFile, d_open, DOUBLE_VALUE); FileWriteDouble(hFile, d_low, DOUBLE_VALUE); FileWriteDouble(hFile, d_high, DOUBLE_VALUE); FileWriteDouble(hFile, d_close, DOUBLE_VALUE); FileWriteDouble(hFile, d_volume, DOUBLE_VALUE); } FileFlush(hFile); // Обновление окна автономно открытого файла int hwnd=WindowHandle(Symbol(), Minutes_for_HSTfilename); if (hwnd!=0) PostMessageA(hwnd, WM_COMMAND, 33324, 0); Comment("Отладочная Инфа: \n"+ "Тиков в баре: " + CurrTickNumber + "\nOpen=" + d_open + " Close=" + d_close + "\nHigh=" + d_high + " Low=" + d_low + "\nVol=" + d_volume + "\nПозиция файла: " + iFilePos ); return(0); } //+------------------------------------------------------------------+ Forex Trader 2006.10.18 12:19 #32 在我看来,开发者人为地编造技术问题,以证明自己不愿意(或不可能)在嘀嗒历史方面改进MT的理由。<br / translate="no">Tick文件字符串(Time,Close,Volume)=(int,double,double)=(4,8,8,)=20字节。 报价可以通过相应地乘以10000和100(日语)来存储为整数。 你也可以存储关键点和相对于最后一次报价的偏移量。 所有这些问题都是技术问题。 主要问题是战略问题。 报价单不希望,而且,我认为,不会这样做。只有在终端被竞争对手挤压的情况下,才会有勾兑终端的先决条件。 还有一个问题。客户不需要为终端付款。 它是由购买服务器的DT支付的,而DT对tick终端不感兴趣,因为会有专家的pipsers在DT报价的特殊性上工作。 Forex Trader 2006.10.18 12:48 #33 经纪公司对tick终端不感兴趣,因为会有pipsmiths对经纪公司报价的特殊性进行工作。 经纪公司不太可能考虑到终端(滴答或时间终端)。他们有其他的兴趣。我认为,对经纪公司来说,所有必要的东西都已经由开发商给出(允许/禁止自动交易,取消非市场价格的交易等等)。冠军的统计数据表明,任何一家经纪公司都可以安排好 "厨房",一些特殊的打勾终端的出现不会改变什么根本,至少经纪公司几乎不会反对它的引入,如果它被开发出来。好吧,既然还没有详细的证据证明需要引入蜱系列,那么这个问题将是现在的情况。 看一下欧米茄平台的滴答证明的结果会很有趣,它 "做任何事情--任何滴答和时间框架"。 虽然对经纪人的讨论已经超出了论坛的范围。我猜他们现在会把这一切都清理掉。) Forex Trader 2006.10.18 15:08 #34 我认为solandr 建议有合理的依据,但就我个人而言,我需要它们进行研究,我担心我在一周内无法提供任何严肃的东西... "MQL4: 滴答收集器 专家顾问保存了指定符号的滴答历史记录 Forex Trader 2006.10.18 20:36 #35 我建议我们从无休止的、无意义的关于井字形问题的口头辩论转向详细的证据。要做到这一点,我们需要做以下工作。如果你愿意,你可以写一个简单的脚本,用选定的刻度数量生成刻度序列,并将数据写入CSV文件。此外,你可以在EXCEL中打开这个文件,并使用标准的EXCEL工具来绘制tick-series图表。如果这样的图表是一周内可用的,例如指定的勾股图,你可以将其与标准的MT4图表进行比较,并表明勾股图给出了一些额外的进入/退出点,而这些点是无法从标准时间序列中以某种方式得到的,例如使用趋势支撑/阻力线或其他东西。 亲爱的solandr! 你为什么对这种论战如此恼火?为什么你坚持认为你知道关于未来的一切--包括什么该做和什么不该做? 你提出的 "建立证明 "方案在原则上是错误的。你想把蜱虫交易的成功作为唯一可信的论据。如果你这样推理,那么根本就不需要现有的T/F--还没有人报告说由于某个特定的T/F而取得了彻底的成功。 让我告诉你。以period_converter为基础,我在很久以前写了一个专家顾问,它不仅可以写出tick历史,还可以在图表上实时显示。因此,在其他框架中可以做到的一切,都可以在滴答图中做到。这再次表明MT4+MCL4是一个多么强大的工具。 这也表明,使这种服务内置并不那么困难。 此外,我已经花了很多时间来研究蜱虫数据。我是否因此而在市场上获得成功,这绝对不重要。人们取得成就与否是因为他们的能力和努力工作。但为了实现一个结果,他们必须首先拥有能力。这个条件不是充分的,而是必要的 !:-) 为什么问题是有机会用时间框架来工作,而不是用嘀嗒框架?由于开发者的能力(时间、人力等)有限,这种情况是可以理解的。但从服务的完整性和策略上看,这是完全不可接受的。因此,如果今天或多或少适合市场,明天就不适合了。 Forex Trader 2006.10.18 20:43 #36 2Jhonny 我认为Scholand的建议有其合理性,但就我个人而言,我需要他们进行研究,我恐怕在一个星期内无法提供任何严肃的东西,但我有一个那种预生产的指标 正是如此!这正是我的观点。 顺便说一下,这个东西应该作为EA来实施。该指标跳过了刻度线! 为了避免擦伤文件,它必须像这样打开:FILE_BIN|FILE_READ|FILE_WRITE 在你写进文件之前,把写指针设置到文件的末端。 Forex Trader 2006.10.18 20:51 #37 Yurixx,我只是在表达我的观点!这是一个自由的论坛,每个人都有权利表达自己的意见,不是吗?还是说我们应该总是听从大多数人的意见?但大多数人都 "泄密 "了--看看冠军赛吧! 人们要求开发商做一个滴答的历史,开发商断然拒绝。那么接下来呢?你就会在这里写下堆积如山的抱怨,说开发商没有听从 "劳动人民的意愿"?就我而言,我只是提出了一个对开发商施加压力的合理选择--仅此而已。如果每个人都只是想无休止的口头抱怨,而在这个问题上没有任何真正的进展,那么,请不要这样,我个人并不反对。 Forex Trader 2006.10.18 20:53 #38 "MQL4: Tick collector <br / translate="no"> 专家顾问为指定的符号保存tick历史。 当然,我想感谢专家顾问,但我刚刚查了一下,它把数据保存在csv中,而我的设计是把数据保存在历史中,然后可以打开图表,进行离线分析。 Forex Trader 2006.10.18 22:08 #39 当然,感谢专家顾问,但我刚刚查了一下,它是以csv格式保存的,而我的设计是以历史记录保存的,这个图表可以打开,可以离线分析。 "MQL4: simple_csv2fxt"。 简单的csv到fxt转换器。 有必要将我的专家顾问和这个脚本结合起来,并对其进行一些修补--这将是完美的;) Forex Trader 2006.10.19 12:14 #40 我认为问我们是否需要勾选数据是没有用的,因为答案很明显--提供的可能性越多,服务就越完整,质量就越高,总会有人需要其中一种。这个问题的答案是,这个功能会在不久的将来实现吗?- 显然不是...在我看来,有一个重要的原因......也就是说 - 将实施只有什么带来Metakvotes收入在这个阶段的新合同的形式,这是合乎逻辑和正确的...由于收入带来的中介公司(经纪人,DC等),然后将实施简化他们的生活,但不是什么将他们的生活复杂化...... 蜱虫数据将使他们的生活复杂化,原因如下。 1.如果有tick数据,以tick符号交易的专家顾问肯定会出现,因此,这种专家的重叠会有巨大的困难。 2)如果有了可靠的蜱虫数据,在测试器中测试蜱虫专家的可能性就会出现(这也会增加他们的数量)。 3.在获得tick数据后,公众将要求获得真实的数量 :)))))) 4.第四名是由于开发商不愿意或忙于工作(如果有经纪公司的需求,他们会在两星期内创造它:)。 5.最后,关于疯狂的流量和磁盘空间的 "王牌 "说法... 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
报价可以通过相应地乘以10000和100(日语)来存储为整数。
你也可以存储关键点和相对于最后一次报价的偏移量。
所有这些问题都是技术问题。
主要问题是战略问题。
报价单不希望,而且,我认为,不会这样做。只有在终端被竞争对手挤压的情况下,才会有勾兑终端的先决条件。
还有一个问题。客户不需要为终端付款。
它是由购买服务器的DT支付的,而DT对tick终端不感兴趣,因为会有专家的pipsers在DT报价的特殊性上工作。
经纪公司不太可能考虑到终端(滴答或时间终端)。他们有其他的兴趣。我认为,对经纪公司来说,所有必要的东西都已经由开发商给出(允许/禁止自动交易,取消非市场价格的交易等等)。冠军的统计数据表明,任何一家经纪公司都可以安排好 "厨房",一些特殊的打勾终端的出现不会改变什么根本,至少经纪公司几乎不会反对它的引入,如果它被开发出来。好吧,既然还没有详细的证据证明需要引入蜱系列,那么这个问题将是现在的情况。
看一下欧米茄平台的滴答证明的结果会很有趣,它 "做任何事情--任何滴答和时间框架"。
虽然对经纪人的讨论已经超出了论坛的范围。我猜他们现在会把这一切都清理掉。)
"MQL4: 滴答收集器
专家顾问保存了指定符号的滴答历史记录
亲爱的solandr!
你为什么对这种论战如此恼火?为什么你坚持认为你知道关于未来的一切--包括什么该做和什么不该做?
你提出的 "建立证明 "方案在原则上是错误的。你想把蜱虫交易的成功作为唯一可信的论据。如果你这样推理,那么根本就不需要现有的T/F--还没有人报告说由于某个特定的T/F而取得了彻底的成功。
让我告诉你。以period_converter为基础,我在很久以前写了一个专家顾问,它不仅可以写出tick历史,还可以在图表上实时显示。因此,在其他框架中可以做到的一切,都可以在滴答图中做到。这再次表明MT4+MCL4是一个多么强大的工具。 这也表明,使这种服务内置并不那么困难。
此外,我已经花了很多时间来研究蜱虫数据。我是否因此而在市场上获得成功,这绝对不重要。人们取得成就与否是因为他们的能力和努力工作。但为了实现一个结果,他们必须首先拥有能力。这个条件不是充分的,而是必要的 !:-)
为什么问题是有机会用时间框架来工作,而不是用嘀嗒框架?由于开发者的能力(时间、人力等)有限,这种情况是可以理解的。但从服务的完整性和策略上看,这是完全不可接受的。因此,如果今天或多或少适合市场,明天就不适合了。
正是如此!这正是我的观点。
顺便说一下,这个东西应该作为EA来实施。该指标跳过了刻度线!
为了避免擦伤文件,它必须像这样打开:FILE_BIN|FILE_READ|FILE_WRITE
在你写进文件之前,把写指针设置到文件的末端。
人们要求开发商做一个滴答的历史,开发商断然拒绝。那么接下来呢?你就会在这里写下堆积如山的抱怨,说开发商没有听从 "劳动人民的意愿"?就我而言,我只是提出了一个对开发商施加压力的合理选择--仅此而已。如果每个人都只是想无休止的口头抱怨,而在这个问题上没有任何真正的进展,那么,请不要这样,我个人并不反对。
当然,我想感谢专家顾问,但我刚刚查了一下,它把数据保存在csv中,而我的设计是把数据保存在历史中,然后可以打开图表,进行离线分析。
简单的csv到fxt转换器。
有必要将我的专家顾问和这个脚本结合起来,并对其进行一些修补--这将是完美的;)
蜱虫数据将使他们的生活复杂化,原因如下。
1.如果有tick数据,以tick符号交易的专家顾问肯定会出现,因此,这种专家的重叠会有巨大的困难。
2)如果有了可靠的蜱虫数据,在测试器中测试蜱虫专家的可能性就会出现(这也会增加他们的数量)。
3.在获得tick数据后,公众将要求获得真实的数量 :))))))
4.第四名是由于开发商不愿意或忙于工作(如果有经纪公司的需求,他们会在两星期内创造它:)。
5.最后,关于疯狂的流量和磁盘空间的 "王牌 "说法...