![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Hi Huckleberry (and other newbies)
I think the point you make about the way you like to learn is important. It seems to me that one problem is that different people have very different approaches to learning.
I have even come across quite a few people in my time who say that they cannot learn from books and need personal teaching or mentoring.
While thinking about what and how to write and the best way in general to teach someone new to programming how to program in MetaTrader, I stumbled across a series of 5 articles in this forum about programming in MQL4 for beginners. You can find them by doing a search on "MQL Language For Newbies". They are translated from Russian, which makes the language a bit strange in places, but they don’t look too bad at a quick glance.
I would be interested in your’s or anyone else's opinion about this series of articles - Their strengths and their weaknesses.
Does something like this do the job for you? There seems to be no point in reinventing the wheel.
From my own experience, I occasionally come across a technical book that really "talks to me" while many others do not. I think that this is more about stumbling upon a book that connects with my learning style and current level of interest and knowledge rather than disparaging the authors of all the other books. I must say though, that in my experience, not all books on a given subject are equal.
Regards
Tim
Hello TSWilson (and all others)
Yes. You hit that right on the head. Each person has their own way of learning. Thank you for taking charge. Your advise for me to read certain threads, is well taken. I'll get back with you later as to the impact the threads had on me. I'm a reader, but I prefer trial and error. I want my hands on the project. Then sit back and investigate as to what just happened. Where did I go wrong, more so than, what went right. Let's make it better next time with a tweak here and there. My problem is keeping the project organized. I've got projects all over my garage. LOL. Just ask my wife.
Have a good evening.
Regards
Huckleberry
My problem is keeping the project organized. I've got projects all over my garage. LOL. Just ask my wife.
For what its worth, here's how I organize myself with regard to EA projects.
- Name your files in a scalable manner - ie. the filename should identify the EA (strategy), the major release and the minor version
- Create an EA Projects umbrella folder under which you should create a) a folder for each separate EA (strategy) and b) a Version Control spreadsheet (see below)
- Under each EA (strategy) folder, have a) a EA Source folder, b) an EA Object folder and c) a Data Dictionary spreadsheet (see below)
- Under the EA Source folder, have each version of the mq4 file for that EA (strategy), sorted so that they're in major release/minor version order
- Under the EA Object folder, have a folder for each version of that EA strategy named <EA name Major Minor> Kits, sorted so that they're in major release/minor version order
- In each Kits folder have the corresponding version of the ex4 file, along with a txt file of Release Notes (see below)
Version Control Spreadsheet:
Columns - Name, Strategy Description, Variants, Version Number, Bug Fixes, Improvements, Known Issues/Limitations
Rows - Each new EA (strategy) will update all columns
Each new version of the same EA (strategy) will update the Version Number, Bug Fixes, Improvements, Known Issues/Limitations columns
Data Dictionary Spreadsheet:
Columns - Construct, Type, Object Name, Default/Parameters, Range/Returns, Purpose, Accessed By
Rows - Either a variable or a function
Example for Variable:
Construct - Extern
Type - Int
Object Name - MyInteger
Default/Parameters - 0
Range/Returns 0-9
Purpose - A counter
Accessed By - init(), start(), fnMyFunction()
Example for Function:
Construct - Function
Type - Bool
Object Name - MyFunction()
Default/Parameters - int - number of open orders
Range/Returns - 0/1
Purpose - takes input of the number of open orders and returns 0 if none exist or 1 if some exist for current symbol
Accessed By - start()
Release Notes:
Include Name, Author, Release Date, Improvements, Bug Fixes, Known Issues/Limitations, User Instructions
Hope this helps.
CB
For what its worth, here's how I organize myself with regard to EA projects.
- Name your files in a scalable manner - ie. the filename should identify the EA (strategy), the major release and the minor version
- Create an EA Projects umbrella folder under which you should create a) a folder for each separate EA (strategy) and b) a Version Control spreadsheet (see below)
- Under each EA (strategy) folder, have a) a EA Source folder, b) an EA Object folder and c) a Data Dictionary spreadsheet (see below)
- Under the EA Source folder, have each version of the mq4 file for that EA (strategy), sorted so that they're in major release/minor version order
- Under the EA Object folder, have a folder for each version of that EA strategy named <EA name Major Minor> Kits, sorted so that they're in major release/minor version order
- In each Kits folder have the corresponding version of the ex4 file, along with a txt file of Release Notes (see below)
Version Control Spreadsheet:
Columns - Name, Strategy Description, Variants, Version Number, Bug Fixes, Improvements, Known Issues/Limitations
Rows - Each new EA (strategy) will update all columns
Each new version of the same EA (strategy) will update the Version Number, Bug Fixes, Improvements, Known Issues/Limitations columns
Data Dictionary Spreadsheet:
Columns - Construct, Type, Object Name, Default/Parameters, Range/Returns, Purpose, Accessed By
Rows - Either a variable or a function
Example for Variable:
Construct - Extern
Type - Int
Object Name - MyInteger
Default/Parameters - 0
Range/Returns 0-9
Purpose - A counter
Accessed By - init(), start(), fnMyFunction()
Example for Function:
Construct - Function
Type - Bool
Object Name - MyFunction()
Default/Parameters - int - number of open orders
Range/Returns - 0/1
Purpose - takes input of the number of open orders and returns 0 if none exist or 1 if some exist for current symbol
Accessed By - start()
Release Notes:
Include Name, Author, Release Date, Improvements, Bug Fixes, Known Issues/Limitations, User Instructions
Hope this helps.
CB
Hello CB
Thanksfor taking the time to help organized the projects that will take place. As I mentioned earlier in this thread, I'll just did to understand the jargon that you have mentioned. The site is getting more familiar to me and will have specific questions soon, again to understand the jargon. With your info, and the help I have recieved from Niko, and TSWilson, I've got a good launch pad.
Good Trading
Huckleberry