Termos de Referência
//+------------------------------------------------------------------+
//| Expert Advisor Inside Bar com ADX para MetaTrader |
//+------------------------------------------------------------------+
#property strict
// Definindo as variáveis
input int ADXPeriod = 14; // Período do ADX
input int ADXThreshold = 25; // Limite do ADX para confirmação da tendência
input double RiskRewardRatio = 2; // Risco/Recompensa (1:2)
double LotSize = 0.1; // Tamanho da Lote
// Função para verificar Inside Bar e executar a ordem
void OnTick()
{
// Calculando o valor do ADX
double ADXValue = iADX(NULL, 0, ADXPeriod, PRICE_CLOSE, 0);
// Verificando Inside Bar (vela atual dentro da vela anterior)
if (High[1] < High[2] && Low[1] > Low[2])
{
// Confirmando a tendência com o ADX
if (ADXValue > ADXThreshold)
{
// Definindo o Stop Loss e Take Profit com base na mínima/máxima do Inside Bar
double InsideBarHigh = High[1];
double InsideBarLow = Low[1];
double InsideBarRange = InsideBarHigh - InsideBarLow;
// Calculando Stop Loss e Take Profit
double StopLoss, TakeProfit;
// Condição de compra (rompimento da máxima do Inside Bar)
if (Close[1] > InsideBarHigh)
{
StopLoss = InsideBarLow; // SL na mínima do Inside Bar
TakeProfit = InsideBarHigh + RiskRewardRatio * InsideBarRange; // TP com risco/recompensa 1:2
// Abrindo a ordem de compra
OpenBuyOrder(StopLoss, TakeProfit);
}
// Condição de venda (rompimento da mínima do Inside Bar)
if (Close[1] < InsideBarLow)
{
StopLoss = InsideBarHigh; // SL na máxima do Inside Bar
TakeProfit = InsideBarLow - RiskRewardRatio * InsideBarRange; // TP com risco/recompensa 1:2
// Abrindo a ordem de venda
OpenSellOrder(StopLoss, TakeProfit);
}
}
}
}
// Função para abrir uma ordem de compra
void OpenBuyOrder(double StopLoss, double TakeProfit)
{
// Calculando o preço de abertura da ordem de compra
double AskPrice = Ask;
// Abrindo a ordem de compra
int ticket = OrderSend(Symbol(), OP_BUY, LotSize, AskPrice, 3, StopLoss, TakeProfit, "Inside Bar Buy", 0, 0, clrGreen);
if (ticket < 0)
{
Print("Erro ao abrir ordem de compra: ", GetLastError());
}
}
// Função para abrir uma ordem de venda
void OpenSellOrder(double StopLoss, double TakeProfit)
{
// Calculando o preço de abertura da ordem de venda
double BidPrice = Bid;
// Abrindo a ordem de venda
int ticket = OrderSend(Symbol(), OP_SELL, LotSize, BidPrice, 3, StopLoss, TakeProfit, "Inside Bar Sell", 0, 0, clrRed);
if (ticket < 0)
{
Print("Erro ao abrir ordem de venda: ", GetLastError());
}
}
Respondido
1
Classificação
Projetos
241
34%
Arbitragem
21
48%
/
29%
Expirado
3
1%
Livre
2
Classificação
Projetos
741
34%
Arbitragem
49
53%
/
39%
Expirado
14
2%
Trabalhando
3
Classificação
Projetos
478
40%
Arbitragem
105
40%
/
24%
Expirado
82
17%
Carregado
Publicou: 2 códigos
4
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
5
Classificação
Projetos
8
0%
Arbitragem
4
0%
/
100%
Expirado
3
38%
Livre
6
Classificação
Projetos
51
8%
Arbitragem
0
Expirado
0
Livre
7
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
8
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
9
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
10
Classificação
Projetos
0
0%
Arbitragem
0
Expirado
0
Livre
11
Classificação
Projetos
4
0%
Arbitragem
2
50%
/
50%
Expirado
0
Livre
12
Classificação
Projetos
945
47%
Arbitragem
309
58%
/
27%
Expirado
125
13%
Livre
Pedidos semelhantes
Quero criar uma automação com minha identidade visual e que seja algo minimamente rentável…. Pq quero criar conteúdo e entregar o robo para meus alunos, Precisa ser algo principalmente com o ativo Xauusd, Quero ver Projetos e ideias tbm… porem minha ideia é ter algo automático mesmo pros futuros alunos
Informações sobre o projeto
Orçamento
40+ USD