Indicadores Multi Timeframe - página 1132

 
Dann001:

Hola, ¿alguien sabe si hay una versión MTF del indicador PVT? (tendencia de precio y volumen)... Sé que hay una zona dinámica PVT, pero no es MTF...

Gracias por cualquier ayuda....

No pude encontrar uno por lo que agregó mtf a esta versión.

 
mrtools:

No pude encontrar uno así que añadí mtf a esta versión

mrtools:

No pude encontrar uno así que añadí mtf a esta versión.

Gracias...
 
Jeaa:

Estimado mladen,

Espero que estés muy bien.

Intenté hacer un EA basado en el indicador ZZ... Pude abrir la orden de compra cuando el indicador ZZ obtiene un valor; pero la orden no se cierra...

¿Me pueden ayudar?

Gracias por adelantado...


int MagicN =1453;

extern int Barras=5; // Cantidad de barras
extern int y =5;
//--------------------------------------------------------------------
extern double Lotes = 0.01;
extern double Deslizamiento = 3;
extern double Periodo1 = 5;
extern string Paso_dev_1 ="0,5";
extern int Symbol_1_Kod =140;

//--------------------------------------------------------------------
bool GV_Flag_NuevaBarra=false; // Flag de una nueva barra
//======================================================================

int start() // Función especial start()
{
//--------------------------------------------------------------------
Fun_NuevaBarra(); // Llamada a la función
if (GV_Flag_NuevaBarra==false) // Si no hay nueva barra..
return; // ..return
//=========================================================================
int IndMin =ArrayMinimum(Low,Barras,1);
int IndMax =ArrayMáximo(Alto,Barras,1);
doble ZZ, CC;

double Buy=Bajo[IndMin];
double XX=Alto[IndMax];

ZZ=iCustom(Symbol(),0, "3_Level_ZZ_Semafor",Period1,Dev_Step_1,Symbol_1_Kod,0,y);
CC=iCustom(Symbol(),0, "3_Level_ZZ_Semafor",Period1,Dev_Step_1,Symbol_1_Kod,1,y);

si (Buy == ZZ)
{
Alert(Symbol(),": Barras= ",Barras,", ZZ= ",DoubleToString(ZZ,Digits),", Precio= ",DoubleToString(Buy,Digits) );

int ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0, "Jeaa",MagicN,0,Blue);

Print ("Orden de Compra enviada: xxxx");// falta colocar el OrderTicket()
}
//=========================================================================

if (XX == CC)

{
if(OrderMagicNumber()== MagicN)
{ //---- comprueba el tipo de pedido
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,White);

Alert(Symbol(),": Barras= ",Barras,", CC= ",DoubleToString(CC,Digits),", Precio= ",DoubleToString(XX,Digits) );

Print ("=====ORDEN CERRADA=====");
}
}
}
//=============================================================================
devolver;
}
//=========================================================================

void Fun_NuevaBarra() // Descripción de la Funcion que detecta ..
{ // .. una nueva barra
static datetime NewTime=0; // variable que almacena fecha y hora
GV_Flag_NuevaBarra=false; // Inicializa nueva barra a falso (no hay nueva barra)
if(NewTime!=Time[0]) // Si existe nueva barra el dato es distinto de cero..
{
NewTime=Time[0]; //.. y en ese caso se registra la hora y fecha de la..
GV_Flag_NuevaBarra=true; //nueva barra y se activa el flag que señala la...
//existencia de una nueva barra

}
}
//--------------------------------------------------------------------

Por lo que veo estás probando una condición errónea

Los valores de la memoria intermedia 1 y también de 3_Level_ZZ_Semafor no pueden ser los mismos (se muestran en lugares diferentes)

 
Estimado Mladen

Espero añadir (MTF) en los indicadores.

Por favor, querido señor

 
mladen:

Cambia el código por el siguiente :

gracias querido amigo,mladen.

muchas gracias por tu ayuda.

 
mladen:

Cambia el código por el siguiente :

querido mladen

el codigo no funciona.tiene fallo.que he cambiado "input "por el "extern" para"MA_TF".

entonces ha funcionado.pero el problema sigue siendo.Me refiero a que no se desplaza el indicador al final del gráfico. el desplazamiento positivo no funciona.

pero el negativo funciona bien.

Gracias de nuevo.

 
rartec4:

querido mladen

el codigo no funciona. tiene un fallo. he cambiado "input" por "extern" para"MA_TF".

entonces ha funcionado.pero el problema sigue siendo.Me refiero a que no se desplaza el indicador al final del gráfico. el desplazamiento positivo no funciona.

pero el negativo funciona bien.

Gracias de nuevo.

Funciona sin ningún problema

No sé qué pruebas has hecho pero esto es lo que he utilizado para las pruebas (lo adjunto) y este es el resultado de la prueba (tanto el positivo como el negativo incluidos). Así que todo funciona como se espera y se describe


Archivos adjuntos:
_test.mq4  2 kb
 
mladen:

