指定
//+------------------------------------------------------------------+
//| 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());
}
}
応答済み
1
評価
プロジェクト
232
32%
仲裁
18
39%
/
33%
期限切れ
1
0%
仕事中
2
評価
プロジェクト
618
33%
仲裁
35
37%
/
49%
期限切れ
10
2%
多忙
3
評価
プロジェクト
469
39%
仲裁
102
40%
/
24%
期限切れ
77
16%
取り込み中
パブリッシュした人: 2 codes
4
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
暇
5
評価
プロジェクト
8
0%
仲裁
4
0%
/
100%
期限切れ
3
38%
暇
6
評価
プロジェクト
49
8%
仲裁
0
期限切れ
0
暇
7
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
暇
8
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
暇
9
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
暇
10
評価
プロジェクト
0
0%
仲裁
0
期限切れ
0
暇
11
評価
プロジェクト
3
0%
仲裁
1
0%
/
100%
期限切れ
0
暇
12
評価
プロジェクト
945
47%
仲裁
309
58%
/
27%
期限切れ
125
13%
暇
類似した注文
Gold MetaLockDay EA
30+ USD
//+------------------------------------------------------------------+ //| Gold MetaLockDay EA (MT5) | //| Meta líquida diária com MIX de entradas (XAUUSD) | //+------------------------------------------------------------------+ #property strict #include <Trade/Trade.mqh> CTrade trade; //======================== INPUTS ========================// input string InpSymbol = ""; //
Preciso de um desenvolvedor com experiência comprovada em MQL5 , especificamente em automação de alertas do MetaTrader 5 com envio automático de mensagens e prints para canal do Telegram . O projeto não é do zero . Já possuo: Código do indicador / lógica em MQL5 Biblioteca de integração com Telegram (API já pronta) O trabalho consiste em ajustar / implementar um Expert Advisor para que, quando um alerta específico
プロジェクト情報
予算
40+ USD