gchrmt4: Não sei qual versão do MT4 você está usando, mas na v616 em meu computador, WindowFind() retorna -1 durante o OnInit(). A documentação sempre disse "WindowFind() retorna -1 se o indicador personalizado busca a si mesmo quando a função init() funciona".
minha versão é 610.
oh meu Deus... cada atualização parece ser mais ruim e mais ruim... não ficando melhor.
eu tinha um indicador FFcalendar.
eu tinha consertado com a versão 604... e funcionando bem.
quando atualizei para a 610... e compilei-o novamente... tornou-se novamente um erro...
então desisti... e compilei novamente com a versão 509... hahaha (porque minha versão 604 se foi)
oops desculpe... você está certo sobre o WindowsFind retun -1 .
ele só mostra quando depois que eu anexar aquele indi... então eu mudo o TF... mas o resultado ainda é único
Eu sei que este posto é MUITO antigo, mas aqui está como eu consigo resolver o problema do nome da instância. Eu uso uma combinação de GetTickCount() juntamente com o armazenamento global de variáveis de terminal. Isto também funciona através de cargas de instância.
conststring _uniqueSeedVarName = "MyVar";
string GetUniqueInstanceName(conststring baseName)
{
uint seed = 1;
// See if our last stored unique seed value existsif (GlobalVariableCheck(_uniqueSeedVarName))
{
// It does, so get it
seed = (uint)GlobalVariableGet(_uniqueSeedVarName);
// Do some boundary checking and ensure the user didn't muck with the value// If we're okay, increment the seed by one if (seed > 0 && seed < UINT_MAX)
seed = seed + 1;
else// The seed has been corrupted by the user or is too large; reset to current tick count
seed = GetTickCount();
}
else// First time in; initialize the seed to the current tick count
seed = GetTickCount();
// Store the value in global terminal variables// The user DOES have access to this value, so the handling above should account for any changes the user might makeGlobalVariableSet(_uniqueSeedVarName, seed);
// Initialize the random generatorMathSrand(seed);
// Create a unique instance name in the format of "[BaseName][Random1][Random2]"returnStringFormat("%s%s%s", baseName, IntegerToString(MathRand()), IntegerToString(MathRand()));
}
E depois basta chamá-lo no OnInit() da seguinte forma:
Muito obrigado. Este funcionamento resolveu um problema realmente grande para mim.
cdxadmin:
Eu sei que este posto é MUITO antigo, mas aqui está como eu realizo o problema exclusivo do nome da instância. Eu uso uma combinação de GetTickCount() juntamente com o armazenamento global de variáveis de terminal. Isto também funciona através de cargas de instância.
E depois basta chamá-lo no OnInit() da seguinte forma:
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Não sei qual versão do MT4 você está usando, mas na v616 em meu computador, WindowFind() retorna -1 durante o OnInit(). A documentação sempre disse "WindowFind() retorna -1 se o indicador personalizado busca a si mesmo quando a função init() funciona".
minha versão é 610.
oh meu Deus... cada atualização parece ser mais ruim e mais ruim... não ficando melhor.
eu tinha um indicador FFcalendar.
eu tinha consertado com a versão 604... e funcionando bem.
quando atualizei para a 610... e compilei-o novamente... tornou-se novamente um erro...
então desisti... e compilei novamente com a versão 509... hahaha (porque minha versão 604 se foi)
oops desculpe... você está certo sobre o WindowsFind retun -1 .
ele só mostra quando depois que eu anexar aquele indi... então eu mudo o TF... mas o resultado ainda é único
Eu sei que este posto é MUITO antigo, mas aqui está como eu consigo resolver o problema do nome da instância. Eu uso uma combinação de GetTickCount() juntamente com o armazenamento global de variáveis de terminal. Isto também funciona através de cargas de instância.
E depois basta chamá-lo no OnInit() da seguinte forma:
Até o momento, parece funcionar corretamente.
Muito obrigado. Este funcionamento resolveu um problema realmente grande para mim.
Eu sei que este posto é MUITO antigo, mas aqui está como eu realizo o problema exclusivo do nome da instância. Eu uso uma combinação de GetTickCount() juntamente com o armazenamento global de variáveis de terminal. Isto também funciona através de cargas de instância.
E depois basta chamá-lo no OnInit() da seguinte forma:
Até o momento, parece funcionar corretamente.