//+------------------------------------------------------------------+ //| test_cci.mq4 | //| Copyright 2022, fxMeter. | //| https://www.mql5.com/en/users/fxmeter | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, fxMeter." #property link "https://www.mql5.com/en/users/fxmeter" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- int bars = 20; //20个K先内 int shift = GetCCIMax(bars);//20个K线内,CCI最大的那个K线的索引 double hi = iHigh(NULL,0,shift);//对应的K线的最高价 // shift = GetCCIMin(bars); //20个K线内,CCI最小的那个K线的索引 double low = iLow(NULL,0,shift);//对应的K线的最低价 } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int GetCCIMax(int bars) { double max = iCCI(NULL,0,14,PRICE_TYPICAL,0); int shift = 0; for(int i=1; i<bars && i<Bars; i++) { double v = iCCI(NULL,0,14,PRICE_TYPICAL,i); if(v>max) { shift = i; max = v; } } return(shift); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int GetCCIMin(int bars) { double min = iCCI(NULL,0,14,PRICE_TYPICAL,0); int shift = 0; for(int i=1; i<bars && i<Bars; i++) { double v = iCCI(NULL,0,14,PRICE_TYPICAL,i); if(v<min) { shift = i; min = v; } } return(shift); } //+------------------------------------------------------------------+
以下是我使用的方法,但是不能准确的获取到。请问有什么更好的方法吗
double max=0,min=0;
int jishu=0;
for(int i=0;i<10000;i++)
{
if(-100>ccixian(i) && ccixian(i+1) >ccixian(i) && ccixian(i-1) >ccixian(i) ) //最低点
{
if(jishu>11)
{
break;
}
max=High[i];
jishu++;
}
if(ccixian(i)>100 && ccixian(i)> ccixian(i+1) && ccixian(i)> ccixian(i-1))
{
if(jishu>11)
{
break;
}
min=Low[i];
jishu++;
}
}