Unisciti alla nostra fan page
- Visualizzazioni:
- 20
- Valutazioni:
- Pubblicato:
-
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
-
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
-
-
Calcolo dell'importo del rischio nella valuta di deposito
riskAmount = баланс × (риск% / 100) -
Calcolo del volume del lotto
lotSize = riskAmount / (stopLossPips × tickValue)
-
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 SNR Detection identifica i livelli di supporto e resistenza utilizzando i punti di snodo ZigZag.
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
A chart-cleanup + quick-trading layer for MT5
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.
