import time
from iqoptionapi.stable_api import IQ_Option

# Configuración inicial
username = "tu_correo_electronico"
password = "tu_contraseña"
api = IQ_Option(username, password)
api.connect()

# Verificar la conexión
if not api.check_connect():
    print("Error al conectar con IQ Option")
    exit()

# Configurar indicadores
def get_rsi(candles, period=14):
    gains = [candles[i]['close'] - candles[i-1]['close'] for i in range(1, len(candles))]
    losses = [-gain if gain < 0 else 0 for gain in gains]
    gains = [gain if gain > 0 else 0 for gain in gains]
    avg_gain = sum(gains[:period]) / period
    avg_loss = sum(losses[:period]) / period
    rs = avg_gain / avg_loss if avg_loss != 0 else 0
    rsi = 100 - (100 / (1 + rs))
    return rsi

def get_ema(candles, period):
    multiplier = 2 / (period + 1)
    ema = [candles[0]['close']]
    for price in candles[1:]:
        ema.append((price['close'] - ema[-1]) * multiplier + ema[-1])
    return ema

# Parámetros de la estrategia
activos = ["EURUSD", "USDJPY"]
timeframe = 1  # 1 minuto
rsi_period = 14
ema_period = 20
sma_period = 50
capital_inicial = 10
cantidad = capital_inicial * 0.1  # Monto por operación

while True:
    for activo in activos:
        # Obtener las velas
        candles = api.get_candles(activo, timeframe * 60, 100, time.time())
        
        # Calcular RSI y EMAs
        rsi = get_rsi(candles, rsi_period)
        ema_20 = get_ema(candles, ema_period)
        sma_50 = get_ema(candles, sma_period)
        
        # Estrategia de entrada
        precio_actual = candles[-1]['close']
        if ema_20[-1] > sma_50[-1] and rsi < 70 and precio_actual > ema_20[-1]:
            # Comprar opción CALL
            status, id_compra = api.buy(cantidad, activo, "call", timeframe)
            if status:
                print(f"Comprado CALL en {activo} a {precio_actual}")
        
        if ema_20[-1] < sma_50[-1] and rsi > 30 and precio_actual < ema_20[-1]:
            # Comprar opción PUT
            status, id_compra = api.buy(cantidad, activo, "put", timeframe)
            if status:
                print(f"Comprado PUT en {activo} a {precio_actual}")

    # Ajustar el tamaño de la operación según el capital actual
    capital_disponible = api.get_balance()
    cantidad = capital_disponible * 0.1
    
    # Verificar límite de pérdidas diario
    if capital_disponible < capital_inicial * 0.5:
        print("Límite de pérdidas diario alcanzado, deteniendo operaciones")
        break

    # Esperar el siguiente ciclo
    time.sleep(timeframe * 60)

api.close()

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: