English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
preview
Stoploss Fisso sulla PriceAction o RSI Fisso (StopLoss Intelligente)

Stoploss Fisso sulla PriceAction o RSI Fisso (StopLoss Intelligente)

MetaTrader 5Esempi | 23 maggio 2022, 09:32
286 0
vwegba
vwegba

Introduzione

La ricerca di un Santo Graal nel trading mi ha portato a questo studio. Lo stop loss è lo strumento più importante nel trading quando si tratta di gestione del denaro. La gestione del denaro è uno dei diversi modi in cui un trader può fare soldi sul mercato ed essere costante nel lungo periodo. Come affermato in precedenza, la gestione del denaro è fortemente associata allo stop loss e al rapporto rischio-rendimento. Il rapporto 1:1.5R (Rischio:Rendimento) tende ad avere una percentuale di vincita più elevata rispetto ad altri rapporti di Rischio:Rendimento, ma il rapporto 1:>1.9R (Rischio:Rendimento) tende a essere più redditizio e mantiene un trader con un profitto costante per un lungo periodo di tempo (Santo Graal). Questa strategia di trading 'Santo Graal' ha un lato negativo. In una situazione ideale, fare trading con 1:>1.9R(Rischio:Rendimento) sarà redditizio se, su 10 operazioni (1 pip ciascuna), 6 operazioni sono state perdenti (6 pip) e 4 operazioni sono state vincenti (8 pip). Ciò significa che siamo in profitto di 2 pip. Nell'applicazione nella vita reale, potrebbe non essere tutto vero. Un fattore importante che contribuisce a questo è un termine noto come 'Caccia allo Stop-Loss'. La Caccia allo Stop-Loss si realizza quando un'operazione raggiunge il tuo stop-loss per raccogliere la liquidità, quindi si muove nella direzione prevista. La Caccia allo Stop-Loss è un problema importante nel trading e nella gestione del denaro. Ha anche un effetto psicologico sui trader (per lo più sui nuovi trader). 

Caccia agli stop loss

Fig 1.1. Caccia agli stop loss

La caccia allo stop loss è principalmente associata a uno stop loss fisso o trailing sull'azione dei prezzi o sul grafico a candele. Se non ci sono stop loss sul grafico dell'azione dei prezzi, non ci sarà alcuna caccia allo stop loss. Ma l'assenza dello stop loss corrisponde alla probabilità di far saltare il tuo conto di trading (che è uguale a uno (1)).


RSI Stop-loss

L'oscillatore RSI è una replica del grafico linea dell'azione del prezzo tracciato su un range che va da 100 a 0

thRsi


Fig 1.2. RSI e Ggrafico Linea

Se l'indicatore RSI e il grafico linea sono molto simili, l'utilizzo dell'indicatore RSI come stop loss intelligente potrebbe ridurre il rischio di caccia agli stop loss.

Scopo:

Il mio scopo qui è verificare se l'uso dello stop-loss basato sull'RSI potrebbe essere in grado di ridurre il rischio di caccia allo stop-loss e soprattutto essere redditizio nel lungo periodo.

Obbiettivo:

Verranno confrontate due strategie uguali: una con stop-loss impostato sulla price action e l'altra con stop-loss impostato sull'indicatore RSI.




Strategia e Codice

Stop-Loss classico sul grafico dell'azione dei prezzi

Per il primo EA con stop loss fisso sull'azione dei prezzi. Di seguito sono riportati i requisiti per la strategia

Parametri

Descrizione

Indicatore Usato

MACD (12,26,9)

Indicatore Usato

Media Mobile (200)

Indicatore Usato

Media Mobile (50)

Indicatore Usato

ATR (5)

Time Frame

1 min

Entrata in Acquisto

Se la media mobile (50) è al di sopra della media mobile (200) e la linea MACD è maggiore della linea del segnale quando sia la linea MACD che la linea del segnale sono inferiori a zero

Entrata in Vendita

Se la media mobile (50) è inferiore alla media mobile (200) e la linea MACD è inferiore alla linea del segnale quando sia la linea MACD che la linea del segnale sono superiori a zero

Uscita

Take profit e Stop-loss (1:2R).

Lo stop-loss nel setup di acquisto è posizionato sotto la più bassa di venti (20) candele precedenti dopo l'ingresso meno il valore dell'ATR (5)

E lo stop-loss per la condizione di vendita è il massimo di venti (20) candele precedenti dopo l'ingresso più il valore ATR (5)

 


La rappresentazione grafica è mostrata di seguito.

Stop Loss Classico per Entrata in Acquisto


Fig 2.1 Entrata in Acquisto

Stop Loss Classico per Entrata in Vendita


Fig 2.2 Entrata in Vendita

Codice

La prima parte del codice riguarda principalmente la dichiarazione delle variabili e i dati di input. Tutte le variabili del gestore dell'indicatore sono state dichiarate qui.

#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
#include<Trade\Trade.mqh>
CTrade trade;
int MATrend;
int MADirection;
int MACD;
int ATR;
input int afi;// ----------RiskAmount------------
input double risk = 0.02; //% Amount to risk
input int atrValue = 20; // ATR VAlue
input int ai;// ----------Moving Average inputs------------
input int movAvgTrend = 200;// Moving Average Trend
input int movAvgDirection = 50;//moving Average for trend Direction;
input int i;// -----------MACD inputs-----------------------
input int fast = 12;// Macd Fast
input int slow = 26; //Macd Slow
input int signal = 9; //Signal Line

Altre variabili dichiarate

double pipValue  = 0.0;// 

double Balance; // For the Current Balance

Le variabili sono state assegnate a ogni handler nella funzione init()

int OnInit()
  {
//---
      //Moving Averages Indicators''
      MATrend = iMA(_Symbol,_Period,movAvgTrend,0,MODE_SMA,PRICE_CLOSE); //Moving Average 200
      MADirection = iMA(_Symbol,_Period,movAvgDirection,0,MODE_EMA,PRICE_CLOSE); //Moving Average 50
      //MACD
      MACD = iMACD(_Symbol,_Period,fast,slow,signal,PRICE_CLOSE);//MACD 
      //ATR
      ATR = iATR(_Symbol,_Period,atrValue);
      //---
      point=_Point;
      double Digits=_Digits;
      
      if((_Digits==3) || (_Digits==5))
      {
         point*=10;
      }
      return(INIT_SUCCEEDED);
  }


Il codice in base al quale viene eseguita la strategia è mostrato di seguito

void Strategy() {
   MqlRates priceAction[];
   ArraySetAsSeries(priceAction,true);
   int priceData = CopyRates(_Symbol,_Period,0,200,priceAction); 
   
   double maTrend[]; ArraySetAsSeries(maTrend,true);
   CopyBuffer(MATrend,0,0,200,maTrend); //200 MA
     
   double madirection[]; ArraySetAsSeries(madirection,true);
   CopyBuffer(MADirection,0,0,200,madirection);  //50 MA
   
   double macd[]; ArraySetAsSeries(macd,true);
   CopyBuffer(MACD,0,0,200,macd);  //MACD
   
   double macds[]; ArraySetAsSeries(macds,true);
   CopyBuffer(MACD,1,0,200,macds);  //MACD_Signal Line   
      
   double Bid  = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
   double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits);  
   
   
   if (madirection[1]>maTrend[1]) {
      //Buy ; Uptrend
     
     
      
      bool macd_bZero = macds[1]<0&&macd[1]<0; //MacD Signal Line is less than Zero
      bool macd_cross = macd[1]>macds[1];// Macd Crosses the signal line
      
      if (macd_bZero && macd_cross) {
         buyTrade = true;
      }
      
      
   } else if (madirection[1]<maTrend[1]) {
      //Sell; DownTrend
      
     
      bool macd_bZero = macds[1]>0&&macd[1]>0;; //MacD Signal Line is less than Zero
      bool macd_cross = macd[1]<macds[1];// Macd Crosses the signal line
      
      if (macd_bZero && macd_cross) {
         sellTrade = true;
      }      
      
    }  
    
   if (buyTrade && sellTrade) {
      buyTrade = false;
      sellTrade = false;
   return;
   }
      
      
   if (buyTrade) {
      buyTrade = false;
      sellTrade = false;
      
      Buy(Ask);
   } else if (sellTrade) {
      buyTrade = false;
      sellTrade = false;
      
      Sell(Bid);   
   }
   
}

