Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

eros1973ms

Dynamic Text Box

Recommended Posts

I am new in this forum, hope to contribute and learn here.

 

I am dealing with plotting a text on the chart at a fixed position (i.e. upper left corner), based on date/time/price visible on the chart. I am using getappinfo, with aiLeftDispDateTime and aiHighestDispValue, but only the last one works with text_new and set_textlocation. Basically I cant understand how to pass date&time info to text_new separatly as date and time. Any clue? thanks a lot

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

aiLeftDispDateTime = Identifies date and time of the first (leftmost) bar displayed on the chart. Returns a DateTime(double) value when called from a chart otherwise returns 0.

 

Here is some simple code that displays the output on the chart. I suggest that you separate out things into small sections of code that you can get to work, with some way of seeing what the output is. This indicator shows what the output of the code is in the upper right hand corner of the screen. In the upper right hand corner, it shows the date and time of the first bar on the chart.

 

var: DateString(" ");

Once 
begin  
Value1 = Text_New( D, T, getappinfo(aiHighestDispValue), "  Begin" );
end;

DateString = DateTimeToString(getappinfo(aiLeftDispDateTime));

Text_SetString(Value1, DateString);
Text_SetLocation(Value1, D, T, getappinfo(aiHighestDispValue) - 0.5);
Text_SetStyle(Value1, 0, 2);

Share this post


Link to post
Share on other sites

// dynamically adjusts text to upper left corner of chart

 

var: id(text_new(d,t,c,"hello world")), x(text_setstyle(id,0,0)),

intrabarpersist xd(0), intrabarpersist xt(0), intrabarpersist xp(0);

 

xd=juliantodate(intPortion(getappinfo(aiLeftDispDateTime)));

xt=minutesToTime(fracportion(getappinfo(aiLeftDispDateTime))*24*60);

xp=getappinfo(aiHighestDispValue);

text_setlocation(id,xd,xt,xp);

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.