对MT5的祝愿 - 页 42

 
Lizar:
你需要突出显示该块,并按shift+tab键
谢谢你)
 

添加到教程中的部分

MQL5参考指南/技术指标/iMA具体例子说明后。

应用价格

[in] 要应用的价格。可以是任何一个价格常数ENUM_APPLIED_PRICE或其他指标的句柄。

如何使用另一个指标的句柄?它会做什么?还是只能对标准技术指标的值进行平均?如果需要在indicator_separate_window中绘制一个自定义指标,并在同一窗口中绘制这个指标的移动平均线,iMA()可以做到吗? 我隐约觉得iMA()可以实现 iMAOnArray()的结果,但我不知道如何实现,也许我错了。

ZS: 也许我对MT5的要求很高,但在MT4上,内置函数iMAOnArray()现在还没有出现,写一个用户函数来计算平均数并不困难,但我希望有标准函数来处理数组,我花在搜索iMAOnArray()的信息上的时间比写我自己的函数还多。

 
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)。
}


你只是没有完成一个段落。

 

我广泛使用标准追踪止损。在这方面有几个要求。

1) 在列菜单中增加一个选择 "追踪止损水平 "的选项。据我所知,这并不困难。

2) 增加TS值作为一个位置属性,可以(由用户选择)向终端广播/不广播特定位置的TS水平。我理解,这比第1点要严重得多,完全在服务器端实现TS,严重增加了服务器的负载。

对于我个人想用的是第2点)。

- 几个终端连接到同一个账户(最好是通过不同的服务器和供应商,例如在家里和在公司)。

- 其中一个终端手动打开一个位置并设置TS水平。

- 当在另一个终端上设置TS水平时,第一个终端上的TS保持不变,因为现在拖曳止损是在客户端实现的。如果客户愿意的话,这就是我想改变的地方。

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
Rosh:

点击该链接,你将被带到价格常数 部分,下面是一个例子。


你只是没有完成一个段落

确实有例子,但往往你不能凭直觉找到它们,也许你可以在这种情况下做一个 "例子 "链接--当然,这将是非常方便的,IMHO。
 
Rosh:

点击该链接,你将进入价格常数 部分,下面是一个例子。


你只是没有读完这段话

我完成了这一段,但该例子只使用了标准技术指标,问题是关于自定义指标和iMAOnArray()函数的。

-我想看看是否可以使用移动平均线来平滑自定义指标的数据

- 我认为,如果有过时的F功能的链接,就会很有用,你不必在论坛中搜索。

MQL4参考--过时的函数

 
xeon:
确实有例子,但往往你不能直观地找到它们,也许你可以在这种情况下做一个 "例子 "链接--当然,这将是非常方便的,IMHO。
你说得很对,我认为在每一页的右上角 有一个 "示例 "链接会非常好,这样你就不必在整个文件中搜索了。
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Способы привязки объектов - Документация по MQL5
 
IgorM:

我读了这段话,但这个例子只使用了标准技术指标,问题是关于自定义指标和iMAOnArray()函数的。

-我想看看移动平均线是否可以用来平滑自定义指标的数据


我在上面给出了:

如果一个技术指标的计算使用价格数据,其类型由ENUM_APPLIED_PRICE 枚举定义,那么 任何指标句柄(终端内置或由用户编写)都可以被指定为输入价格系列。

还请阅读文章。

 

如果社区有兴趣,可以考虑对现有的测试和优化方案进行修改。例如,我需要得到的不是一段历史的测试/优化数据,而是同时得到几段历史的测试/优化数据(例如,评估一个专家顾问的性能的统一性)。当然,我们可以在各个时期轮流进行测试/优化。但是,如果一个周期需要0.5到1小时,而你需要10个周期,那么一次运行所有10个周期(例如,过夜)并在稍后得到所有的结果会更方便。我目前在专家顾问中指定 "Date From"、"Date To "作为输入参数,并在测试器的外部标签中指定总的优化期(Dates From/To是优化参数之一)。但在这种情况下,每次运行的优化时间实际上等于一般优化期的时间(在测试者的标签中--刻度线总是在移动--我虚拟检查过)。如果能在测试器中同时指定2个周期:一个一般的大周期和一个内部的小周期,问题就会得到解决。

 

有一个ChartIndicatorAdd() 函数可以在图表上 添加指标请制作从图表中删除指标的功能。这就像核弹一样:核弹被发明了,但没有反核弹。

Документация по MQL5: Операции с графиками / ChartIndicatorAdd
Документация по MQL5: Операции с графиками / ChartIndicatorAdd
  • www.mql5.com
Операции с графиками / ChartIndicatorAdd - Документация по MQL5