MetaEditor - 自动交易和技术指标编辑器

2026-01-01 22:59:444620

功能特点

代码编辑功能:支持多种编程语言,如 MQL4 和 MQL5,方便交易者根据自己的需求编写自动交易策略和技术指标。它提供了代码高亮、自动缩进、语法检查等功能,有助于提高代码编写的效率和准确性。调试与测试工具:配备了强大的调试工具,允许交易者在编写代码后进行测试和调试。可以设置断点、监视变量、查看程序执行流程,帮助发现和解决代码中的错误,确保自动交易策略和技术指标的稳定性和可靠性。代码模板与示例:提供了丰富的代码模板和示例,无论是新手还是有经验的交易者,都可以通过参考这些模板和示例来快速上手,了解如何编写各种类型的自动交易策略和技术指标,节省开发时间和精力。与 MetaTrader 平台集成:与 MetaTrader 4 和 MetaTrader 5 平台紧密集成,编写好的自动交易策略和技术指标可以直接在对应的平台上进行部署和运行,方便交易者进行实时交易和市场分析。

使用技巧

合理利用代码模板:MetaEditor 内置了丰富的代码模板,当你创建新的脚本、专家顾问或者自定义指标时,可以直接调用这些模板,在此基础上进行修改和完善,能大大节省时间。

代码案例

//+------------------------------------------------------------------+

//| Moving Average Indicator |

//+------------------------------------------------------------------+

#property copyright "Your Name"

#property link "Your Website"

#property version "1.00"

#property strict

//--- indicator parameters

input int InpPeriod=14;

//--- indicator buffers

double ExtMapBuffer[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int OnInit()

{

//--- indicator buffers mapping

SetIndexBuffer(0,ExtMapBuffer,INDICATOR_DATA);

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,clrRed);

SetIndexLabel(0,"MA("+string(InpPeriod)+")");

//---

return(INIT_SUCCEEDED);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total,

const int prev_calculated,

const datetime &time[],

const double &open[],

const double &high[],

const double &low[],

const double &close[],

const long &tick_volume[],

const long &volume[],

const int &spread[])

{

//---

int i;

int limit=rates_total-prev_calculated;

if(prev_calculated>0) limit++;

//---

for(i=limit-1; i>=0; i--)

{

double sum=0;

int k;

for(k=0; k

{

if(i+k

}

ExtMapBuffer[i]=sum/InpPeriod;

}

//--- return value of prev_calculated for next call

return(rates_total);

}