Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 663
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¿5 libras por una respuesta?
)
Esperando...
Por la tarde. El indicador necesita obtener datos de otro indicador, cuando se carga el indicador se muestra el historial, los nuevos valores no se actualizan, por favor, avise cuál es el error en el bucle o en algún otro lugar:
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated, // Количество просчитанных баров
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
int limit;
int counted_bars = IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit = Bars - counted_bars - 500;
for (int i=limit; i>=0; i--)
{
Buf_1[i]=iCustom(Symbol(), 0,"ATR", 0, i);//При подстановке любого индикатора нет обновления!!!
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
En esta situación, estoy recibiendo un error - ¿puede ayudarme a entender por qué se produce un error - en MQL5 no se puede cambiar el valor de la variable de entrada del usuario?
'Slippage' - la constante no puede ser modificada Kamikadze_MA-may.mq5 67 7
extern int Slippage = 10; // Проскальзывание
int init()
{
//3,5 знаков
if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
{
Slippage*=10;
}
return(INIT_SUCCEEDED);
}
}
En una situación así, me da un error - ¿pueden ayudarme a entender por qué se produce el error - en MQL5 no se puede cambiar el valor de una variable introducida por el usuario?
'Slippage' - la constante no puede ser modificada Kamikadze_MA-may.mq5 67 7
extern int Slippage = 10; // Проскальзывание
int init()
{
//3,5 знаков
if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
{
Slippage*=10;
}
return(INIT_SUCCEEDED);
}
}
No existe tal cosa en 5
MarketInfo
No sé sobre el deslizamiento)
Este no está en el 5pc.
MarketInfo
Qué demonios - por qué no lo pone en los errores...
¿Qué tipo de analógico debo utilizar?
Oh, mierda - por qué no lo pone en el error ...
¿Qué tipo de analógico debo utilizar?
En este mismo hilo el fin de semana pasado se hablaba de cambiar a la 5-circa.
Desde mi puesto y hacia atrás leer todos los puestos en 2-3 páginas
https://www.mql5.com/ru/forum/6343/page662#comment_2930149
En el mismo hilo del fin de semana pasado se trató el cambio a 5k.
Desde mi puesto y hacia atrás leer todos los puestos en 2-3 páginas
https://www.mql5.com/ru/forum/6343/page662#comment_2930149
Sí, ya he abierto este artículo - gracias. He pegado la función MarketInfoMQL4, pero el resultado es negativo.... Puede que lo haya puesto en el lugar equivocado...
MarketInfo(Sym bol(),MODE_DIGITS) is (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)
Será mejor que profundices en las profundidades de la sustitución en las funciones
Será más elegante y cercano a MQL5.
Tómate tu tiempo, en definitiva.
No se necesitan bibliotecas ni funciones ajenas. Deberías aprender a escribir en MQL5 puro.
En esta situación, estoy recibiendo un error - ¿puede ayudarme a entender por qué se produce un error - en MQL5 no se puede cambiar el valor de la variable de entrada del usuario?
'Slippage' - la constante no puede ser modificada Kamikadze_MA-may.mq5 67 7
extern int Slippage = 10; // Проскальзывание
int init()
{
//3,5 знаков
if(MarketInfo(Symbol(),MODE_DIGITS)==3 || MarketInfo(Symbol(),MODE_DIGITS)==5)
{
Slippage*=10;
}
return(INIT_SUCCEEDED);
}
}
MarketInfo(Sym bol(),MODE_DIGITS) is (int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS)
Será mejor que profundices en las profundidades de la sustitución en las funciones
Será más elegante y cercano a MQL5.
En resumen, tómate tu tiempo.
No se necesitan bibliotecas ni funciones ajenas. Deberías aprender a escribir en MQL5 puro.
Por cierto, la función de MarketInfoMQL4() conduce a un error - ¿cómo solucionarlo? (aprender dos idiomas me hará hervir el cerebro - necesito poder comprobar cómo funcionan las ideas en el mercado de valores sin una codificación profunda)
'(' - nombre esperado Kamikadze_MA-may.mq5 332 17
'::' - nombre esperado Kamikadze_MA-may.mq5 332 17
double MarketInfoMQL4(string symbol,
int type)
{
switch(type)
{
case MODE_LOW:
return(SymbolInfoDouble(symbol,SYMBOL_LASTLOW));
case MODE_HIGH:
return(SymbolInfoDouble(symbol,SYMBOL_LASTHIGH));
case MODE_TIME:
return(SymbolInfoInteger(symbol,SYMBOL_TIME));
case MODE_BID:
{
MqlTick last_tick;
SymbolInfoTick(symbol,last_tick);
double Bid=last_tick.bid;
return(Bid);
}
case MODE_ASK:
{
MqlTick last_tick;
SymbolInfoTick(symbol,last_tick);
double Ask=last_tick.ask;
return(Ask);
}
case MODE_POINT:
return(SymbolInfoDouble(symbol,SYMBOL_POINT));
case MODE_DIGITS:
return(SymbolInfoInteger(symbol,SYMBOL_DIGITS));
case MODE_SPREAD:
return(SymbolInfoInteger(symbol,SYMBOL_SPREAD));
case MODE_STOPLEVEL:
return(SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL));
case MODE_LOTSIZE:
return(SymbolInfoDouble(symbol,SYMBOL_TRADE_CONTRACT_SIZE));
case MODE_TICKVALUE:
return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE));
case MODE_TICKSIZE:
return(SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE));
case MODE_SWAPLONG:
return(SymbolInfoDouble(symbol,SYMBOL_SWAP_LONG));
case MODE_SWAPSHORT:
return(SymbolInfoDouble(symbol,SYMBOL_SWAP_SHORT));
case MODE_STARTING:
return(0);
case MODE_EXPIRATION:
return(0);
case MODE_TRADEALLOWED:
return(0);
case MODE_MINLOT:
return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN));
case MODE_LOTSTEP:
return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP));
case MODE_MAXLOT:
return(SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX));
case MODE_SWAPTYPE:
return(SymbolInfoInteger(symbol,SYMBOL_SWAP_MODE));
case MODE_PROFITCALCMODE:
return(SymbolInfoInteger(symbol,SYMBOL_TRADE_CALC_MODE));
case MODE_MARGINCALCMODE:
return(0);
case MODE_MARGININIT:
return(0);
case MODE_MARGINMAINTENANCE:
return(0);
case MODE_MARGINHEDGED:
return(0);
case MODE_MARGINREQUIRED:
return(0);
case MODE_FREEZELEVEL:
return(SymbolInfoInteger(symbol,SYMBOL_TRADE_FREEZE_LEVEL));
default: return(0);
}
return(0);
}