[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 410

 
Morzh09 >>:

Коллеги, почему может возникать такая проблема:


условие на открытие позиции выполняется, а позиция, при этом, не открывается...


if ( ((MathRound(iCustom(NULL, 0,"ind1",2,0))==1)&&(ind2()==1) )
{
if ( buy_order_open==0 )
{
Alert("Время покупать ", Symbol());
//long
ticket = OrderSend(Symbol(), OP_BUY, lots,NormalizeDouble(Ask, Digits), 3,NormalizeDouble(Bid - sl * Point, Digits), 0, "Buy", MagicNumber, 0, Blue); //Ask
//----
if(ticket < 0)
{
Sleep(30000);
prevtime = Time[1];
}

buy_order_open = 1;
}

}

Alert с сообщением срабатывает, а ордера не отправляются... :((

Lo que es NormalizeDouble(Ask, Digits), no es ASK suficiente. Y si decides normalizarlo, ¿qué son los dígitos?

 
zhuki >>:

Что такое NormalizeDouble(Ask, Digits),разве не достаточно ASK. И если вы его решили нормализовать,то что за Digits ? чему равен или как получен?.

NormalizarDoble

Redondea un número de punto flotante a la precisión especificada.

Dígitos

Número de dígitos después del punto decimal en el precio del instrumento actual.

A veces se producen errores en las funciones comerciales a causa del quinto dígito 1,45562

 
zhuki писал(а) >>

Lo que es NormalizeDouble(Ask, Digits), no es ASK suficiente. Y si decides normalizarlo, ¿qué son los dígitos?

Los dígitos están bien.

Lo más probable es que el problema radique en el deslizamiento. En los cinco dígitos 3 puntos no son suficientes.

 
Vinin >>:

С Digits все нормально.

Проблема скорее всего сидит в слиппаже. На пятизнаке 3 пунктов мало

¿Y de qué tipo de errores en las funciones comerciales estamos hablando?

Quita NormalizeDouble y creo que todo funcionará.

 
zhuki >>:

Но, как ни ставь слиппаж в тестере всё равно работать будет.А у него в тестере не работает.И о каких ошибках в торговых функциях идёт речь?

Уберите NormalizeDouble и я думаю всё заработает.

deslizamiento=25 ¡No tengo ningún problema!

Se trata de

ERR_INVALID_STOPS 130 Paradas incorrectas
ERR_INVALID_PRICE 129 Precio incorrecto
ERR_INVALID_PRICE_PARAM 4107 Parámetro de precio incorrecto para la función de comercio
 
costy_ >>:

Речь идет о

ERR_INVALID_STOPS130Неправильные стопы
ERR_INVALID_PRICE129Неправильная цена
ERR_INVALID_PRICE_PARAM4107Неправильный параметр цены для торговой функции

130 sólo está tratando de poner SL en la dirección equivocada o demasiado cerca.

129 podría ser si usted está poniendo el precio de una manera utilizar Dígitos (mal)

4107 nunca se encontró no puede decir.

¿Tiene un error o no?

 
zhuki >>:

130 вы просто не в ту сторону пытаетесь поставить SL или слишком близко.

129 может быть если вы ставите цену один из вариантов использование Digits(неправильного)

4107 никогда не встречался сказать не могу.

А,вас ошибка есть или нет?.

Yo tuve problemas, lo cambié hace tiempo y está bien, 130 no por culpa de los topes erróneos (¡no los tengo!) Depende del concesionario.

¡El EA siempre está en el mercado! Te sugiero que también utilices la función OrderCloseBy en lugar de los stops, ha demostrado su eficacia (no intradía).

Ask = 1.54889y Lots = 0.1 =))

ERR_INVALID_TRADE_VOLUME 131 Volumen incorrecto
 
Vinin писал(а) >>
Period() devuelve el marco temporal actual en minutos

Todo arreglado, ¡gracias!

 
kon12 >>:

Все, разобрался, спасибо!

Utilice el activador de texto

string PeriodToStr(int Per)
   {
      switch( Per)                 // Расчёт коэффициентов для..     
      {                              // .. различных ТФ      
      case     1: return("M1");  // Таймфрейм М1      
      case     5: return("M5");  // Таймфрейм М5      
      case    15: return("M15");  // Таймфрейм М15      
      case    30: return("M30");  // Таймфрейм М30      
      case    60: return("H1");  // Таймфрейм H1      
      case   240: return("H4");  // Таймфрейм H4      
      case  1440: return("D1");  // Таймфрейм D1      
      case 10080: return("W1");  // Таймфрейм W1      
      case 43200: return("МN");  // Таймфрейм МN     
      }
   }
 
costy_ >>:

Были проблемы, уже давно поменял и все ОК, 130 не из-за неправильных стопов( у меня их нет!) Зависит от диллера.

Советник всегда в рынке! Предлагаю и Вам использовать функцию OrderCloseBy вместо стопов, отлично зарекомендовала себя(не интрадей).

Ask=1.54889 мой терминал такого не кушает как и Lots = 0.1 =))

ERR_INVALID_TRADE_VOLUME 131 Неправильный объем

¿Y si...?

double LotNorm(double lots, string sim="")
{
int dig=0; double hh;
if( sim=="") sim=Symbol();
//
if( lots<MarketInfo( sim, MODE_MINLOT)) {Print( sim+"=МИНИЛОТ=Недостаточно денег"); return(-1);}
if( lots>MarketInfo( sim, MODE_MAXLOT)) lots=MarketInfo( sim, MODE_MAXLOT);
//
if(MarketInfo( sim,MODE_MINLOT)==0.1) dig=1;
if(MarketInfo( sim,MODE_MINLOT)==0.01) dig=2;
if(MarketInfo( sim,MODE_MINLOT)==0.001) dig=3;
if(MarketInfo( sim,MODE_MINLOT)==0.0001) dig=4;
//
lots=NormalizeDouble( lots, dig);
//
return( lots);
}