# MQL госпиталь (бывшая "Больничка"): исправляем ошибки

Раздел: Язык программирования MQL4
Автор темы: Юлия
Создана: 2014-10-14 20:59
Ответов: 8848 | Просмотров: 1588322
Страница 376 из 443
Источник: https://forexsystemru.com/threads/77226/page-376

---

## A.S.V. — 2021-08-28 09:17

> Цитата (wintrades):
> Благодарю. Но задал #property strict и выдало несколько предупреждений и 2 ошибки. Можно ли их исправить, пожалуйста?

исправил появление ошибок и предупреждений при применении #property strict

## mak — 2021-09-01 09:28

Добрый день. Будьте добры, могу я надеяться на ответ на мой запрос от 25.08. N 375 относительно запаздывания индикатора.

## flyyy09 — 2021-09-01 22:07

Есть некий советник. Подскажите пожалуйста, как при открытии ордера и модификации тейка сделать так, что бы не выдавало ошибку модификации тейка(т.е. ордер при сильном скачке открывает, а тейк не ставит) Нужно скорее всего какое то проскальзывание или типа того добавить при выставлении тейка наверное. 
Код прилагаю:

void BuyOrder()
{
    double SL = Ask - 0*PipValue*Point;
    if (0 == 0) SL = 0;
    double TP = Ask + Takeprofit*PipValue*Point;
    if (Takeprofit == 0) TP = 0;
    int ticket = -1;
    if (true)
    ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 4, 0, 0, "", magic1, 0, Blue);
    else
    ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 4, SL, TP, "", magic1, 0, Blue);
    if (ticket > -1)
    {
        if (true)
        {
            OrderSelect(ticket, SELECT_BY_TICKET);
            bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
            if (ret == false)
            Print("OrderModify() error - ", ErrorDescription(GetLastError()));
        }
            
    }
    else
    {
        Print("OrderSend() error - ", ErrorDescription(GetLastError()));
    }
}

## flyyy09 — 2021-09-01 22:10

> Цитата (flyyy09):
> Есть некий советник. Подскажите пожалуйста, как при открытии ордера и модификации тейка сделать так, что бы не выдавало ошибку модификации тейка(т.е. ордер при сильном скачке открывает, а тейк не ставит) Нужно скорее всего какое то проскальзывание или типа того добавить при выставлении тейка наверное.
> Код прилагаю:
>
> void BuyOrder()
> {
>     double SL = Ask - 0*PipValue*Point;
>     if (0 == 0) SL = 0;
>     double TP = Ask + Takeprofit*PipValue*Point;
>     if (Takeprofit == 0) TP = 0;
>     int ticket = -1;
>     if (true)
>     ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 4, 0, 0, "", magic1, 0, Blue);
>     else
>     ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 4, SL, TP, "", magic1, 0, Blue);
>     if (ticket > -1)
>     {
>         if (true)
>         {
>             OrderSelect(ticket, SELECT_BY_TICKET);
>             bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue);
>             if (ret == false)
>             Print("OrderModify() error - ", ErrorDescription(GetLastError()));
>         }
>
>     }
>     else
>     {
>         Print("OrderSend() error - ", ErrorDescription(GetLastError()));
>     }
> }

Вот лог:
    
    17:00:17.591    EURUSD,M15: open #1005713 sell 0.09 EURUSD at 1.17554 ok
    17:00:17.591    EURUSD,M15: OrderModify() error - invalid stops

## flyyy09 — 2021-09-01 22:12

> Цитата (flyyy09):
> Вот лог:
>
>     17:00:17.591    EURUSD,M15: open #1005713 sell 0.09 EURUSD at 1.17554 ok
>     17:00:17.591    EURUSD,M15: OrderModify() error - invalid stops

При умеренной волатильности, все работает как нужно, и тейки ставит. стоп лосс не ставит, т.к в данной системе он не нужен.
Подскажите пожалуйста как вылечить тейки, голова не варит уже вообще.
Проскальзывание (Slippage) стоит 4пп. Может быть из за него? для 5 знака это мало, знаю. но слип регулирует открытие ордера, а не профит. а ордер открылся в том случае, а тейк не поставился

