Join our fan page
- Views:
- 43840
- Rating:
- Published:
- 2014.02.24 06:27
- Updated:
- 2016.11.22 07:32
-
Need a robot or indicator based on this code? Order it on Freelance Go to Freelance
Author:
Andrew Lord
This parses mql4 strings that contain JSON code. It creates a JSONValue that can be used to retrieve the fields within the JSON structure. It also provides a JSONIterator class to loop over object keys.
It parses the JSON using a simple a recursive descent parser. It requires the Hash class.
I still have to implement the parsing of unicode escaped characters.
The Codebase version might not be the most recent. The latest version can be found here.
Documentation:
Example:
#include "hash.mqh" #include "json.mqh" string s = "{ \"firstName\": \"John\", \"lastName\": \"Smith\", \"age\": 25, "+ "\"address\": { \"streetAddress\": \"21 2nd Street\", \"city\": \"New York\", \"state\": \"NY\", \"postalCode\": \"10021\" },"+ " \"phoneNumber\": [ { \"type\": \"home\", \"number\": \"212 555-1234\" }, { \"type\": \"fax\", \"number\": \"646 555-4567\" } ],"+ " \"gender\":{ \"type\":\"male\" } }"; JSONParser *parser = new JSONParser(); JSONValue *jv = parser.parse(s); if (jv == NULL) { Print("error:"+(string)parser.getErrorCode()+parser.getErrorMessage()); } else { Print("PARSED:"+jv.toString()); if (jv.isObject()) { // check root value is an object. (it can be an array) JSONObject *jo = jv; // Direct access - will throw null pointer if wrong getter used. Print("firstName:" + jo.getString("firstName")); Print("city:" + jo.getObject("address").getString("city")); Print("phone:" + jo.getArray("phoneNumber").getObject(0).getString("number")); // Safe access in case JSON data is missing or different. if (jo.getString("firstName",s) ) Print("firstName = "+s); // Loop over object keys JSONIterator *it = new JSONIterator(jo); for( ; it.hasNext() ; it.next()) { Print("loop:"+it.key()+" = "+it.val().toString()); } delete it; } delete jv; } delete parser;The latest version can also be found here.

This Expert Advisor is based on your human ability to predict medium and long term trends.

It opens and close transactions depends on MACD vs signal line - upper - opens buy, closes sell, below - closes buy, opens sell.

This is my first Expert Advisor so please give feedback on how I can improve it to make the best possible EA. Thanks for the inputs in advance and happy trading.

Scan for conditions in which you have an interest. Show where the condition arose historically on the current Symbol and timeframe. On a separate panel, show where the condition has currently arisen for any of your chosen symbols and timeframes.