请教:是数组的问题,还是ObjectCreat的问题?

 

主函数的语句copy如下,(整个indicator 编译通过了)可是运行后,输入初始值后,没有显示结果

我怀疑是最后一个for循环中Objectcreat 函数有问题,他的第一个参数Name,我是用字符串数组传递的,请问MQL4允许这样做吗?

另外,MQL4,调试中,哪里可以设置断点,和查看变量的输出值?,刚刚接触MT4,对他的平台不是很熟悉。

谢谢!

int start()
{

double AngleTotal=0;
string AngleLineName[]; // 请问这里可以象C语言那样定义字符串数组吗?
double LineAngle[];
double PriceVN=0;
double LinePrice[];
string TempAngle="";

AngleTotal=AngleStep*CycleNumber;
PriceVN=CalculateVN(AngleMaster,StartPrice,DirectionDown);

if(DirectionDown==true)
{
LinePrice[0]=StartPrice-PriceVN/MathPow(10,Digits);
for(int i=1;i<CycleNumber;i++)
LinePrice[i]=LinePrice[i-1]-AngleStep*i/MathPow(10,Digits);
}
else
{
LinePrice[0]=StartPrice+PriceVN/MathPow(10,Digits);
for(i=1;i<CycleNumber;i++)
LinePrice[i]=LinePrice[i-1]+AngleStep*i/MathPow(10,Digits);

}


for(i=0;i<CycleNumber;i++)
{
LineAngle[i]=AngleStep*i;
TempAngle=DoubleToStr(AngleStep*i,0);
AngleLineName[i]="Angle_"+i+"_"+TempAngle;

}



for(i=0;i<CycleNumber;i++)
{
ObjectCreate(AngleLineName[i],OBJ_HLINE,0,Time[10],LinePrice[i]); // 问题是不是出在这里?用数组AngleLineName[i]给第一个参数Sting Name赋值,行吗?
ObjectSet(AngleLineName[i],OBJPROP_STYLE,STYLE_SOLID);
ObjectSetText(AngleLineName[i],AngleLineName[i],8,NULL,AngleLineColor);


}

return(0);
}

 

跟C 一样, 数组需要分配大小后使用 ! 这里似乎都没有分配空间大小

int ArrayResize( void array[], int new_size)
 
DxdCn >>

跟C 一样, 数组需要分配大小后使用 ! 这里似乎都没有分配空间大小

int ArrayResize( void array[], int new_size)

谢谢DxdCn大大!

 

谢谢DxdCn大大

搞定!确实是没有分配空间,定义的时候可以不分配,使用前要分配

哎,基础的东西都忘光光了

另外,你教的用十字光标划线的方式,即可以得到K棒的根数,也能看到价格波动区间,非常好用。

哈哈,谢谢咯!

原因: