Indicatori multi timeframe - pagina 1127
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Cari tutti... spero che stiate bene...
Ho imparato a programmare e ho fatto un semplice EA per determinare il valore basso nelle ultime 3 barre e aprire un ordine di acquisto... ma ho un problema, non ha messo l'ordine... Qualcuno può aiutarmi? Il programma ottiene il prezzo basso e mostra l'allarme, ma non mette l'ordine di acquisto...
Grazie in anticipo...
//--------------------------------------------------------------------
// NewBar_jeaa_Rev 2.mq4
//--------------------------------------------------------------------
#proprietà copyright "Jeaa"
extern int GV_CantidadBarras=3; // Cantidad de barras
extern int digits=5;
//--------------------------------------------------------------------
extern double Lots = 0.01;
extern double StopLoss = 100;
extern double TakeProfit = 100;
extern int Slippage = 3;
//--------------------------------------------------------------------
bool GV_Flag_NuevaBarra=false; // Flag de una nueva barra
//======================================================================
int start() // Funzione speciale start()
{
double Precio; // variabile che registra il prezzo minimo e massimo
//--------------------------------------------------------------------
Fun_NuevaBarra(); // Chiamata della funzione
if (GV_Flag_NuevaBarra==false) // Si no hay nueva barra.
return; // ..return
//=========================================================================
//int IndMax =ArrayMaximum(High,GV_CantidadBarras,1);// Indice de la barra del precio maximo
int IndMin =ArrayMinimum(Low, GV_CantidadBarras,1);// Indice della barra del prezzo minimo
Precio=Basso[IndMin];
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,StopLoss,TakeProfit, "My orderrr",16384,0,Blue);
Alert(Symbol(),": Barras= ",GV_CantidadBarras, // Mostrar mensaje de precios max y min
", Min= ",DoubleToString(Precio,digits));
return;
}
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
}
}
Che errore ottieni negli esperti o nella scheda giornale del terminale?
Ciao mladen... Grazie per la tua risposta...
2016.09.06 11:42:06.700 NewBar_jeaa_Rev 2 USDJPY,M1: Allarme: USDJPY: Barre= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: Allarme: USDJPY: Barre= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: operazioni commerciali non consentite dalle impostazioni
2016.09.06 11:41:36.396 NewBar_jeaa_Rev 2 USDJPY,M1: inizializzato
2016.09.06 11:41:36.385 NewBar_jeaa_Rev 2 USDJPY,M1 ingressi: GV_CantidadBarras=3; digits=5; Lots=0.01; StopLoss=100.0; TakeProfit=100.0; Slippage=3;
2016.09.06 11:41:35.080 Esperto NewBar_jeaa_Rev 2 USDJPY,M1: caricato con successo
2016.09.06 12:57:08.587 '502630': ordine buy 0,01 USDJPY apertura a mercato sl: 50,000 tp: 50,000 fallito [S/L o T/P non valido]
2016.09.06 12:57:08.268 '502630': ordine acquistare a mercato 0,01 USDJPY sl: 50,000 tp: 50,000
2016.09.06 12:56:07.224 '502630': ordine acquistare 0,01 USDJPY apertura a mercato sl: 50,000 tp: 50,000 fallito [S/L o T/P non valido]
2016.09.06 12:56:06.921 '502630': ordine acquistare a mercato 0,01 USDJPY sl: 50,000 tp: 50,000
2016.09.06 12:56:04.221 Trading automatico attivato
Ciao mladen... Grazie per la tua risposta...
2016.09.06 11:42:06.700 NewBar_jeaa_Rev 2 USDJPY,M1: Allarme: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: Allarme: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: operazioni commerciali non consentite dalle impostazioni
2016.09.06 11:41:36.396 NewBar_jeaa_Rev 2 USDJPY,M1: inizializzato
2016.09.06 11:41:36.385 NewBar_jeaa_Rev 2 USDJPY,M1 input: GV_CantidadBarras=3; digits=5; Lots=0.01; StopLoss=100.0; TakeProfit=100.0; Slippage=3;
2016.09.06 11:41:35.080 Expert NewBar_jeaa_Rev 2 USDJPY,M1: caricato con successo
2016.09.06 12:57:08.587 '502630': ordine acquista 0,01 USDJPY apertura a mercato sl: 50,000 tp: 50,000 fallito [S/L o T/P non valido]
2016.09.06 12:57:08.268 '502630': ordine acquista a mercato 0,01 USDJPY sl: 50,000 tp: 50,000
2016.09.06 12:56:07.224 '502630': ordine acquista 0,01 USDJPY apertura a mercato sl: 50.000 tp: 50.000 fallito [S/L o T/P non valido]
2016.09.06 12:56:06.921 '502630': ordine acquista a mercato 0,01 USDJPY sl: 50.000 tp: 50.000
2016.09.06 12:56:04.221 Trading automatico attivato
Come puoi vedere i tuoi stop loss e take profit sono sbagliati
Li stai calcolando male: stop loss e take profit sono calcolati come prezzo aperto dell'ordine +- stop loss e/o take profit (il + o - dipende dal tipo di ordine) ma non come 50 (come nel tuo caso) ma sarebbe prezzo aperto dell'ordine +- 50*_Point (per i punti) o 50*_Point*MathPow(10,MathMod(_Digits,2)) per i pip di distanza dal prezzo aperto dell'ordine
Come puoi vedere il tuo stop loss e take profit sono sbagliati
Stai calcolando male: stop loss e take profit sono calcolati come prezzo di apertura dell'ordine +- stop loss e/o take profit (il + o - dipende dal tipo di ordine) ma non come 50 (come nel tuo caso) ma sarebbe prezzo di apertura dell'ordine +- 50*_Point (per i punti) o 50*_Point*MathPow(10,MathMod(_Digits,2)) per i pip di distanza dal prezzo di apertura dell'ordine
Caro mladen...
Grazie per il tuo aiuto... Ho cambiato per:
double SL=NormalizeDouble(Precio - StopLoss*Point,Digits);
double TP=NormalizeDouble(Precio + TakeProfit*Point,Digits);
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,SL,TP, "Jeaa",0,0,Blue);
E funziona correttamente.
Cordiali saluti.
Jesús
Caro mladen...
Grazie per il tuo aiuto... Ho cambiato per:
double SL=NormalizeDouble(Precio - StopLoss*Point,Digits);
double TP=NormalizeDouble(Precio + TakeProfit*Point,Digits);
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,SL,TP, "Jeaa",0,0,Blue);
E funziona correttamente.
Cordiali saluti.
Jesús
Ciao ragazzi,
Potete aggiungere il time frame nel messaggio di avviso nel file allegato per favore?
grazie mille :)
Caro Mladen,
Mi scuso per aver postato questa richiesta qui perché non sono a conoscenza del posto giusto.
È possibile aggiungere un'opzione di solo simbolo corrente nell'indicatore allegato.
Se si potesse, sarebbe davvero di grande aiuto :)
Grazie.
Sameer
Ciao ragazzi,
Potete aggiungere il time frame nel messaggio di avviso nel file allegato per favore?
grazie mille :)
Ecco una versione con questa aggiunta
Caro Mladen,
Mi scuso per aver postato questa richiesta qui perché non sono a conoscenza del posto giusto.
È possibile aggiungere un'opzione di solo simbolo corrente nell'indicatore allegato.
Se si potesse, sarebbe davvero di grande aiuto :)
Grazie.
Sameer
Hai una soluzione molto semplice. Aggiungi questa linea :
prima della linea 64, e poi nell'elenco dei simboli inserisci "current" in qualsiasi punto della stringa (senza il ""), e sarà sostituito con il simbolo corrente. Oppure usa l'allegato :) ( si applicano le stesse regole per il simbolo corrente: per avere solo il simbolo corrente visualizzato, inserire solo "current" nella lista dei simboli)
Avete una soluzione molto semplice. Aggiungete questa linea :
prima della linea 64, e poi nella lista dei simboli inserisci "current" in qualsiasi punto della stringa (senza il ""), e sarà sostituito con il simbolo corrente. Oppure usa l'allegato :) (si applicano le stesse regole per il simbolo corrente: per avere solo il simbolo corrente visualizzato, inserire solo "current" nella lista dei simboli)