如何通过 MQL4 在图表上创建静态趋势线对象?

How create static trendline object on chart by MQL4?

每当前 500 根蜡烛中的最高蜡烛高于最新 5 根蜡烛的最高蜡烛时,我想要一条下降趋势线。然而趋势线是第一次创建但不会更新。

int highestCandle=iHighest(Symbol(),0,MODE_HIGH,500,0);
if(High[highestCandle]>High[5])
{
ObjectCreate(0,"HT",OBJ_TREND,0,Time[highestCandle],High[highestCandle],Time[0],High[0]);
ObjectSetInteger(0,"HT",OBJPROP_COLOR,clrBlue); ObjectSetInteger(0,"HT",OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(0,"HT",OBJPROP_RAY,true);
}

我不想删除这个对象并在每个新的价格变动时重新创建,我只想在图表上更新它。

因为您已经创建了您的对象,尝试再次创建它不会移动坐标。您需要使用 ObjectMove。试试下面的代码:

int highestCandle=iHighest(Symbol(),0,MODE_HIGH,500,0);
if(High[highestCandle]>High[5])
{
   ObjectCreate(0,"HT",OBJ_TREND,0,Time[highestCandle],High[highestCandle],Time[0],High[0]);
   ObjectSetInteger(0,"HT",OBJPROP_COLOR,clrBlue);
   ObjectSetInteger(0,"HT",OBJPROP_STYLE,STYLE_SOLID); 
   ObjectSetInteger(0,"HT",OBJPROP_RAY,true);
   ObjectMove("HT",0,Time[highestCandle],High[highestCandle]);
   ObjectMove("HT",1,Time[0],High[0]);
}