Buenas personas, ¿pueden darnos algún consejo? Al probar un EA, las operaciones no se abren con el error de registro 3: Parámetros incorrectos. ¿Qué he hecho mal con las funciones personalizadas?
ticket=OrderSend(Symbol(),OP_SELLSTOP,Lots,Prices_install(),3,0,0,NULL,MAGICNUMBER,0,clrGreen);
if(ticket>0)//проверка открытия позиции
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
Print("SELL ордер открыт:",OrderOpenPrice());
}
elsePrint("Ошибка открытия ордера SELL:",GetLastError());
}
return;
}
}
//+---------------------------------------------------------------------------+//| Условия модификации ордеров |//+---------------------------------------------------------------------------+if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
{
//--- длинная позиция открытаswitch(OrderType())
{
case OP_BUYSTOP:
if(NormalizeDouble(OrderOpenPrice()-Prices_install(),Digits)>0 && NormalizeDouble(Prices_install()-Bid,Digits)>0)
{
if(OrderModify(ticket,Prices_install(),0,0,0,clrBlue))
Print("Цена Price_BUY ордера успешно модифицирована.");
elsePrint("Ошибка модификации ордера BUYStop. Код ошибки=",GetLastError());
}
elsePrint("Цена модификации выше цены ордера");
break;
case OP_SELLSTOP:
if(NormalizeDouble(Prices_install()-OrderOpenPrice(),Digits)>0 && NormalizeDouble(Ask-Prices_install(),Digits)>0)
{
if(OrderModify(ticket,Prices_install(),0,0,0,clrGreen))
Print("Цена Price_SELL ордера успешно модифицирована.");
elsePrint("Ошибка модификации ордера SELLStop. Код ошибки=",GetLastError());
}
elsePrint("Цена модификации выше цены ордера");
break;
case OP_BUY:
if(NormalizeDouble(StopLosse_install()-OrderStopLoss(),Digits)>0 && NormalizeDouble(Ask-StopLosse_install(),Digits)>0)
{
if(OrderModify(ticket,OrderOpenPrice(),StopLosse_install(),0,0,clrBlue))
Print("Цена Price_BUY ордера успешно модифицирована.");
elsePrint("Ошибка модификации ордера BUY. Код ошибки=",GetLastError());
}
elsePrint("Цена модификации выше цены ордера");
break;
case OP_SELL:
if(NormalizeDouble(OrderStopLoss()-StopLosse_install(),Digits)>0 && NormalizeDouble(StopLosse_install()-Bid,Digits)>0)
{
if(OrderModify(ticket,OrderOpenPrice(),StopLosse_install(),0,0,clrGreen))
Print("Цена Price_SELL ордера успешно модифицирована.");
elsePrint("Ошибка модификации ордера SELL. Код ошибки=",GetLastError());
}
elsePrint("Цена модификации выше цены ордера");
break;
}
}
}
Sleep(5);
}
return;
}
//+------------------------------------------------------------------+double StopLosse_install()
{
double StopLoss=iSAR(NULL,PERIODs_short_term,Step,Maximum,1);
double StopLoss_install;
int StopLevel=(int)MarketInfo(Symbol(),MODE_STOPLEVEL); // Минимально допустимый уровень стоп-лосса/тейк-профита в пунктахint FreezeLevel=(int)MarketInfo(Symbol(),MODE_FREEZELEVEL);//Уровень заморозки ордеров в пунктахswitch(OrderType())
{
case0:
if(Bid-StopLoss>FreezeLevel)
{
if(Bid-StopLoss>=StopLevel)
StopLoss_install=NormalizeDouble(StopLoss,Digits);
if(Bid-StopLoss<StopLevel)
StopLoss_install=NormalizeDouble(StopLoss-StopLevel*MarketInfo(Symbol(),MODE_DIGITS),Digits);
}
elsePrint("Цена открытия ордера находится в дистанции заморозки:",GetLastError());
break;
case1:
if(StopLoss-Ask>FreezeLevel)
{
if(StopLoss-Ask>=StopLevel)
StopLoss_install=NormalizeDouble(StopLoss,Digits);
if(StopLoss-Ask<StopLevel)
StopLoss_install=NormalizeDouble(StopLoss+StopLevel*MarketInfo(Symbol(),MODE_DIGITS),Digits);
}
elsePrint("Цена открытия ордера находится в дистанции заморозки:",GetLastError());
break;
}
return(StopLoss_install);
}
//+------------------------------------------------------------------+double Prices_install()
{
double Price=iSAR(NULL,PERIODs_short_term,Step,Maximum,1);
double Price_install;
int StopLevel=(int)MarketInfo(Symbol(),MODE_STOPLEVEL); // Минимально допустимый уровень стоп-лосса/тейк-профита в пунктахint FreezeLevel=(int)MarketInfo(Symbol(),MODE_FREEZELEVEL);//Уровень заморозки ордеров в пунктахswitch(OrderType())
{
case4:
if(Price-Ask>FreezeLevel)
{
if(Price - Ask>=StopLevel)
Price_install=NormalizeDouble(Price,Digits);
if(Price - Ask<StopLevel)
Price_install=NormalizeDouble(Price+StopLevel*MarketInfo(Symbol(),MODE_DIGITS),Digits);
}
elsePrint("Цена открытия ордера находится в дистанции заморозки:",GetLastError());
break;
case5:
if(Bid-Price>FreezeLevel)
{
if(Bid-Price>=StopLevel)
Price_install=NormalizeDouble(Price,Digits);
if(Bid-Price<StopLevel)
Price_install=NormalizeDouble(Price+StopLevel*MarketInfo(Symbol(),MODE_DIGITS),Digits);
}
elsePrint("Цена открытия ордера находится в дистанции заморозки:",GetLastError());
break;
}
return(Price_install);
}
//+------------------------------------------------------------------+
¿Cuáles son los matices del uso de bucles en la toma de decisiones de trading por parte del Asesor Experto? A grandes rasgos, si hay 20 niveles de soporte/resistencia, ¿el EA funcionará correctamente si comprobamos todos los niveles usando for ? ¿O es mejor tomar los más cercanos y hacerlo a través de si?
¿Pueden decirme cómo se conectan los gráficos de Statemnt? Para mostrar un gráfico de las operaciones con varias divisas. Lo he visto en algún sitio durante mucho tiempo, pero no lo encuentro
В настоящее время мультивалютных торговых систем, индикаторов и экспертов разработано огромное количество. Тем не менее, до сих пор создатели этого "огромного количества" сталкивались со специфическими для мультивалютных систем трудностями. С выпуском в свет терминала MetaTrader 5 и языка программирования MQL5 появилась возможность реализации...
Buenas personas, ¿pueden darnos algún consejo? Al probar un EA, las operaciones no se abren con el error de registro 3: Parámetros incorrectos. ¿Qué he hecho mal con las funciones personalizadas?
Buenas tardes ayuda sobre la parabólica por favor! Quiero hacer la lógica con el Asesor Experto como se muestra en la imagen:
Escribo el código así:
A ver si me he equivocado, porque se me cuelga ..... ¡Muchas gracias!
¿Qué tipo de depósito debería tener para obtener un beneficio de 100 dólares al día?
¿100 libras al día y tener 0 detracciones?
¿Qué tipo de depósito necesitaría para obtener un beneficio de 100 dólares al día?
¡Depósito de 10 dólares! ¡Obtenga 1000% al día y retire una ganancia de $100 al día!
¿Cómo puedo abrir una cuenta de demostración con mi nombre de usuario y contraseña de inversor en MT4?
Sigue siendo necesario un servidor
Por favor, aconsejar cómo hacer que en mt4/5 barras no mostraría aperturas. Lo único que muestraes el cierre del bar.