指定

//+------------------------------------------------------------------+
//| 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 codes
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