Entrata(Acquisto e Vendita)

void Buy(double Ask) {
   double atr[]; ArraySetAsSeries(atr,true); //This array is use to store all ATR value to the last closed bar
   CopyBuffer(ATR,0,0,200,atr); // This method copy the buffer value of the ATR indicator into the array (200 buffered data)

   theLotsize =  NormalizeDouble((Balance*risk)/((MathAbs(Ask-((stoplossforBuy(20)-atr[1])))*100)*pipValue),2); // This Calculate the lotsize using the % to risk
   trade.Buy(theLotsize,_Symbol,Ask,(stoplossforBuy(20)-atr[1]),Ask+(2*MathAbs(Ask-((stoplossforBuy(20)-atr[1])))),NULL); //Buy Entry with zero stoploss && take profit is twice the distance between the entry and the lowest candle
    

}
void Sell(double Bid) {
   double atr[]; ArraySetAsSeries(atr,true); //This array is use to store all ATR value to the last closed bar
   CopyBuffer(ATR,0,0,200,atr); // This method copy the buffer value of the ATR indicator into the array (200 buffered data)
   theLotsize =  NormalizeDouble((Balance*risk)/((MathAbs(Bid-((stoplossforSell(20)+atr[1])))*100)*pipValue),2); // This Calculate the lotsize using the % to risk
   trade.Sell(theLotsize,_Symbol,Bid,(stoplossforSell(20)+atr[1]),Bid-(2*MathAbs(((stoplossforSell(20)+atr[1]))-Bid)),NULL); //Sell Entry with zero stoploss && take profit is twice the distance between the entry and the highest candle

}

Dai codici sopra abbiamo chiamato due metodi che sono lo stoplossforSell(int num) e lo stoplossforBuy(int num). Questi due metodi sono pensati specificamente per identificare la candela più alta e quella più bassa del numero assegnato rispettivamente dopo l'attivazione dell'entrata. Ad esempio, stoplossforSell(20) restituisce la candela più alta tra le 20 candele precedenti prima dell'ingresso.

double stoplossforBuy(int numcandle) {
         int LowestCandle;
         
         //Create array for candle lows
         double low[];
         
         //Sort Candle from current downward
         ArraySetAsSeries(low,true);
         
         //Copy all lows for 100 candle
         CopyLow(_Symbol,_Period,0,numcandle,low);
         
         //Calculate the lowest candle
         LowestCandle = ArrayMinimum(low,0,numcandle);
         
         //Create array of price
         MqlRates PriceInfo[];
         
         ArraySetAsSeries(PriceInfo,true);
         
         //Copy price data to array
         
         int Data = CopyRates(Symbol(),Period(),0,Bars(Symbol(),Period()),PriceInfo);
      
         return PriceInfo[LowestCandle].low;
                  
      
         

}
double stoplossforSell(int numcandle) {
         int HighestCandle;
         double High[];
       
       //Sort array downward from current candle
         ArraySetAsSeries(High,true);
       
       //Fill array with data for 100 candle
         CopyHigh(_Symbol,_Period,0,numcandle,High);
         
         //calculate highest candle
         HighestCandle = ArrayMaximum(High,0,numcandle);
         
         //Create array for price
         MqlRates PriceInformation[];
         ArraySetAsSeries(PriceInformation,true);
         
         
         //Copy price data to array
         int Data = CopyRates(Symbol(),Period(),0,Bars(Symbol(),Period()),PriceInformation);
         
         return PriceInformation[HighestCandle].high;
           
 
 }

Questo EA entra in un trade alla volta controllando se c'è un trade aperto o meno. Se non ci sono trade aperti, viene richiamato il metodo della strategia.

void OnTick()
  {
//---
   pipValue  = ((((SymbolInfoDouble(Symbol(), SYMBOL_TRADE_TICK_VALUE))*point)/(SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE))));

   Balance = AccountInfoDouble(ACCOUNT_BALANCE);
   
   if (PositionsTotal()==0) {
      Strategy();
   }
  }

RSI Stop-Loss sull'indicatore RSI


Per il Secondo EA con stop loss fisso sull'indicatore RSI. Di seguito sono riportati i requisiti per la strategia.

Parametri

Descrizione

Indicatore Usato

MACD (12,26,9)

Indicatore Usato

Media Mobile (200)

Indicatore Usato

Media Mobile (50)

Indicatore Usato

ATR (5)

Time Frame

1 min

Entrata in Acquisto

Se la media mobile (50) è al di sopra della media mobile (200) e la linea MACD è maggiore della linea del segnale quando sia la linea MACD che la linea del segnale sono inferiori a zero

Entrata in Vendita

Se la media mobile (50) è inferiore alla media mobile (200) e la linea MACD è inferiore alla linea del segnale quando sia la linea MACD che la linea del segnale sono superiori a zero

Uscita

Take profit.

Lo stop-loss per il setup di acquisto è il valore più basso di venti (10) RSI dopo l'entrata

E lo stop loss per la condizione di vendita è il valore più alto di venti (10) RSI dopo l'entrata

 

Se l'RSI incrocia l'RSI più alto o più basso, l'operazione viene chiusa.

 


La linea viene tracciata sullo Stop loss sull'RSI per una facile visualizzazione

Stoploss per Entrata in Acquisto (RSI stoploss)


Fig 2.3. Operazione d'acquisto con stop-loss sull'RSI

L'operazione si chiude quando il valore RSI corrente è inferiore alla linea Stop-loss nella finestra RSI.

Stoploss per Entrata in Vendita (RSI stoploss)


Fig 2.4. Operazione di vendita con stop-loss sull'RSI

L'operazione si chiude quando il valore RSI corrente è maggiore della linea Stop-loss nella finestra RSI.

Codice

La prima parte del codice riguarda principalmente la dichiarazione di variabili e i dati di input. Simile al primo indicatore con poche aggiunte mostrate di seguito

int RSI;
input int rsi = 5; // RSI VAlue
double lowestrsiValue = 100;
double highestrsiValue = 0.0;

Allo stesso modo, anche il metodo onint() è simile con poche aggiunte come mostrato di seguito

int OnInit()
  {
              //RSI
      RSI = iRSI(_Symbol,_Period,rsi,PRICE_CLOSE);
}


Il codice per la strategia è lo stesso di cui sopra. Ma l'ingresso sia per l'acquisto che per la vendita non contiene stop loss perché utilizzeremo il livello RSI come stop loss. Di seguito il codice per le voci

void Buy(double Ask) {
   double atr[]; ArraySetAsSeries(atr,true); //This array is use to store all ATR value to the last closed bar
   CopyBuffer(ATR,0,0,200,atr); // This method copy the buffer value of the ATR indicator into the array (200 buffered data)

   theLotsize =  NormalizeDouble((Balance*risk)/((MathAbs(Ask-((stoplossforBuy(20)-atr[1])))*100)*pipValue),2); // This Calculate the lotsize using the % to risk
   
   ObjectCreate(0,"sl",OBJ_HLINE,3,0,lowestRSI(10)); // Since our stoploss is zero we assign a smart stoploss on the rsi by drawing a line on the rsi window
   trade.Buy(theLotsize,_Symbol,Ask,0,Ask+(2*MathAbs(Ask-((stoplossforBuy(20)-atr[1])))),NULL);//Buy Entry with zero stoploss && take profit is twice the distance between the entry and the lowest candle
    Print("SL",lowestRSI(10));
}
void Sell(double Bid) {
   double atr[]; ArraySetAsSeries(atr,true); //This array is use to store all ATR value to the last closed bar
   CopyBuffer(ATR,0,0,200,atr); // This method copy the buffer value of the ATR indicator into the array (200 buffered data)
   
   theLotsize =  NormalizeDouble((Balance*risk)/((MathAbs(Bid-((stoplossforSell(20)+atr[1])))*100)*pipValue),2);  // This Calculate the lotsize using the % to risk
   
   ObjectCreate(0,"sl",OBJ_HLINE,3,0,highestRSI(10)); // Since our stoploss is zero we assign a smart stoploss on the rsi by drawing a line on the rsi window
   trade.Sell(theLotsize,_Symbol,Bid,0,Bid-(2*MathAbs(((stoplossforSell(20)+atr[1]))-Bid)),NULL);//Sell Entry with zero stoploss && take profit is twice the distance between the entry and the highest candle
   Print("SL",highestRSI(10));
}


