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 831 Tempos em 532 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. The Following User Says Thank You to jssuser For This Useful Post:

    Não registrado (1 )

+ 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