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()
To embed this project on your website, copy the following code and paste it into your website's HTML: