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))); }/******************************************************************/
Достаточно только вписать размер риска, чтобы считать не от полной свободной маржи…
такой вот вопрос: А ЗАЧЕМ РАЗРАБОТЧИКИ ДАЮТ НЕВЕРНЫЕ ОТВЕТЫ ?
люди ведь с опытом и иначе как нехорошим умыслом такое не назовёшь
Здравствуйте ,Как написать функцию при который советник увеличал лотность после постепенного роста депозита ?
вот неплохой способ 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
вот неплохой способ https://www.mql5.com/ru/forum/107406#comment_3018721
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
что то типа такого
кто нить тут вообще робота поддерживал ??? или все сплошь продавцы, теоретики и баснописцы...
что чёрт подери происходит с системой в реальном времени по приведённому вами коде на границе 200+-eps ? про баланс даже не спрашиваю..
я ещё могу понять SanAlex/AlexSan/VK которые суть один - но прочие же якобы имели дело с практикой
кто нить тут вообще робота поддерживал ??? или все сплошь продавцы, теоретики и баснописцы...
что чёрт подери происходит с системой в реальном времени по приведённому вами коде на границе 200+-eps ? про баланс даже не спрашиваю..
я ещё могу понять SanAlex/AlexSan/VK которые суть один - но прочие же якобы имели дело с практикой
Здравствуйте ,Как написать функцию при который советник увеличал лотность после постепенного роста депозита ?
вот ненадо это делать. если для тестера то красиво.
для реала: первоначальный лот достаточен в настройках.
кто нить тут вообще робота поддерживал ??? или все сплошь продавцы, теоретики и баснописцы...
что чёрт подери происходит с системой в реальном времени по приведённому вами коде на границе 200+-eps ? про баланс даже не спрашиваю..
я ещё могу понять SanAlex/AlexSan/VK которые суть один - но прочие же якобы имели дело с практикой
вообще не пойму - что Вы написали ? Вы о чём?
\\\\\\\\\\\\\\\\\\\\\\\\\\\
если про коды - то я самоучка - не чего не продаю и не кому коды не пишу. сам лазаю по сайту и смотрю примеры и из них пытаюсь учится
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования