Proteção Código

Para adicionar comentários, por favor Faça o login ou registrar
Paulo Renovato Tobo
236
Paulo Renovato Tobo  

Olá,

Gostaria de proteger um código para ser utilizado apenas com uma conta (de números) específica.

É possível?


Grato

Daniel Andrejczuk
5698
Daniel Andrejczuk  

Bom dia!

Sim, é possível, veja um exemplo de uma função que pode te ajudar.

bool funcao_verifica_liberacao(string TmpBancoLiberado, long TmpContaLiberada, datetime TmpDataValidade)  
{
     
     
     //verifica se o banco liberado bate com o banco que esta sendo usado o robo
         if(AccountInfoString(ACCOUNT_SERVER)!=TmpBancoLiberado)return(false);
     
     //verificar se a conta liberada bate com a conta que esta sendo usado o robo
         if(AccountInfoInteger(ACCOUNT_LOGIN)!=TmpContaLiberada)return(false);
     
     //verificar se e data atual esta dentro da data de validade liberada para uso so robo
          if(TimeCurrent() > TmpDataValidade) return(false);

            
     return(true);
}
;

At.

Daniel

Paulo Renovato Tobo
236
Paulo Renovato Tobo  
Daniel Andrejczuk:

Bom dia!

Sim, é possível, veja um exemplo de uma função que pode te ajudar.

At.

Daniel


Show Daniel.

Na hora que você respondeu eu achei esse código que também achei interessante:


//+------------------------------------------------------------------+
//|                                           AccountProtectedEA.mq5 |
//|                                      Copyright 2012, Investeo.pl |
//|                                           http://www.investeo.pl |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, Investeo.pl"
#property link      "http://www.investeo.pl"
#property version   "1.00"


const string allowed_broker = "MetaQuotes Software Corp.";
const long allowed_accounts[] = { 979890, 436290, 646490, 225690, 279260 };
                             
int password_status = -1;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   string broker = AccountInfoString(ACCOUNT_COMPANY);
   long account = AccountInfoInteger(ACCOUNT_LOGIN);
   
   printf("The name of the broker = %s", broker);
   printf("Account number =  %d", account);
   
   if (broker == allowed_broker) 
      for (int i=0; i<ArraySize(allowed_accounts); i++)
       if (account == allowed_accounts[i]) { 
         password_status = 1;
         Print("EA account verified");
         break;
       }
   if (password_status == -1) Print("EA is not allowed to run on this account."); 
    
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
  if (password_status == 1) 
  {
    // password correct
  } 
  }

Me falta agora um entendimento de onde aplicar dentro do meu código.
Ao meu entender devo inserir a partir do "int OnInit()" certo?

Porém o meu código há a inicialização com  void OnInit () .

É "a mesma" coisa?

Abs.

Daniel Andrejczuk
5698
Daniel Andrejczuk  

Opa, 

Bacana, cada dia vamos aumentando o nosso repertório, tem muitas opções de códigos, vamos vendo gradativamente lapidando o sistema.

Sim, tem que ser no evento OnInit(), seu código estar com void não interfere!

Abraço!

Daniel Andrejczuk
5698
Daniel Andrejczuk  

Com a meta do dia batida sobra até tempo para programar eim!!!!   heheheh

Leandro Camargo
26
Leandro Camargo  

Bom dia, tudo bem? 

Estou tentando proteger um código que fiz também, porem acho que não estou conseguindo!

Eu também havia encontrado esse código que o Japa Trader BR mostrou, adicionei ao meu código, compilei tudo certinho. Só que quando vou rodar o indicador, ele roda normal, troquei o número da minha conta no código, compilei e fui rodar o indicador e ele continuou funcionando normalmente. Era pra nao ter funcionado, correto?

Alguém pode por favor me ajudar?

Sou novo nesse negócio de MQL, ainda estou aprendendo e conhecendo como funciona!

Obrigado a todos!

Samuel Manoel De Souza
4906
Samuel Manoel De Souza  
Japa Trader Br:

Show Daniel.

Na hora que você respondeu eu achei esse código que também achei interessante:


Me falta agora um entendimento de onde aplicar dentro do meu código.
Ao meu entender devo inserir a partir do "int OnInit()" certo?

Porém o meu código há a inicialização com  void OnInit () .

É "a mesma" coisa?

Abs.

Seria interessante fazer a verificação por usuário  e senha em lugar de verificar a conta, para que não tenha que atualizar o programa sempre que liberar um novo acesso. Assim em lugar de atualizar o programa pode apenas verificar em uma lista os usuários disponíveis para novas ativações.

Para adicionar comentários, por favor Faça o login ou registrar