Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1559

 
hlkrt #:
Привет, я новичок в mql5, но я научился и создал советник, который дает "BREAK OF STRUCTURE". Он печатает "BOS", когда найден BOS, он отлично работает и отображается как объект в тестере стратегий, но я не могу применить его на графике реального времени. Пожалуйста, помогите.

Проверил. Он, что то рисует, на графике реального времени.


 
Aleksandr Slavskii #:

Может лучше так попробовать

Смысла это не меняет, облазил все форумы, ничего не нашел толком.  PERIOD_CURRENT работает нормально, как только ставишь другой тф, 1970 год пишет. 

PS: разобрался. 
 
 
Здравствуйте, я новичок в копировании сигналов, пожалуйста, подскажите мне, я подписался на сигнал, но он продолжает не подписываться сам по себе, поэтому мне приходится заходить в опции и включать подписку на сигнал в реальном времени каждый раз, есть ли какая-то проблема с настройками или я делаю что-то не так, btw у меня включен vps, пожалуйста, помогите!
 
akz786 подписку на сигнал в реальном времени каждый раз, есть ли какая-то проблема с настройками или я делаю что-то не так, btw у меня включен vps, пожалуйста, помогите!

Посмотрите инструкции по HowTo (если вы что-то пропустили, например):

Как подписаться на сигналы MT4/MT5 - инструкции
https://www.mql5.com/en/forum/189731
(MT4)
https://www.mql5.com/en/forum/336422
(MT5)

How to Subscribe to a MT4 Signal (new instructions, after 1065 version upgrade) - How to subscribe to a MΤ4 signal on MT4 platform
How to Subscribe to a MT4 Signal (new instructions, after 1065 version upgrade) - How to subscribe to a MΤ4 signal on MT4 platform
  • 2017.04.10
  • Eleni Anna Branou
  • www.mql5.com
In the   deviation/slippage   field, select an option and click   ok   in the   options   window to close it. Go to the   search area   of your mt4 platform, on the upper right corner (where the magnifying glass is), type in the name of the signal you want to subscribe and click   enter
 
Здравствуйте! Подскажите- в МТ5 есть счет с хеджированием, который в приложении с телефона отображается правильно, а с ноутбука пишется- что он неттинговый. Что с этим делать? Как исправить?
 
DC784FE7 #:
Здравствуйте! Подскажите- в МТ5 есть счет с хеджированием, который в приложении с телефона отображается правильно, а с ноутбука пишется- что он неттинговый. Что с этим делать? Как исправить?

Чудес не бывает же. Если тип счёта неттинговый или хэджевый, то он и будет неттинговым, либо хэджевым на любой платформе.

Проверьте правильность логина (номер счёта, аккаунта)

 
Здравствуйте! Собираюсь сделать объемного эксперта и появились вопросы, какими способами его лучше создать для минимальной нагрузки на ПК и терминал + быстрой работой эксперта?
1) Создать эксперта с использованием  самодельных  бибилиотек (Будет ли тогда возможность выставить данного эксперта на маркет?)
2) Прописывать все сразу в эксперте без использования самодельных библиотек
 

Друзья! Приветствую!

Помогите исправить , выдает ошибку: 

Строка 49   'iStochastic' - wrong parameters count

   built-in: int iStochastic(const string,ENUM_TIMEFRAMES,int,int,int,ENUM_MA_METHOD,ENUM_STO_PRICE)

//+------------------------------------------------------------------+
//|                                                      MyStrategy.mq5|
//|                        Copyright 2023, Your Name                 |
//|                                       https://www.yourwebsite.com |
//+------------------------------------------------------------------+
#property strict

input int emaPeriod = 50;                // Период EMA
input int rsiPeriod = 7;                  // Период RSI для входа
input int rsiTakeProfitPeriod = 14;       // Период RSI для Take Profit
input int stochasticKPeriod = 14;         // Период K Stochastic
input int stochasticDPeriod = 3;          // Период D Stochastic
input double lotSize = 0.1;               // Размер лота

double emaValue;
double rsiValue;
double stochasticK;
double stochasticD;

