ошибка 4107 - страница 2

 
Syte:
Огромное спасибо. Избавился от этого. Теперь 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);

 

Отпринтуйте значение полученной цены и посмотрите. Возможно получается слишком близко к цене (в случае с ненулевым уровнем стоплевел у брокера), либо даже ниже/выше ее (если это не контролируется), т.к. хай берете на четыре бара назад.

А может быть спред не приведен. Вобщем вот эту конструкцию исследуйте...

iHigh(TradeSymbol,TradePeriod,4)+spread
 
OnGoing:

Отпринтуйте значение полученной цены и посмотрите. Возможно получается слишком близко к цене (в случае с ненулевым уровнем стоплевел у брокера), либо даже ниже/выше ее (если это не контролируется), т.к. хай берете на четыре бара назад.

А может быть спред не приведен. Вобщем вот эту конструкцию исследуйте...


Дело в том что данная ошибка появляется только в тестере, при реальной же торговли все отлично открывается.

Мне кажется причина в том что в истории 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);
 
vyst:


Дело в том что данная ошибка появляется только в тестере, при реальной же торговли все отлично открывается.

Мне кажется причина в том что в истории 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

И кроме этого эта же ошибка в самом начале этой же темы основательно разжевана - вы что читать не умеете ?

 
FAQ:


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

https://www.mql5.com/ru/forum/131853#461994

И кроме этого эта же ошибка в самом начале этой же темы основательно разжевана - вы что читать не умеете ?

Вы считаете что я шапку искал?

Я в поиске набрал то что меня интересует и нашел эту тему.

Кроме того тему полностью всю прочитал, но проблему так и не получилось решить, потому и спросил может кто подскажет в чем проблема.

Обычно форумы для этого и предназначены, или у Вас не форум а книга?

 

Второй пост в этой теме дает ответ на ваш вопрос :

artsnz 08.09.2009 06:30правка

попробуй так:

ticket=OrderSend(Symbol(), OP_BUY, lot, NormalizeDouble(Ask, Digits), 5, Ask - sl*Point, 0, "", magicBUY, 0, Blue);

То есть Вы тему не читали и нормализацией даже не интересовались.

 
vyst:

Вы считаете что я шапку искал?

Я в поиске набрал то что меня интересует и нашел эту тему.

Кроме того тему полностью всю прочитал, но проблему так и не получилось решить, потому и спросил может кто подскажет в чем проблема.

Обычно форумы для этого и предназначены, или у Вас не форум а книга?



НЕТ СЛОВ.
 
FAQ:

Второй пост в этой теме дает ответ на ваш вопрос :

То есть Вы тему не читали и нормализацией даже не интересовались.

https://www.mql5.com/ru/forum/2633/page2

Renat:
Если Вы используете штатные 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());

}

}

}

//+------------------------------------------------------------------+



Файлы:
stoch_1.mq4  5 kb
Причина обращения: