Erros, bugs, perguntas - página 1813
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
É necessário limpar os cookies para www.mql5.com.
No cromo 56.0.2924.87 o voo está bom, tanto com como sem actualização manual da página de revisão.
Pode dizer-me como?
Mas no cromado pode fazê-lo desta forma:
Prima F12 em www.mql5.com => no painel de instrumentos vá a Aplicação => Cookies => clique em cookies => Limpe tudo de...
O Google ajuda.
Mas no cromado pode fazê-lo desta forma:
Prima F12 enquanto navega www.mql5.com => no painel de instrumentos vá a Aplicação => Cookies => clique em cookies => Limpe tudo de...
Não há nenhuma.
Está a tocar. Escreveu o seu código em script, deu o valor correcto (1001199) quando executado em modo de depuração, mas se eu compilar o release e o executar a partir da árvore em MT5, deu 11199 de forma estável. Foi capaz de localizar.
Este é realmente um bug de compilação, escreva para servicedesk.
Não há nenhuma.
Aconselha-se
MT4 começou a pesar 1,8 Gbytes (RAM). Comeu toda a UPU, o segundo terminal não pode ser ligado correctamente. Alguma sugestão sobre como "limpar" a RAM da MT?
Aconselha-se
MT4 começou a pesar 1,8 Gbytes (RAM). Comeu toda a UPU, o segundo terminal não pode ser ligado correctamente. Alguma sugestão sobre como "limpar" a RAM da MT?
Já tentou reiniciar o terminal?
A memória é libertada se eu reduzir o número de barras no gráfico, mas preciso de reiniciar depois.
Já tentou reiniciar o terminal?
A memória é libertada se reduzir o número de barras na tabela, mas é necessário reiniciar então.
Erro na determinação do parâmetro indicador tipo ENUM_DATATYPE.
Estou a executar um indicador de teste. Nos parâmetros de entrada, cada parâmetro tem um tipo único:
#property indicator_plots 0
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
input bool inpBool = false; //1
input char inpChar = 0; //2
input uchar inpUChar = 0; //3
input short inpShort = 0; //4
input ushort inpUShort=0; //5
input color inpColor=clrWhite; //6
input int inpInt=0; //7
input uint inpUInt=0; //8
input datetime inpDatetime=0; //9
input long inpLong=0; //10
input ulong inpULong = 0; //11
input float inpFloat = 0.0; //12
input double inpDouble = 0.0; //13
input string inpString = ""; //14
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
IndicatorSetString(INDICATOR_SHORTNAME,"DATATYPE");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 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[])
{
return(rates_total);
}
//+------------------------------------------------------------------+
De seguida, pesquiso-a através do guião e faço a desactivação do seu tipo de parâmetros:
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//--- Проверяем количество аналогичных индикаторов на всех открытых окнах
long id=ChartFirst();
int indicatorsTotal=0;
int windowsTotal=0;
//---
int ctr=0;
//---
do
{
windowsTotal=(int)ChartGetInteger(id,CHART_WINDOWS_TOTAL);
for(int i=0; i<windowsTotal; i++)
{
indicatorsTotal=ChartIndicatorsTotal(id,i);
for(int j=0; j<indicatorsTotal; j++)
{
//Print( __FUNCTION__,": Имя индикатора: "+ChartIndicatorName( id, i, j ) );
//---
string shortName=ChartIndicatorName(id,i,j);
if(StringFind(shortName,"DATATYPE")<0)
continue;
else
{
//--- получим хэндл индикатора
int handle=ChartIndicatorGet(id,i,shortName);
//---
if(handle==INVALID_HANDLE) // Если хэндл не получен
{
Print(__FUNCTION__,": ОШИБКА #",GetLastError(),": хэндл индикатора "+shortName+" не получен!");
return; // Ошибка! Переходим к следующему индикатору
}
//--- Получаем параметры индикатора
MqlParam parameters[]; // Массив-приемник параметров
ENUM_INDICATOR indicator_type; // Тип индикатора
//--- Получение..
int params=IndicatorParameters(handle,indicator_type,parameters);
//---
for(int p=1; p<params; p++)
Print(__FUNCTION__,": p#",p,": type = ",EnumToString(parameters[p].type));
}
}
}
}
while(( id=ChartNext(id))>=0);
}
Na produção recebo:
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#2: type = TYPE_CHAR
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#3: type = TYPE_UCHAR
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#4: type = TYPE_SHORT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#5: type = TYPE_USHORT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#6: type = TYPE_UINT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#7: type = TYPE_INT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#8: type = TYPE_UINT
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#9: type = TYPE_LONG
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#10: type = TYPE_LONG
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#11: type = TYPE_ULONG
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#12: type = TYPE_DOUBLE
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#13: type = TYPE_DOUBLE
2017.02.20 09:08:58.147 test_DATATYPE (BR-3.17,M1) OnStart: p#14: type = TYPE_STRING
Posso ver que em vez de TYPE_COLOR(#6), mostra TYPE_UINT type, em vez de TYPE_DATETIME type (#9), mostra TYPE_LONG type, em vez de TYPE_FLOAT type (#12), mostra TYPE_DOUBLE type. Embora os tipos TYPE_COLOR, TYPE_DATETIME e TYPE_FLOAT estejam descritos na enumeração e devam ter os seus próprios valores!
Servicedesk#1677120