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
Pré-construção 600 (3 de fevereiro de2014), houve apenas o início(). Agora há OnTick (EAs,) OnCalculate (indicadores,) e OnStart (scripts.) Esqueci que você estava falando de um indicador.
Comece a usar as novas Funções de Tratamento de Eventos - Funções - Noções básicas de linguagem - Referência MQL4. Veja Como fazer seuslookbacks corretamente.
Sim! Neste momento eu o entendo muito claramente, e muito mais obrigado.
E seu comentário #20 me deu outra idéia. (uma vez você a compartilhou comigo e agora eu a mantenho em minha mente)
Também tento escrever melhor código para meu indicador, e agora tentoaprender o comentário#18-@Marco vd Heijden
Depois, vou pesquisar amplamente seu comentário.
Mais uma vez, obrigado!
Por favor, coloque-o em um especialista em vez de um indicador que permite uma utilização mais fácil no futuro quando você quiser adicionar sua estratégia comercial.
Para a questão das barras, armazene o tempo de abertura da barra em uma variável de data e simplesmente compare o tempo registrado com o tempo real, então sempre que uma nova barra surgir, ela será acionada.
Aqui está um exemplo:
Primeiro de tudo, um grande obrigado por seu comentário muito claro.
Eu ainda fico no Indicador. Eu tentei algo, e funciona bem para mim, mas enfrentei um problema, não posso testá-lo no 'Testador de Estratégia' - isso me dá um erro fatal: MT4 'Não Respondendo'.
#1 - Marco, você pode me dizer de onde ele vem, por favor?
#2 - O código abaixo está correto?
Abaixo do código qual eu tentei.
string _vlineName_M5 ;
int _prd = PERIOD_M5 ;
int _prd_add = PeriodSeconds( _prd ) ;
datetime _dt_Prd_M5 ;
int _time_M5 ;
datetime _prdCvrt_M5 ;
datetime _timeCvrt_M5 ;
//---init
EventSetMillisecondTimer( 10 );
_CreateLines();
//---timer
if ( _dt_Prd_M5 != iTime( Symbol(), _prd, 0 ) )
{
_dt_Prd_M5 = iTime( Symbol(), _prd, 0 );
_CreateLines();
}
//---_CreateLines()
//---
int _dayCnt_M5 = 0;
int _cnt_M5 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_M15, _dayCnt_M5 ) );
for ( int i = 0; i < _cnt_M5; i++ )
{
//---time convert
_time_M5 = Time[i];
_prdCvrt_M5 = PeriodSeconds( _prd );
_timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;
//---name
_vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr( _timeCvrt_M5, TIME_DATE|TIME_MINUTES );
//---
if ( _Period < PERIOD_M30 )
{
{
ObjectCreate( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0 );
}
}
}
ObjectMove ( 0, _vlineName_M5, 0, _dt_Prd_M5, 0 );
Eu parei de trabalhar nisso, continuarei depois de seu comentário. (Na verdade, a preocupação com o código acima irá esmagar meus outros indicadores enquanto eu o utilizo em conjunto).
Muito obrigado.
Evento gráfico para MT4Backtester (Migel) - Fórum MQL4
A função temporizador não funciona no testador de estratégia MT4, então você tem que colocá-lo na função carrapato.
Evento gráfico para MT4Backtester (Migel) - Fórum MQL4
Muito obrigado!
Eu sei com certeza que esse problema não vem do código.
Marco vd Heijden:
Aqui está um exemplo:
//+------------------------------------------------------------------+
int OnInit()
{
//--- create timer
EventSetMillisecondTimer(250);
//--- create some things
CreateLines(); // Function that creates time lines
//--- load open times
M5=iTime(Symbol(),PERIOD_M5,0);
//--- set timelines
ObjectMove(0,"Time-M5",0,M5,0);//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Timer function |
//+------------------------------------------------------------------+
void OnTimer()
{
if(M5!=iTime(Symbol(),PERIOD_M5,0))
{
M5=iTime(Symbol(),PERIOD_M5,0); // overwrite old value with new value
//Alert("New Bar on M5! ",TimeToString(M5,TIME_SECONDS));
// do something...
//ObjectMove(0,"Time-M5",0,M5,0);
}
}
//+------------------------------------------------------------------+
Muito obrigado.
Este comentário me ensina muitas coisas.
Parece que esse código funciona bem para mim, e eu o publiquei em meu comentário anterior.
Mas eu preciso desse código (qual ele está funcionando para o Period_M5) não funcionará no Relógio 12:00 (são talvez 13:00, 14:00...) e abaixo do código ignorando 'OBJ_VLINE's past times (que é bom para mim), mas enquanto atualmente o Relógio 12:00 abaixo do código me mostra adicionalmente a hora atual VLINE, mas eu não o quero.
{
ObjectCreate( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0 );
} //---if Close
Eu tentei algo que resolvesse meu problema, mas não funcionou corretamente.
Também acrescentei uma captura de tela.
Por favor, ajude-me, eu realmente preciso resolver esse problema.
Muito obrigado de antemão.
Como você sabe?
Porque a conexão se perdeu e eu tentei usar o'Testador de Estratégia' enquanto o tempo de desconexão funcionava perfeitamente para mim.
Depois de ler seus comentários e os do Sr. William, tenho certeza disso.
Isso não é suficiente, desculpe?
{
ObjectCreate( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0 );
} //---if Close
Neste exemplo, você recebe uma linha a cada hora MAS 12:00 porque você exclui com != diferente de 12 declarações, então quando é == igual a 12 sem linha.
Neste exemplo, você recebe uma linha a cada hora MAS 12:00 porque você exclui com != diferente de 12 declarações, então quando é == igual a 12 sem linha.
Brilhante homem, obrigado :))
Isso é simples, mas não me importo com isso. Simples e simplesmente "uau".
(Na verdade eu uso '==' neste indicador, mas realmente me concentrei no 'OnTimer')
//--- segunda vez editado...
Isto funciona bem para mim, mas quando o horário será 00:00 - a hora atual adicional VLINE mostra novamente.
TimeHour( _timeCvrt_M5 ) == 1 ||
TimeHour( _timeCvrt_M5 ) == 2 ||
TimeHour( _timeCvrt_M5 ) == 3 ||
TimeHour( _timeCvrt_M5 ) == 5 ||
TimeHour( _timeCvrt_M5 ) == 6 ||
TimeHour( _timeCvrt_M5 ) == 7 ||
TimeHour( _timeCvrt_M5 ) == 9 ||
TimeHour( _timeCvrt_M5 ) == 10 ||
TimeHour( _timeCvrt_M5 ) == 11 ||
TimeHour( _timeCvrt_M5 ) == 13 ||
TimeHour( _timeCvrt_M5 ) == 14 ||
TimeHour( _timeCvrt_M5 ) == 15 ||
TimeHour( _timeCvrt_M5 ) == 17 ||
TimeHour( _timeCvrt_M5 ) == 18 ||
TimeHour( _timeCvrt_M5 ) == 19 ||
TimeHour( _timeCvrt_M5 ) == 21 ||
TimeHour( _timeCvrt_M5 ) == 22 ||
TimeHour( _timeCvrt_M5 ) == 23
)
(Eu atualizei este comentário poucas vezes porque fui pesquisado)
Por favor, me ajude.