Neo traderBot

Neo traderBot

Você sabia?

Um backtesting adequado deve buscar simular situações práticas do mercado (slippage, custo de operação, etc...)

leaf leftleaf right
Notifications
Clear all

Problema com variavel dentro de uma função de indicador

2 Posts
2 Usuários
1 Reactions
187 Visualizações
(@toledox82)
Membro eminente
Registrou: 2 anos atrás
Posts: 17
Iniciador do tópico  

Pessoal, estou tentando encontrar uma forma de ficar didática pro usuário inserir qual parametro ele quer pra calcular o PriorCote, já funciona com valor numérico de 0 a 4. Porém estou tentando deixar mais amigável, mas não consigo usar uma variável dentro do PriorCote(variavel) porém se for um Input funciona normal. Alguém saberia me dizer onde estou errando?

input
  Base("Ajuste");
var
  nIndex: Integer;
  nBase: Integer;
begin
  if (Base = "Fechamento") OR (Base = "Close") then
    nBase := 0
  else if (Base = "Abertura") OR (Base = "Open") then
    nBase := 1
  else if (Base = "Máxima") OR (Base = "Maxima") then
    nBase := 2
  else if (Base = "Mínima") OR (Base = "Minima") then
    nBase := 3
  else if (Base = "Ajuste") OR (Base = "Adjust") then
    nBase := 4;

  Plot(PriorCote(nBase));

# Erro: Parser[30,18]: nBase não é uma constante e nem um parâmetro

   
Citar
Marcadores do tópico
(@admin)
Membro Admin
Registrou: 2 anos atrás
Posts: 216
 

Boa noite @toledox82!

       Em tese você não está errando nada! Isso parece ser mais um bug do Profit e acho que já escutei alguém comentar sobre isso na Comunidade.

       Minha sugestão, seria você adaptar o código da forma como está abaixo.

 

Grande abs!

input
  Base("Ajuste");
begin
  if (Base = "Fechamento") OR (Base = "Close") then
    Plot(PriorCote(cBase0))
  else if (Base = "Abertura") OR (Base = "Open") then
    Plot(PriorCote(cBase1))
  else if (Base = "Máxima") OR (Base = "Maxima") then
    Plot(PriorCote(cBase2))
  else if (Base = "Mínima") OR (Base = "Minima") then
    Plot(PriorCote(cBase3))
  else if (Base = "Ajuste") OR (Base = "Adjust") then
    Plot(PriorCote(cBase4));
end.

   
ToledoX82 reacted
ReplyCitar