Funciona sin ningún problema

No se que pruebas hiciste pero esto es lo que usé para probar (lo adjunto) y así es como se ve el resultado de la prueba (tanto el positivo como el negativo incluidos). Así que todo funciona como se espera y se describe


ESTIMADO MLADEN

TIENES RAZÓN, FUE MI ERROR.

MUCHAS GRACIAS DE NUEVO AMIGO POR TU AYUDA.

 
mladen:

Por lo que veo estás probando una condición errónea

Los valores del buffer 1 y también del 3_Level_ZZ_Semafor no pueden ser los mismos (se muestran en lugares diferentes)

Estimado mlanden...

Gracias por sus comentarios...

He modificado el EA para utilizar el MagicNumber... pero el indicador personalizado llena la memoria:

2016.09.18 00:33:10.627 No hay suficiente memoria para 1039 barras para el indicador personalizado 3_Level_ZZ_Semafor EURUSD,M5

¿Qué puedo hacer? Gracias por adelantado... Jesús...

//+------------------------------------------------------------------+
//|MA_jeaa_EA.mq4
//+------------------------------------------------------------------+
#property copyright "Jesús Acedo"

//--- parámetros de entrada ---
input double Lotes=0.01;
input int NúmeroMágico=1453;
input int Barras=5;
input int y=5;
input double Periodo1=5;
input cadena Dev_Step_1="0,5";
input int Símbolo_1_Kod=140;
input int Deslizamiento=3;

//+------------------------------------------------------------------+
//| Función de inicialización del experto|
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEED);
}
//+------------------------------------------------------------------+
//| Función de desinicialización experta|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{

}
//+------------------------------------------------------------------+
//| Función de tic experto|
//+------------------------------------------------------------------+
void OnTick()
{
//---
long TicketEnUso = Ticket();
if (TicketEnUso>0) // significa que hay una operación... debo controlar la salida...
{
if (OrderSelect(TicketEnUso,SELECT_BY_TICKET, MODE_TRADES))
{
if (OrderType()==OP_BUY) // buscar una salida por debajo de un promedio
{
if (Open[y]==ZZ(Period1)) Cierre(TicketEnUso);
}
if (OrderType()==OP_SELL) // buscar una salida por encima de un promedio
{
if (Close[y]==CC(Period1)) Cierre(TicketEnUso);
}
}
}
if (TicketEnUso<1) // no hay operación debo revisar si hay trade posible
{
if (Close[y]==CC(Period1))
{
Abre(OP_BUY);
Alert(Symbol(),": Barras= ",Barras,", ZZ= ",DoubleToString(ZZ(Period1),Digits),", Precio= ",DoubleToString(Close[y],Digits));
Print ("===COMPRA===");
}
if (Open[y]==ZZ(Period1))
{
Abre(OP_SELL);
Alert(Symbol(),": Barras= ",Barras,", CC= ",DoubleToString(CC(Period1),Digits),", Precio= ",DoubleToString(Open[y],Digits));
Print ("===VENTA===");
}

}
}
//==============================================================================================
double ZZ (int Periodos)
{
return (iCustom(Symbol(),0, "3_Level_ZZ_Semafor",Periodos,Dev_Step_1,Symbol_1_Kod,1,y));
}

double CC (int Periodos)
{
return (iCustom(Symbol(),0, "3_Level_ZZ_Semafor",Periodos,Dev_Step_1,Symbol_1_Kod,0,y));
}


//==============================================================================================
long Ticket()
{
for (int o=0; o<OrdersTotal(); o++)
{
if (OrderSelect(o,SELECT_BY_POS,MODE_TRADES))
{
if (MagicNumber == OrderMagicNumber()) return(OrderTicket());
}
}
return(0);
}

void Abre(int Tipo)
{
if (AccountFreeMargin()<(1000*Lotes))// filtro operaciones que no pueden correr por falta de margen disponible
{
Print ("No hay dinero disponible. Margen libre= ",AccountFreeMargin());
devolver;
}
// seleccionar precio por operación
double Precio=0;
if(Tipo==OP_BUY) Precio=Precio; si no Precio=Oferta;
ResetLastError();
if (OrderSend(NULL,Tipo,Lotes,Precio,Slippage,0,0,NULL,MagicNumber,0,clrNONE)<1) Print (GetLastError());// 10 es fracciones de pips...
}

void Cierre(long TicketNo)
{
double Precio=0;
if (OrderSelect(TicketNo,SELECT_BY_TICKET,MODE_TRADES))
{
if(OrderType()==OP_BUY) Precio=Bid; else Precio=Ask;//selecciono precio de salida según tipo de operación
ResetLastError();//reseteo número de error
if(OrderClose(TicketNo,Lotes,Precio,Slippage,clrNONE)) Print(GetLastError());//si al cerrar manda error que lo imprima
}
}

//======================================================================

 
Hola mladen, es posible hacer este indicador no repaint y mtf????... gracias....
Archivos adjuntos:
Razón de la queja: