Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Советники

Basic Money Management code - эксперт для MetaTrader 5

Просмотров:
1321
Рейтинг:
(10)
Опубликован:
2021.02.24 07:37
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Description


The presented script represents the main tools for money and risk management when trading an advisor.
The presented code allows:

  • Dynamically change position volume relative to balance
  • Set the minimum and maximum position volume
  • Use whole volumes (for example, for trading stocks where only whole volumes are allowed)
  • Compulsory close ( Margin Call ) all positions upon reaching a certain percentage drawdown relative to the initial account
  • Create a ban on opening long positions
  • Create a ban on opening short positions

I recommend dynamically changing the used volume and handling forced closing of a position in the OnTick () method.


Volume control


By default, the volume is calculated using the formula: Volume = MathFloor (Balance / InpCoefficient) * InpVolumeStep
where, MathFloor - Round the value down (to the nearest integer)
If the maximum allowable (InpInpMaximumVolume) or minimum allowable (InpMinimumVolume) is exceeded, then the volume is set in accordance with the limit specified in the settings.

If the calculated volume exceeds the required collateral, then the volume will be recalculated in accordance with the admissible level of collateral for the position, the code implementation is presented below.

 //--- 
   if ( SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_LIQUIDITY_RATE ) * Volume > Balance)
     {
      Volume = MathFloor (Balance/( SymbolInfoDouble ( _Symbol , SYMBOL_TRADE_LIQUIDITY_RATE ) * Volume)) * InpVolumeStep;
       if (InpUseIntegerVolume)
      {
         Volume = MathFloor (Volume);
      }
       if (Volume < InpMinimumVolume)
      {
         Print ( "" );
         Print ( "Error!" );
         Print ( "Used unavailable volume: " ,Volume);
         Print ( "Minimum volume is: " ,InpMinimumVolume);
         Print ( "" );
         Volume = 0 ;
      }
     }
 //---


Using restrictions on opening long or short positions


When you enable the prohibition on the use of long or short positions ( InpUseLong , InpUseShort ), use the following insert when opening a position:

 // use InpUseLong example
       if (InpUseLong)
      {
         OpenOrder( "long" );
      }
       else
      {
         Print ( "" );
         Print ( "Error!" );
         Print ( "Expert have no access for open Long position" );
         Print ( "" );
      }
      
// use InpUseLong example
       if (InpUseShort)
      {
         OpenOrder( "short" );
      }
       else
      {
         Print ( "" );
         Print ( "Error!" );
         Print ( "Expert have no access for open Short position" );
         Print ( "" );
      }

    The OpenOrder and CloseOrder methods are provided as examples. They are described at the end of the file.
    For the OpenOrder method, you must write a condition that prohibits opening a position after the forced closing of a position, as shown in the following insert:

     //+------------------------------------------------------------------+
     //|  Empty OpenOrder method                                          |
     //+------------------------------------------------------------------+
     void OpenOrder( string type)
    {
       if (CanOpenOrder)
       {
           // some code for open position 
       }
    }


    WPR Custom Smoothing WPR Custom Smoothing

    Индикатор iWPR (Williams’ Percent Range, WPR) сглаженный при помощи iMA (Moving Average, MA)

    ZigZag RSI ZigZag RSI

    ZigZag Rsi построен на базе осциллятора RSI.

    Three information charts MA Three information charts MA

    Информационный индикатор: выводит три графики (M5, H1 и D1) и на каждом два пользовательских индикатора 'Custom Moving Average Inputs'

    Elder iForce Strategy Pending 2 Elder iForce Strategy Pending 2

    На основе стратегии А. Элдера. Используются пользовательские индикаторы MA Color N Bars и Force Color