La parte finale del codice che è diversa dall'EA di cui sopra comprende i metodi che ottengono i valori più bassi e più alti dell'RSI. Viene richiamato dal metodo di entrata di cui sopra e utilizza i dati per tracciare una linea nel punto dell'RSI più basso o più alto.

Nota: la linea tracciata viene eliminata nel metodo della strategia quando non vi è alcuna posizione aperta.

 double lowestRSI(int count) {     
      double thersi[]; ArraySetAsSeries(thersi,true);
      CopyBuffer(RSI,0,0,200,thersi);
      
      for (int i = 0; i<count;i++) {
      
         if (thersi[i]<lowestrsiValue) {
            lowestrsiValue = thersi[i];
         }
      }
   return lowestrsiValue;
}
//This method get the Highest RSI afer ENtry to set the smart Stoploss
double highestRSI(int count) {

      
      double thersi[]; ArraySetAsSeries(thersi,true);
      CopyBuffer(RSI,0,0,200,thersi);
      
      for (int i = 0; i<count;i++) {
      
         if (thersi[i]>highestrsiValue) {
            highestrsiValue = thersi[i];
         }
      }
   return highestrsiValue;
}

####

Ora che gli EA sono impostati e rispettati, possiamo procedere al test di entrambi gli EA per il risultato richiesto.


Test e Resultati

Test Caccia agli Stop-Loss

Nella sezione sarà presente il test e il risultato ottenuto dalla simulazione. Il primo test da effettuare è determinare se l'RSI STOP-LOSS EA è in grado di RIDURRE il problema della caccia allo stop loss durante il trading. Sarà paragonato al CLASSIC STOP-LOSS EA.

I test vengono eseguiti su timeframe M1.

RSI STOP-LOSS EA DATI DI ENTRATA

Expert: MACD_Smart_Stoploss
Simbolo: Volatility 10 Index
Periodo: M1 (2021.07.01 - 2021.07.15)
Input: afi=0
risk=0.05
atrValue=20
rsi=14
ai=0
movAvgTrend=200
movAvgDirection=50
i=0
fast=12
slow=26
signal=9
Broker: Deriv Limited
Valuta: USD
Deposito Iniziale: 500.00
Leva: 1:500



CLASSIC STOP-LOSS EA ENTRY DATA

Expert: MACD_Cross_Stoploss
Simbolo: Volatility 10 Index
Periodo: M1 (2021.07.01 - 2021.07.15)
Input: afi=0
risk=0.05
atrValue=5
ai=0
movAvgTrend=200
movAvgDirection=50
i=0
fast=12
slow=26
signal=9

risk reward=1:2
Broker: Deriv Limited
Valuta: USD
Deposito Iniziale: 500.00
Leva: 1:50


RISULTATI

Di seguito verrà visualizzata la rappresentazione grafica delle operazioni effettuate da entrambi gli EA. Sono stati presi in totale 3 esempi di trade da ciascuno.

RSI stoploss 1


Fig 3.1. Esempio 1 from RSI STOP-LOSS EA

Stoploss sulla Price Action


Fig 3.1a. Esempio 1 da CLASSIC STOP-LOSS EA

Rsi stoploss 2

Fig 3.2. Esempio 2 da RSI STOP-LOSS EA

Stoploss sulla Price Action

Fig 3.2a. Esempio 2 da CLASSIC STOP-LOSS EA

