Ajuda na codificação - página 160

 
TEAMTRADER:
Eu baixei este indicador de um dos fios e ele é muito melhor do que os indicadores CCI-zonas ou Ma-zonas.

Pode ser adaptado para ser exibido na tela como em um indicador de zona?

É ajustado para a configuração CCI 13, mas se puder ser transformado em um indicador de configuração variável facilmente, isso seria um bônus - mas muito mais um pedido secundário.

É um indicador Forex-TSD, mas nenhuma pasta mq4 estava com ele.

Obrigado

TEAMTRADER

Até onde eu vejo não é um cci, mas um thv t3 trix. Você deve pesquisar algumas das variações do thv trix

 

mladen, tenho em anexo o indicador que traça uma linha para o alto e o baixo do dia anterior...mas preciso do mesmo indicador que traça os 3 altos e baixos do dia anterior, podem me ajudar? obrigado de antemão

//+------------------------------------------------------------------+

//| Copyright © 2008, ledxep |

//| http://www.metaquotes.net/ |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2008, ledzep"

#property link "http://www.metaquotes.net/"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Blue

//---- input parameters

double DayHigh,DayLow,DayHigh1,DayLow1;

int ObjectIdx;

int DayIdx;

int k;

string ObjName;

datetime StartTime;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

return(0);

}

//+------------------------------------------------------------------+

//| Deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

ObjectsDeleteAll();

return(0);

}

//+------------------------------------------------------------------+

//| Start function |

//+------------------------------------------------------------------+

int start()

{

static bool first=true;

int i,counted_bars=IndicatorCounted();

double BarHour,BarMinute;

int WeekDay;

if(Bars<3) return(0);

i=Bars-3;

if(counted_bars==0 || first)

{

first=false;

while(i>=0)

{

TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);

TrendLine(StartTime,DayLow1,Time,DayLow1,Red);

if(High > DayHigh) DayHigh = High;

if(Low < DayLow) DayLow = Low;

if(TimeDay(Time) != TimeDay(Time))

{

DayHigh1=DayHigh;

DayLow1=DayLow;

DayHigh=Open;

DayLow=Open;

StartTime=Time;

}

i--;

}//while close

}

return(0);

}//start close

//+------------------------------------------------------------------+

void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)

{

ObjectIdx++;

ObjName="Line" + DoubleToStr(ObjectIdx,0);

ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);

ObjectSet(ObjName,OBJPROP_COLOR,col);

ObjectSet(ObjName,OBJPROP_RAY,0);

}

 
k3rn3l:
mladen, tenho em anexo o indicador que traça uma linha para a alta e a baixa do dia anterior...mas preciso do mesmo indicador que traça as 3 altas e baixas diárias anteriores, você pode me ajudar? obrigado de antemão

//+------------------------------------------------------------------+

//| Copyright © 2008, ledxep |

//| http://www.metaquotes.net/ |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2008, ledzep"

#property link "http://www.metaquotes.net/"

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Blue

//---- input parameters

double DayHigh,DayLow,DayHigh1,DayLow1;

int ObjectIdx;

int DayIdx;

int k;

string ObjName;

datetime StartTime;

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

return(0);

}

//+------------------------------------------------------------------+

//| Deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

ObjectsDeleteAll();

return(0);

}

//+------------------------------------------------------------------+

//| Start function |

//+------------------------------------------------------------------+

int start()

{

static bool first=true;

int i,counted_bars=IndicatorCounted();

double BarHour,BarMinute;

int WeekDay;

if(Bars<3) return(0);

i=Bars-3;

if(counted_bars==0 || first)

{

first=false;

while(i>=0)

{

TrendLine(StartTime,DayHigh1,Time,DayHigh1,Red);

TrendLine(StartTime,DayLow1,Time,DayLow1,Red);

if(High > DayHigh) DayHigh = High;

if(Low < DayLow) DayLow = Low;

if(TimeDay(Time) != TimeDay(Time))

{

DayHigh1=DayHigh;

DayLow1=DayLow;

DayHigh=Open;

DayLow=Open;

StartTime=Time;

}

i--;

}//while close

}

return(0);

}//start close

//+------------------------------------------------------------------+

void TrendLine(datetime x1, double y1, datetime x2, double y2, color col)

{

ObjectIdx++;

ObjName="Line" + DoubleToStr(ObjectIdx,0);

ObjectCreate(ObjName, OBJ_TREND, 0, x1, y1, x2, y2);

ObjectSet(ObjName,OBJPROP_COLOR,col);

ObjectSet(ObjName,OBJPROP_RAY,0);

}

Receio não entender

Esse indicador desenha o máximo e o mínimo do dia anterior ao longo de toda a história (tantos dias quantos os que estão no gráfico). O que significa exatamente "traça as 3 máximas e mínimas do dia anterior"?

 
mladen:
Receio não entender que esse indicador desenha o alto e o baixo do dia anterior ao longo de toda a história (tantos dias quantos os que estão no gráfico). O que significa exatamente "traça as 3 máximas e mínimas do dia anterior"?

