I used this signal generator code: # Load the market symbols
url = f'https://api.binance.com/api/v3/ticker/price?symbol={symbol}'
response = requests.get(url)
ticker = response.json()
current_price = float(ticker['price'])

def get_server_time():
    ntp_client = ntplib.NTPClient()
    response = ntp_client.request('pool.ntp.org', version=3)
    now = time.time()
    offset = response.offset
    new_time = now + offset
    # Set the system clock to the new time
    os.system(f'sudo date -s @{int(new_time)}')
    print(f'New time: {dt.datetime.now()}')


params = {
"timestamp": timestamp,
"recvWindow": recv_window
}
try:
    markets = binance_futures.load_markets()
except ccxt.BaseError as e:
    print(f'Error fetching markets: {e}')
    markets = []

if symbol in markets:
    print(f"{symbol} found in the market")
else:
    print(f"{symbol} not found in the market")

# Get server time and time difference

def get_server_time(exchange):
    return exchange.fetch_time()

def get_time_difference():
    server_time = get_server_time(binance_futures)
    local_time = int(time.time() * 1000)
    time_difference = local_time - server_time
    return time_difference

time.sleep(1)
def get_klines(symbol, interval, lookback):
    url = "https://fapi.binance.com/fapi/v1/klines"
    end_time = int(time.time() * 1000) # end time is now
    start_time = end_time - (lookback * 60 * 1000) # start time is lookback minutes ago
    symbol = symbol.replace("/", "") # remove slash from symbol
    query_params = f"?symbol={symbol}&interval={interval}&startTime={start_time}&endTime={end_time}"
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
    }
    response = requests.get(url + query_params, headers=headers)
    response.raise_for_status()
    data = response.json()
    if not data: # if data is empty, return None
        print('No data found for the given timeframe and symbol')
        return None
    ohlc = []
    for d in data:
        timestamp = dt.datetime.fromtimestamp(d[0]/1000).strftime('%Y-%m-%d %H:%M:%S')
        ohlc.append({
            'Open time': timestamp,
            'Open': float(d[1]),
            'High': float(d[2]),
            'Low': float(d[3]),
            'Close': float(d[4]),
            'Volume': float(d[5])
        })
    df = pd.DataFrame(ohlc)
    df.set_index('Open time', inplace=True)
    return df
df = get_klines(symbol, '1m', 44640)

def signal_generator(df):
    # Calculate EMA and MA lines
    df['EMA5'] = df['Close'].ewm(span=5, adjust=False).mean()
    df['EMA20'] = df['Close'].ewm(span=20, adjust=False).mean()
    df['EMA50'] = df['Close'].ewm(span=50, adjust=False).mean()
    df['EMA100'] = df['Close'].ewm(span=100, adjust=False).mean()
    df['MA10'] = df['Close'].rolling(window=10).mean()
    df['MA50'] = df['Close'].rolling(window=50).mean()
    df['MA100'] = df['Close'].rolling(window=100).mean()

    # Calculate the last candlestick
    last_candle = df.iloc[-1]

    # Check for bullish signals
    if current_price > last_candle[['EMA5', 'EMA20', 'EMA50', 'EMA100']].iloc[-1].max() * 1.01:
        if last_candle[['EMA5', 'MA10', 'MA50', 'MA100']].iloc[-1].min() > current_price * 0.999:
            return 'buy'
    # Check for bearish signals
    elif current_price < last_candle[['EMA5', 'EMA20', 'EMA50', 'EMA100']].iloc[-1].min() * 0.99:
        if last_candle[['EMA5', 'MA10', 'MA50', 'MA100']].iloc[-1].max() < current_price * 1.001:
            return 'sell'

    # If no signal found, return an empty string
    return ''
But I getting ERROR: Traceback (most recent call last):
  File "c:\Users\Alan\.vscode\jew_bot\jew_bot\jew_bot.py", line 99, in <module>
    current_price = float(ticker['price'])
                          ~~~~~~^^^^^^^^^
KeyError: 'price'