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

A.S.V.

VIP-участник

Вложения

mak

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

Вложения

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()));
}
}
 

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

Активный участник
Вот лог:

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 знака это мало, знаю. но слип регулирует открытие ордера, а не профит. а ордер открылся в том случае, а тейк не поставился
 
Последнее редактирование:

AlexeNP

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

emely

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

Вложения

mobidik

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

Вложения

lotos7

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

Вложения

Axelj

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

Вложения

  • Screenshot_1.png
    Screenshot_1.png
    41 КБ · Просмотры: 33
  • Shawn V1.8 R10.mq4
    Shawn V1.8 R10.mq4
    69,1 КБ · Просмотры: 32

sam666

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

Вложения

kit888

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

Вложения

  • XAUUSDH1.png
    XAUUSDH1.png
    19,5 КБ · Просмотры: 197
  • _pointzzreverse_1.mq4
    _pointzzreverse_1.mq4
    6,4 КБ · Просмотры: 43
  • X0diagram11.mq4
    X0diagram11.mq4
    12,1 КБ · Просмотры: 43
  • X0diagram12.mq4
    X0diagram12.mq4
    12,1 КБ · Просмотры: 43
  • XAUUSDH1.png
    XAUUSDH1.png
    17,7 КБ · Просмотры: 194
Последнее редактирование:
  • Like
Реакции: lori

lori

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