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

 
Oleg Kubenko #:

а где они теперь?

Похоже, что нет смысла их продавать - вот и убрали.

 
Aleksey Vyazmikin #:

Напишите детально алгоритм, что там считаете, а то я не понимаю, почему нельзя сразу определить стоп...

ладно вроде бы переделал как вы говорите, вы это имели ввиду? (то что касается уменьшения убытков в коде) эта функция вызывается на каждом тике

datetime lastCandleTime = 0;
void UpdateTrailingStops() {
    if (!ActivateTrailStop || !EnableStopLoss) return; // Проверка, включены ли трейлинг-стоп и стоп-лосс

    datetime currentCandleTime = iTime(_Symbol, PERIOD_M1, 0); // Время текущей свечи

    // Проверка, началась ли новая свеча
    if (currentCandleTime != lastCandleTime) {
        lastCandleTime = currentCandleTime; // Обновляем время последней обработанной свечи

        // Перебор всех открытых позиций
        for (int i = PositionsTotal() - 1; i >= 0; --i) {
            ulong ticket = PositionGetTicket(i);
            if (PositionSelectByTicket(ticket)) { // Выбор позиции по билету
                if (PositionGetInteger(POSITION_MAGIC) == MagicNumber) { // Проверка магического числа
                    double openPrice = PositionGetDouble(POSITION_PRICE_OPEN);
                    double currentPrice = PositionGetDouble(POSITION_PRICE_CURRENT);
                    double profit = PositionGetDouble(POSITION_PROFIT);
                    double point = SymbolInfoDouble(_Symbol, SYMBOL_POINT);
                    double stopLoss = PositionGetDouble(POSITION_SL);
                    double trailStopLevel = stopLoss; // Начальное значение стоп-лосса
                    double lastHigh = iHigh(_Symbol, PERIOD_M1, 1); // Получение хая предыдущей свечи
                    double lastLow = iLow(_Symbol, PERIOD_M1, 1); // Получение лоу предыдущей свечи

                    if (profit > 0 && profit / point >= ActivationProfit) {
                        // Логика для прибыльных позиций
                        if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) {
                            trailStopLevel = currentPrice - TrailingStop * point;
                            if (trailStopLevel > openPrice && trailStopLevel > stopLoss) {
                                if (trailStopLevel != stopLoss) {
                                    trade.PositionModify(ticket, trailStopLevel, PositionGetDouble(POSITION_TP));
                                }
                            }
                        } else {
                            trailStopLevel = currentPrice + TrailingStop * point;
                            if (trailStopLevel < openPrice && trailStopLevel < stopLoss) {
                                if (trailStopLevel != stopLoss) {
                                    trade.PositionModify(ticket, trailStopLevel, PositionGetDouble(POSITION_TP));
                                }
                            }
                        }
                    } else if (profit < 0) { // Логика уменьшения убытков при неприбыльных позициях
                        if (PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY) {
                            trailStopLevel = MathMax(stopLoss, currentPrice - (lastLow - stopLoss));
                        } else {
                            trailStopLevel = MathMin(stopLoss, currentPrice + (stopLoss - lastHigh));
                        }
                        if (trailStopLevel != stopLoss) {
                            trade.PositionModify(ticket, trailStopLevel, PositionGetDouble(POSITION_TP));
                        }
                    }
                }
            }
        }
    }
}
 
Oleg Kubenko #:

ладно вроде бы переделал как вы говорите, вы это имели ввиду? (то что касается уменьшения убытков в коде) эта функция вызывается на каждом тике

Ну, результат устраивает?

Я вообще чего то код смотрю и не пойму - что тут насчитали...

сurrentPrice - (lastLow - stopLoss)

Ну, думаю я просто устал, а Вы всё уже детально проверили в визуализаторе...

 
Aleksey Vyazmikin #:

Ну, результат устраивает?

Я вообще чего то код смотрю и не пойму - что тут насчитали...

Ну, думаю я просто устал, а Вы всё уже детально проверили в визуализаторе...

это я расчитал приближение стоп лоса к цене хай или лоу предыдущего бара, пока что нет не проверил, тестирую предыдущие результаты

покачто на графике цена идет в мою пользу и передвигается только трейл стоп по прибыли
 

Мне дали информацию, что существует в MQL5 функция iVolatility с примером:

double volatility = iVolatility(_Symbol, PERIOD_CURRENT, 14, PRICE_CLOSE, 0, 0);
Но не могу нигде про это прочитать. Имеет место такая функция? Если нет, как тогда получить текущую волатильность в MQL5?


 
maxvoronin74 #:

Мне дали информацию, что в MQL5 есть функция iVolatility с примером:

Но я нигде не могу прочитать об этом. Существует ли такая функция? Если нет, то как можно получить текущую волатильность в MQL5?


не существует, простая проверка в документации подскажет вам, что существует.

 
Paul Anscombe #:

не существует, простая проверка в документации подскажет вам, что существует.

Благодарю за ответ.
 
maxvoronin74 #:
Спасибо за ваш ответ.

Почему вы изменили мой ответ в вашей цитате, чтобы он означал противоположное тому, что я сказал? Очень вводящий в заблуждение, поскольку он НЕ существует

Мой ответ:

не существует, простая проверка в документации скажет вам, что существует.

Ваша цитата:

Пол Анскомб #:

не существует, простая проверка в документации скажет вам, что она существует.

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2024.04.29
  • Aleksey Vyazmikin
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 
Paul Anscombe #:

Почему вы изменили мой ответ в вашей цитате, чтобы он означал противоположное тому, что я сказал? Очень вводящий в заблуждение, поскольку он НЕ существует

Мой ответ:

не существует, простая проверка в документации скажет вам, что существует.

Ваша цитата:

Пол Анскомб #:

не существует, простая проверка в документации скажет вам, что она существует.

Извините, я не понял, о чем Вы.
 
спасибо за ответы товарищи, а что в  данном случае означают красные точки по отношению к зеленым, зеленые я так понимаю это лучшие варианты а красный это худшие, тогда почему количество красных в конце справа не уменьшается   и вот конечный результат тестов   как видно красных не стало меньше
Причина обращения: