Salvare il valore rsi per utilizzarlo come stop loss dinamico

 
ciao a tutti, oggi chiedo aiuto a qualcuno per individuare il valore di un indicatore appena si apre uno stop di acquisto/vendita, in modo da calcolare la differenza di valore attuale rispetto al valore dell'indicatore al momento dell'apertura dell'ordine.
quindi quello di cui ho bisogno è che, non appena uno stop di acquisto/vendita apre l'operazione, l'ea deve registrare il valore dell'rsi, facciamo finta che sia 70, e poiché lì se il valore dell'rsi ha una diminuzione di 8 punti, in caso di un acquisto, chiudo l'operazione, quindi non appena raggiunge, ad esempio, 62, chiude l'operazione.

 struct TradeData {
     int ticket;
     double entryRSI;
};
TradeData trades[ 100 ]; // Aumenta la dimensione se prevedi più di 100 operazioni contemporaneamente
int tradeCount = 0 ;
void CheckRSIAndCloseTrades() {
     double currentRSI = iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 0 );
     for ( int i = 0 ; i < tradeCount; i++) {
         if ( OrderSelect (trades[i].ticket, SELECT_BY_TICKET)) {
             if (OrderType() == OP_BUY && trades[i].entryRSI - currentRSI >= 8 ) {
                OrderClose(trades[i].ticket, OrderLots(), Bid, 3 , clrRed );
                 // Rimuovi l'elemento dall'array se necessario o segnalo come non attivo
            }
        }
    }
}
void StoreTradeData( int ticket, double rsiValue) {
    trades[tradeCount].ticket = ticket;
    trades[tradeCount].entryRSI = rsiValue;
    tradeCount++;
}
Ho provato con questo ma non funziona affatto, restituisce un valore pari a 0 all'apertura dello scambio...
qualcuno può aiutare, per favore?

grazie in anticipo.