photo

Fórum Forex Brasil

Lugar da Comunidade Forex

+ Responder ao Tópico
Resultados de 1 a 1 de 1

Thread: OBJ_EVENT Objeto Evento.

  1. #1 Fechar a publicação
    Senior Member jssuser's Avatar jssuser's Avatar
    Data de afiliação
    Aug 2018
    Postagens
    1,503
    Obrigado
    209
    Agradecimentos 1,006 Tempos em 578 Postagens
    AssinarAssinar
    subscritar: 0

    OBJ_EVENT Objeto Evento.

    Name:  objevent.png
Views: 631
Size:  4.9 KB

    Observação

    Quando mover o mouse sobre o evento, o texto aparece.

    Exemplo

    O seguinte script cria e move o objeto Evento no gráfico. Funções especiais têm sido desenvolvidas para criar e alterar as propriedades do objeto gráfico. Você pode utilizar estas funções "as is" em seus próprios aplicativos.



    //--- descrição
    #property description "Script desenha objeto gráfico \"Evento\"."
    #property description "Coordenadas do ponto de ancoragem é configurado em porcentagem da"
    #property description "largura da janela do gráfico em barras."
    //--- janela de exibição dos parâmetros de entrada durante inicialização do script
    #property script_show_inputs
    //--- entrada de parâmetros do script
    input string InpName="Event"; // Nome do evento
    input int InpDate=25; // Data do Evento, %
    input string InpText="Text"; // Texto do Evento
    input color InpColor=clrRed; // Cor do Evento
    input int InpWidth=1; // Tamanho do ponto quando destacado
    input bool InpBack=false; // Evento de Fundo
    input bool InpSelection=false; // Destaque para mover
    input bool InpHidden=true; // Ocultar na lista de objeto
    input long InpZOrder=0; // Prioridade para clicar no mouse
    //+------------------------------------------------------------------+
    //| Create objeto Evento no gráfico |
    //+------------------------------------------------------------------+
    bool EventCreate(const long chart_ID=0, // ID de gráfico
    const string name="Event", // nome do evento
    const int sub_window=0, // índice da sub-janela
    const string text="Text", // texto do evento
    datetime time=0, // tempo
    const color clr=clrRed, // cor
    const int width=1, // largura do ponto quando em destaque
    const bool back=false, // no fundo
    const bool selection=false, // destaque para mover
    const bool hidden=true, // ocultar na lista de objetos
    const long z_order=0) // prioridade para clique do mouse
    {
    //--- se o tempo não estiver definido, criar o objeto no último bar
    if(!time)
    time=TimeCurrent();
    //--- redefine o valor de erro
    ResetLastError();
    //--- criar objeto Evento
    if(!ObjectCreate(chart_ID,name,OBJ_EVENT,sub_windo w,time,0))
    {
    Print(__FUNCTION__,
    ": falha ao criar objeto \"Evento\"! Código de erro = ",GetLastError());
    return(false);
    }
    //--- definir texto do evento
    ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
    //--- definir cor
    ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
    //--- definir a largura de ponto de ancoragem se o objeto é destacado
    ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width );
    //--- exibir em primeiro plano (false) ou fundo (true)
    ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
    //--- permitir (true) ou desabilitar (false) o modo de movimento do evento com o mouse
    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE, selection);
    ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,se lection);
    //--- ocultar (true) ou exibir (false) o nome do objeto gráfico na lista de objeto
    ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidd en);
    //--- definir a prioridade para receber o evento com um clique do mouse no gráfico
    ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_or der);
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Alterar o texto do objeto Evento |
    //+------------------------------------------------------------------+
    bool EventTextChange(const long chart_ID=0, // ID do gráfico
    const string name="Event", // nome do evento
    const string text="Text") // texto
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- alterar texto do objeto
    if(!ObjectSetString(chart_ID,name,OBJPROP_TEXT,tex t))
    {
    Print(__FUNCTION__,
    ": falha ao alterar texto! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Mover objeto Evento |
    //+------------------------------------------------------------------+
    bool EventMove(const long chart_ID=0, // ID do gráfico
    const string name="Event", // nome do evento
    datetime time=0) // tempo
    {
    //--- se o tempo não estiver definido, mover evento até o último bar
    if(!time)
    time=TimeCurrent();
    //--- redefine o valor de erro
    ResetLastError();
    //--- mover o objeto
    if(!ObjectMove(chart_ID,name,0,time,0))
    {
    Print(__FUNCTION__,
    ": falha ao mover objeto \"Evento\"! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Excluir objeto Evento |
    //+------------------------------------------------------------------+
    bool EventDelete(const long chart_ID=0, // ID do gráfico
    const string name="Event") // nome do evento
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- excluir o objeto
    if(!ObjectDelete(chart_ID,name))
    {
    Print(__FUNCTION__,
    ": falha ao deletar objeto \"Evento\"! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Programa Script da função start (iniciar) |
    //+------------------------------------------------------------------+
    void OnStart()
    {
    //--- verificar a exatidão dos parâmetros de entrada
    if(InpDate<0 || InpDate>100)
    {
    Print("Erro! Valores incorretos dos parâmetros de entrada!");
    return;
    }
    //--- número de barras visíveis na janela do gráfico
    int bars=(int)ChartGetInteger(0,CHART_VISIBLE_BARS);
    //--- array para armazenar a data de valores a serem utilizados
    //--- para definir e alterar as coordenadas de pontos de ancoragem
    datetime date[];
    //--- alocação de memória
    ArrayResize(date,bars);
    //--- preencher o array das datas
    ResetLastError();
    if(CopyTime(Symbol(),Period(),0,bars,date)==-1)
    {
    Print("Falha ao copiar valores de tempo! Código de erro = ",GetLastError());
    return;
    }
    //--- definir os pontos para criar um objeto
    int d=InpDate*(bars-1)/100;
    //--- criar objeto Evento
    if(!EventCreate(0,InpName,0,InpText,date[d],InpColor,InpWidth,
    InpBack,InpSelection,InpHidden,InpZOrder))
    {
    return;
    }
    //--- redesenhar o gráfico e esperar por um segundo
    ChartRedraw();
    Sleep(1000);
    //--- agora, mover o objeto
    //--- contador de loop
    int h_steps=bars/2;
    //--- mover o objeto
    for(int i=0;i<h_steps;i++)
    {
    //--- usar o seguinte valor
    if(d<bars-1)
    d+=1;
    //--- mover o ponto
    if(!EventMove(0,InpName,date[d]))
    return;
    //--- verificar se o funcionamento do script foi desativado a força
    if(IsStopped())
    return;
    //--- redesenhar o gráfico
    ChartRedraw();
    // 0.05 segundos de atraso
    Sleep(50);
    }
    //--- 1 segundo de atraso
    Sleep(1000);
    //--- excluir o canal do gráfico
    EventDelete(0,InpName);
    ChartRedraw();
    //--- 1 segundo de atraso
    Sleep(1000);
    //---
    }

    Though trading on financial markets involves high risk, it can still generate extra income in case you apply the right approach. By choosing a reliable broker such as InstaForex you get access to the international financial markets and open your way towards financial independence. You can sign up here.


  2. Os seguintes 2 Usuários Dizem Obrigado o a jssuser por este post útil:

    Não registrado (2 )

+ Responder ao Tópico

Permissões de postagens

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts