
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Огромное спасибо. Избавился от этого. Теперь 130 ошибка, но я с этим надеюсь справлюсь :)
Сомневаюсь.
Позвольте угадаю, в Вашем ДЦ 5 знаков!?
Здравствуйте.
Помогите пожалуйста найти ошибку в коде.
При выставлении отложенника BUYSTOP или SELLSTOP в тестере появляется такая ошибка.
Брокер 4 значный.
2011.10.17 21:31:35 2011.01.10 15:00 EA EURUSD,M30: invalid price 1.28716000 for OrderSend function
ticket=OrderSend(TradeSymbol, OP_BUYSTOP, Lots, iHigh(TradeSymbol,TradePeriod,4)+spread, 0, 0,0, StringConcatenate(TradeSymbol," ",TradePeriod,"EA"),MagicNumber,0,Aqua);
Отпринтуйте значение полученной цены и посмотрите. Возможно получается слишком близко к цене (в случае с ненулевым уровнем стоплевел у брокера), либо даже ниже/выше ее (если это не контролируется), т.к. хай берете на четыре бара назад.
А может быть спред не приведен. Вобщем вот эту конструкцию исследуйте...
Отпринтуйте значение полученной цены и посмотрите. Возможно получается слишком близко к цене (в случае с ненулевым уровнем стоплевел у брокера), либо даже ниже/выше ее (если это не контролируется), т.к. хай берете на четыре бара назад.
А может быть спред не приведен. Вобщем вот эту конструкцию исследуйте...
Дело в том что данная ошибка появляется только в тестере, при реальной же торговли все отлично открывается.
Мне кажется причина в том что в истории 8 цифр после запятой, нужно как то округлить к 4
2011.10.17 21:31:35 2011.01.10 15:00 EA EURUSD,M30: invalid price 1.28716000 for OrderSend function
ticket=OrderSend(TradeSymbol, OP_BUYSTOP, Lots, iHigh(TradeSymbol,TradePeriod,4)+spread, 0, 0,0, StringConcatenate(TradeSymbol," ",TradePeriod,"EA"),MagicNumber,0,Aqua);Дело в том что данная ошибка появляется только в тестере, при реальной же торговли все отлично открывается.
Мне кажется причина в том что в истории 8 цифр после запятой, нужно как то округлить к 4
2011.10.17 21:31:35 2011.01.10 15:00 EA EURUSD,M30: invalid price 1.28716000 for OrderSend function
ticket=OrderSend(TradeSymbol, OP_BUYSTOP, Lots, iHigh(TradeSymbol,TradePeriod,4)+spread, 0, 0,0, StringConcatenate(TradeSymbol," ",TradePeriod,"EA"),MagicNumber,0,Aqua);нет слов... уже и шапку поста сделали супер длинную - что бы мимо не пройти. А те кому это предназначается как не видели, так и не видят. Ну неужели это такой труд - произвести поиск самому, и надо по каждому мельчайшему поводу орать на весь форум.
https://www.mql5.com/ru/forum/131853#461994
И кроме этого эта же ошибка в самом начале этой же темы основательно разжевана - вы что читать не умеете ?
нет слов... уже и шапку поста сделали супер длинную - что бы мимо не пройти. А те кому это предназначается как не видели, так и не видят. Ну неужели это такой труд - произвести поиск самому, и надо по каждому мельчайшему поводу орать на весь форум.
https://www.mql5.com/ru/forum/131853#461994
И кроме этого эта же ошибка в самом начале этой же темы основательно разжевана - вы что читать не умеете ?
Вы считаете что я шапку искал?
Я в поиске набрал то что меня интересует и нашел эту тему.
Кроме того тему полностью всю прочитал, но проблему так и не получилось решить, потому и спросил может кто подскажет в чем проблема.
Обычно форумы для этого и предназначены, или у Вас не форум а книга?
Второй пост в этой теме дает ответ на ваш вопрос :
попробуй так:
ticket=OrderSend(Symbol(), OP_BUY, lot, NormalizeDouble(Ask, Digits), 5, Ask - sl*Point, 0, "", magicBUY, 0, Blue);
То есть Вы тему не читали и нормализацией даже не интересовались.
Вы считаете что я шапку искал?
Я в поиске набрал то что меня интересует и нашел эту тему.
Кроме того тему полностью всю прочитал, но проблему так и не получилось решить, потому и спросил может кто подскажет в чем проблема.
Обычно форумы для этого и предназначены, или у Вас не форум а книга?
НЕТ СЛОВ.
Второй пост в этой теме дает ответ на ваш вопрос :
То есть Вы тему не читали и нормализацией даже не интересовались.
https://www.mql5.com/ru/forum/2633/page2
Если Вы используете штатные Bid и Ask для совершения торговых операций, то они всегда нормализованные. А вот вычисляемые цены (например, стопы) уже нужно самостоятельно нормализовывать перед отсылкой торгового приказа.
https://docs.mql4.com/ru/trading/OrderSend
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,0,Green);
сложный вопрос насколько человек не прав, какие то нечеткие правила для нормализации, вот только вчера столкнулся, что на форекс4ю нельзя нормализовывать SL если SL=0, иначе ошибка 130 будет
Здраствуйте!Знаю что тема расписана,но неполучается ничего с этим кодом выходят ошибка типа,
2011.10.24 12:44:05 2011.05.06 00:24 Stoch EURUSD,H4: invalid price 1.45382650 for OrderSend function
2011.10.24 12:44:05 2011.05.06 00:24 Stoch EURUSD,M5: OrderSend error 4107
Стоп и тейк больше 100 пунктов.
Может поможите люди добрые!?
//+------------------------------------------------------------------+
//| Stoch.mq4 |
//| Copyright © 2005, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
//----
extern double TakeProfit = 20;
extern double Lots = 20;
extern double TrailingStop = 30;
extern double StopLoss = 40;
extern double MM = 0;
extern double Risk = 30;
extern double LotLimit = 50;
extern double Per = 3;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
double s = GlobalVariableGet("SELLLIMIT");
double b = GlobalVariableGet("BUYLIMIT");
double ds = GlobalVariableGet("DateS");
double db = GlobalVariableGet("DateB");
//----
if(ds != DayOfWeek())
{
GlobalVariableDel("SELLLIMIT");
GlobalVariableDel("BUYLIMIT");
GlobalVariableDel("DatesS");
GlobalVariableDel("DatesB");
}
double H3,H4,L3,L4,SH4,SH3,BL3,BL4;
//----
if(OrdersTotal() < 1 && Hour() == 23 && Minute() == 59)
return(0);
//----
if(OrdersTotal() > 0 && Hour() == 23 && Minute() == 59)
{
int total = OrdersTotal();
//----
for(int i = total - 1; i >= 0; i--)
{
OrderSelect(i, SELECT_BY_POS);
int type = OrderType();
bool result = false;
//----
switch(type)
{
//Close opened long positions
case OP_BUY : result = OrderClose(OrderTicket(), OrderLots(),
MarketInfo(OrderSymbol(), MODE_BID),
5, Red );
break;
//Close opened short positions
case OP_SELL : result = OrderClose(OrderTicket(), OrderLots(),
MarketInfo(OrderSymbol(), MODE_ASK),
5, Red );
break;
//Close pending orders
case OP_BUYLIMIT :
case OP_BUYSTOP :
case OP_SELLLIMIT :
case OP_SELLSTOP : result = OrderDelete(OrderTicket());
}
//----
if(result == false)
{
Alert("Order ", OrderTicket(), " failed to close. Error:", GetLastError());
Sleep(3000);
}
}
}
H4 = ((((High[1] - Low[1])*1.1) / 2) + Close[1]);
H3 = ((((High[1] - Low[1])*1.1) / 4) + Close[1]);
L3 = (Close[1] - ((High[1] - Low[1])*1.1) / 4);
L4 = (Close[1] - ((High[1] - Low[1])*1.1) / 2);
//----
if(db != DayOfWeek() && s == 0)
{
SH3 = OrderSend(Symbol(), OP_SELLLIMIT, Lots, H4, 3, H4 + StopLoss*Point,
H4 - TakeProfit*Point, "H3", 0, 0, Red);
//----
if(SH3 < 0)
{
GlobalVariableSet("SELLLIMIT", 0);
}
else
{
GlobalVariableSet("SELLLIMIT", 1);
GlobalVariableSet("DateS", DayOfWeek());
}
}
//----
if(db != DayOfWeek() && b == 0)
{
BL3 = OrderSend(Symbol(), OP_BUYLIMIT, Lots, L4, 3, L4 - StopLoss*Point,
L4 + TakeProfit*Point, "L3", 0, 0, Green);
//----
if(BL3 < 0)
{
GlobalVariableSet("BUYLIMIT", 0);
}
else
{
GlobalVariableSet("BUYLIMIT", 1);
GlobalVariableSet("DateB", DayOfWeek());
}
}
}
//+------------------------------------------------------------------+