Pesquisar

Conserto de script para trading

16/05/2025 às 23:14

Descrição do Projeto:

Gostaria de ajuda para consertar o script abaixo:

//@version=NTSL
// --- CONFIGURAÇÕES DO USUÁRIO ---
input double PrecoInicial = 100.0; // Preço médio inicial
input double LimiteInferior = 90.0; // Limite mínimo do grid
input double LimiteSuperior = 110.0; // Limite máximo do grid
input int NumeroDeGrids = 10; // Quantidade de níveis
input double VolumeOrdem = 0.1; // Tamanho de cada ordem em lotes
input double TakeProfitPct = 2.0; // % de take profit por operação
input double StopLossPct = 5.0; // % de stop loss por operação
input bool UsarAjusteDinamico = true; // Ativar ajuste automático dos grids
input int PeriodoVolatilidade = 14; // Período para cálculo do ATR

// --- VARIÁVEIS DO SISTEMA ---
var double[] NiveisCompra = {};
var double[] NiveisVenda = {};
var double TamanhoGrid = 0.0;
var bool GridPronto = false;
var int UltimoTick = 0;

// --- INICIALIZAÇÃO DO GRID ---
void InicializarGrid()
{
// Calcula o espaçamento entre grids
TamanhoGrid = (LimiteSuperior - LimiteInferior) / NumeroDeGrids;

// Limpa os arrays existentes
NiveisCompra = {};
NiveisVenda = {};

// Preenche os níveis de compra e venda
for(int i = 0; i <= NumeroDeGrids; i++)
{
double nivel = LimiteInferior + (i * TamanhoGrid);

if(nivel < PrecoInicial)
{
NiveisCompra.push(nivel);
}
else if(nivel > PrecoInicial)
{
NiveisVenda.push(nivel);
}
}

GridPronto = true;
Print("Grid inicializado com "+NiveisCompra.size()+" níveis de compra");
Print("e "+NiveisVenda.size()+" níveis de venda");
}

// --- VERIFICA SE EXISTE ORDEM NUM NÍVEL ---
bool OrdemExiste(int tipo, double nivel)
{
for(int i = OrdersTotal()-1; i >= 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol() == Symbol() &&
OrderType() == tipo &&
MathAbs(OrderOpenPrice() - nivel) < Point/10)
{
return true;
}
}
}
return false;
}

// --- FUNÇÃO PRINCIPAL EXECUTADA A CADA TICK ---
void OnTick()
{
// Evita processar o mesmo tick múltiplas vezes
if(TickCount <= UltimoTick) return;
UltimoTick = TickCount;

// Inicializa o grid na primeira execução
if(!GridPronto)
{
InicializarGrid();
return;
}

double precoAtual = Close[0];

// --- GERENCIAMENTO DE ORDENS DE COMPRA ---
for(int i = 0; i < NiveisCompra.size(); i++)
{
double nivelCompra = NiveisCompra[i];

if(precoAtual <= nivelCompra && !OrdemExiste(OP_BUYLIMIT, nivelCompra))
{
double tp = nivelCompra * (1 + TakeProfitPct/100);
double sl = nivelCompra * (1 - StopLossPct/100);

if(OrderSend(Symbol(), OP_BUYLIMIT, VolumeOrdem, nivelCompra, 0, sl, tp, "C_"+i))
{
Print("Ordem de COMPRA limitada enviada em ", nivelCompra);
}
}
}

// --- GERENCIAMENTO DE ORDENS DE VENDA ---
for(int i = 0; i < NiveisVenda.size(); i++)
{
double nivelVenda = NiveisVenda[i];

if(precoAtual >= nivelVenda && !OrdemExiste(OP_SELLLIMIT, nivelVenda))
{
double tp = nivelVenda * (1 - TakeProfitPct/100);
double sl = nivelVenda * (1 + StopLossPct/100);

if(OrderSend(Symbol(), OP_SELLLIMIT, VolumeOrdem, nivelVenda, 0, sl, tp, "V_"+i))
{
Print("Ordem de VENDA limitada enviada em ", nivelVenda);
}
}
}

// --- AJUSTE DINÂMICO DO GRID ---
if(UsarAjusteDinamico && Bars > PeriodoVolatilidade)
{
double atr = ATR(PeriodoVolatilidade)[0];
double volatilidade = (atr/precoAtual)*100;

if(volatilidade > 15)
{
Print("Volatilidade detectada: ", volatilidade, "% - Reajustando grid...");
GridPronto = false;
}
}
}

// --- INICIALIZAÇÃO DO ROBÔ ---
void OnInit()
{
Print("Iniciando Grid Trading Bot...");
InicializarGrid();
}

// --- FINALIZAÇÃO ---
void OnDeinit(const int reason)
{
Print("Grid Trading Bot encerrado. Motivo: ", reason);
}

Habilidades desejadas:

Robótica e Automação Cognitiva

Atividades do cliente nesse projeto:

Última visualização: 20/05/2025 às 18:39

Última interação: 20/05/2025 às 18:01

Informações adicionais

Categoria: Web, Mobile & Software
Subcategoria: Outra - Web, Mobile & Software
Orçamento: Aberto
Nível de experiência: Iniciante
Visibilidade: Público
Propostas: 13
Propostas excluídas: 1
Interessados: 19
Valor Mínimo: R$ 50,00

Cliente

Freelancer vencedor

Propostas (12)
  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer Pro Marcos F.
    Top Freelancer Plus
    Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

  • Freelancer novo Promovida Aceita Aceita Rejeitada

    Submetido: | Oferta: Privado | Duração estimada: Privado

Nenhuma proposta foi encontrada.

Carregando...
Projetos semelhantes no 99Freelas

Macro para responder "eu" no WhatsApp controlada por Telegram - Preciso de uma macro que escaneie o chat do WhatsApp aberto no meu computador e responda "eu" para qualquer mensagem enviada, porém deve ignorar e não responder quando outro...

Finalizar instalação de e-mail do Typebot - Concluir a instalação de e-mail do Typebot. Configurar SMTP, validar o envio de mensagens e integrar a funcionalidade com a instância atual. Entregar documentação ...

Desenvolver bots para MetaTrader 5 - Preciso de um desenvolvedor para criar um bot para operar day trade na B3. O robô deve ser desenvolvido para MetaTrader 5. Por favor, apresente exemplos de bots já desenvolvidos, bem ...

Simulador de futebol com editor para Brasfoot e automação - Desenvolver um sistema de gerenciamento (editor completo) para o jogo Brasfoot, a fim de permitir edição simples e prática das principais características dos jogadores e...

Automação de buscas em sites estrangeiros - Quero contratar um serviço para realizar um projeto de automação para buscas automáticas em sites estrangeiros. Preferência por implementação em Pyth...

Carregando...

Carregando...

Pesquisar

FREELANCERS
PROJETOS
Ocorreu um erro inesperado. Caso o erro persista, entre em contato conosco através do e-mail suporte@99freelas.com.br.