Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Librerie

Calcolo della percentuale del lotto - libreria per MetaTrader 5

Visualizzazioni:
20
Valutazioni:
(2)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

La funzione CalculateLot è progettata per calcolare automaticamente la dimensione del lotto di trading in base ai principi di gestione del rischio. Consente al trader di specificare la percentuale del saldo del conto che è disposto a rischiare in un'operazione e, in base a questa, di determinare il volume ottimale della posizione.

Sintassi

double CalculateLot(double riskPercent, double stopLossPips);

Parametri

Параметр        Тип     Описание
riskPercent     double  Процент от текущего баланса счета, которым трейдер готов рискнуть. Указывается в абсолютном значении (например, 2.0 = 2% от баланса).
stopLossPips    double  Расстояние до уровня Stop Loss в пунктах. Для 5-значных котировок указывается количество стандартных пунктов (например, 1000 = 1000 пунктов = 100 пипсов).

Valore di ritorno

La funzione restituisce il volume del lotto normalizzato ( double ), che:

  • Sia conforme alle regole di arrotondamento al passo del volume ( VOLUME_STEP );

  • Non supera il volume massimo consentito ( VOLUME_MAX );

  • non sia inferiore al volume minimo consentito ( VOLUME_MIN ).

Se il valore calcolato supera i limiti consentiti, la funzione restituisce un valore limitato (minLot o maxLot).

Algoritmo di funzionamento

  1. Ottenere i parametri del conto e del simbolo

    • Saldo attuale ( ACCOUNT_BALANCE )

    • Valore del tick ( SYMBOL_TRADE_TICK_VALUE )

    • Minimo, massimo e passo di variazione del lotto

  2. Calcolo dell'importo del rischio nella valuta di deposito

    riskAmount = баланс × (риск% / 100)

  3. Calcolo del volume del lotto

    lotSize = riskAmount / (stopLossPips × tickValue)

  4. Normalizzazione e convalida

    • Arrotondamento al passo più vicino ( VOLUME_STEP )

    • Convalida del valore minimo e massimo

Esempi di utilizzo

Esempio 1. Utilizzo di base in un Expert Advisor

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnTick()
{
   //--- Impostare il rischio 1,5% del saldo e lo stop loss 500 pips
   double lot = CalculateLot(1.5, 500);
   
   //--- Controllare che il lotto sia calcolato correttamente
   if(lot > 0.0)
     {
      //--- Ottenere i prezzi correnti
      double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
      
      //--- Calcolo dei livelli
      double sl = ask - 500 * _Point;
      double tp = ask + 1500 * _Point;
      
      //--- Aprire una posizione
      trade.Buy(lot, _Symbol, ask, sl, tp);
     }
}


Esempio 2. Utilizzo in uno script con controllo degli errori

//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnStart()
{
   double riskPercent  = 2.0;   // Rischio 2% del saldo
   double stopLossPips = 1000;  // Stop loss 1000 punti
   
   double lot = CalculateLot(riskPercent, stopLossPips);
   
   //--- Informazioni di output sul calcolo
   Print("=== Risultati del calcolo del lotto ===");
   Print("Saldo del conto": ", AccountInfoDouble(ACCOUNT_BALANCE));
   Print("Rischio, %: ", riskPercent);
   Print("Importo del rischio: ", AccountInfoDouble(ACCOUNT_BALANCE) * riskPercent / 100.0);
   Print("Stop loss, punti: ", stopLossPips);
   Print("Costo del ticchettio:", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE));
   Print("Lotto calcolato: ", lot);
   Print("================================");
   
   if(lot <= 0.0)
     {
      Alert("Errore: calcolo del lotto non riuscito. Controllare i parametri di rischio e stop loss".);
     }
}

Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/71010

ZigZag Support and Resistance Detection ZigZag Support and Resistance Detection

ZigZag SNR Detection identifica i livelli di supporto e resistenza utilizzando i punti di snodo ZigZag.

To Close All Open Trades of Different Symbols To Close All Open Trades of Different Symbols

Dettagli tecnici Utilizza OrderSend di MQL5 con TRADE_ACTION_DEAL per la chiusura istantanea del mercato ai prezzi Bid/Ask correnti. Include una tolleranza di slippage (10 punti), una corretta corrispondenza dei volumi e la conservazione del numero magico. Esegue un loop a ritroso delle posizioni per evitare lo spostamento dell'indice durante l'esecuzione.

Frontend EA : UI cleanup + quick-trading layer for MT5 Frontend EA : UI cleanup + quick-trading layer for MT5

A chart-cleanup + quick-trading layer for MT5

Advanced Trade History Exporter: MAE, MFE and Time-Based Excursions (Points) Advanced Trade History Exporter: MAE, MFE and Time-Based Excursions (Points)

Utility script that exports your MetaTrader 5 trading history to a CSV file. It automatically calculates Maximum Favorable Excursion (MFE), Maximum Adverse Excursion (MAE), and Forward Returns (Time-Based Excursions) in whole points for deep quantitative analysis in Excel. It will allow you to understand whether you close your trades too early and can help optimize overall trading execution.