keep EasyLanguage files in sync between different computers

Questions about MultiCharts and user contributed studies.
FutureTrader
Posts: 79
Joined: 28 Mar 2013
Has thanked: 3 times
Been thanked: 4 times
Contact:

keep EasyLanguage files in sync between different computers

Postby FutureTrader » 24 Feb 2015

If you're running multiple Multicharts or TS instances, how do you keep your EasyLanguage files in sync?

I have 3 computers running with MC and TS. I know I can export a eld file and import it in the other instances, but this brings problems with consistency...
I've setup a git repository where I put all my functions/indicators/strategies in as simple text files. No comes the problem, how can I import simple text files into PowerLanguage, so the import will overwrite the existing files or create new files.

Is there a possibility to convert text files into eld/pla files?
Is there a third party editor for eld files?
I'd like to code in a more professional editor (intellij, eclipse ...) but I'm struggling to get code out of MC/TS and get it back into it. Any ideas would be very welcome!

User avatar
TJ
Posts: 7238
Joined: 29 Aug 2006
Location: Global Citizen
Has thanked: 991 times
Been thanked: 2058 times

Re: keep EasyLanguage files in sync between different comput

Postby TJ » 24 Feb 2015

If you're running multiple Multicharts or TS instances, how do you keep your EasyLanguage files in sync?

I have 3 computers running with MC and TS. I know I can export a eld file and import it in the other instances, but this brings problems with consistency...
I've setup a git repository where I put all my functions/indicators/strategies in as simple text files. No comes the problem, how can I import simple text files into PowerLanguage, so the import will overwrite the existing files or create new files.

Is there a possibility to convert text files into eld/pla files?
Is there a third party editor for eld files?
I'd like to code in a more professional editor (intellij, eclipse ...) but I'm struggling to get code out of MC/TS and get it back into it. Any ideas would be very welcome!
How many indicators you are talking about? Just one or two? or hundreds?

FutureTrader
Posts: 79
Joined: 28 Mar 2013
Has thanked: 3 times
Been thanked: 4 times
Contact:

Re: keep EasyLanguage files in sync between different comput

Postby FutureTrader » 24 Feb 2015

How many indicators you are talking about? Just one or two? or hundreds?
> 300

User avatar
TJ
Posts: 7238
Joined: 29 Aug 2006
Location: Global Citizen
Has thanked: 991 times
Been thanked: 2058 times

Re: keep EasyLanguage files in sync between different comput

Postby TJ » 24 Feb 2015

::
I have 3 computers running with MC and TS. I know I can export a eld file and import it in the other instances, but this brings problems with consistency...
::
What do you mean by "problems with consistency"?

FutureTrader
Posts: 79
Joined: 28 Mar 2013
Has thanked: 3 times
Been thanked: 4 times
Contact:

Re: keep EasyLanguage files in sync between different comput

Postby FutureTrader » 24 Feb 2015

::
I have 3 computers running with MC and TS. I know I can export a eld file and import it in the other instances, but this brings problems with consistency...
::
What do you mean by "problems with consistency"?
If you have one main computer where you make all your changes and send it to the other system you should be fine.
But what if you're changing code in computer1 and computer2 and not instantly copying those changes to the other systems, you're getting inconsistencies. Once forgot to copy the changes over you're already lost.

User avatar
TJ
Posts: 7238
Joined: 29 Aug 2006
Location: Global Citizen
Has thanked: 991 times
Been thanked: 2058 times

Re: keep EasyLanguage files in sync between different comput

Postby TJ » 24 Feb 2015

::
I have 3 computers running with MC and TS. I know I can export a eld file and import it in the other instances, but this brings problems with consistency...
::
What do you mean by "problems with consistency"?
If you have one main computer where you make all your changes and send it to the other system you should be fine.
But what if you're changing code in computer1 and computer2 and not instantly copying those changes to the other systems, you're getting inconsistencies. Once forgot to copy the changes over you're already lost.
There is no solution for such operations... Not in any types of single user software; whether it be wordprocessing or Photo editing, or whatever. If you have 2 copies of a software opened, they work independently of each other.

You have to make up your mind which computer is the Development Machine and which computer is the Production Machine. You cannot have it both ways. Not only the computer will be confused, you will be too.


ps. to be able to do real-time cross update, you will need a software that is designed from the ground up as a Multi-user Client-Server software.

FutureTrader
Posts: 79
Joined: 28 Mar 2013
Has thanked: 3 times
Been thanked: 4 times
Contact:

Re: keep EasyLanguage files in sync between different comput

Postby FutureTrader » 24 Feb 2015

There is no solution for such operations... Not in any types of single user software; whether it be wordprocessing or Photo editing, or whatever. If you have 2 copies of a software opened, they work independently of each other.

ps. to be able to do real-time cross update, you will need a software that is designed from the ground up as a Multi-user Client-Server software.
actually it's pretty simple to achieve this.
as programming source code is not binary, you can use any file revision control system. I'm using git for my other programming stuff and either single or multi user environment we have no problem sharing our stuff across multiple platforms.

I've read that MC .NET saves the function/indicator in a readable file. So you can put a file revision control system on it. I'd would be nice to have similiar things for MC, too.


As my main questions aren't answered here again:
  • Is there a possibility to convert text files into eld/pla files?
    Is there a third party editor for eld files?

