python – Hacer cálculos con un CSV

Tengo un CSV con datos exportados de Binance, esos datos están repartidas en 9 columnas: date,open,high,low,close,volume,short,middle,long.

Con estos datos estoy intentando hacer unos cálculos y saber la cantidad de veces que se da una condición en particular. Leyendo línea por línea, pretendo ver si en algún momento sucede uno de estos dos casos:

if (short > middle) & (middle > long):
    """
    Code here
    """

# OR

if (long > middle) & (middle > short):
    """
    Code here
    """

En el momento que suceda eso, estoy intentando que el bot chequee los siguientes rows para chequear una segunda condición y una vez chequeada, me gustaría que continuara el bot buscando entre las siguientes líneas para ver si se da alguna de las condiciones anteriores y que suceda lo mismo.

El problema es que se me queda dando vueltas todo el tiempo para chequear la segunda condición. Os muestro el código:

CSV (df=pd.read_csv(‘token.csv’))

                date      open      high       low     close  volume       short      middle        long
0      1620259200000   45.0381   45.0731   44.8755   44.9278   14927   44.927800   44.927800   44.927800
1      1620259500000   44.9058   44.9355   44.6823   44.7910   11563   44.873080   44.900439   44.913400
2      1620259800000   44.7817   44.9261   44.6107   44.7526   12081   44.824888   44.870872   44.896473
3      1620260100000   44.7474   44.8128   44.5556   44.5890   25401   44.730532   44.814497   44.864108
4      1620260400000   44.5720   44.7701   44.5002   44.5586   26891   44.661759   44.763318   44.831949
...              ...       ...       ...       ...       ...     ...         ...         ...         ...
35558  1630926600000  144.1490  144.2310  143.8010  144.1750   41651  144.211991  144.375954  144.657833
35559  1630926900000  144.1790  144.4330  143.5820  143.6990   64694  144.006795  144.240563  144.556903
35560  1630927200000  143.7000  143.9480  143.1000  143.1230   96558  143.653277  144.017051  144.405966
35561  1630927500000  143.1270  143.4500  142.0000  143.1440  199843  143.449566  143.842440  144.273127
35562  1630927800000  143.1440  143.5200  142.1240  143.3220   91112  143.398539  143.738352  144.173009

(35563 rows x 9 columns)

MAIN

"""
Primero va la conexión del script a Binance y la creación del CSV
"""

with open('token.csv', newline='') as f:
    reader = csv.reader(f)
    row1 = next(reader)  # gets the first line
    
    total = 0 # Número que debe de ir aumentando o disminuyendo a partir de las condiciones

    for row in reader: 
        # Recoger valores de cada row
        short = row(6)
        middle = row(7)
        long = row(8)
        time = int(row(0))
        
        cierre = float(row(4))

        #### Condición
        if (short > middle) & (middle > long): # LONG
            print(time)
            print("Long")

            # Bucle para chequear la segunda condición
            while True: 
                take_profit = float(cierre)*1.0098 
                stop_loss = float(cierre)*0.9902

                with open('token.csv', newline='') as f:
                    reader = csv.reader(f)
                    row1 = next(reader)
                    for row in reader:
                        tiempo = int(row(0))
                        if tiempo <= time:
                            # Para que empiece a chequear a partir
                            # del tiempo del row en el que se encontró esa condición
                            pass
                        else:
                            print(tiempo)
                            high = float(row(2))
                            low = float(row(3))
                            close = float(row(4))

                            # Segunda condición
                            if stop_loss > low:
                                
                                if take_profit <= high:
                                    print("Positivo")
                                    total = total +1

                                    break
                                
                                else:
                                    pass
                            
                            if stop_loss <= low:
                                total = total -1
                                print("Negativo")
                                break
                            
        ### Condición
        if (long > middle) & (middle > short):
            print(time)
            print("Short")
            while True:

                take_profit = float(cierre)*0.9902
                stop_loss = float(cierre)*1.0098

                
                with open('token.csv', newline='') as f:
                    reader = csv.reader(f)
                    row1 = next(reader)
                    for row in reader:
                        tiempo = int(row(0))
                        if tiempo <= time:
                            pass
                        else:
                            print(tiempo)
                            
                            high = float(row(2))
                            low = float(row(3))
                            close = float(row(4))

                            # Segunda condición
                            if stop_loss < high:
                                
                                if take_profit <= low:
                                    total = total +1
                                    print("Positivo")
                                    break
                                
                                else:
                                    pass
                            
                            if stop_loss >= high:
                                total = total -1
                                print("Negativo")
                                break
        else:
            print(total)