Sobre este projeto
it-programming / web-development
Aberto
Contexto Geral do Projeto
Crie um script de sinais de compra e venda, vamos analisar os indicadores e as médias móveis que você está utilizando: 1. *Período do gráfico:* 1 minuto 2. *Médias Móveis:* - SMA (Simple Moving Average) 6 (linha azul) - sma 21 (linha verde) - sma 200 (linha amarela) 3. *CCI (Commodity Channel Index) com período 21* ### Estratégia de Sinais de Compra e Venda *Sinais de Compra:* 1. Quando a sma 6 (azul) cruza acima da sma 21 (verde). 2. Quando o CCI cruza acima da linha de -100 (indicando que a ação está saindo de uma condição de sobrevenda). *Sinais de Venda:* 1. Quando a sma 6 (azul) cruza abaixo da sma 21 (verde). 2. Quando o CCI cruza abaixo da linha de +100 (indicando que a ação está saindo de uma condição de sobrecompra). ### Script para IQ Option python # Definindo os indicadores e as condições para os sinais de compra e venda def strategy(iqoption): # Obter os dados das velas candles = iqoption.get_candles(1, 200) # Período de 1 minuto, últimas 200 velas # Calcular as médias móveis sma_6 = calculate_sma(candles, 6) sma_21 = calculate_sma(candles, 21) sma_200 = calculate_sma(candles, 200) # Calcular o CCI cci = calculate_cci(candles, 21) # Sinal de Compra if sma_6[-1] > sma_21[-1] and sma_6[-2] <= sma_21[-2] and cci[-1] > -100: iqoption.buy() print("Sinal de Compra") # Sinal de Venda elif sma_6[-1] < sma_21[-1] and sma_6[-2] >= sma_21[-2] and cci[-1] < 100: iqoption.sell() print("Sinal de Venda") # Função para calcular a média móvel simples def calculate_sma(candles, period): sma = [] for i in range(period, len(candles)): sum_prices = sum([candle['close'] for candle in candles[i-period:i]]) sma.append(sum_prices / period) return sma # Função para calcular o CCI def calculate_cci(candles, period): cci = [] for i in range(period, len(candles)): tp = (candles[i]['high'] + candles[i]['low'] + candles[i]['close']) / 3 sma_tp = sum([(candles[j]['high'] + candles[j]['low'] + candles[j]['close']) / 3 for j in range(i-period, i)]) / period md = sum([abs((candles[j]['high'] + candles[j]['low'] + candles[j]['close']) / 3 - sma_tp) for j in range(i-period, i)]) / period cci.append((tp - sma_tp) / (0.015 * md)) return cci ### Considerações 1. *Backtesting:* Antes de implementar qualquer estratégia de trading, é crucial fazer backtesting para verificar a sua eficácia. 2. *Gestão de Risco:* Certifique-se de aplicar uma boa gestão de risco para evitar grandes perdas. 3. *Condições de Mercado:* A estratégia pode precisar ser ajustada para diferentes condições de mercado (tendência, lateralidade, etc.).
Categoria TI e Programação
Subcategoria Programação
Qual é o alcance do projeto? Alteração média
Isso é um projeto ou uma posição de trabalho? Um projeto
Tenho, atualmente Não se aplica
Disponibilidade requerida Conforme necessário
Funções necessárias Desenvolvedor
Prazo de Entrega: Não estabelecido
Habilidades necessárias