Termo de referência 1-Criar um expert mql5 com todas validações de segurança exigidas pela mql5, Boleta negociação MT5. Escrever o código de um expert advisor, em linguagem mql5, que funcione como um painel de negociação, no qual se insere um valor de entrada e qual sera a posição de entrada, compra ou venda. E ele envia 3 ordens stops: no valor Entrada, no valor do Stop Loss e no valor do Take Profit; conforme os cálculos baseados nos parâmetros pre-estabelecidos. Também deve ter um Painel de Controle com os parâmetros (INPUTS) para facilitar ajustes. Conforme especificações fornecidas pelo cliente, as funcionalidades se dão por itens abaixo: Nome: Painel SCCT Design: Azul - Futurístico //Ativo: _Symbol O expert advisor devera ter os seguintes parâmetros (INPUTS): -input string Posiçao = “C”; // Posiçao//“C” ou “V” (compra ou venda) selecionável no painel, “C” como padrão inicial -input double Entrada = 000000; //Entrada// valor a ser inserido no painel (manualmente) -input bool C-Convencional = true; // C-Convencional //true ou false selecionável no painel, true como padrão inicial -input bool C-Invertida = false; // C-Invertida //true ou false selecionável no painel, false como padrão inicial -input bool V-Convencional = true; // V-Convencional //true ou false selecionável o no painel, true como padrão inicial -input bool V-Invertida = false; // V-Invertida //true ou false selecionável no painel, false como padrão inicial -input int Reduçao de SLi = 100%; // Reduçao de SLi //percentual ajustável no painel, 100% como padrão inicial, variando de 0% a 100% -input int Extensao de Ai = 0%; // Extensao de Ai// percentual ajustável no painel,0% como padrão inicial, mas podendo ser infinitamente positivo ou negativo, com -2000% ou 2000%, por exemplo -input int Reduçao de Ai = 100%; // Reduçao de Ai// percentual ajustável no painel,100% como padrão inicial, variando de 0% a 100% -input int Extensao de SLi = 0%; // Extensao de SLi// percentual ajustável no painel, 0% como padrão inicial, mas podendo ser infinitamente positivo ou negativo, com -2000% ou 2000%, por exemplo -input ENUM_TIMEFRAMES Tempo grafico = PERIOD_CURRENT; // Tempo gráfico// -input double num_lots = 1; // Numero de lotes// como padrao inicial =1 nota: o texto entre // // e em negrito é a descrição do parâmetro no painel para ajuste. Já o texto após // e sem negrito é apenas uma explicação do que eu quero O expert advisor devera ter as seguintes variaveis: -int Media Movel Exponencial de 21 periodos (CLOSE) da barra imediatamente anterior à barra atual aproximada para cima em múltiplos de 5; -int Media Movel Exponencial de 21 periodos (CLOSE) da barra imediatamente anterior à barra atual aproximada para baixo em múltiplos de 5; -int SLi; -int Ai; -int SLi*AJ; -int Ai+AJ; -int Ai*AJ; -int SLi+AJ; -double SL; -double TP; O expert advisor devera seguir as seguintes logicas: Se Posiçao = “C” e C-Convencional = true, então: -Ai = ABS(Entrada - Media Movel Exponencial de 21 periodos (CLOSE) da barra imediatamente anterior à barra atual aproximada para cima em múltiplos de 5); -SLi = Ai; -SLi*AJ = SLi * Reduçao de SLi; -Ai+AJ = Ai + (Extensao de Ai * Ai); -SL = Entrada - (SLi*AJ); -TP = Entrada + (Ai+AJ); -Enviar uma única ordem stop de compra no valor da Entrada; // valor a ser inserido no painel (manualmente) -Enviar uma única ordem stop de venda no SL; // Stop Loss// -Enviar uma única ordem stop de venda no TP; // Take Profit// -Quando a ordem Stop Loss for acionada ela deve cancelar a ordem Take Profit e vice versa -Inserir uma linha horizontal na cor laranja e com string “E” no valor da Entrada e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando a Entrada -Inserir uma linha horizontal na cor laranja e com string “Ai” no valor de Ai e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando Ai -Inserir uma linha horizontal na cor laranja e com string “SLi” no valor de SLi e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando SLi -Inserir uma linha horizontal na cor laranja e com string “SLi*AJ” no valor de SLi*AJ e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando SLi*AJ -Inserir uma linha horizontal na cor laranja e com string “Ai+AJ” no valor de Ai+AJ e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando Ai+AJ Se Posiçao = “C” e C-invertida = true, então: -Ai = ABS(Entrada - Media Movel Exponencial de 21 periodos (CLOSE) da barra imediatamente anterior à barra atual aproximada para cima em múltiplos de 5); -SLi = Ai; -Ai*AJ = Ai * Reduçao de Ai; -SLi+AJ = SLi + (Extensao de SLi * SLi); -SL = Entrada + (Ai*AJ); -TP = Entrada - (SLi+AJ); -Enviar uma única ordem stop de venda no valor da Entrada; // valor a ser inserido no painel (manualmente) -Enviar uma única ordem stop de compra no SL; // Stop Loss// -Enviar uma única ordem stop de compra no TP; // Take Profit// -Quando a ordem Stop Loss for acionada ela deve cancelar a ordem Take Profit e vice versa -Inserir uma linha horizontal na cor laranja e com string “E” no valor da Entrada e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando a Entrada -Inserir uma linha horizontal na cor laranja e com string “Ai” no valor de Ai e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando Ai -Inserir uma linha horizontal na cor laranja e com string “SLi” no valor de SLi e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando SLi -Inserir uma linha horizontal na cor laranja e com string “Ai*AJ” no valor de Ai*AJ e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando Ai*AJ -Inserir uma linha horizontal na cor laranja e com string “SLi+AJ” no valor de SLi+AJ e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando SLi+AJ Se Posiçao = “V” e V-convencional = true, então: -Ai = ABS(Entrada - Media Movel Exponencial de 21 periodos (CLOSE) da barra imediatamente anterior à barra atual aproximada para baixo em múltiplos de 5); -SLi = Ai; -SLi*AJ = SLi * Reduçao de SLi; -Ai+AJ = Ai + (Extensao de Ai * Ai); -SL = Entrada + (SLi*AJ); -TP = Entrada - (Ai+AJ); -Enviar uma única ordem stop de venda no valor da Entrada; // valor a ser inserido no painel (manualmente) -Enviar uma única ordem stop de compra no SL; // Stop Loss// -Enviar uma única ordem stop de compra no TP; // Take Profit// -Quando a ordem Stop Loss for acionada ela deve cancelar a ordem Take Profit e vice versa -Inserir uma linha horizontal na cor laranja e com string “E” no valor da Entrada e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando a Entrada -Inserir uma linha horizontal na cor laranja e com string “Ai” no valor de Ai e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando Ai -Inserir uma linha horizontal na cor laranja e com string “SLi” no valor de SLi e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando SLi -Inserir uma linha horizontal na cor laranja e com string “SLi*AJ” no valor de SLi*AJ e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando SiL*AJ -Inserir uma linha horizontal na cor laranja e com string “Ai+AJ” no valor de Ai+AJ e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando Ai+AJ Se Posiçao = “V” e V-Invertida = true, então: -Ai = ABS(Entrada - Media Movel Exponencial de 21 periodos (CLOSE) da barra imediatamente anterior à barra atual aproximada para baixo em múltiplos de 5); -SLi = Ai; -Ai*AJ = Ai * Reduçao de Ai; -SLi+AJ = SLi + (Extensao de SLi * SLi); -SL = Entrada - (Ai*AJ); -TP = Entrada + (SLi+AJ); -Enviar uma única ordem stop de compra no valor da Entrada; // valor a ser inserido no painel (manualmente) -Enviar uma única ordem stop de venda no SL; // Stop Loss// -Enviar uma única ordem stop de venda no TP; // Take Profit// -Quando a ordem Stop Loss for acionada ela deve cancelar a ordem Take Profit e vice versa -Inserir uma linha horizontal na cor laranja e com string “E” no valor da Entrada e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando a Entrada -Inserir uma linha horizontal na cor laranja e com string “Ai” no valor de Ai e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando Ai -Inserir uma linha horizontal na cor laranja e com string “SLi” no valor de SLi e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando SLi -Inserir uma linha horizontal na cor laranja e com string “Ai*AJ” no valor de Ai*AJ e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando Ai*AJ -Inserir uma linha horizontal na cor laranja e com string “SLi+AJ” no valor de SLi+AJ e que se extende entre as Barra [1], [0] e [-1] //linha pequena marcando SLi+AJ