dynamic lotsize calculation mql5 , mt5
//+------------------------------------------------------------------+
//| test dynamic posiion.mq5 |
//| Copyright 2023, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Trade\Trade.mqh>
CTrade trade;
#property copyright "Copyright 2023, MetaQuotes Ltd."
#property link "https://www.mql5.com"
#property version "1.00"
double balance,lotsize,ask;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
}
//+------------------------------------------------------------------+
double callots(double risk, double sl_val)
{
double ticksize=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE);
double tickval=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE);
double lotstep = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);
if (ticksize==0||tickval==0||lotstep==0){ return 0}
double riskmoney=AccountInfoDouble(ACCOUNT_BALANCE)*risk/100;
double moneyperlot= (sl_val/ticksize)*tickval* lotstep ;
double lots = MathFloor(riskmoney/moneyperlot ) * lotstep;
return lots;
}
Comments
Post a Comment