Rsi Stoploss 3
Fig 3.3. Esempio 3 da RSI STOP-LOSS EA

Stoploss sulla Price Action

Fig 3.3a. Esempio 3 da CLASSIC STOP-LOSS EA


Dal confronto di cui sopra, si può osservare che l'RSI STOP-LOSS EA ha fatto un ottimo lavoro evitando di essere braccato dal mercato rispetto al classico Stop-Loss impostato sul grafico di azione del prezzo.


Test di redditività

Ora è il momento di porre la grande domanda 'È redditizio?'. Poiché l'EA RSI STOP-LOSS ha fatto un ottimo lavoro nell'evitare la caccia allo stop loss, deve essere redditizio e avere anche un tasso di vincita più elevato perché pochi stop loss verrebbero attivati rispetto al metodo classico dello stop loss. Logicamente questo potrebbe essere vero. Ma per dimostrare questa teoria deve essere condotto un test.

Dati simili del test di cui sopra dovrebbero essere utilizzati per entrambi i test. Un back-test su entrambi gli EA di oltre 100 operazioni dovrebbe essere effettuato su un periodo di tempo M1. Di seguito i risultati.


RISULTATI RSI STOP-LOSS EA

Risultati
Qualità dello Storico: 100%
Barre: 20160 Tick: 603385 Simboli: 1
Profitto Totale Netto: 327.71 Drawdown Assoluto del Saldo: 288.96 Drawdown Assoluto dell'Equity: 367.85
Profitto Lordo 3 525.74 Drawdown Massimale del Saldo: 483.90 (69.63%) Drawdown Massimale dell'Equity: 523.24 (71.95%)
Perdita Lorda: -3 198.03 Drawdown Relativo del Saldo: 69.63% (483.90) Drawdown Relativo dell'Equity: 73.65% (369.45)
Fattore di Profitto: 1.10 Payoff Atteso: 1.76 Livello del Margine: 317.21%
Fattore di Recupero: 0.63 Rapporto di Sharpe: 0.08 Z-Score: 1.68 (90.70%)
AHPR: 1.0070 (0.70%) Correlazione LR: 0.51 Risultato OnTester: 0
GHPR: 1.0027 (0.27%) Errore Standard LR: 134.83
Trade Totali: 186 Trade Short (won %): 94 (42.55%) Trade Long (won %): 92 (38.04%)
Operazioni Totali: 372 Trade in Profitto (% of total): 75 (40.32%) Trade in Perdita (% of total): 111 (59.68%)
Trade in Profitto più grande: 85.26 Trade in Perdita più grande: -264.99
Media Trade in Profitto: 47.01 Media Trade in Perdita: -28.81
Vittorie consecutive massime ($): 5 (350.60) Perdite consecutive massime ($): 6 (-255.81)
Vittorie consecutive massimali (conteggio): 350.60 (5) Perdite consecutive massimali (conteggio): -413.34 (5)
Media Vincite consecutive: 2 Media Perdite consecutive: 2

rsistlEcurve

Fig 3.4 Linea dell'Equity per RSI Stop-loss EA

RISULTATI CLASSIC STOP-LOSS EAS


Risultati
Qualità dello Storico: 100%
Barre: 20160 Tick: 603385 Simboli: 1
Profitto Totale Netto: 3 672.06 Drawdown Assoluto del Saldo: 215.45 Drawdown Assoluto dell'Equity: 217.30
Profitto Lordo 10 635.21 Drawdown Massimale del Saldo: 829.54 (19.27%) Drawdown Massimale dell'Equity: 1 159.20 (25.59%)
Perdita Lorda: -6 963.15 Drawdown Relativo del Saldo: 48.76% (270.82) Drawdown Relativo dell'Equity: 51.81% (303.90)
Fattore di Profitto: 1.53 Payoff Atteso: 15.97 Livello del Margine: 274.21%
Fattore di Recupero: 3.17 Rapporto di Sharpe: 0.16 Z-Score: -0.14 (11.13%)
AHPR: 1.0120 (1.20%) Correlazione LR: 0.80 Risultato OnTester: 0
GHPR: 1.0093 (0.93%) Errore Standard LR: 545.00
Trade Totali: 230 Trade Short (won %): 107 (44.86%) Trade Long (won %): 123 (38.21%)
Operazioni Totali: 460 Trade in Profitto (% of total): 95 (41.30%) Trade in Perdita (% of total): 135 (58.70%)
Trade in Profitto più grande: 392.11 Trade in Perdita più grande: -219.95
Media Trade in Profitto: 111.95 Media Trade in Perdita: -51.58
Vittorie consecutive massime ($): 6 (1 134.53) Perdite consecutive massime ($): 9 (-211.43)
Vittorie consecutive massimali (conteggio): 1 134.53 (6) Perdite consecutive massimali (conteggio): -809.21 (4)
Media Vincite consecutive: 2 Media Perdite consecutive: 2


