Is there a way to have bots use cTrader's current "user time" programmatically without parameters?
            Is there a way to have bots use cTrader's current "user time" programmatically without parameters?
            
                 24 May 2023, 04:44
            
                    
Hi everyone:
Is there a way in bots and indicators to use cTrader's specified timezone that's set at the bottom of the application?

I have code based on specific times that people around the world use.
I don't want to have to keep setting the TimeZone directive in bots. Eg:
[Robot(TimeZone = TimeZones.xxx
and I don't want to have to implement a TimeZone or UTC offset parameter, and was hoping for something easy like:
Time.UserTime
that would return what the user has the chart set to:

Any ideas?
Thank you.
Replies
                     firemyst
                     24 May 2023, 09:14
                                    
RE:
PanagiotisChar said:
Hi firemyst,
Unfortunately this info is not available through the API.
Need help? Join us on Telegram
Need premium support? Trade with us
Thank you for the confirmation @PanagiotisChar . That's a bummer, but oh well... at least I didn't overlook something that's stupidly simple :-)
@firemyst
                     pick
                     24 May 2023, 11:54
                                    
I don't believe you can set the default for the indicator, but you can access the users current offset:
protected override void Initialize()
{
	TimeSpan t = this.Application.UserTimeOffset;
	Print("User time offset = " + t.TotalHours);
	this.Application.UserTimeOffsetChanged += Application_UserTimeOffsetChanged;
}
private void Application_UserTimeOffsetChanged(UserTimeOffsetChangedEventArgs obj)
{
	TimeSpan t = this.Application.UserTimeOffset;
	Print("User time offset changed = " + t.TotalHours);
}
From there, it's easy to just combine the utc time with the offset for user time.
@pick
                     firemyst
                     24 May 2023, 16:06
                                    
RE:
pick said:
I don't believe you can set the default for the indicator, but you can access the users current offset:
protected override void Initialize() { TimeSpan t = this.Application.UserTimeOffset; Print("User time offset = " + t.TotalHours); this.Application.UserTimeOffsetChanged += Application_UserTimeOffsetChanged; } private void Application_UserTimeOffsetChanged(UserTimeOffsetChangedEventArgs obj) { TimeSpan t = this.Application.UserTimeOffset; Print("User time offset changed = " + t.TotalHours); }From there, it's easy to just combine the utc time with the offset for user time.
Thank you for this. Appreciate your time! I'll give it a try. :-)
@firemyst

PanagiotisChar
24 May 2023, 08:58
Hi firemyst,
Unfortunately this info is not available through the API.
Aieden Technologies
Need help? Join us on Telegram
Need premium support? Trade with us
@PanagiotisChar