Introducing “TG Risk Service Manager” — your comprehensive toolkit for swift and precise risk management and lot size calculations in the dynamic world of trading. Designed to streamline development processes and enhance trading strategies, this indispensable library equips developers with essential tools for optimizing risk assessment and trade profitability.
Metatrader5 Version | All Products | Contact
Key Features:
Efficient Lot Size Calculation: Harness the power of precise lot size computation for optimal risk management. With “TG Risk Service Manager,” developers can effortlessly determine the appropriate lot size based on specified risk amounts and stop loss sizes, empowering them to execute strategies with confidence and precision.
Unified Interface: TG Trade Service Manager” provides a unified interface for MQL4 and MQL5, streamlining trade management processes across platforms.
Target Price Calculation: Seamlessly calculate target prices to achieve desired profit objectives. Whether aiming to attain a specific monetary goal with a given lot size or strategizing for profit targets, this feature equips developers with invaluable insights to guide their trading decisions effectively.
Averaging Strategies Optimization: Unlock the potential of averaging strategies with advanced computation capabilities. From computing averaging open prices for designated magic numbers or instruments to determining optimal averaging take profit levels for batch trades, “TG Risk Service Manager” empowers developers to maximize profitability and mitigate risks with ease.
Experience the efficiency, accuracy, and versatility of “TG Risk Service Manager” — your indispensable companion for mastering risk management and optimizing trading strategies in the competitive world of financial markets.
#import "TG_RiskServiceLib.ex4" double AveragingPriceForBatch(ENUM_ORDER_TYPE type, int profitPoints, int magicNumber, string symbol); double GetLotsBasedOnStopLossPrice(double stopLossPrice, double riskMoney, ENUM_ORDER_TYPE type, double entryPrice, string symbol); double GetLotsBasedOnStopLossPoints(int stopLossPoints, double riskMoney, ENUM_ORDER_TYPE type, double entryPrice, string symbol); double GetTargetPriceBasedOnLotsAndMoneyAmmount(double positionSize, double moneyAmmount, ENUM_ORDER_TYPE type, int targetType = 0, double entryPrice = 0, string symbol = NULL); double RunningProfitCash(int magicNumber = 0, string symbol = NULL, int type = -1, bool withTaxes = true); double RunningProfitBalancePercent(int magicNumber = 0, string symbol = NULL, int type = -1, bool withTaxes = true); double GetRiskMoneyFromPercentBalance(double riskPercent); double AveragingTakeProfitForBatch(ENUM_ORDER_TYPE type, int magicNumber, string symbol, int profitPoints = 0); #import
BEFORE USING YOU HAVE TO IMPORT THE LIBRARY LIKE MY EXAMPLE ABOVE
How to use Examples: const int TEST_MAGIC_NUMER = 123;
const string TEST_SYMBOL = "EURUSD";
const double TEST_RISK_MONEY_AMMOUNT = 100.0; //Value in Account Currency (USD/GBP/EUR)
//Returns the average open price of a transaction batch
double averagingPrice = AveragingPriceForBatch(
ORDER_TYPE_BUY,
TEST_MAGIC_NUMER,
TEST_SYMBOL
);
//GetLotsBasedOnStopLossPrice
//Option1 - DBL - GetLotsBasedOnStopLossPrice
double testEntryPrice = 1.00500;
double testStopLossPrice = 1.00100;
//Returns lotSize based on stop loss PRICE
double lotsPrice = GetLotsBasedOnStopLossPrice(
testStopLossPrice,
TEST_RISK_MONEY_AMMOUNT,
ORDER_TYPE_BUY,
testEntryPrice,
TEST_SYMBOL
);
// //GetLotsBasedOnStopLossPoints
// //Option1 - INT - GetLotsBasedOnStopLossPrice
//Returns lotSize based on stop loss size in POINTS
int stopLossPoints = 400;
double lotsPoints = GetLotsBasedOnStopLossPoints(
stopLossPoints,
TEST_RISK_MONEY_AMMOUNT,
ORDER_TYPE_BUY,
testEntryPrice,
TEST_SYMBOL
);
//Both methods return same lot if the parameters are the same
// in this case testEntryPrice(1.00500) - testStopLossPrice(1.00100) = stopLossPoints(400)
bool areEqual = (lotsPoints == lotsPrice) ? true : false;
// in this case returns 1/100 * Balance
double riskMoneyFromPercentBalance = GetRiskMoneyFromPercentBalance(1);
//returns the running profit as a percentage
//if Balance is 10.000USD and RunningProfit is -1000 then RunningProfitBalancePercent() will return 10.0 (%)
//this can be customized to work with magic number,symbol, orderType
double runningProfitBalancePercent = RunningProfitBalancePercent();
//returns the running profit as absolute value
//this can be customized to work with magic number,symbol, orderType
double runningProfitCash = RunningProfitCash();
//Computes the take profit for a batch of trades
//last parameter is "points" which specifies how many points should the batch be in profit
//in this example AveragingTakeProfitForBatch returns a price where the whole batch of transactions will be 100 points in profit
double averageTakeProfitbatch = AveragingTakeProfitForBatch(ORDER_TYPE_BUY, TEST_MAGIC_NUMER, TEST_SYMBOL, 100);