void OnStart()
{
//---
string my_gann="OBJ_GANNFAN object";
if(ObjectFind(0,my_gann)<0)// Objeto não encontrado
{
//--- Informe sobre a falha
Print("Objeto ",my_gann," não encontrado. Código de erro = ",GetLastError());
//--- Obtém o preço máximo do gráfico
double chart_max_price=ChartGetDouble(0,CHART_PRICE_MAX,0);
//--- Obtém o preço mínimo do gráfico
double chart_min_price=ChartGetDouble(0,CHART_PRICE_MIN,0);
//--- Quantas barras estão exibidas no gráfico
int bars_on_chart=ChartGetInteger(0,CHART_VISIBLE_BARS);
//--- Cria um array, para escrever nele a hora de abertura de cada barra
datetime Time[];
//--- Arruma acesso ao array como o de série de tempo
ArraySetAsSeries(Time,true);
//--- Agora copia dados de barras visíveis no gráfico para dentro deste array
int times=CopyTime(NULL,0,0,bars_on_chart,Time);
if(times<=0)
{
Print("Não foi possível copiar o array com o tempo aberto!");
return;
}
//--- Preparações preliminares concluídas
//--- Índice da barra central no gráfico
int center_bar=bars_on_chart/2;
//--- Equador do gráfico - entre o máximo e mínimo
double mean=(chart_max_price+chart_min_price)/2.0;
//--- Define as coordenadas do primeiro ponto de ancoragem para o centro
ObjectCreate(0,my_gann,OBJ_GANNFAN,0,Time[center_bar],mean,
//--- Segundo ponto de ancoragem para a direita
Time[center_bar/2],(mean+chart_min_price)/2.0);
Print("Time[center_bar] = "+(string)Time[center_bar]+" Time[center_bar/2] = "+(string)Time[center_bar/2]);
//Print("Time[center_bar]/="+Time[center_bar]+" Time[center_bar/2]="+Time[center_bar/2]);
//--- Define a escala em unidades de Pips / Barra
ObjectSetDouble(0,my_gann,OBJPROP_SCALE,10);
//--- Define a tendência da linha
ObjectSetInteger(0,my_gann,OBJPROP_DIRECTION,GANN_UP_TREND);
//--- Define a largura da linha
ObjectSetInteger(0,my_gann,OBJPROP_WIDTH,1);
//--- Define o estilo da linha
ObjectSetInteger(0,my_gann,OBJPROP_STYLE,STYLE_DASHDOT);
//--- Define a cor da linha
ObjectSetInteger(0,my_gann,OBJPROP_COLOR,clrYellowGreen);
//--- Permite ao usuário selecionar um objeto
ObjectSetInteger(0,my_gann,OBJPROP_SELECTABLE,true);
//--- Seleciona ele você mesmo
ObjectSetInteger(0,my_gann,OBJPROP_SELECTED,true);
//--- Desenha ele no gráfico
ChartRedraw(0);
}
}
|