Deixe-me explicar, eu desejo que o indicador desenhe todos os dias, os altos e baixos dos 3 dias anteriores

 
k3rn3l:
Deixe-me explicar, eu desejo que o indicador desenhe todos os dias, os altos e baixos dos 3 dias anteriores

Tente algo como isto (este não usa objetos, mas tampões e você pode definir o número de dias que deseja usar para a maior alta e a menor baixa)

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

extern int DaysForHighLow = 3;

double buffh[];

double buffl[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,buffh);

SetIndexBuffer(1,buffl);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for (int i=limit; i>=0; i--)

{

int y = iBarShift(NULL,PERIOD_D1,Time);

buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));

buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));

}

return(0);

}
 
mladen:
Tente algo como isto (este não usa objetos, mas tampões e você pode definir o número de dias que deseja usar para a maior alta e a menor baixa)
#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 LimeGreen

#property indicator_color2 Red

extern int DaysForHighLow = 3;

double buffh[];

double buffl[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,buffh);

SetIndexBuffer(1,buffl);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for (int i=limit; i>=0; i--)

{

int y = iBarShift(NULL,PERIOD_D1,Time);

buffh = iHigh(NULL,PERIOD_D1,iHighest(NULL,PERIOD_D1,MODE_HIGH,DaysForHighLow,y));

buffl = iLow(NULL,PERIOD_D1,iLowest(NULL,PERIOD_D1,MODE_LOW,DaysForHighLow,y));

}

return(0);

}

obrigado s mladen, desculpe pela minha má explicação...eu quis dizer o alto e o baixo de cada 3 dias anteriores...por exemplo PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] e o mesmo para o baixo...

 
k3rn3l:
obrigado s mladen, desculpe pela minha má explicação...eu quis dizer o alto e o baixo de cada 3 dias anteriores...por exemplo PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] e o mesmo para o baixo...

É mais simples de encontrar do que as anteriores (menos chamadas de função )

Você pode fazer isso assim :

#property indicator_chart_window

#property indicator_buffers 6

#property indicator_color1 LimeGreen

#property indicator_color2 Red

#property indicator_color3 LimeGreen

#property indicator_color4 Red

#property indicator_color5 LimeGreen

#property indicator_color6 Red

#property indicator_width1 2

#property indicator_width2 2

#property indicator_style5 STYLE_DOT

#property indicator_style6 STYLE_DOT

double buffh1[];

double buffl1[];

double buffh2[];

double buffl2[];

double buffh3[];

double buffl3[];

//------------------------------------------------------------------

//

//------------------------------------------------------------------

int init()

{

SetIndexBuffer(0,buffh1);

SetIndexBuffer(1,buffl1);

SetIndexBuffer(2,buffh2);

SetIndexBuffer(3,buffl2);

SetIndexBuffer(4,buffh3);

SetIndexBuffer(5,buffl3);

return(0);

}

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

for (int i=limit; i>=0; i--)

{

int y = iBarShift(NULL,PERIOD_D1,Time);

buffh1 = iHigh(NULL,PERIOD_D1,y+1);

buffl1 = iLow(NULL,PERIOD_D1,y+1);

buffh2 = iHigh(NULL,PERIOD_D1,y+2);

buffl2 = iLow(NULL,PERIOD_D1,y+2);

buffh3 = iHigh(NULL,PERIOD_D1,y+3);

buffl3 = iLow(NULL,PERIOD_D1,y+3);

}

return(0);

}

PS: a linha mais grossa é de 1 dia atrás, a linha mais fina é de 2 dias atrás e a linha pontilhada é de 3 dias atrás

 

Ajuda na codificação pls...........

Olá a todos os especialistas aqui , qualquer um pode me ajudar a codificar a simples EA que modificará automaticamente o TP da última ordem de trabalho igual ao da ordem atual apenas aberta ? digamos que tenho 1 ou mais ordem de trabalho e poucas ordens pendentes, quando a ordem pendente se tornar ordem de trabalho , espero que a EA modifique automaticamente o TP da ordem de trabalho anterior (preço alvo) para a ordem atual apenas ativa ... obrigado ....

 
jeffyap:
Ajuda na codificação pls...........hello todos os especialistas aqui , pode alguém me ajudar a codificar o simples EA que irá modificar automaticamente o TP da última ordem de trabalho igual à ordem atual apenas aberta ? vamos dizer que eu tenho 1 ou mais ordem de trabalho e poucas ordens pendentes, quando a ordem pendente se torna ordem de trabalho , espero que o EA irá modificar automaticamente o TP da ordem de trabalho anterior (preço alvo) para ordem atual apenas ativa ... obrigado ....

Por que você simplesmente não usa uma parada de rastreamento normal em todos os pedidos? Dessa forma, elas serão eventualmente equalizadas (se você tiver várias ordens) sem a necessidade de abrir uma nova ordem

 

HI Mladen,

se eu quiser contar barras entre 2 mínimos, como posso evitar barras de domingo das 23h00 às 00h00?

porque no gráfico de 4h existe essa barra e dura apenas uma hora..... e aparece também no gráfico diário.

agradecimentos com antecedência