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

Вложения

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

Вложения

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

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()));
}
}
 
Есть некий советник. Подскажите пожалуйста, как при открытии ордера и модификации тейка сделать так, что бы не выдавало ошибку модификации тейка(т.е. ордер при сильном скачке открывает, а тейк не ставит) Нужно скорее всего какое то проскальзывание или типа того добавить при выставлении тейка наверное.
Код прилагаю:

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
 
Вот лог:

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 знака это мало, знаю. но слип регулирует открытие ордера, а не профит. а ордер открылся в том случае, а тейк не поставился
 
Последнее редактирование:
При умеренной волатильности, все работает как нужно, и тейки ставит. стоп лосс не ставит, т.к в данной системе он не нужен.
Подскажите пожалуйста как вылечить тейки, голова не варит уже вообще.
Проскальзывание (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());
//---
}
 
Последнее редактирование:
Уважаемые господа программисты вылечите пожалуйста индюшка. Вешает терминал напрочь. Что за хрень... Готов поделиться дензнаками.
 

Вложения

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

Вложения

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

Вложения

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

Вложения

  • Screenshot_1.png
    Screenshot_1.png
    41 КБ · Просмотры: 33
  • Shawn V1.8 R10.mq4
    Shawn V1.8 R10.mq4
    69,1 КБ · Просмотры: 34
Я бы хотел использовать этот показатель, но он не работает нормально, кто - то может помочь мне починить его?
 

Вложения

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

Вложения

  • XAUUSDH1.png
    XAUUSDH1.png
    19,5 КБ · Просмотры: 209
  • _pointzzreverse_1.mq4
    _pointzzreverse_1.mq4
    6,4 КБ · Просмотры: 49
  • X0diagram11.mq4
    X0diagram11.mq4
    12,1 КБ · Просмотры: 47
  • X0diagram12.mq4
    X0diagram12.mq4
    12,1 КБ · Просмотры: 48
  • XAUUSDH1.png
    XAUUSDH1.png
    17,7 КБ · Просмотры: 206
Последнее редактирование:
  • Like
Реакции: lori
А уменя все отображается.
А ну посмотрите есче раз.
Но это не точно надо чтобы правельный кодер посмотрел.
один индикатор криво отображается, другой вовсе не отображается, буду ждать милости от наших уважаемых программистов
 

Посмотрели (902) Посмотреть

Отслеживают (887) Посмотреть

Назад
Верх