- iAC
- iAD
- iADX
- iADXWilder
- iAlligator
- iAMA
- iAO
- iATR
- iBearsPower
- iBands
- iBullsPower
- iCCI
- iChaikin
- iCustom
- iDEMA
- iDeMarker
- iEnvelopes
- iForce
- iFractals
- iFrAMA
- iGator
- iIchimoku
- iBWMFI
- iMomentum
- iMFI
- iMA
- iOsMA
- iMACD
- iOBV
- iSAR
- iRSI
- iRVI
- iStdDev
- iStochastic
- iTEMA
- iTriX
- iWPR
- iVIDyA
- iVolumes
iCustom
函数返回指定自定义指标的处理器。
int iCustom(
|
参量
symbol
[in] 证券交易品种名称,数据用来计算指标。 NULL 值代表当前交易品种。
period
[in] 周期值可以是 ENUM_TIMEFRAMES 值中的一个,0代表当前时间表。
name
[in] 自定义指标名称。如果这个名称以反斜杠'\'开始,则相对于MQL5\Indicators指标根目录搜索EX5指标文件。因此,当调用iCustom(Symbol()、Period()、 "\FirstIndicator"...)时,指标下载为MQL5\Indicators\FirstIndicator.ex5。如果此路径不包含文件,则会出现错误4802 (ERR_INDICATOR_CANNOT_CREATE)。
如果路径不是以'\'开始,则会根据以下方式搜索和下载指标:
- 首先,在调用程序的EX5文件所在的文件夹中搜索指标EX5文件。例如,CrossMA.EX5 EA位于MQL5\Experts\MyExperts,并包含iCustom调用(Symbol()、Period()、"SecondIndicator"...)。在这种情况下,将在MQL5\Experts\MyExperts\SecondIndicator.ex5中搜索指标。
- 如果在同目录下没有找到指标,则相对于MQL5\Indicators指标根目录执行搜索。换句话说,将执行对MQL5\Indicators\SecondIndicator.ex5文件的搜索。如果找不到指标,则该函数返回INVALID_HANDLE并触发错误4802(ERR_INDICATOR_CANNOT_CREATE)。
如果在子目录(例如MyIndicators\ThirdIndicator)中设置指标路径,则首先在MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5的调用程序文件夹(EA交易位于MQL5\Experts\MyExperts)中执行搜索。如果未成功,则执行对MQL5\Indicators\MyIndicators\ThirdIndicator.ex5文件的搜索。确保在路径中使用双反斜杠'\\'作为分隔符,例如iCustom(Symbol()、Period()、 "MyIndicators\\ThirdIndicator"...)
...
[in] 自定义指标的 输入-参量 ,逗号分开,类型和参量命令必须匹配,如果没有指定参量,使用 默认值 。
返回值
返回特殊技术指标处理器,失败返回 INVALID_HANDLE. 计算机内存从不使用的指标中释放,使用指标处理程序传递到的函数 IndicatorRelease() 。
注释
必须编辑自定义指标(扩展EX5)并且在可获端或子目录中保存在MQL5/Indicators 目录中。
需要测试的指标是指自动从iCustom()函数调用,如果相应的参数是通过一个通用的常量字符串集合。对于其它情况下(使用IndicatorCreate() 函数或一个非常量字符串设定指标名称)该属性#property tester_indicator是必需的:
#property tester_indicator "indicator_name.ex5" |
如果在指标中使用 第一调用方式,然后在自定义指标中可以在"Parameters"标签中自动形成为指示数据的计算,如果"Apply to"参量不是明确指定的,默认计算将以"Close"价格值为主。
当从MQL5程序中调用自定义指标时,Applied_Price参量或者另外的指标处理器应该最后传递,在所有自定义指标的输入变量之后。
另见
程序属性, 时间序列和指标访问, IndicatorCreate(), IndicatorRelease()
示例:
#property indicator_separate_window
|