//+------------------------------------------------------------------+
//| Expert initialization function                                     |
//+------------------------------------------------------------------+
int OnInit()
{
    return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                   |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
    // Получаем данные индикаторов
    emaValue = iMA(NULL, PERIOD_M15, emaPeriod, 0, MODE_EMA, PRICE_CLOSE);
    rsiValue = iRSI(NULL, PERIOD_M15, rsiPeriod, PRICE_CLOSE);
    double rsiTakeProfitValue = iRSI(NULL, PERIOD_M15, rsiTakeProfitPeriod, PRICE_CLOSE);

    // Исправленный вызов iStochastic
    double stochasticBufferK[];
    double stochasticBufferD[];

    int handle = iStochastic(NULL, PERIOD_M15, stochasticKPeriod, stochasticDPeriod, MODE_SMA, PRICE_CLOSE);
    
    if (handle != INVALID_HANDLE)
    {
        if (CopyBuffer(handle, 0, 0, 1, stochasticBufferK) > 0 &&
            CopyBuffer(handle, 1, 0, 1, stochasticBufferD) > 0)
        {
            stochasticK = stochasticBufferK[0];
            stochasticD = stochasticBufferD[0];
        }
        else
        {
            Print("Ошибка при копировании буфера стохастика: ", GetLastError());
        }
    }
    else
    {
        Print("Ошибка при создании хендла стохастика: ", GetLastError());
    }

    double currentBid = SymbolInfoDouble(Symbol(), SYMBOL_BID); // Текущая цена Bid
    double currentAsk = SymbolInfoDouble(Symbol(), SYMBOL_ASK); // Текущая цена Ask

    // Условия для покупки
    if (currentAsk > emaValue && rsiValue < 30 && stochasticK < 20)
    {
        // Проверяем открыты ли уже позиции
        if (PositionsTotal() == 0)
        {
            MqlTradeRequest request;
            MqlTradeResult result;

            ZeroMemory(request);
            ZeroMemory(result);

            request.action = TRADE_ACTION_DEAL;
            request.symbol = Symbol();
            request.volume = lotSize;
            request.type = ORDER_TYPE_BUY; // Используем правильный идентификатор
            request.price = currentAsk;
            request.tp = 0; // Установите TP по желанию
            request.sl = 0; // Установите SL по желанию

            if (!OrderSend(request, result))
            {
                Print("Ошибка при открытии ордера на покупку: ", GetLastError());
            }
        }
    }

    // Условия для продажи
    if (currentBid < emaValue && rsiValue > 70 && stochasticK > 80)
    {
        // Проверяем открыты ли уже позиции
        if (PositionsTotal() == 0)
        {
            MqlTradeRequest request;
            MqlTradeResult result;

            ZeroMemory(request);
            ZeroMemory(result);

            request.action = TRADE_ACTION_DEAL;
            request.symbol = Symbol();
            request.volume = lotSize;
            request.type = ORDER_TYPE_SELL; // Используем правильный идентификатор
            request.price = currentBid;
            request.tp = 0; // Установите TP по желанию
            request.sl = 0; // Установите SL по желанию

            if (!OrderSend(request, result))
            {
                Print("Ошибка при открытии ордера на продажу: ", GetLastError());
            }
        }
    }

    // Закрытие позиций на основе RSI
    if (PositionsTotal() > 0)
    {
        for (int i = PositionsTotal() - 1; i >= 0; i--)
        {
            ulong ticket = PositionGetTicket(i);
            if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
            {
                if (rsiTakeProfitValue > 30)
                {
                    MqlTradeRequest closeRequest;
                    MqlTradeResult closeResult;

                    ZeroMemory(closeRequest);
                    ZeroMemory(closeResult);

                    closeRequest.action = TRADE_ACTION_DEAL;
                    closeRequest.position = ticket;

                    if (!OrderSend(closeRequest, closeResult))
                    {
                        Print("Ошибка при закрытии ордера на покупку: ", GetLastError());
                    }
                }
            }

            if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL)
            {
                if (rsiTakeProfitValue < 70)
                {
                    MqlTradeRequest closeRequest;
                    MqlTradeResult closeResult;

                    ZeroMemory(closeRequest);
                    ZeroMemory(closeResult);

                    closeRequest.action = TRADE_ACTION_DEAL;
                    closeRequest.position = ticket;

                    if (!OrderSend(closeRequest, closeResult))
                    {
                        Print("Ошибка при закрытии ордера на продажу: ", GetLastError());
                    }
                }
            }
        }
    }
}
//+------------------------------------------------------------------+

 
antonrex #:

Друзья! Приветствую!

Помогите исправить , выдает ошибку: 

Строка 49   'iStochastic' - wrong parameters count

   built-in: int iStochastic(const string,ENUM_TIMEFRAMES,int,int,int,ENUM_MA_METHOD,ENUM_STO_PRICE)


После stochasticDPeriod не указали значение замедления slowing. Кроме того, последним значением может быть либо STO_LOWHIGH, либо STO_CLOSECLOSE, но никак не PRICE_CLOSE.

С уважением, Владимир.