Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #property copyright "Copyright 2016, Wemerson Guimaraes"
- #property link "https://www.mql5.com/pt/signals/author/wemersonrv"
- #property version "1.00"
- #property strict
- extern double LucroDiario=10; // Parar quando lucro diário der 10%
- extern double PerdaDiaria=20; // Parar quando prejuízo diário der 20%
- // *** Variáveis auxiliares ***
- // SaldoInicial - Armazenará o saldo no início da operação
- // A cada mudança de dia, esse saldo será atualizado
- // e a checagem será reiniciada
- double SaldoInicial;
- // UltimaVerificacao - Armazenará a data/hora da última verificação
- // Essa variável será utilizada para checar quando houver mudança de dia,
- // E por consequencia a reinicialização dos dados de saldo armazenados
- int UltimaVerificacao;
- // ParalizadoHoje - Quando um dos limites atingir, essa variável será ativada
- // e a cada Tick será verificado se já houve uma paralização....
- // Também é reinicializada quando muda o dia..
- bool ParalizadoHoje;
- int OnInit()
- {
- SaldoInicial=AccountBalance();
- UltimaVerificacao = TimeDayOfWeek(TimeCurrent());
- ParalizadoHoje = false;
- return(INIT_SUCCEEDED);
- }
- void OnDeinit(const int reason)
- {
- }
- void OnTick()
- {
- double SaldoAtual = AccountBalance();
- int VerificacaoAtual = TimeDayOfWeek(TimeCurrent());
- // Reseta a verificação diariamente
- // Começou um novo dia, reinicia o saldo para ser verificado novamente.
- // Reseta também a verificação se já foi paralizado hoje
- if( UltimaVerificacao != VerificacaoAtual ){
- SaldoInicial=SaldoAtual;
- UltimaVerificacao = VerificacaoAtual;
- ParalizadoHoje=false;
- }
- // Já houve uma paralização hoje... não continua
- if( ParalizadoHoje==true )
- return ;
- // Verifica lucro
- // Se atingiu... paraliza e marca ParalizadoHoje=true para checagem futura
- if( SaldoAtual >= SaldoInicial+SaldoInicial*LucroDiario/100 ){
- Alert("Lucro atingiu/ultrapassou ", LucroDiario, "%");
- ParalizadoHoje=true;
- return ;
- }
- // Verifica PERDA
- // Se atingiu... paraliza e marca ParalizadoHoje=true para checagem futura
- if( SaldoAtual <= SaldoInicial-SaldoInicial*PerdaDiaria/100 ){
- Alert("Perda atingiu/ultrapassou ", PerdaDiaria, "%");
- ParalizadoHoje=true;
- return ;
- }
- // Continue com a lógica do seu ea
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement