Indicatori multi timeframe - pagina 1132

 
Dann001:

Ciao, qualcuno sa se esiste una versione MTF dell'indicatore PVT (trend di prezzo e volume)... so che esiste una Dynamic zone PVT, ma non è MTF...

Grazie per qualsiasi aiuto....

Non ho potuto trovare uno così aggiunto mtf a questa versione.

 
mrtools:

Non riuscivo a trovarne uno, così ho aggiunto mtf a questa versione

mrtools:

Non riuscivo a trovarne uno, così ho aggiunto mtf a questa versione.

Grazie...
 
Jeaa:

Caro mladen,

Spero che tu stia molto bene.

Ho provato a fare un EA basato sull'indicatore ZZ... Ho potuto aprire l'ordine di acquisto quando l'indicatore ZZ ottiene un valore; ma l'ordine non si chiude...

Potete aiutarmi?

Grazie in anticipo...


int MagicN =1453;

extern int Barras=5; // Cantidad de barras
extern int y =5;
//--------------------------------------------------------------------
extern double Lots = 0.01;
extern double Slippage = 3;
extern double Period1 = 5;
extern string Dev_Step_1 ="0,5
extern int Symbol_1_Kod =140;

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

int start() // Funzione speciale start()
{
//--------------------------------------------------------------------
Fun_NuevaBarra(); // Chiamata della funzione
if (GV_Flag_NuevaBarra==false) // Si no hay nueva barra.
return; // ..return
//=========================================================================
int IndMin =ArrayMinimum(Low,Barras,1);
int IndMax =ArrayMaximum(High,Barras,1);
doppio ZZ, CC;

double Buy=Basso[IndMin];
doppio 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);

se (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()
}
//=========================================================================

se (XX == CC)

{
if(OrderMagicNumber()== MagicN)
{ //---- controllare il tipo di ordine
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=====");
}
}
}
//=============================================================================
ritorno;
}
//=========================================================================

void Fun_NuevaBarra() // Descripción de la Funcion que detecta ..
{ // .. una nuova barra
static datetime NewTime=0; // variabile che memorizza data e ora
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 el hora y fecha de la..
GV_Flag_NuevaBarra=true; //nueva barra y se activa el flag que señaliza la...
//esistenza di una nuova barra

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

A quanto vedo stai testando una condizione sbagliata

I valori per il buffer 1 e anche di 3_Level_ZZ_Semafor non possono essere gli stessi (sono visualizzati in posti diversi)

 
Caro Mladen

Spero di aggiungere (MTF) sugli indicatori.

Per favore, caro signore

 
mladen:

Cambia il codice con il seguente:

grazie caro amico, mladen.

grazie mille per il tuo aiuto.

 
mladen:

Cambia il codice con il seguente:

caro mladen

il codice non funziona. ha un difetto. che ho cambiato "input" in "extern" per"MA_TF".

allora ha funzionato, ma il problema è rimasto.Voglio dire che non sposta l'indicatore alla fine del grafico. lo spostamento positivo non funziona.

ma il negativo funziona bene.

Grazie ancora.

 
rartec4:

caro mladen

il codice non funziona. ha un difetto. che ho cambiato "input" al "extern" per"MA_TF".

allora ha funzionato, ma il problema è rimasto.Voglio dire che non sposta l'indicatore alla fine del grafico. lo spostamento positivo non funziona.

ma il negativo funziona bene.

Grazie ancora.

Funziona senza alcun problema

Non so cosa hai testato, ma questo è quello che ho usato per i test (allegato) e questo è il risultato del test (sia il test positivo che quello negativo inclusi). Quindi tutto funziona come previsto e descritto


File:
_test.mq4  2 kb
 
mladen:

Funziona senza alcun problema

Non so cosa hai testato, ma questo è quello che ho usato per i test (allegato) e questo è il risultato del test (sia il test positivo che quello negativo). Quindi tutto funziona come previsto e descritto


CARO MLADEN

HAI RAGIONE, È STATO UN MIO ERRORE.

GRAZIE ANCORA AMICO MIO PER IL TUO AIUTO.

 
mladen:

Per quanto vedo, stai testando una condizione sbagliata

I valori per il buffer 1 e anche di 3_Level_ZZ_Semafor non possono essere gli stessi (sono visualizzati in posti diversi)

Caro mlanden...

Grazie per i tuoi commenti...

Ho modificato l'EA per utilizzare il MagicNumber... ma l'indicatore personalizzato riempie la memoria:

2016.09.18 00:33:10.627 Memoria insufficiente per 1039 barre per l'indicatore personalizzato 3_Level_ZZ_Semafor EURUSD,M5

Cosa posso fare? Grazie in anticipo... Jesús...

//+------------------------------------------------------------------+
//|MA_jeaa_EA.mq4 |
//+------------------------------------------------------------------+
#proprietà copyright "Jesus Acedo"

//--- parametri di input ---
input double Lotes=0.01;
input int MagicNumber=1453;
input int Barras=5;
input int y=5;
input double Period1=5;
input string Dev_Step_1="0,5
input int Symbol_1_Kod=140;
input int Slippage=3;

//+------------------------------------------------------------------+
//| Funzione di inizializzazione dell'esperto|
//+------------------------------------------------------------------+
int OnInit()
{
return(INIT_SUCCEED);
}
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione esperta|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{

}
//+------------------------------------------------------------------+
//| Funzione tick esperto|
//+------------------------------------------------------------------+
void OnTick()
{
//---
long TicketEnUso = Ticket();
if (TicketEnUso>0) // significa che c'è un'operazione... debo controlar salida...
{
if (OrderSelect(TicketEnUso,SELECT_BY_TICKET, MODE_TRADES))
{
if (OrderType()==OP_BUY) // cerca una vendita al di sotto di un promedio
{
se (Apertura[y]==ZZ(Periodo1)) 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));
Stampa ("===COMPRA===");
}
se (Apertura[y]==ZZ(Periodo1))
{
Abre(OP_SELL);
Alert(Symbol(),": Barras= ",Barras,", CC= ",DoubleToString(CC(Period1),Digits),", Precio= ",DoubleToString(Open[y],Digits));
Stampa ("===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 le operazioni che non possono essere eseguite per mancanza di margine disponibile
{
Print ("No hay dinero disponible. Free Margin= ",AccountFreeMargin());
return;
}
// seleccionar precio por operación
doppio Precio=0;
if(Tipo==OP_BUY) Precio=Ask; else Precio=Bid;
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 segun tipo de operación
ResetLastError();//reseteo número de error
if(OrderClose(TicketNo,Lotes,Precio,Slippage,clrNONE)) Print(GetLastError());//si al cerrar manda errore che lo imprima
}
}

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

 
Ciao mladen, è possibile fare questo indicatore no repaint e mtf????... grazie....
Motivazione: