Ваши вопросы по языку MQL4

hitkill

Активный участник
выдает ошибку 130 - ERR_INVALID_STOPS Неправильные стопы

подскажите в чем ошибка...уже мозг плывет)

OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
 

Nata_FX

Активный участник
Стоп и ТП в 15 пп. может быть меньше чем стоплевел. Определить стоплевел можно так
MarketInfo(Symbol(),MODE_STOPLEVEL);
Тем более что ТП еще меньше на спред. Особенно актуально если 5-ти знак :)
 
Последнее редактирование:

DIN_Smol

Новичок форума
может стоп коротковат? 5-тизнак? больше ставить пробовал?
-----------------
опоздал=)
 

hitkill

Активный участник
пробовал и 500)
самое интересное, что этот скрипт приведен в учебнике mql



//--------------------------------------------------------------------
// simpleopen.mq4
// Предназначен для использования в качестве примера в учебнике MQL4.
//--------------------------------------------------------------------

int start() // Спец. функция start()
{
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-15*Point,Bid+15*Point);
return; // Выход из start()
}
//--------------------------------------------------------------------
 

Nata_FX

Активный участник
Так пробовал, или только стоп менял?
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-500*Point,Bid+500*Point);
 

hitkill

Активный участник
OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Bid-500*Point,Bid+500*Point);

именно так и пробовал...

стоплэвэл - 0
 

hitkill

Активный участник
я уже час пытаюсь понять в чем дело и никак)
от отчаяния решил написать на форум
 

Nata_FX

Активный участник
Все замечательно работает даже со стопом в 15 пп. Ты случайно не ECN или NDD север выбрал? На каком-то из них стопы можно ставить только после открытия ордера
 

hitkill

Активный участник
так точно...)
ндд был) сменил сервер, заработало..)потом увидел ваше сообщение)
спасибо!



тогда встречный вопрос, как можно тоже самое описать для ндд? если не трудно помогите)
 

Nata_FX

Активный участник
Это не подвох, на таких серверах сначала надо открыть ордер, а потом только добавлять стоп и тейк. Вот пример

PHP:
int start() 
{ 
int ticket = OrderSend(Symbol(),OP_BUY,0.1,MarketInfo(Symbol(),MODE_ASK),3,0,0); 
OrderSelect(ticket,SELECT_BY_TICKET);
OrderModify(ticket,OrderOpenPrice(), OrderOpenPrice() - 15* MarketInfo(Symbol(),MODE_POINT),
                OrderOpenPrice() + 15* MarketInfo(Symbol(),MODE_POINT),0,Blue);
return; }
Кстати, этот код будет работать и на обычном сервере.
 
Последнее редактирование:

DiZin

Местный знаток
Это не подвох, на таких серверах сначала надо открыть ордер, а потом только добавлять стоп и тейк. Вот пример

PHP:
int start() 
{ 
int ticket = OrderSend(Symbol(),OP_BUY,0.1,MarketInfo(Symbol(),MODE_ASK),3,0,0); 
OrderSelect(ticket,SELECT_BY_TICKET);
OrderModify(ticket,OrderOpenPrice(), OrderOpenPrice() - 15* MarketInfo(Symbol(),MODE_POINT),
                OrderOpenPrice() + 15* MarketInfo(Symbol(),MODE_POINT),0,Blue);
return; }
Кстати, этот код будет работать и на обычном сервере.
OrderSelect не нужен.... вместо этого лучше проверку поставить, что ticket > 0 (что ордер открылся благополучно)
Еще не совсем понятны извращения типа
MarketInfo(Symbol(),MODE_POINT), ведь есть просто Point
MarketInfo(Symbol(),MODE_ASK) - ведь есть просто Ask
 

hitkill

Активный участник
OrderSelect не нужен.... вместо этого лучше проверку поставить, что ticket > 0 (что ордер открылся благополучно)
Еще не совсем понятны извращения типа
MarketInfo(Symbol(),MODE_POINT), ведь есть просто Point
MarketInfo(Symbol(),MODE_ASK) - ведь есть просто Ask


спасибо!
 

Nata_FX

Активный участник
OrderSelect не нужен....
OrderSelect используется чтобы получить цену открытия ордера OrderOpenPrice()
Еще не совсем понятны извращения типа
MarketInfo(Symbol(),MODE_POINT), ведь есть просто Point
MarketInfo(Symbol(),MODE_ASK) - ведь есть просто Ask
MarketInfo не требует вызова RefreshRates, так как эта функция обращается непосредственно к котировочному механизму.
 

Nata_FX

Активный участник
hitkill вообще советую исходники советников разных посмотреть, в нормальных роботах ордер открывается отдельной функцией с кучей проверок и попыток.
Вот здесь сборник всяких разных функций, взгляни, много нового узнаешь
_http://forum.mql4.com/ru/11287
 
Верх