evdl
Posts: 401
Joined: 19 Jan 2011
Location: Netherlands
Has thanked: 85 times
Been thanked: 123 times

Re: keep EasyLanguage files in sync between different comput

Postby evdl » 24 Feb 2015

The indicators, signals etc. of MC are saved as readable files in the directory:

C:\ProgramData\TS Support\MultiCharts64\StudyServer\Studies\SrcEl

There are called *.el but you can open them with wordpad for example and you will get readable textfiles.

I don't know if any changes made in these files will cause the indicator to stop working. And also the filename that is used could be a problem to sync. But you can give it a try.

User avatar
TJ
Posts: 7238
Joined: 29 Aug 2006
Location: Global Citizen
Has thanked: 991 times
Been thanked: 2058 times

Re: keep EasyLanguage files in sync between different comput

Postby TJ » 24 Feb 2015

There is no solution for such operations... Not in any types of single user software; whether it be wordprocessing or Photo editing, or whatever. If you have 2 copies of a software opened, they work independently of each other.

ps. to be able to do real-time cross update, you will need a software that is designed from the ground up as a Multi-user Client-Server software.
actually it's pretty simple to achieve this.
as programming source code is not binary, you can use any file revision control system. I'm using git for my other programming stuff and either single or multi user environment we have no problem sharing our stuff across multiple platforms.

I've read that MC .NET saves the function/indicator in a readable file. So you can put a file revision control system on it. I'd would be nice to have similiar things for MC, too.


As my main questions aren't answered here again:
  • Is there a possibility to convert text files into eld/pla files?
    Is there a third party editor for eld files?
it is ok to share files, but it is not the same as updating an indicator in real time that is in use.

The pla is the portable indicator file. When it is imported into MultiCharts, it is compiled into a DLL.

In another word, when you apply an indicator to your chart, you are not apply a pla, you are actually linking a DLL.


This is a technical question, I think you have to contact tech support directly to get the answer you need. Please do share with us the answer.

User avatar
furytrader
Posts: 353
Joined: 30 Jul 2010
Location: Chicago, IL
Has thanked: 155 times
Been thanked: 217 times

Re: keep EasyLanguage files in sync between different comput

Postby furytrader » 25 Feb 2015

One important issue to consider, as TJ mentioned, is that there's a difference between the source code and a compiled file. Do you want to sync your compiled code or just the plaintext files?

User avatar
fbertram
Posts: 166
Joined: 16 Oct 2014
Location: Seattle, USA
Has thanked: 36 times
Been thanked: 73 times
Contact:

Re: keep EasyLanguage files in sync between different comput

Postby fbertram » 26 Feb 2015

I have basically the complete MultiCharts folder in ProgramData imported into a git repository. An extensive gitignore makes sure that I only track the important files. I use two machines, one for development and one for trading. I am only using the master branch for trading. Editing on both machines simultaneously is not too much of a problem with git.

Now to mention the problems:
* the MultiCharts editor does not detect when a file is changed externally while open. Workaround is to have no source files open, when pulling from git.
* MultiCharts does not properly check the dependencies (the dates of the source files against the dates of compiled studies). Workaround is to pull changes from git, open the file in the editor, touch it and the re-compile.
* MultiCharts does not understand that a new source file probably results in a new study. This is a problem, when adding new files on one computer. Workaround: create a study with the same name on the other machine. Close editor, pull from git, open in editor, touch compile.

Here is a wide fields of possible improvements for MultiCharts. Supporting a revision control system is a hard requirement for any series software development...

Cheers, Felix

User avatar
JoshM
Posts: 2099
Joined: 20 May 2011
Location: The Netherlands
Has thanked: 1526 times
Been thanked: 1503 times
Contact:

Re: keep EasyLanguage files in sync between different comput

Postby JoshM » 26 Feb 2015

This PM issue might be worth tracking/voting for in this context:

MC-255 - Implement SVN (or other versioning system) Integration on PowerLanguage Editor

It would be quite helpful (also when someone always works on one computer) to have the PowerLanguage Editor work with git.

FutureTrader
Posts: 79
Joined: 28 Mar 2013
Has thanked: 3 times
Been thanked: 4 times
Contact:

Re: keep EasyLanguage files in sync between different comput

Postby FutureTrader » 03 Mar 2015

An extensive gitignore makes sure that I only track the important files.
Could you share your .gitignore that would be great!

User avatar
fbertram
Posts: 166
Joined: 16 Oct 2014
Location: Seattle, USA
Has thanked: 36 times
Been thanked: 73 times
Contact:

Re: keep EasyLanguage files in sync between different comput

Postby fbertram » 03 Mar 2015

Hi FutureTrader,

here is my .gitignore. I have replaced the leading period with an underscore.

Cheers, Felix
Attachments
_gitignore.zip
(6.53 KiB) Downloaded 111 times

User avatar
fbertram
Posts: 166
Joined: 16 Oct 2014
Location: Seattle, USA
Has thanked: 36 times
Been thanked: 73 times
Contact:

Re: keep EasyLanguage files in sync between different comput

Postby fbertram » 03 Mar 2015

BTW, I am using Atlassian's SourceTree as a client. Good tool, I really like the Git-Flow feature, it's commercially maintained and it's free (requires registration though).

Cheers, Felix


Return to “MultiCharts”