## ZIKILO — 2021-09-01 22:24

Выложите весь советник

## AlexeNP — 2021-09-01 22:47

> Цитата (flyyy09):
> При умеренной волатильности, все работает как нужно, и тейки ставит. стоп лосс не ставит, т.к в данной системе он не нужен.
> Подскажите пожалуйста как вылечить тейки, голова не варит уже вообще.
> Проскальзывание (Slippage) стоит 4пп. Может быть из за него? для 5 знака это мало, знаю. но слип регулирует открытие ордера, а не профит. а ордер открылся в том случае, а тейк не поставился

в самом коде имеются ... мягко говоря. неоднозначные решения... типа 0 ==0
нужна проверка на минимальное расстояние профита и лосса...

//Внешние переменные
ushort StopLoss,Takeprofit;

void BuyOrder()
  {
//---
   long min_stop=MathMax(SymbolInfoInteger(NULL,SYMBOL_TRADE_STOPS_LEVEL),2*SymbolInfoInteger(NULL,SYMBOL_SPREAD));
   double ask=SymbolInfoDouble(NULL,SYMBOL_ASK),
          SL=StopLoss>0? ask-MathMax(min_stop,StopLoss)*_Point:0,
          TP=Takeprofit>0? ask+MathMax(min_stop,Takeprofit)*_Point:0;
   if(OrderSend(NULL,OP_BUY,Lots,ask,4,SL,TP,NULL,magic1,0,clrBlue)<0)
      Print(GetLastError());
//---
  }

## serezha1987 — 2021-09-12 18:19

Почините советник

## emely — 2021-09-15 22:32

Уважаемые господа программисты вылечите пожалуйста индюшка. Вешает терминал напрочь. Что за хрень... Готов поделиться дензнаками.

## mobidik — 2021-09-15 23:19

> Цитата (emely):
> Уважаемые господа программисты вылечите пожалуйста индюшка. Вешает терминал напрочь. Что за хрень... Готов поделиться дензнаками.

Добавил глубину истории, заодно подправил алерт, а то трезвонит на каждом тике, забирай.

## lotos7 — 2021-09-16 15:29

Нужна помощь докторов по лечению потери видимости индикатора на экране МТ4.

## ZenFX — 2021-09-16 16:43

if (Year() >= 2020) return (0);
Закомментил ).

## lotos7 — 2021-09-16 16:59

> Цитата (ZenFX):
> if (Year() >= 2020) return (0);
> Закомментил ).

БЛАГОДАРЮ

## Axelj — 2021-09-16 18:48

привет, я хочу оптимизировать этот робот, но он отображает ошибку 'error 130', исправить. Спасибо

## emely — 2021-09-17 07:04

> Цитата (mobidik):
> Добавил глубину истории, заодно подправил алерт, а то трезвонит на каждом тике, забирай.

(y)

## sam666 — 2021-09-17 07:14

Я бы хотел использовать этот показатель, но он не работает нормально, кто - то может помочь мне починить его?

## ecurrencyteam — 2021-09-17 12:12

> Цитата (sam666):
> I would like to use this indicator, but it does not work fine, can someone help me fix it?

Working File

## lori — 2021-09-18 01:13

Помогите пожалуйста, не отображаются индикаторы

## kit888 — 2021-09-18 05:26

> Цитата (lori):
> Помогите пожалуйста, не отображаются индикаторы

А уменя все отображается.
А ну посмотрите есче раз.
Но это не точно надо чтобы правельный кодер посмотрел.

## lori — 2021-09-18 13:50

> Цитата (kit888):
> А уменя все отображается.
> А ну посмотрите есче раз.
> Но это не точно надо чтобы правельный кодер посмотрел.

один индикатор криво отображается, другой вовсе не отображается, буду ждать милости от наших уважаемых программистов

---

Следующая страница: https://forexsystemru.com/threads/77226/page-377
