对MT5的祝愿 - 页 42 1...353637383940414243444546474849...117 新评论 Konstantin Chernov 2010.11.01 11:26 #411 Lizar: 你需要突出显示该块,并按shift+tab键 谢谢你) Igor Makanu 2010.11.01 12:28 #412 添加到教程中的部分MQL5参考指南/技术指标/iMA具体例子说明后。应用价格 [in] 要应用的价格。可以是任何一个价格常数ENUM_APPLIED_PRICE或其他指标的句柄。如何使用另一个指标的句柄?它会做什么?还是只能对标准技术指标的值进行平均?如果需要在indicator_separate_window中绘制一个自定义指标,并在同一窗口中绘制这个指标的移动平均线,iMA()可以做到吗? 我隐约觉得iMA()可以实现 iMAOnArray()的结果,但我不知道如何实现,也许我错了。ZS: 也许我对MT5的要求很高,但在MT4上,内置函数iMAOnArray()现在还没有出现,写一个用户函数来计算平均数并不困难,但我希望有标准函数来处理数组,我花在搜索iMAOnArray()的信息上的时间比写我自己的函数还多。 Rashid Umarov 2010.11.01 13:03 #413 IgorM:添加到教程中的部分MQL5参考指南/技术指标/iMA具体例子说明后。如何使用另一个指标的句柄?它会做什么?或者是否可以只对标准技术指标的值进行平均?如果需要在indicator_separate_window中绘制一个自定义指标,并在同一个窗口中为这个指标绘制移动平均线,iMA()可以做到吗? 我隐约觉得iMA()可以实现 iMAOnArray(),但我不知道如何实现,也许我错了点击该链接,你会看到价格常数 部分,下面有一个例子。如果一个技术指标使用价格数据,其类型由ENUM_APPLIED_PRICE 枚举设置, 任何指标(内置终端或由用户编写) 的句柄 可以被指定为输入价格系列。在这种情况下,指标零缓冲区的值将被用于计算。这使你可以轻松地将一个指标的值建立在另一个指标的值上。 自定义指标的手柄是通过调用iCustom() 函数创建的。 例子。 #属性indicator_separate_window #propertyindicator_buffers 2 #propertyindicator_plots 2 //----输入参数 输入int RSIperiod=14;// RSI计算的周期。 输入int Smooth=8;// RSI平滑期 输入ENUM_MA_METHOD meth=MODE_SMMA;//平滑方法 //---- 绘制RSI #propertyindicator_label1"RSI" # 属性indicator_type1DRAW_LINE #propertyindicator_color1Red #property indicator_style1STYLE_SOLID #propertyindicator_width1 1 //---- plot RSI_Smoothed #property indicator_label2"RSI_Smoothed" # 属性 indicator_type2DRAW_LINE #property indicator_color2Navy #property indicator_style2STYLE_SOLID #property indicator_width2 1 //----指标缓冲区 double RSIBuffer[];//我们将在这里存储RSI值 double RSI_SmoothedBuffer[];// 平滑的RSI值将 存储在这里。 int RSIhandle;// RSI指标手柄 //+------------------------------------------------------------------+ //|自定义指标初始化函数 //+------------------------------------------------------------------+ 空白 的OnInit() { //------指标缓冲区的映射 SetIndexBuffer(0,RSIBuffer,INDICATOR_DATA)。 SetIndexBuffer(1,RSI_SmoothedBuffer,INDICATOR_DATA)。 IndicatorSetString(INDICATOR_SHORTNAME,"iRSI")。 IndicatorSetInteger(INDICATOR_DIGITS,2)。 //--- RSIhandle=iRSI(NULL,0,RSIperiod,PRICE_CLOSE)。 //--- } //+------------------------------------------------------------------+ //|自定义指标迭代函数| //+------------------------------------------------------------------+ intOnCalculate(constint rates_total, constint prev_calculated, constint begin, 永久性 的双份&price[] ) { //----将最后一个错误的值重置为零 ResetLastError()。 //---获得RSI指标数据到RSIBuffer[]数组中 int copied=CopyBuffer(RSIhandle,0,0,rate_total,RSIBuffer)。 如果(copied<=0) { Print("复制RSI指标值失败,错误="。 GetLastError(),", copied = ",copied)。 return(0); } //---通过RSI指标值创建平均值指标 int RSI_MA_handle=iMA(NULL,0,Smooth,0,meth,RSIhandle)。 copied=CopyBuffer(RSI_MA_handle,0,0,rate_total,RSI_SmoothedBuffer)。 如果(copied<=0) { Print("复制RSI平滑指标失败,错误="。 GetLastError(),",copied =",copied)。 return(0); } //---为下一次调用返回prev_calculated的值 return(rate_total)。 } 你只是没有完成一个段落。 Andrey Sharov 2010.11.01 13:06 #414 我广泛使用标准追踪止损。在这方面有几个要求。 1) 在列菜单中增加一个选择 "追踪止损水平 "的选项。据我所知,这并不困难。 2) 增加TS值作为一个位置属性,可以(由用户选择)向终端广播/不广播特定位置的TS水平。我理解,这比第1点要严重得多,完全在服务器端实现TS,严重增加了服务器的负载。 对于我个人想用的是第2点)。 - 几个终端连接到同一个账户(最好是通过不同的服务器和供应商,例如在家里和在公司)。 - 其中一个终端手动打开一个位置并设置TS水平。 - 当在另一个终端上设置TS水平时,第一个终端上的TS保持不变,因为现在拖曳止损是在客户端实现的。如果客户愿意的话,这就是我想改变的地方。 Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5 Igor Malcev 2010.11.01 13:08 #415 Rosh:点击该链接,你将被带到价格常数 部分,下面是一个例子。你只是没有完成一个段落 确实有例子,但往往你不能凭直觉找到它们,也许你可以在这种情况下做一个 "例子 "链接--当然,这将是非常方便的,IMHO。 Igor Makanu 2010.11.01 13:25 #416 Rosh:点击该链接,你将进入价格常数 部分,下面是一个例子。你只是没有读完这段话我完成了这一段,但该例子只使用了标准技术指标,问题是关于自定义指标和iMAOnArray()函数的。-我想看看是否可以使用移动平均线来平滑自定义指标的数据 - 我认为,如果有过时的F功能的链接,就会很有用,你不必在论坛中搜索。MQL4参考--过时的函数 Igor Makanu 2010.11.01 13:27 #417 xeon: 确实有例子,但往往你不能直观地找到它们,也许你可以在这种情况下做一个 "例子 "链接--当然,这将是非常方便的,IMHO。 你说得很对,我认为在每一页的右上角 有一个 "示例 "链接会非常好,这样你就不必在整个文件中搜索了。 Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов www.mql5.com Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов - Документация по MQL5 Rashid Umarov 2010.11.01 13:30 #418 IgorM:我读了这段话,但这个例子只使用了标准技术指标,问题是关于自定义指标和iMAOnArray()函数的。-我想看看移动平均线是否可以用来平滑自定义指标的数据我在上面给出了:如果一个技术指标的计算使用价格数据,其类型由ENUM_APPLIED_PRICE 枚举定义,那么 任何指标句柄(终端内置或由用户编写)都可以被指定为输入价格系列。还请阅读文章。在MQL5中调用指标的方法傻瓜式的MQL5:在他们的专家顾问中获取技术指标的值MQL5中的自定义指标,供初学者使用MQL5中按指标划分的指标 Владимир 2010.11.04 07:57 #419 如果社区有兴趣,可以考虑对现有的测试和优化方案进行修改。例如,我需要得到的不是一段历史的测试/优化数据,而是同时得到几段历史的测试/优化数据(例如,评估一个专家顾问的性能的统一性)。当然,我们可以在各个时期轮流进行测试/优化。但是,如果一个周期需要0.5到1小时,而你需要10个周期,那么一次运行所有10个周期(例如,过夜)并在稍后得到所有的结果会更方便。我目前在专家顾问中指定 "Date From"、"Date To "作为输入参数,并在测试器的外部标签中指定总的优化期(Dates From/To是优化参数之一)。但在这种情况下,每次运行的优化时间实际上等于一般优化期的时间(在测试者的标签中--刻度线总是在移动--我虚拟检查过)。如果能在测试器中同时指定2个周期:一个一般的大周期和一个内部的小周期,问题就会得到解决。 Konstantin Gruzdev 2010.11.04 18:35 #420 有一个ChartIndicatorAdd() 函数可以在图表上 添加指标。请制作从图表中删除指标的功能。这就像核弹一样:核弹被发明了,但没有反核弹。 Документация по MQL5: Операции с графиками / ChartIndicatorAdd www.mql5.com Операции с графиками / ChartIndicatorAdd - Документация по MQL5 1...353637383940414243444546474849...117 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你需要突出显示该块,并按shift+tab键
添加到教程中的部分
MQL5参考指南/技术指标/iMA具体例子说明后。
应用价格
[in] 要应用的价格。可以是任何一个价格常数ENUM_APPLIED_PRICE或其他指标的句柄。
如何使用另一个指标的句柄?它会做什么?还是只能对标准技术指标的值进行平均?如果需要在indicator_separate_window中绘制一个自定义指标,并在同一窗口中绘制这个指标的移动平均线,iMA()可以做到吗? 我隐约觉得iMA()可以实现 iMAOnArray()的结果,但我不知道如何实现,也许我错了。
ZS: 也许我对MT5的要求很高,但在MT4上,内置函数iMAOnArray()现在还没有出现,写一个用户函数来计算平均数并不困难,但我希望有标准函数来处理数组,我花在搜索iMAOnArray()的信息上的时间比写我自己的函数还多。
添加到教程中的部分
MQL5参考指南/技术指标/iMA具体例子说明后。
如何使用另一个指标的句柄?它会做什么?或者是否可以只对标准技术指标的值进行平均?如果需要在indicator_separate_window中绘制一个自定义指标,并在同一个窗口中为这个指标绘制移动平均线,iMA()可以做到吗? 我隐约觉得iMA()可以实现 iMAOnArray(),但我不知道如何实现,也许我错了
点击该链接,你会看到价格常数 部分,下面有一个例子。
如果一个技术指标使用价格数据,其类型由ENUM_APPLIED_PRICE 枚举设置, 任何指标(内置终端或由用户编写) 的句柄 可以被指定为输入价格系列。在这种情况下,指标零缓冲区的值将被用于计算。这使你可以轻松地将一个指标的值建立在另一个指标的值上。 自定义指标的手柄是通过调用iCustom() 函数创建的。
例子。
#属性indicator_separate_window
#propertyindicator_buffers 2
#propertyindicator_plots 2
//----输入参数
输入int RSIperiod=14;// RSI计算的周期。
输入int Smooth=8;// RSI平滑期
输入ENUM_MA_METHOD meth=MODE_SMMA;//平滑方法
//---- 绘制RSI
#propertyindicator_label1"RSI"
# 属性indicator_type1DRAW_LINE
#propertyindicator_color1Red
#property indicator_style1STYLE_SOLID
#propertyindicator_width1 1
//---- plot RSI_Smoothed
#property indicator_label2"RSI_Smoothed"
# 属性 indicator_type2DRAW_LINE
#property indicator_color2Navy
#property indicator_style2STYLE_SOLID
#property indicator_width2 1
//----指标缓冲区
double RSIBuffer[];//我们将在这里存储RSI值
double RSI_SmoothedBuffer[];// 平滑的RSI值将 存储在这里。
int RSIhandle;// RSI指标手柄
//+------------------------------------------------------------------+
//|自定义指标初始化函数
//+------------------------------------------------------------------+
空白 的OnInit()
{
//------指标缓冲区的映射
SetIndexBuffer(0,RSIBuffer,INDICATOR_DATA)。
SetIndexBuffer(1,RSI_SmoothedBuffer,INDICATOR_DATA)。
IndicatorSetString(INDICATOR_SHORTNAME,"iRSI")。
IndicatorSetInteger(INDICATOR_DIGITS,2)。
//---
RSIhandle=iRSI(NULL,0,RSIperiod,PRICE_CLOSE)。
//---
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
intOnCalculate(constint rates_total,
constint prev_calculated,
constint begin,
永久性 的双份&price[]
)
{
//----将最后一个错误的值重置为零
ResetLastError()。
//---获得RSI指标数据到RSIBuffer[]数组中
int copied=CopyBuffer(RSIhandle,0,0,rate_total,RSIBuffer)。
如果(copied<=0)
{
Print("复制RSI指标值失败,错误="。
GetLastError(),", copied = ",copied)。
return(0);
}
//---通过RSI指标值创建平均值指标
int RSI_MA_handle=iMA(NULL,0,Smooth,0,meth,RSIhandle)。
copied=CopyBuffer(RSI_MA_handle,0,0,rate_total,RSI_SmoothedBuffer)。
如果(copied<=0)
{
Print("复制RSI平滑指标失败,错误="。
GetLastError(),",copied =",copied)。
return(0);
}
//---为下一次调用返回prev_calculated的值
return(rate_total)。
}
你只是没有完成一个段落。
我广泛使用标准追踪止损。在这方面有几个要求。
1) 在列菜单中增加一个选择 "追踪止损水平 "的选项。据我所知,这并不困难。
2) 增加TS值作为一个位置属性,可以(由用户选择)向终端广播/不广播特定位置的TS水平。我理解,这比第1点要严重得多,完全在服务器端实现TS,严重增加了服务器的负载。
对于我个人想用的是第2点)。
- 几个终端连接到同一个账户(最好是通过不同的服务器和供应商,例如在家里和在公司)。
- 其中一个终端手动打开一个位置并设置TS水平。
- 当在另一个终端上设置TS水平时,第一个终端上的TS保持不变,因为现在拖曳止损是在客户端实现的。如果客户愿意的话,这就是我想改变的地方。
点击该链接,你将被带到价格常数 部分,下面是一个例子。
你只是没有完成一个段落
点击该链接,你将进入价格常数 部分,下面是一个例子。
你只是没有读完这段话
我完成了这一段,但该例子只使用了标准技术指标,问题是关于自定义指标和iMAOnArray()函数的。
-我想看看是否可以使用移动平均线来平滑自定义指标的数据
- 我认为,如果有过时的F功能的链接,就会很有用,你不必在论坛中搜索。
MQL4参考--过时的函数
确实有例子,但往往你不能直观地找到它们,也许你可以在这种情况下做一个 "例子 "链接--当然,这将是非常方便的,IMHO。
我读了这段话,但这个例子只使用了标准技术指标,问题是关于自定义指标和iMAOnArray()函数的。
-我想看看移动平均线是否可以用来平滑自定义指标的数据
我在上面给出了:
如果一个技术指标的计算使用价格数据,其类型由ENUM_APPLIED_PRICE 枚举定义,那么 任何指标句柄(终端内置或由用户编写)都可以被指定为输入价格系列。
还请阅读文章。
如果社区有兴趣,可以考虑对现有的测试和优化方案进行修改。例如,我需要得到的不是一段历史的测试/优化数据,而是同时得到几段历史的测试/优化数据(例如,评估一个专家顾问的性能的统一性)。当然,我们可以在各个时期轮流进行测试/优化。但是,如果一个周期需要0.5到1小时,而你需要10个周期,那么一次运行所有10个周期(例如,过夜)并在稍后得到所有的结果会更方便。我目前在专家顾问中指定 "Date From"、"Date To "作为输入参数,并在测试器的外部标签中指定总的优化期(Dates From/To是优化参数之一)。但在这种情况下,每次运行的优化时间实际上等于一般优化期的时间(在测试者的标签中--刻度线总是在移动--我虚拟检查过)。如果能在测试器中同时指定2个周期:一个一般的大周期和一个内部的小周期,问题就会得到解决。
有一个ChartIndicatorAdd() 函数可以在图表上 添加指标。请制作从图表中删除指标的功能。这就像核弹一样:核弹被发明了,但没有反核弹。