如何使用指标计数以及如何在 MQL4 中将关键事件转换为代码
How to use Indicator count and how to turn key event into code in MQL4
我刚刚开始学习编码,几乎没有什么问题。有人可以告诉我如何做这件事吗;
1- 如何防止我的自定义指标在图表上重复?如果它已经在图表上并且我会再次将它放到图表上,我希望它检测到第一个并中止启动第二个。
类似这样的事情:但是工作 :)
int OnInit()
{
int indicators_total = ChartIndicatorsTotal(0,0);
for(int i = 0; ndicators_total > i; i++)
{
if(ChartIndicatorName(0,0,i)==IndicatorName)
return(INIT_FAILED); (AND THEN EXIT)
}
}
2 - 如何检测图表上是否存在多个同名指标?
3 - 如果指标“x”在图表上不存在 (=0),如何编写“if”语句来做某事?
类似这样的事情:但是工作 :)
if(IndicatorName==0)
{
Print("INDI ",IndicatorName, " NOT DETECTED");
}
4 - 有没有办法将键盘事件(F11 - 全屏)放入代码中?为了让我的自定义指标能够检测全屏何时打开,就像“图表刻度”一样 ChartGetInteger(0,CHART_SCALEFIX);
?
欢迎来到 SOF。看下面的counter
。这个想法是计算图表上的指标数量。您要添加的副本将在此列表中出现一次(此副本)或多次(您正在尝试向现有副本添加新副本)。此示例适用于主图表(子窗口 = 0)。
int OnInit()
{
const string indName = WindowExpertName(); // name of your indicator
int counter=0;
for(int i=ChartIndicatorsTotal(0,0)-1;i>=0;i--)
{
//printf("%i %s: i=%d/%d, %s",__LINE__,__FILE__,i,ChartIndicatorsTotal(0,0),ChartIndicatorName(0,0,i));
if(ChartIndicatorName(0,0,i)==indName)
counter++;
}
if(counter>1)
{
Print("already exist!");
return INIT_FAILED;
}
//--- indicator buffers mapping
// do all other indicator preparation work here
//---
return(INIT_SUCCEEDED);
}
我刚刚开始学习编码,几乎没有什么问题。有人可以告诉我如何做这件事吗;
1- 如何防止我的自定义指标在图表上重复?如果它已经在图表上并且我会再次将它放到图表上,我希望它检测到第一个并中止启动第二个。
类似这样的事情:但是工作 :)
int OnInit()
{
int indicators_total = ChartIndicatorsTotal(0,0);
for(int i = 0; ndicators_total > i; i++)
{
if(ChartIndicatorName(0,0,i)==IndicatorName)
return(INIT_FAILED); (AND THEN EXIT)
}
}
2 - 如何检测图表上是否存在多个同名指标?
3 - 如果指标“x”在图表上不存在 (=0),如何编写“if”语句来做某事?
类似这样的事情:但是工作 :)
if(IndicatorName==0)
{
Print("INDI ",IndicatorName, " NOT DETECTED");
}
4 - 有没有办法将键盘事件(F11 - 全屏)放入代码中?为了让我的自定义指标能够检测全屏何时打开,就像“图表刻度”一样 ChartGetInteger(0,CHART_SCALEFIX);
?
欢迎来到 SOF。看下面的counter
。这个想法是计算图表上的指标数量。您要添加的副本将在此列表中出现一次(此副本)或多次(您正在尝试向现有副本添加新副本)。此示例适用于主图表(子窗口 = 0)。
int OnInit()
{
const string indName = WindowExpertName(); // name of your indicator
int counter=0;
for(int i=ChartIndicatorsTotal(0,0)-1;i>=0;i--)
{
//printf("%i %s: i=%d/%d, %s",__LINE__,__FILE__,i,ChartIndicatorsTotal(0,0),ChartIndicatorName(0,0,i));
if(ChartIndicatorName(0,0,i)==indName)
counter++;
}
if(counter>1)
{
Print("already exist!");
return INIT_FAILED;
}
//--- indicator buffers mapping
// do all other indicator preparation work here
//---
return(INIT_SUCCEEDED);
}