I clarify a little what I mean with "only aiHighestDispValue works".
Code:
vars:
IntrabarPersist date_1(0),
IntrabarPersist time_1(0),
IntrabarPersist price_1(0);
date_1 = getappinfo(aiLeftDispDateTime);
time_1 = getappinfo(aiLeftDispDateTime);
price_1 = getappinfo(aiHighestDispValue)-offset_points*2;
if symbol = "GS:EUR A0-FX" and (time_1<>time_1[1] or price_1<>price_1[1]) then
print(
symbol,
"data-> ",
StringToDate(DateTimeToString(getappinfo(aiLeftDispDateTime))),
"string data->",
datetostring(StringToDate(DateTimeToString(getappinfo(aiLeftDispDateTime)))),
"ora-> ",
StringTotime(DateTimeToString(getappinfo(aiLeftDispDateTime)))," ",
"string time->",
timetostring(StringTotime(DateTimeToString(getappinfo(aiLeftDispDateTime)))), " ",
getappinfo(aiHighestDispValue):0:4,
setup_count_buy," ",
setup_count_sell,
" ",
getappinfo(aiLeftDispDateTime)
);
if date_1<>date_1[1] or time_1>time_1[1] or price_1<>price_1[1] then
begin
id_3=text_new(
date_1,
time_1,
price_1,
"test test test test"
);
value2=text_setlocation(id_3, date_1, time_1, price_1);
end;
I inserted also the print command to verify that the calculated values are the one desired, and I can confirm this.
But what I get from text_new is the text is plotted at the correct price level [getappinfo(aiHighestDispValue)-offset_points*2] but at the wrong date/time combination (the text is actually positioned on the first bar of the entire series, not on the first bar displayed).
I have also tried converting the date&time to string and then back to value, but it makes no difference:
date_1 = StringToDate(DateTimeToString(getappinfo(aiLeftDispDateTime)));
time_1 = StringTotime(DateTimeToString(getappinfo(aiLeftDispDateTime)));
thanks