Meu robô daytrade

명시

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