Техническое задание

//+------------------------------------------------------------------+
//| 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
Разработчик 1
Оценка
(153)
Проекты
240
34%
Арбитраж
20
45% / 30%
Просрочено
3
1%
Свободен
2
Разработчик 2
Оценка
(600)
Проекты
694
33%
Арбитраж
43
47% / 44%
Просрочено
12
2%
Занят
3
Разработчик 3
Оценка
(298)
Проекты
477
40%
Арбитраж
105
40% / 24%
Просрочено
81
17%
Загружен
Опубликовал: 2 примера
4
Разработчик 4
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
5
Разработчик 5
Оценка
(7)
Проекты
8
0%
Арбитраж
4
0% / 100%
Просрочено
3
38%
Свободен
6
Разработчик 6
Оценка
(50)
Проекты
51
8%
Арбитраж
0
Просрочено
0
Свободен
7
Разработчик 7
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
8
Разработчик 8
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
9
Разработчик 9
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
10
Разработчик 10
Оценка
Проекты
0
0%
Арбитраж
0
Просрочено
0
Свободен
11
Разработчик 11
Оценка
(3)
Проекты
3
0%
Арбитраж
2
0% / 50%
Просрочено
0
Работает
12
Разработчик 12
Оценка
(574)
Проекты
945
47%
Арбитраж
309
58% / 27%
Просрочено
125
13%
Свободен

Информация о проекте

Бюджет
40+ USD