初学者的问题 MQL5 MT5 MetaTrader 5 - 页 66 1...596061626364656667686970717273...1503 新评论 Yury Reshetov 2012.11.19 13:47 #651 mario065: 你好。 当然不是。 如果有几只火鸡,你必须为每只火鸡做同样多的配对,因为它吃了。 一个处理程序可以使用所有的对。一个一个地使用句柄,即复制指标缓冲区,然后将下一个指标的值分配给句柄。但我不明白,既然手柄是基本的整数,对资源几乎没有影响,为什么还要保存? mario 2012.11.19 14:18 #652 Reshetov: 逐个使用句柄,即复制指标缓冲区,然后将下一个指标的值分配给句柄。 但我不明白,既然手柄是基本的整数,对资源几乎没有影响,为什么还要保存? 你们好。 去年我写了一个这样的外部函数。void CalculatePairs(string dSymbol) { atrHandle1=iATR(dSymbol, TimeFrame1, ATRPeriod); atrHandle2=iATR(dSymbol, TimeFrame5, ATRPeriod); atrHandle3=iATR(dSymbol, TimeFrame15, ATRPeriod); atrHandle4=iATR(dSymbol, TimeFrame30, ATRPeriod); atrHandle5=iATR(dSymbol, TimeFrame60, ATRPeriod); muvHandle1=iMA(dSymbol,TimeFrame1,MAPeriod,0,MAMethod,InpPr); muvHandle2=iMA(dSymbol,TimeFrame5,MAPeriod,0,MAMethod,InpPr); muvHandle3=iMA(dSymbol,TimeFrame15,MAPeriod,0,MAMethod,InpPr); muvHandle4=iMA(dSymbol,TimeFrame30,MAPeriod,0,MAMethod,InpPr); muvHandle5=iMA(dSymbol,TimeFrame60,MAPeriod,0,MAMethod,InpPr); if(atrHandle1<0 || atrHandle2<0 || atrHandle3<0 || atrHandle4<0 || atrHandle5<0 || muvHandle1<0 || muvHandle2<0 || muvHandle3<0 || muvHandle4<0 || muvHandle5<0 ) { Alert("Error Creating Handles for indicators - error: ",GetLastError(),"!!"); } double ma1[],ma2[],ma3[],ma4[],ma5[]; double atr1[],atr2[],atr3[],atr4[],atr5[]; ArraySetAsSeries(ma1, true);ArraySetAsSeries(ma2, true);ArraySetAsSeries(ma3, true); ArraySetAsSeries(ma4, true);ArraySetAsSeries(ma5, true); ArraySetAsSeries(atr1, true);ArraySetAsSeries(atr2, true);ArraySetAsSeries(atr3, true); ArraySetAsSeries(atr4, true);ArraySetAsSeries(atr5, true); if (NormalizeDouble(CopyBuffer(muvHandle1,0,0,1,ma1),4) < 0){Print("CopyBuffermuvHandle error =",GetLastError());} if (NormalizeDouble(CopyBuffer(muvHandle2,0,0,1,ma2),4) < 0){Print("CopyBuffermuvHandle error =",GetLastError());} if (NormalizeDouble(CopyBuffer(muvHandle3,0,0,1,ma3),4) < 0){Print("CopyBuffermuvHandle error =",GetLastError());} if (NormalizeDouble(CopyBuffer(muvHandle4,0,0,1,ma4),4) < 0){Print("CopyBuffermuvHandle error =",GetLastError());} if (NormalizeDouble(CopyBuffer(muvHandle5,0,0,1,ma5),4) < 0){Print("CopyBuffermuvHandle error =",GetLastError());} if (NormalizeDouble(CopyBuffer(atrHandle1,0,0,1,atr1),4) < 0){Print("CopyBufferatrHandle error =",GetLastError());} if (NormalizeDouble(CopyBuffer(atrHandle2,0,0,1,atr2),4) < 0){Print("CopyBufferatrHandle error =",GetLastError());} if (NormalizeDouble(CopyBuffer(atrHandle3,0,0,1,atr3),4) < 0){Print("CopyBufferatrHandle error =",GetLastError());} if (NormalizeDouble(CopyBuffer(atrHandle4,0,0,1,atr4),4) < 0){Print("CopyBufferatrHandle error =",GetLastError());} if (NormalizeDouble(CopyBuffer(atrHandle5,0,0,1,atr5),4) < 0){Print("CopyBufferatrHandle error =",GetLastError());} Result = 0; } double FGroup(){ CalculatePairs(Currency1);{ Pair1 = Result;} 当然,在进行计算之前,它出现了4806的错误,但后来工作正常。 今天我打开这个代码,想知道是否有其他方法。 错误就是错误。 对于8个货币对和5个时间段,我应该得到多少个手数? 这不是一个关于资源的问题,我必须做得更好。 Документация по MQL5: Основы языка / Функции / Описание внешних функций www.mql5.com Основы языка / Функции / Описание внешних функций - Документация по MQL5 Yury Reshetov 2012.11.19 15:07 #653 mario065: 你们好。 去年我写了一个这样的外部函数。 当然,在它进行计算之前,它出现了4806的错误,但随后它就正常工作了。 我今天打开这个代码,想知道是否有其他方法。什么的方式? 为什么我需要CalculatePairs()函数,如果它除了显示错误之外什么都没有?从你的代码中删除这个功能,然后好好睡觉。 mario 2012.11.19 15:40 #654 Reshetov: 什么的方式? 如果CalculatePairs()函数只产生错误,你为什么还要用它呢?从你的代码中删除这个功能,然后好好睡觉。 有一些 "伟大 "的计算方法没有显示出来。 然后,其他函数将所选的对子拿出来,再做一些事情。 这个方法很简单。 比如说。 我们做一个指标的手柄,它没有符号,没有时间框架。 当我们创建一个CopyBuffer 时, 我们表明时间框架和配对。 比如说。 int OnInit() 它看起来像这样: Handle = 指标名称 空白的OnTick() 它看起来像这样:CopyBuffer(指定符号,时间框架,复制自,复制多少,复制到哪里) 这只是与你的一次对话:)。 Yury Reshetov 2012.11.19 15:58 #655 mario065: 有一些 "伟大 "的计算方法还没有被展示出来。 我明白了,你把ArraySetSeries()应用于没有数据的数组,即在信息加载到数组之前,而你需要在复制缓冲区后使用它。 mario 2012.11.19 16:05 #656 Reshetov: 我明白了,你把ArraySetSeries()应用于没有数据的数组,即在信息加载到数组之前,而这应该是在复制缓冲区之后进行。 正是如此。 但我认为,如果在CopyBuffer 中完成,对每个人来说都会更容易,也就是说,你在那里指定哪一对和哪一帧。 该指标本身也进行同样的计算,只要它指定哪一对和哪一帧。 如果MT5的架构本身允许更容易做到这一点。 好主意 :) 。 Victor Kirillin 2012.11.20 06:13 #657 Reshetov: 我明白了,你把ArraySetSeries()应用于没有数据的数组,即在信息加载到数组之前,而你希望它在复制缓冲区之后。 没有区别。 dmitriy milakumov 2012.11.20 10:50 #658 我已经配置了一切,签署了一切,在终端进行了设置,但我不想自动交易。当我试图下一个挂单 时,它安装并写给我关于同步和删除终端的所有订单,然后我看到供应商的订单。 Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5 Leser 2012.11.20 11:37 #659 Yedelkin:如果专家顾问使用MFI,那么它的代码必须包含一个获取该指标手柄的行:"MQL5参考/ 技术指标/ iMFI"。因此,掌握移动平均线指标的方法在这里描述:"MQL5参考 指南/技术指标/ iMA"。还可以尝试阅读"MQL5中的指标"一文。 我已经读了这篇文章。然而,它没有回答我的问题 "我如何删除位于MFI指标窗口和注册条形收盘价的iMA手柄?"。 你提到的iMA手柄并不适用于位于指标窗口的iMA。通过标准方法描述,顾问从图表中移除iMA手柄。 Yedelkin 2012.11.20 12:21 #660 Leser: 阅读这篇文章。然而,它没有回答我的问题 "我如何删除位于MFI指标窗口中的iMA手柄,并注册条形收盘价?" 你最初对问题的概述如下。"专家顾问使用MFI;马云不在图表上(窗口#1),而是在有MFI指标的窗口(窗口#2)"。我回答说:"如果您的专家顾问使用MFI,那么它的代码中必须包含一行,并获得该指标的处理:"MQL5参考指南/技术指标/iMFI" 。 因此,我建议首先弄清楚你的专家顾问到底是如何从 "2号窗口 "获得指标处理的。我们会在那里想出一些办法。 Leser : 我已经读了这篇文章。然而,这并没有回答我的问题"。位于MFI指标窗口中的iMA,并注册酒吧收盘价"。 一个澄清的问题:你根据什么数据建立MA指标:根据MFI指标的值还是根据条形收盘价?以前没有人说过 "登记酒吧的收盘价"。这就是为什么我提供了一个 "从指标看指标 "的文章链接。 1...596061626364656667686970717273...1503 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好。
当然不是。
如果有几只火鸡,你必须为每只火鸡做同样多的配对,因为它吃了。
一个处理程序可以使用所有的对。
一个一个地使用句柄,即复制指标缓冲区,然后将下一个指标的值分配给句柄。
但我不明白,既然手柄是基本的整数,对资源几乎没有影响,为什么还要保存?
逐个使用句柄,即复制指标缓冲区,然后将下一个指标的值分配给句柄。
但我不明白,既然手柄是基本的整数,对资源几乎没有影响,为什么还要保存?
你们好。
去年我写了一个这样的外部函数。
当然,在进行计算之前,它出现了4806的错误,但后来工作正常。
今天我打开这个代码,想知道是否有其他方法。
错误就是错误。
对于8个货币对和5个时间段,我应该得到多少个手数?
这不是一个关于资源的问题,我必须做得更好。
你们好。
去年我写了一个这样的外部函数。
当然,在它进行计算之前,它出现了4806的错误,但随后它就正常工作了。
我今天打开这个代码,想知道是否有其他方法。
从你的代码中删除这个功能,然后好好睡觉。
从你的代码中删除这个功能,然后好好睡觉。
有一些 "伟大 "的计算方法没有显示出来。
然后,其他函数将所选的对子拿出来,再做一些事情。
这个方法很简单。
比如说。
我们做一个指标的手柄,它没有符号,没有时间框架。
当我们创建一个CopyBuffer 时, 我们表明时间框架和配对。
比如说。
int OnInit()
它看起来像这样: Handle = 指标名称
空白的OnTick()
它看起来像这样:CopyBuffer(指定符号,时间框架,复制自,复制多少,复制到哪里)
这只是与你的一次对话:)。
有一些 "伟大 "的计算方法还没有被展示出来。
我明白了,你把ArraySetSeries()应用于没有数据的数组,即在信息加载到数组之前,而这应该是在复制缓冲区之后进行。
正是如此。
但我认为,如果在CopyBuffer 中完成,对每个人来说都会更容易,也就是说,你在那里指定哪一对和哪一帧。
该指标本身也进行同样的计算,只要它指定哪一对和哪一帧。
如果MT5的架构本身允许更容易做到这一点。
好主意 :) 。
我明白了,你把ArraySetSeries()应用于没有数据的数组,即在信息加载到数组之前,而你希望它在复制缓冲区之后。
如果专家顾问使用MFI,那么它的代码必须包含一个获取该指标手柄的行:"MQL5参考/ 技术指标/ iMFI"。因此,掌握移动平均线指标的方法在这里描述:"MQL5参考 指南/技术指标/ iMA"。
还可以尝试阅读"MQL5中的指标"一文。
你提到的iMA手柄并不适用于位于指标窗口的iMA。通过标准方法描述,顾问从图表中移除iMA手柄。
你最初对问题的概述如下。"专家顾问使用MFI;马云不在图表上(窗口#1),而是在有MFI指标的窗口(窗口#2)"。我回答说:"如果您的专家顾问使用MFI,那么它的代码中必须包含一行,并获得该指标的处理:"MQL5参考指南/技术指标/iMFI" 。
因此,我建议首先弄清楚你的专家顾问到底是如何从 "2号窗口 "获得指标处理的。我们会在那里想出一些办法。