
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
Bem, se se tratar de prazos de troca, então o temporizador não é uma boa opção porque o temporizador é destruído ao mudar de estrutura.
Você pode criar suas linhas na função OnInit(), e atualizá-las nas funções OnTick() ou OnTimer().
Observe também a função ObjectsDeleteAll() no OnDeint() que assegurará que tudo seja removido antes de ser criado novamente em seu novo quadro.
---
E além disso, se você quiser atualizar as linhas sempre que surgir uma vela nova, você pode combinar o exemplo da página anterior com o último a lhe dar isto:
...
Se houver mais algum problema, por favor, mostre algum código.
Eu pesquisei seus últimos comentários.
Outros 2 grandes comentários. Parece que o código é semelhante (seu comentário nº 18), mas isso é muito diferente para mim.
Então, sim, eu me senti "Timer" destruir quando eu troquei de frame. Mas isso é muito útil para mim porque meu indicador é atualizado uma vez em um PERÍODO_**'s.
Sim! Já criei linhas principais na função especial init(), e elas são atualizadas na função OnTimer().
(você pode me entender mais claramente a partir do código abaixo)
...surge uma nova vela que você pode combinar...
Se houver mais algumproblema...
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Como eu disse, há um problema que leva mais tempo. Neste momento, preciso mostrar-lhes um pouco do meu código indicador. E eu não uso 'switch operator & ObjectMove()' no meu indicador.
@Marco
Por favor, me informe que o código abaixo é bom ou o quê?
Qual é o seu conselho,poderia começar a pesquisar amplamente seus dois últimos comentários e poderia envolver "mudar() e ObjectMove()" para o meu indicador? (Por que estou perguntando antes de fazê-lo? - porque leva muito tempo).
(como você vê, obtive mais benefícios de seu comentário #18 - e agora estou enfrentando um dilema entre meu código abaixo e seus dois últimos grandes comentários)
int init()
{
EventSetMillisecondTimer( 1250 );
_CreateLines_M5();
return(INIT_SUCCEEDED);
}
//|+--------------------------------------------------------------------------------+
int start()
{
return(0);
}
//|+--------------------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll( 0, _prefix );
return(0);
}
//|+--------------------------------------------------------------------------------+
void OnTimer()
{
//---
if ( _dt_Prd_M5 != iTime( Symbol(), _prd_M5, 0 ) )
{
_dt_Prd_M5 = iTime( Symbol(), _prd_M5, 0 );
_CreateLines_M5();
}
return;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
//---
int _dayCnt_M5 = _prd_cnt + 0;
int _cnt_M5 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_W1, _dayCnt_M5 ) );
for ( i = 0; i < _cnt_M5; i++ )
{
_time_M5 = Time[i];
_prdCvrt_M5 = PeriodSeconds( _prd_M5 );
_timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;
_vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr( _timeCvrt_M5, TIME_DATE|TIME_MINUTES );
if ( _Period < PERIOD_M15 )
{
if (
...
TimeHour( _timeCvrt_M5 ) == 12
)
{
ObjectCreate ( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0 );
}
}
}
return;
}
Tudo de bom para você.
Não conheço ninguém, mas acho sua mistura de fonte, cores, negrito e itálico, etc., distraindo e irritando. Na verdade, eu não poderia me incomodar em ler este post.
Eu pesquisei seus últimos comentários.
Outros 2 grandes comentários. Parece que o código é similar (seu comentário nº 18), mas isso é muito diferente para mim.
Então, sim, eu me senti "Timer" destruir quando troquei de frame. Mas isso é muito útil para mim porque meu indicador é atualizado uma vez em um PERÍODO_**'s.
Sim! Já criei linhas principais na função especial init(), e elas são atualizadas na função OnTimer().
(você pode me entender mais claramente a partir do código abaixo)
...surge uma nova vela que você pode combinar...
Se houver mais algumproblema...
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Como eu disse, há um problema que leva mais tempo. Neste momento, preciso mostrar-lhes um pouco do meu código indicador. E eu não uso 'switch operator & ObjectMove()' no meu indicador.
@Marco
Por favor me avise que o código abaixo é bom ou o quê?
Qual é o seu conselho,poderia começar a pesquisar amplamente seus dois últimos comentários e poderia envolver "mudar() e ObjectMove()" para meu indicador? (Por que estou perguntando antes de fazê-lo? - porque leva muito tempo).
(como você vê, obtive mais benefícios de seu comentário #18 - e agora estou enfrentando um dilema entre meu código abaixo e seus dois últimos grandes comentários)
int init()
{
EventSetMillisecondTimer( 1250 );
_CreateLines_M5();
return(INIT_SUCCEEDED);
}
//|+--------------------------------------------------------------------------------+
int start()
{
return(0);
}
//|+--------------------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll( 0, _prefix );
return(0);
}
//|+--------------------------------------------------------------------------------+
void OnTimer()
{
//---
if ( _dt_Prd_M5 != iTime( Symbol(), _prd_M5, 0 ) )
{
_dt_Prd_M5 = iTime( Symbol(), _prd_M5, 0 );
_CreateLines_M5();
}
return;
}
//|+--------------------------------------------------------------------------------+
void _CreateLines_M5( )
{
//---
int _dayCnt_M5 = _prd_cnt + 0;
int _cnt_M5 = iBarShift( Symbol(), 0, iTime( Symbol(), PERIOD_W1, _dayCnt_M5 ) );
for ( i = 0; i < _cnt_M5; i++ )
{
_time_M5 = Time[i];
_prdCvrt_M5 = PeriodSeconds( _prd_M5 );
_timeCvrt_M5 = _time_M5 - ( _time_M5 % _prdCvrt_M5 ) + _prdCvrt_M5;
_vlineName_M5 = _prefix + "PERIOD_M5 - " + TimeToStr( _timeCvrt_M5, TIME_DATE|TIME_MINUTES );
if ( _Period < PERIOD_M15 )
{
if (
...
TimeHour( _timeCvrt_M5 ) == 12
)
{
ObjectCreate ( _vlineName_M5, OBJ_VLINE, 0, _timeCvrt_M5, 0 );
}
}
}
return;
}
Tudo de bom para você.
Bem, se funcionar e se não continuar apenas tentando.
Bem, se funcionar e se não continuar apenas tentando.
#Hora do Corretor - ReOpen
Eu leio poucos fóruns aqui e ali. Talvez minha solução seja qualquer um deles. Mas eu não descobri.
Antes deste comentário - eu tentei mais uma vez. Mas não consigo encontrar uma solução.
Então, eu tenho 2 corretores, A e B.
- R: Os objetos da linha Vline colocam o tempo correto. Qual eu quero. Por exemplo: Hora 2017.02.18 0:00 também objeto vline colocado na mesma hora.
- B: Objeto Vline colocado na hora errada ( talvez eu esteja errado ). eg: Tempo 2017.02.18 0:00 Hora 2017.02.18 1:00 mas objeto vline colocado 0:00.
Portanto, se alguém entender minha preocupação, qualquer comentário seria melhor para mim.Tenha um bom fim de semana.
#Hora do Corretor - ReOpen
Eu leio poucos fóruns aqui e ali. Talvez minha solução seja qualquer um deles. Mas eu não descobri.
Antes deste comentário - eu tentei mais uma vez. Mas não consigo encontrar uma solução.
Então, eu tenho 2 corretores, A e B.
- R: Os objetos da linha Vline colocam o tempo correto. Qual eu quero. Por exemplo: Hora 2017.02.18 0:00 também objeto vline colocado na mesma hora.
- B: Objeto Vline colocado na hora errada ( talvez eu esteja errado ). eg: Tempo 2017.02.18 0:00 Hora 2017.02.18 1:00 mas objeto vline colocado 0:00.
Portanto, se alguém entender minha preocupação, qualquer comentário seria melhor para mim.Tenha um bom fim de semana.
O código abaixo me dá resultados diferentes em dois Corretores diferentes.
( Meu comentário anterior poderia ajudar você a me entender )
Obrigado de antemão.
{
// High
ObjectSet("PeriodHigh",OBJPROP_PRICE1,iHigh(Symbol(),PERIOD_D1,0));
ObjectSet("PeriodHigh",OBJPROP_PRICE2,iHigh(Symbol(),PERIOD_D1,0));
ObjectSet("PeriodHigh",OBJPROP_TIME1,TimeCurrent());
ObjectSet("PeriodHigh",OBJPROP_TIME2,TimeCurrent() -(TimeCurrent()-iTime(Symbol(),PERIOD_D1,0)));
// Low
ObjectSet("PeriodLow",OBJPROP_PRICE1,iLow(Symbol(),PERIOD_D1,0));
ObjectSet("PeriodLow",OBJPROP_PRICE2,iLow(Symbol(),PERIOD_D1,0));
ObjectSet("PeriodLow",OBJPROP_TIME1,TimeCurrent());
ObjectSet("PeriodLow",OBJPROP_TIME2,TimeCurrent() -(TimeCurrent()-iTime(Symbol(),PERIOD_D1,0)));
}
Se você quer dizer que os valores de iHigh e iLow diferem entre os corretores, isso é bastante comum.
2 razões:
1. Os preços variam ligeiramente entre os corretores, e
2. Se os servidores dos corretores tiverem diferentes compensações GMT, as barras começam em horários diferentes.
Se você quer dizer que os valores de iHigh e iLow diferem entre os corretores, isso é bastante comum.
2 razões:
1. Os preços variam ligeiramente entre os corretores, e
2. Se os servidores dos corretores tiverem diferentes compensações GMT, as barras começam em horários diferentes.
Quero dizer apenas Tempo diferente.
Então, não há nenhuma chance de resolver este problema, por favor?
Muito obrigado.