Ayuda a la codificación - página 160

 
TEAMTRADER:
He descargado este indicador de uno de los hilos y es mucho mejor que los indicadores CCI-zones o Ma-zones.

¿Se puede adaptar para que aparezca en la pantalla como en un indicador de zona?

Está ajustado a la configuración de CCI 13, pero si se puede hacer en un indicador de ajuste variable fácilmente, entonces eso sería un bono - pero mucho una solicitud secundaria.

Es un indicador de Forex-TSD pero no había ninguna carpeta mq4 con él.

Gracias

TEAMTRADER

Por lo que veo no es un cci sino un thv t3 trix. Deberías buscar algunas de las variaciones de thv trix

 

mladen, tengo el indicador adjunto que traza una línea de máximos y mínimos del día anterior..pero necesito el mismo indicador que traza los 3 máximos y mínimos diarios anteriores, me puedes ayudar..gracias de antemano

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

//| 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, tengo el indicador adjunto que traza una línea para el máximo y el mínimo del día anterior... pero necesito el mismo indicador que traza los 3 máximos y mínimos diarios anteriores, ¿pueden ayudarme? gracias de antemano

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

//| 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);

}

Me temo que no entiendo

Ese indicador dibuja el máximo y el mínimo del día anterior sobre todo el historial (tantos días como haya en el gráfico). ¿Qué significa exactamente "traza los 3 máximos y mínimos diarios anteriores"?

 
mladen:
Me temo que no entiendo Ese indicador dibuja el máximo y el mínimo del día anterior sobre todo el historial (tantos días como haya en el gráfico). ¿Qué significa exactamente "dibuja los 3 máximos y mínimos diarios anteriores"?

Me explico, me gustaría que el indicador dibujara cada día, los máximos y mínimos de los 3 días anteriores

 
k3rn3l:
Me explico, deseo que el indicador dibuje cada día, los máximos y mínimos de los 3 días anteriores

Prueba algo como esto (este no usa objetos sino buffers y puedes establecer el número de días que deseas usar para el máximo y el mínimo más alto)

#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:
Prueba algo como esto (este no usa objetos sino buffers y puedes establecer el número de días que deseas usar para el máximo y el mínimo)
#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);

}

Gracias mladen, perdón por mi mala explicación...me refería a los máximos y mínimos de cada 3 días anteriores...por ejemplo PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] y lo mismo para los mínimos...

 
k3rn3l:
gracias s mladen, perdón por mi mala explicación...me refería a los máximos y mínimos de cada 3 días anteriores..por ejemplo PreviousHighDaily[1],PreviuosHighDaily[2],PreviousHighDaily[3] y lo mismo para los mínimos...

Es más sencillo de encontrar que el anterior (menos llamadas a funciones )

Puedes hacerlo así :

#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);

}

PD: la línea más gruesa es de hace 1 día, la más fina es de hace 2 días y la punteada es de hace 3 días

 

Ayuda de codificación pls...........

Hola a todos los expertos aquí, ¿alguien puede ayudarme a codificar el simple EA que modificará automáticamente la última orden de trabajo 's TP mismo que el orden actual acaba de abrir? digamos que tengo 1 o más orden de trabajo y unos pocos orden pendiente, cuando la orden pendiente se convierten en orden de trabajo, espero que la EA auto modificar el TP de la orden de trabajo prev (precio objetivo) a la orden actual acaba de activo .. gracias ....

 
jeffyap:
Codificación de ayuda pls........... hola a todos los expertos aquí, ¿alguien puede ayudarme a código de la EA simple que automáticamente modificar última orden de trabajo 's TP mismo que el orden actual acaba de abrir? digamos que tengo 1 o más orden de trabajo y algunos orden pendiente, cuando la orden pendiente se convierten en orden de trabajo, espero que la EA se auto modificar la orden de trabajo prev 's TP (precio objetivo) a la orden actual acaba de activo .. gracias ....

¿Por qué no utiliza simplemente un trailing stop normal en todas las órdenes? De esta manera se igualarán eventualmente (si tiene múltiples órdenes) sin necesidad de abrir una nueva orden

 

HI Mladen,

si quiero contar barras entre 2 mínimos, ¿cómo puedo evitar la barra del domingo 23.00 p.m. a 00.00?

porque en el gráfico de 4h hay esa barra y dura sólo una hora.....y aparece también en el gráfico diario.

gracias de antemano

Razón de la queja: