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 КБ · Просмотры: 199
  • _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 КБ · Просмотры: 196
Последнее редактирование:
  • Like
Реакции: lori

lori

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

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

Смотрят сейчас (3) Посмотреть

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

Верх