///+------------------------------------------------------------------+ //| Library_Pionex.mq5 | //| Copyright 2024, Rajesh Kumar Nait | //| https://www.mql5.com/en/users/rajeshnait/seller | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, Rajesh Kumar Nait" #property link "https://www.mql5.com/en/users/rajeshnait/seller" #property version "1.00" #property description "Uncomment code as required" #include <JAson.mqh> // search on codebase JAson.mqh and add file in your include folder CJAVal jv(NULL, jtUNDEF); struct PionexConfig { string api_url; string api_key; string api_secret; string api_suffix; string symbol_prefix; bool debug; }; //#import "..\Libraries\Library_Pionex.ex5" //MODIFY AND CHECK #import "..\Scripts\Market\Library_Pionex.ex5" //MODIFY AND CHECK void Pionex_Init(PionexConfig &config); //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ string Get_Balance(); string orderLimit(string symbol, string side, double size, double price); string orderMarket(string symbol, string side, double size, double amount); string Get_Order(string orderId); string Get_All_Order(string symbol); string Get_Fills_By_Order_Id(string orderId); string Get_Fills(string symbol); string Get_OpenOrder(string symbol); string Cancel_Order(string symbol, string orderId); string Cancel_All_Order(string symbol); #import //+------------------------------------------------------------------+ //| Config Futures | //+------------------------------------------------------------------+ bool Pionex_debug = true; // Debug will print messages in expert tab for troubleshooting string Pionex_Key = ""; //Pionex Future's API key string Pionex_Secret = ""; //Pionex Future's API secret string Pionex_URL = "https://api.pionex.com"; string Pionex_suffix = "/api/v1/"; // API Suffix (Do not edit) string Pionex_SymbolPrefix = "pi_"; //Symbol Prefix for Futures //Init API PionexConfig config; //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnStart() { //--- config.api_url = Pionex_URL; config.api_key = Pionex_Key; config.api_secret = Pionex_Secret; config.api_suffix = Pionex_suffix; config.symbol_prefix = Pionex_SymbolPrefix; config.debug = Pionex_debug; Pionex_Init(config); //Add your codes here //+------------------------------------------------------------------+ //| Get Balance | //+------------------------------------------------------------------+ string s = Get_Balance(); jv.Deserialize(s); Print(s); string a = jv["data"]["balances"][0]["coin"].ToStr(); Print("Coin ", a); //+------------------------------------------------------------------+ //| LIMIT ORDERS | //+------------------------------------------------------------------+ ////symbol , side, size, price //string s = orderLimit(GetSymbol(),"BUY",0.000002,81000.00); //jv.Deserialize(s); //Print(s); //+------------------------------------------------------------------+ //| MARKET ORDERS | //+------------------------------------------------------------------+ //// symbol , side, size, amount //string s = orderMarket(GetSymbol(),"BUY",0.000002,81000.00); //jv.Deserialize(s); //Print(s); //+------------------------------------------------------------------+ //| CANCEL ORDERS | //+------------------------------------------------------------------+ // string s = Cancel_Order(GetSymbol(),"123456789"); // jv.Deserialize(s); // Print(s); // // string s = Cancel_All_Order(GetSymbol()); // jv.Deserialize(s); // Print(s); //+------------------------------------------------------------------+ //| ACCOUNT INFO | //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| QUERY ORDERS | //+------------------------------------------------------------------+ // string s = Get_Order("123456789"); // jv.Deserialize(s); // Print(s); // // string s = Get_All_Order(GetSymbol()); // jv.Deserialize(s); // Print(s); // // string s = Get_OpenOrder(GetSymbol()); // jv.Deserialize(s); // Print(s); //+------------------------------------------------------------------+ //| POSITION INFO | //+------------------------------------------------------------------+ //// order id // string s = Get_Fills_By_Order_Id("123456789"); // jv.Deserialize(s); // Print(s); // //// symbol // string s = Get_Fills(GetSymbol()); // jv.Deserialize(s); // Print(s); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ string GetSymbol() { string sym = _Symbol; string prefix = "pi_"; // Change as required int length = StringLen(prefix); // Automatically detect prefix length // Check if the symbol has the prefix if (StringSubstr(sym, 0, length) == prefix) { string resultString = StringSubstr(sym, length); Print("Result String: ", resultString); return resultString; } return sym; } //+------------------------------------------------------------------+