Как написать функцию при который советник увеличал лотность после постепенного роста депозита ?

 
Здравствуйте ,Как написать функцию при который советник увеличал лотность после постепенного роста депозита ?
 
за 987$ Вам любой во Фрилансе сделает
 
double lot = AccountBallance() /1000*Risk;

lot = NormalizeDouble (lot,2);

Примерно так. 

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Самообучение языку MQL5 с полного нуля

Alexey Viktorov, 2021.11.26 08:48

Очень надеюсь, что это писали не вы…

Вот рабочая функция

/********************************************************************\
|   Calculate optimal lot size     Расчет объема лота                |
/********************************************************************/
double contractSize(double Lot)
 {
  double volume = Lot > 0.0 ? Lot : AccountInfoDouble(ACCOUNT_MARGIN_FREE)/10000,
         v = volume,
         volumeStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP),
         minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN),
         maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);
  v = round(volume/volumeStep)*volumeStep;
  return(fmin(maxLot, fmax(minLot, v)));
 }/******************************************************************/

Достаточно только вписать размер риска, чтобы считать не от полной свободной маржи…

Можно размер свободной маржи заменить на баланс или еквити.
 
Alexey Viktorov #:
Можно размер свободной маржи заменить на баланс или еквити.
Спасибо вам
 

такой вот вопрос: А ЗАЧЕМ РАЗРАБОТЧИКИ ДАЮТ НЕВЕРНЫЕ ОТВЕТЫ ?

люди ведь с опытом и иначе как нехорошим умыслом такое не назовёшь

 
Sunnat Tilyakhodjaev:
Здравствуйте ,Как написать функцию при который советник увеличал лотность после постепенного роста депозита ?

вот неплохой способ https://www.mql5.com/ru/forum/107406#comment_3018721

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

что то типа такого 

//+------------------------------------------------------------------+
//|                                         Sunnat Tilyakhodjaev.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#include <Trade\Trade.mqh>
CTrade ExtTrade;

input double MaximumRisk         = 0.05;   // Maximum Risk in percentage
input int    DO_0                = 1000;   //
input double MaximumRisk1        = 0.1;    // Maximum Risk in percentage
input int    DO_1                = 2000;   //
input double MaximumRisk2        = 0.2;    // Maximum Risk in percentage
input int    DO_2                = 3000;   //
input double MaximumRisk3        = 0.3;    // Maximum Risk in percentage
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double TradeSizeOptimized(void)
  {
   double lot=MaximumRisk;
   double ab=AccountInfoDouble(ACCOUNT_EQUITY);
   if(ab>=DO_0 && ab<DO_1)
      lot=MaximumRisk1;
   if(ab>=DO_1 && ab<DO_2)
      lot=MaximumRisk2;
   if(ab>=DO_2)
      lot=MaximumRisk3;
//--- return trading volume
   return(lot);
  }
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlRates rt[2];
//--- go trading only for first ticks of new bar
   if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }
   if(rt[1].tick_volume>1)
      return;
//--- check signals
   ENUM_ORDER_TYPE signal=WRONG_VALUE;
   signal=ORDER_TYPE_SELL;    // sell conditions
//signal=ORDER_TYPE_BUY;  // buy conditions
   if(signal!=WRONG_VALUE)
     {
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && Bars(_Symbol,_Period)>100)
         ExtTrade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
     }
//---
  }
//+------------------------------------------------------------------+
Увеличение размера ЛОТА. ПОМОГИТЕ!!!
Увеличение размера ЛОТА. ПОМОГИТЕ!!!
  • 2008.03.07
  • www.mql5.com
Скажите, можно ли как то увеличить размер лота с каждой сделки....??? К примеру, у меня депозит 100, торгую с лотом 0.50. депозит 200, торую 1...
 
SanAlex #:

вот неплохой способ https://www.mql5.com/ru/forum/107406#comment_3018721

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

что то типа такого 

кто нить тут вообще робота поддерживал ??? или все сплошь продавцы, теоретики и баснописцы...

что чёрт подери происходит с системой в реальном времени по приведённому вами коде на границе 200+-eps ? про баланс даже не спрашиваю..

я ещё могу понять SanAlex/AlexSan/VK которые суть один - но прочие же якобы имели дело с практикой

 
Maxim Kuznetsov #:

кто нить тут вообще робота поддерживал ??? или все сплошь продавцы, теоретики и баснописцы...

что чёрт подери происходит с системой в реальном времени по приведённому вами коде на границе 200+-eps ? про баланс даже не спрашиваю..

я ещё могу понять SanAlex/AlexSan/VK которые суть один - но прочие же якобы имели дело с практикой

О чем ты говоришь, у нас в ветке  лиги писать нельзя, автомат трактора в авторитете, ветка Юсуфа на первой странице. Покритикушь, тут же бан
 
Sunnat Tilyakhodjaev:
Здравствуйте ,Как написать функцию при который советник увеличал лотность после постепенного роста депозита ?

вот ненадо это делать. если для тестера то красиво.

для реала: первоначальный лот достаточен в настройках.

 
Maxim Kuznetsov #:

кто нить тут вообще робота поддерживал ??? или все сплошь продавцы, теоретики и баснописцы...

что чёрт подери происходит с системой в реальном времени по приведённому вами коде на границе 200+-eps ? про баланс даже не спрашиваю..

я ещё могу понять SanAlex/AlexSan/VK которые суть один - но прочие же якобы имели дело с практикой

вообще не пойму - что Вы написали ? Вы о чём? 

\\\\\\\\\\\\\\\\\\\\\\\\\\\

если про коды - то я самоучка - не чего не продаю и не кому коды не пишу. сам лазаю по сайту и смотрю примеры и из них пытаюсь учится 

Причина обращения: