photo

Fórum Forex Brasil

Lugar da Comunidade Forex

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

Thread: OBJ_CHART Objeto Chart.

  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,007 Tempos em 579 Postagens
    AssinarAssinar
    subscritar: 0

    OBJ_CHART Objeto Chart.

    Observação

    Coordenadas do ponto de ancoragem são em pixels. Você também pode selecionar uma ancoragem do bitmap no canto a partir do enumerador ENUM_BASE_CORNER.

    Símbolo, período e escala podem ser selecionados para o objeto Chart. Escala de preço e modo de exibição de data também pode ser habilitado/desabilitado.

    Exemplo

    O seguinte script cria e move o objeto Chart 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 cria objeto \"Chart\"."
    //--- 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="Chart"; // Nome do objeto
    input string InpSymbol="EURUSD"; // Símbolo
    input ENUM_TIMEFRAMES InpPeriod=PERIOD_H1; // Período
    input ENUM_BASE_CORNER InpCorner=CORNER_LEFT_UPPER; // Canto de ancoragem
    input int InpScale=2; // Escala
    input bool InpDateScale=true; // Exibição da escala de tempo
    input bool InpPriceScale=true; // Exibição da escala de preço
    input color InpColor=clrRed; // Cor da borda quando destacada
    input ENUM_LINE_STYLE InpStyle=STYLE_DASHDOTDOT; // Estilo da linha quando destacada
    input int InpPointWidth=1; // Tamanho do ponto para movimento
    input bool InpBack=false; // Objeto de Fundo
    input bool InpSelection=true; // Destaque para mover
    input bool InpHidden=true; // Ocultar na lista de objeto
    input long InpZOrder=0; // Prioridade para clique do mouse
    //+------------------------------------------------------------------+
    //| Criando objeto Chart |
    //+------------------------------------------------------------------+
    bool ObjectChartCreate(const long chart_ID=0, // ID do gráfico
    const string name="Chart", // nome do objeto
    const int sub_window=0, // índice da sub-janela
    const string symbol="EURUSD", // símbolo
    const ENUM_TIMEFRAMES period=PERIOD_H1, // período
    const int x=0, // coordenada X
    const int y=0, // coordenada Y
    const int width=300, // largura
    const int height=200, // altura
    const ENUM_BASE_CORNER corner=CORNER_LEFT_UPPER, // canto de ancoragem
    const int scale=2, // escala
    const bool date_scale=true, // exibição escala de tempo
    const bool price_scale=true, // exibição escala de preço
    const color clr=clrRed, // a cor da borda quando destacada
    const ENUM_LINE_STYLE style=STYLE_SOLID, // estilo da linha quando destacada
    const int point_width=1, // mover tamanho do ponto
    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 clicar no mouse
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- criar objeto Chart
    if(!ObjectCreate(chart_ID,name,OBJ_CHART,sub_windo w,0,0))
    {
    Print(__FUNCTION__,
    ": falha ao criar objeto \"Chart\"! Código de erro = ",GetLastError());
    return(false);
    }
    //--- definir coordenadas do objeto
    ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x );
    ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y );
    //--- definir tamanho do objeto
    ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width );
    ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,heigh t);
    //--- determinar o canto do gráfico onde as coordenadas do ponto são definidas
    ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corn er);
    //--- definir o símbolo
    ObjectSetString(chart_ID,name,OBJPROP_SYMBOL,symbo l);
    //--- definir o período
    ObjectSetInteger(chart_ID,name,OBJPROP_PERIOD,peri od);
    //--- definir a escala
    ObjectSetInteger(chart_ID,name,OBJPROP_CHART_SCALE ,scale);
    //--- exibir (true) ou ocultar (false) a escala de tempo
    ObjectSetInteger(chart_ID,name,OBJPROP_DATE_SCALE, date_scale);
    //--- exibir (true) ou ocultar (false) a escala de preço
    ObjectSetInteger(chart_ID,name,OBJPROP_PRICE_SCALE ,price_scale);
    //--- definir a cor da borda quando o modo de destaque do objeto é habilitado
    ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
    //--- definir o estilo de linha quando o modo de destaque do objeto é habilitado
    ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style );
    //--- definir o tamanho do ponto de ancoragem para movimentar o objeto
    ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,point _width);
    //--- exibir em primeiro plano (false) ou fundo (true)
    ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
    //--- Habilitar (true) ou desabilitar (false) o modo de movimento da etiqueta pelo 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);
    }
    //+------------------------------------------------------------------+
    //| Definir o símbolo e período de tempo do objeto Chart |
    //+------------------------------------------------------------------+
    bool ObjectChartSetSymbolAndPeriod(const long chart_ID=0, // ID do gráfico (não objeto de um Gráfico)
    const string name="Chart", // nome do objeto
    const string symbol="EURUSD", // símbolo
    const ENUM_TIMEFRAMES period=PERIOD_H1) // período de tempo
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- definir símbolo e período de tempo do objeto Chart
    if(!ObjectSetString(chart_ID,name,OBJPROP_SYMBOL,s ymbol))
    {
    Print(__FUNCTION__,
    ": falha para definir o símbolo do objeto \"Chart\"! Código de erro = ",GetLastError());
    return(false);
    }
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_PERIOD, period))
    {
    Print(__FUNCTION__,
    ": falha para definir o símbolo do objeto \"Chart\"! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Mover objeto Chart |
    //+------------------------------------------------------------------+
    bool ObjectChartMove(const long chart_ID=0, // ID do gráfico (não objeto de um Gráfico)
    const string name="Chart", // nome do objeto
    const int x=0, // coordenada X
    const int y=0) // coordenada Y
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- mover o objeto
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTAN CE,x))
    {
    Print(__FUNCTION__,
    ": falha ao mover coordenada X do objeto \"Chart\"! Código de erro = ",GetLastError());
    return(false);
    }
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTAN CE,y))
    {
    Print(__FUNCTION__,
    ": falha ao mover coordenada Y do objeto \"Chart\"! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Alterar o tamanho do objeto Chart |
    //+------------------------------------------------------------------+
    bool ObjectChartChangeSize(const long chart_ID=0, // ID do gráfico (não objeto de um Gráfico)
    const string name="Chart", // nome do objeto
    const int width=300, // largura
    const int height=200) // altura
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- alterar o tamanho do objeto
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,w idth))
    {
    Print(__FUNCTION__,
    ": falha ao alterar a largura do objeto \"Chart\" ! Código de erro = ",GetLastError());
    return(false);
    }
    if(!ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,h eight))
    {
    Print(__FUNCTION__,
    ": falha ao alterar a altura do objeto \"Chart\" ! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Retorno do ID do objeto Chart |
    //+------------------------------------------------------------------+
    long ObjectChartGetID(const long chart_ID=0, // ID do gráfico (não objeto de um Gráfico)
    const string name="Chart") // nome do objeto
    {
    //--- preparar a variável para obter o ID do objeto Chart
    long id=-1;
    //--- redefine o valor de erro
    ResetLastError();
    //--- obter ID
    if(!ObjectGetInteger(chart_ID,name,OBJPROP_CHART_I D,0,id))
    {
    Print(__FUNCTION__,
    ": falha ao obter o ID do objeto \"Chart\"! Código de erro = ",GetLastError());
    }
    //--- retorno do resultado
    return(id);
    }
    //+------------------------------------------------------------------+
    //| Deletar o objeto Chart |
    //+------------------------------------------------------------------+
    bool ObjectChartDelete(const long chart_ID=0, // ID do gráfico (não objeto de um Gráfico)
    const string name="Chart") // nome do objeto
    {
    //--- redefine o valor de erro
    ResetLastError();
    //--- excluir o botão
    if(!ObjectDelete(chart_ID,name))
    {
    Print(__FUNCTION__,
    ": falha ao deletar objeto \"Chart\"! Código de erro = ",GetLastError());
    return(false);
    }
    //--- sucesso na execução
    return(true);
    }
    //+------------------------------------------------------------------+
    //| Programa Script da função start (iniciar) |
    //+------------------------------------------------------------------+
    void OnStart()
    {
    //--- obter o número de símbolos na Observação do Mercado
    int symbols=SymbolsTotal(true);
    //--- verificar se o símbolo com um nome especifico está presente na lista de símbolo
    bool exist=false;
    for(int i=0;i<symbols;i++)
    if(InpSymbol==SymbolName(i,true))
    {
    exist=true;
    break;
    }
    if(!exist)
    {
    Print("Erro! ",InpSymbol," símbolo não está presente na \"Observação do Mercado\"!");
    return;
    }
    //--- verificar a validade dos parâmetros de entrada
    if(InpScale<0 || InpScale>5)
    {
    Print("Erro! Valores incorretos dos parâmetros de entrada!");
    return;
    }

    //--- tamanho da janela do gráfico
    long x_distance;
    long y_distance;
    //--- definir tamanho da janela
    if(!ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0,x_di stance))
    {
    Print("Falha ao obter a largura do gráfico! Código de erro = ",GetLastError());
    return;
    }
    if(!ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0,y_d istance))
    {
    Print("Falha ao obter a altura do gráfico! Código de erro = ",GetLastError());
    return;
    }
    //--- definir as coordenadas do objeto gráfico e seu tamanho
    int x=(int)x_distance/16;
    int y=(int)y_distance/16;
    int x_size=(int)x_distance*7/16;
    int y_size=(int)y_distance*7/16;
    //--- criar objeto Chart
    if(!ObjectChartCreate(0,InpName,0,InpSymbol,InpPer iod,x,y,x_size,y_size,InpCorner,InpScale,InpDateSc ale,
    InpPriceScale,InpColor,InpStyle,InpPointWidth,InpB ack,InpSelection,InpHidden,InpZOrder))
    {
    return;
    }
    //--- redesenhar o gráfico e esperar por um segundo
    ChartRedraw();
    Sleep(1000);
    //--- estender objeto Chart
    int steps=(int)MathMin(x_distance*7/16,y_distance*7/16);
    for(int i=0;i<steps;i++)
    {
    //--- redimensionar
    x_size+=1;
    y_size+=1;
    if(!ObjectChartChangeSize(0,InpName,x_size,y_size) )
    return;
    //--- verificar se o funcionamento do script foi desativado a força
    if(IsStopped())
    return;
    //--- redesenhar o gráfico e esperar por 0.01 segundos
    ChartRedraw();
    Sleep(10);
    }
    //--- meio segundo de atraso
    Sleep(500);
    //--- alterar período de tempo do gráfico
    if(!ObjectChartSetSymbolAndPeriod(0,InpName,InpSym bol,PERIOD_M1))
    return;
    ChartRedraw();
    //--- três segundos de atraso
    Sleep(3000);
    //--- excluir o objeto
    ObjectChartDelete(0,InpName);
    ChartRedraw();
    //--- esperar por um segundo
    Sleep(1000);
    //---
    }
    Attached Images Attached Images  

    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.


+ 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