Help with custom Lots

 

Hello, im new with MQL5 and im still learning to make EA, i need help with the following:

#include <Trade/Trade.mqh>
CTrade m_trade;

input int InpOpenPositions  = 0;           // Open position ("0" -> BUY, "1" -> SELL)
input int TakeProfit = 60;
input int StopLoss = 20;

int OnInit()
  {
//--- set MagicNumber for your POSITIONS identification
   m_trade.SetExpertMagicNumber(881688);
//--- margin mode
   m_trade.SetMarginMode();
//--- filling mode, the mode allowed by the server should be used
   m_trade.SetTypeFillingBySymbol(Symbol());
//--- set available slippage in points when buying/selling
   m_trade.SetDeviationInPoints(30);
//--- logging mode: it would be better not to declare this method at all, the class will set the best mode on its own
   m_trade.LogLevel(LOG_LEVEL_ALL);
//--- SetAsyncMode(true) can only be used by professionals
//trade.SetAsyncMode(true); //--- what function is to be used for trading: true - OrderSendAsync(), false - OrderSend()
   if(InpOpenPositions==0)
     {
      VexBuy();
     }
   if(InpOpenPositions==1)
     {
      VexSell();
     }

   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
  
  }
void OnTick()
  {

  }
//+------------------------------------------------------------------+
//| Open Buy                                                         |
//+------------------------------------------------------------------+
bool VexBuy()
  {
   Alert("Vex is Buying");

   MqlTick tick;
   if(!SymbolInfoTick(Symbol(),tick))
     {
      Alert(__FUNCTION__,", ERROR SymbolInfoTick");
      return(false);
     }

   double TakeProfitLevel=NormalizePrice(tick.ask+TakeProfit*Point());   // Take Profit value defined
   double StopLossLevel=NormalizePrice(tick.ask-StopLoss*Point()); // Stop loss value defined
   if(TakeProfitLevel==0.0 || StopLossLevel==0.0)
      return(false);

   if(!m_trade.Buy(0.1,Symbol(),tick.ask,StopLossLevel,TakeProfitLevel))
     {
      //--- failure message
      Print("Buy() method failed. Return code=",m_trade.ResultRetcode(),
            ". Code description: ",m_trade.ResultRetcodeDescription());
      return(false);
     }
   else
     {
      Print("Buy() method executed successfully. Return code=",m_trade.ResultRetcode(),
            " (",m_trade.ResultRetcodeDescription(),")");
      return(true);
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+
//| Open Sell                                                        |
//+------------------------------------------------------------------+
bool VexSell()
  {
   Alert("Vex is Selling");
 
   MqlTick tick;
   if(!SymbolInfoTick(Symbol(),tick))
     {
      Alert(__FUNCTION__,", ERROR SymbolInfoTick");
      return(false);
     }

   double TakeProfitLevel=NormalizePrice(tick.bid-TakeProfit*Point());   // Take Profit value defined
   double StopLossLevel=NormalizePrice(tick.bid+StopLoss*Point()); // Stop loss value defined
   if(TakeProfitLevel==0.0 || StopLossLevel==0.0)
      return(false);

   if(!m_trade.Sell(0.1,Symbol(),tick.bid,StopLossLevel,TakeProfitLevel))
     {
      //--- failure message
      Print("Sell() method failed. Return code=",m_trade.ResultRetcode(),
            ". Code description: ",m_trade.ResultRetcodeDescription());
      return(false);
     }
   else
     {
      Print("Sell() method executed successfully. Return code=",m_trade.ResultRetcode(),
            " (",m_trade.ResultRetcodeDescription(),")");
      return(true);
     }
//---
   return(true);
  }
//+------------------------------------------------------------------+
//| Normalize price                                                  |
//+------------------------------------------------------------------+
double NormalizePrice(const double price)
  {
   double   m_tick_size=0.0;     // symbol tick size
   int      m_digits;            // symbol digits
//--- preparation
   long tmp=0;
//---
   if(!SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE,m_tick_size))
      return(0.0);
   if(!SymbolInfoInteger(Symbol(),SYMBOL_DIGITS,tmp))
      return(0.0);
   m_digits=(int)tmp;
//---
   if(m_tick_size!=0)
      return(NormalizeDouble(MathRound(price/m_tick_size)*m_tick_size,m_digits));
//---
   return(NormalizeDouble(price,m_digits));
  }
//+------------------------------------------------------------------+


i want to make it so i can make the Lots/Volume customizable in the input menu later like the StopLoss and TakeProfit one, i cant figure out how.
Any help is appreciated Thank you.