classicalcure

Fig 3.5. Equity curve for Classic Stop loss EA


Osservazione

Sebbene entrambi gli EA fossero redditizi alla fine del periodo di negoziazione, è stato osservato che il primo EA (RSI Stop-Loss EA) ha avuto meno perdite, alcune delle quali sono enormi.

Analisi della Perdita della Linea dell'Equity per RSI stoploss

Fig 3.6. Perdite della Linea dell'Equity

Queste perdite potrebbero influire sulla redditività complessiva dell'EA e anche sulla corretta gestione del denaro. D'altra parte, il classico Stop loss EA ha avuto più perdite e ha anche guadagnato più soldi alla fine del periodo di trading.


Conclusione e raccomandazione

Il Money Management è davvero il Santo Graal del trading. Dall'esperimento di cui sopra, l'EA in cui la gestione del denaro è stata completamente implementata ha ottenuto il massimo profitto con maggiori perdite. Ciò è dovuto alla costanza dei trade. Tuttavia, la definizione di uno stop loss sll'RSI non fornisce completamente la stessa consistenza per il primo EA (RSI STOP-LOSS) poiché l'importo del rischio varia.

Raccomandazione

La copertura è un modo per ridurre le perdite nel primo EA (RSI STOP-LOSS). Ciò potrebbe fornire una quantità rischio più coerente e migliorare il profitto a lungo termine.


Grazie per aver letto!!!

Tradotto dall’inglese da MetaQuotes Ltd.
Articolo originale: https://www.mql5.com/en/articles/9827

Scopri come progettare un sistema di trading con le Bollinger Bands Scopri come progettare un sistema di trading con le Bollinger Bands
In questo articolo impareremo a conoscere le bande di Bollinger, uno degli indicatori più popolari nel mondo del trading. Prenderemo in considerazione l'analisi tecnica e vedremo come progettare un sistema di trading algoritmico basato sull'indicatore Bollinger Bands.
Scopri come progettare diversi sistemi di Media Mobile Scopri come progettare diversi sistemi di Media Mobile
Esistono molte strategie che possono essere utilizzate per filtrare i segnali generati in base a qualsiasi strategia, anche utilizzando la stessa media mobile oggetto di questo articolo. Quindi, l'obiettivo di questo articolo è condividere con te alcune delle strategie di media mobile e come progettare un sistema di trading algoritmico.
Indicatori multipli su un grafico (parte 01): Comprendere i concetti Indicatori multipli su un grafico (parte 01): Comprendere i concetti
Oggi impareremo come aggiungere più indicatori in esecuzione simultanea su un grafico, ma senza occupare un'area separata. Molti trader si sentono più sicuri se monitorano più indicatori alla volta (ad esempio, RSI, STOCASTIC, MACD, ADX e altri), o in alcuni casi anche i diversi asset di cui è composto un indice.
Sviluppo di un Expert Advisor di trading da zero Sviluppo di un Expert Advisor di trading da zero
In questo articolo, discuteremo come sviluppare un robot di trading con una programmazione minima. Naturalmente, MetaTrader 5 offre un elevato livello di controllo sulle posizioni di trading. Tuttavia, utilizzare solo la capacità manuale di effettuare ordini può essere piuttosto difficile e rischioso per gli utenti meno esperti.