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 novo Promovida Aceita Aceita Rejeitada

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

  • Freelancer Pro Marcos F.
    Top Freelancer
    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

Assessoria para configurar antenas Ubiquiti LiteBeam M5 - Quero que configure antenas de AP e cliente remotamente, pois estou com este erro. Já tentei tudo o que pude.

Bot de replicação automática de sinais para Quotex e Pocket Option - Procuro desenvolvedor(a) experiente para criar um bot que leia automaticamente as entradas postadas no meu grupo de sinais no Telegram e replique essas ordens na conta do usuário nas platafo...

Completar e corrigir projeto de Web App - Gostaria de contratar um profissional para corrigir, otimizar e completar um projeto de Web App de Bingo Online ("Bingo do Portuga") que se encontra em fase intermediária de desenv...

Corrigir atualização da playstore em aplicar já publicado. - Última atualização que o sistema Android pediu. Crie uma versão que seja compatível com tamanhos de página de 16 KB de memória e publique na produ&...

Ajustes em integração ClickUp + Make - Precisamos de um freelancer com experiência em integrações entre ClickUp e Make para: - Entender o fluxo atual; - Diagnosticar e corrigir eventuais erros; - Realizar ajustes ne...

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.