![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
grazie mladen .....![](https://c.mql5.com/forextsd/smiles/smile.png)
ma non funziona ....![](https://c.mql5.com/forextsd/smiles/frown.png)
//+------------------------------------------------------------------+
//| text.mq4 |
//| Copyright 2013, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
extern int timeframe1 = PERIOD_H1;
extern int timeframe2 = PERIOD_D1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
string name1="";
string name2="";
color color1;
color color2;
double H1 = iClose(NULL,timeframe1,0);
double D1H = iHigh(NULL,timeframe2,1);
double D1L = iLow(NULL,timeframe2,1);
if(H1>D1H)
{
name1 = "up"; color1 = Blue;
}
if(H1<D1L)
{
name2 = "down"; color2 = Red;
}
ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);
ObjectSet("signal",OBJPROP_XDISTANCE,3);
ObjectSet("signal",OBJPROP_YDISTANCE,12);
ObjectSetText("signal",name1,12,"Tahoma",color1);
ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);
ObjectSet("signal2",OBJPROP_XDISTANCE,59);
ObjectSet("signal2",OBJPROP_YDISTANCE,12);
ObjectSetText("signal2",name2,12,"Tahoma",color2);
//----
return(0);
}
//+------------------------------------------------------------------+
grazie mladen .....![](https://c.mql5.com/forextsd/smiles/smile.png)
ma non funziona ....![](https://c.mql5.com/forextsd/smiles/frown.png)
Penso che questa pace del codice possa interessarti.
Invece di usare oggetti grafici ho usato buffer normali.
Questo indi confronta SEMPRE H1 e D1
Quindi, non segnerà i prezzi sopra il timeframe H1, ma
segnare su timeframe uguali o inferiori a H1. A volte
sembra strano, sui timeframe più bassi (come segnare le barre
troppo presto) ma se si guarda più vicino al turno orario allora è
bene.
dhl_e.mq4
Penso che questa pace del codice potrebbe interessarti.
Invece di usare oggetti grafici ho usato buffer normali.
Questo indi confronta SEMPRE H1 e D1
Quindi, non segnerà i prezzi sopra il timeframe H1, ma
segnare su timeframe uguali o inferiori a H1. A volte
sembra strano, sui timeframe più bassi (come segnare le barre
troppo presto) ma se si guarda più vicino al turno orario allora è
bene.
![](https://c.mql5.com/forextsd/forum/120/gbpusdh1.png)
dhl_e.mq4grazie kalenzo ... proverò questo indi
grazie mladen .....![](https://c.mql5.com/forextsd/smiles/smile.png)
ma non funziona ....![](https://c.mql5.com/forextsd/smiles/frown.png)
//+------------------------------------------------------------------+
//| text.mq4 |
//| Copyright 2013, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property indicator_chart_window
extern int timeframe1 = PERIOD_H1;
extern int timeframe2 = PERIOD_D1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
string name1="";
string name2="";
color color1;
color color2;
double H1 = iClose(NULL,timeframe1,0);
double D1H = iHigh(NULL,timeframe2,1);
double D1L = iLow(NULL,timeframe2,1);
if(H1>D1H)
{
name1 = "up"; color1 = Blue;
}
if(H1<D1L)
{
name2 = "down"; color2 = Red;
}
ObjectCreate("signal",OBJ_LABEL,0,0,0,0,0);
ObjectSet("signal",OBJPROP_XDISTANCE,3);
ObjectSet("signal",OBJPROP_YDISTANCE,12);
ObjectSetText("signal",name1,12,"Tahoma",color1);
ObjectCreate("signal2",OBJ_LABEL,0,0,0,0,0);
ObjectSet("signal2",OBJPROP_XDISTANCE,59);
ObjectSet("signal2",OBJPROP_YDISTANCE,12);
ObjectSetText("signal2",name2,12,"Tahoma",color2);
//----
return(0);
}
//+------------------------------------------------------------------+
Stai confrontando due diversi time frame
Se la barra attuale del time frame 1 è superiore o inferiore alla prima barra chiusa del time frame 2, allora verrà visualizzato il messaggio. Se la barra corrente del time frame 1 non è superiore o inferiore ai precedenti massimo e minimo del time frame 2, allora non verrà visualizzato nulla. Dal codice che hai postato sembrava che questa fosse la tua intenzione (nei miei test ha funzionato bene)
___________________
PS: non mostrerà il testo sui dati storici (dati precedenti). Se vuoi che mostri i dati storici allora tutto deve essere scritto in modo completamente diverso come un indicatore classico
EA per il posto automatico stoploss e Take profit dipendono dalla linea Fibo
Ciao
Voglio creare un EA che possa mettere stop loss e take profit ad ogni ordine!
L'EA deve vedere il prezzo di vendita o il prezzo di acquisto e per esempio per il prezzo di acquisto:
se il prezzo dell'ordine di apertura è compreso tra la linea 38.2 e 50 l'EA piazza automaticamente lo stop loss su una linea prima del fibo=23.6 e piazza il take profit su una linea dopo il fibo=61.8
con questa procedura l'EA fa per le posizioni di vendita, per esempio se la posizione è Sell stop@ prezzo X e 38.2 fibo<x<50 fibo! L'EA piazza automaticamente il take profit sul 23.6 fibo e lo stop loss sulla linea 61.8 fibo!
qualcuno può aiutarmi con il codice di questo EA o dirmi un codice simile di questo EA!
****note:
la linea di fibo è calcolata automaticamente dal minimo e dal massimo dell'ultimo giorno!!!!
Tnx
Stai confrontando due diversi time frame
Se la barra corrente di un time frame 1 è superiore o inferiore alla prima barra chiusa del time frame 2, allora verrà visualizzato il messaggio. Se la barra corrente del time frame 1 non è superiore o inferiore ai precedenti massimo e minimo del time frame 2, allora non verrà visualizzato nulla. Dal codice che hai postato sembrava che questa fosse la tua intenzione (nei miei test ha funzionato bene)
___________________
PS: non mostrerà il testo sui dati storici (dati precedenti). Se vuoi che mostri i dati storici allora tutto deve essere scritto in modo completamente diverso come un indicatore classicograzie per te mladen ... se hai tempo per favore fallo per mostrare i dati storici ....
PS: questo indi può aiutarmi a mostrare Trend UP o Trend Down
grazie per te mladen ... se hai tempo per favore fallo per mostrare i dati storici .... PS: questo indi può aiutarmi a mostrarmi Trend UP o Trend Down
rizkyd
Hai provato ad usare il canale donchiano multi time frame per questo (per esempio per impostare il time frame del canale donchiano a daily e il periodo a 1 e otterresti quasi esattamente la stessa cosa che stai cercando)
Il nuovo arrivato vuole un consiglio/aiuto![](https://c.mql5.com/forextsd/smiles/smile.png)
Ciao a tutti,
Sono nuovo nel forex, e al momento sono interessato agli indicatori e agli EA. Ho una certa comprensione del codice mq4, ma questo non è ancora sufficiente per ottenere ciò che voglio. Quindi vorrei chiedere consiglio/aiuto agli esperti o alle persone che sanno abbastanza sul codice mq4.
Il mio compito attuale è quello di aggiungere un indicatore personalizzato per EA, e tra l'altro ho ottenuto un bel modello di EA (credo) ho intenzione di condividere con voi![](https://c.mql5.com/forextsd/smiles/smile.png)
Ok quindi, i miei segnali finali di acquisto/vendita dall'indicatore sono questi: g_ibuf_BUY[1] e g_ibuf_SELL[1]
qui parte del codice quando l'indicatore suona, pop up, invio email.
string ls_ms = "MS PRO";
if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {
if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));
PlaySound(ProcessBuySound(Buy_Sound));
gi_flag_alert = Time[0];
if (Send_Email) {
SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),
TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");
}
}
if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {
if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));
PlaySound(ProcessSellSound(Sell_Sound));
gi_flag_alert = Time[0];
if (Send_Email) {
SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),
TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");
}
}
}Il prossimo passo sarebbe aggiungere questi segnali al modello EA? Mhm come... devo usare la funzione iCustom o qualcos'altro da aggiungere all'indicatore prima di poterlo usare? Qualsiasi aiuto sarà apprezzato. Grazie.
Ciao a tutti,
Sono nuovo del forex e al momento sono interessato agli indicatori e agli EA. Ho una certa comprensione del codice mq4, ma questo non è ancora sufficiente per ottenere ciò che voglio. Quindi vorrei chiedere consiglio/aiuto agli esperti o alle persone che conoscono abbastanza il codice mq4.
Il mio compito attuale è quello di aggiungere un indicatore personalizzato all'EA, e tra l'altro ho un bel modello EA (credo) che lo condividerò con voi
Ok quindi, i miei segnali finali di acquisto/vendita dall'indicatore sono questi: g_ibuf_BUY[1] e g_ibuf_SELL[1]
qui parte del codice quando l'indicatore suona, pop up, invio email.
string ls_ms = "MS PRO";
if (g_ibuf_BUY[1] == Low[1] - Arrow_Distance * Point && gi_flag_alert != Time[0]) {
if (Alert_PopUp_On) Alert(ls_ms + ": BUY | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));
PlaySound(ProcessBuySound(Buy_Sound));
gi_flag_alert = Time[0];
if (Send_Email) {
SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - BUY signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),
TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");
}
}
if (g_ibuf_SELL[1] == High[1] + Arrow_Distance * Point && gi_flag_alert != Time[0]) {
if (Alert_PopUp_On) Alert(ls_ms + ": SELL | " + Symbol() + " " + TfToStr(Period()) + " | ", TimeToStr(TimeLocal(), TIME_SECONDS), " | " + DoubleToStr(Ask, 4));
PlaySound(ProcessSellSound(Sell_Sound));
gi_flag_alert = Time[0];
if (Send_Email) {
SendMail(ls_ms + " Alert! ", Symbol() + " " + TfToStr(Period()) + " - SELL signal issued at " + TimeToStr(TimeLocal(), TIME_SECONDS) + " on " + TimeToStr(TimeCurrent(),
TIME_DATE) + " (Last price: " + DoubleToStr(Ask, 4) + ")" + "\r\n \r\n Scalper PRO");
}
}
}Non è possibile importare gli avvisi in un'altra parte di codice (indicatore, EA).
Il modo più pulito per fare ciò che vuoi è usare iCustom()
Caro Mladen/MrTools,
Gentile richiesta di fare un indicatore basato sulla logica sottostante per il grafico a 1 minuto ... Dovrebbe anche avvisare con le frecce di acquisto/vendita sul grafico ...
logica per l'entrata in acquisto:
un minuto EMA(90) che passa sopra un minuto EMA(390) (significa che il minuto precedente ema 90 è inferiore a ema 390) e l'ema(90) dovrebbe anche essere maggiore di ema(150)
logica per l'uscita di acquisto:
un minuto EMA(90) > EMA(390) e l'ema(90) < ema(150).
logica per l'entrata in vendita :
un minuto EMA(90) che taglia un minuto EMA(390) (significa che il minuto precedente ema 90 è maggiore di ema 390) e l'ema(90) deve anche essere minore di ema(150)
logica per l'uscita in vendita:
un minuto EMA(90) ema(150).
*******************************************************
Il codice Nest per la stessa logica è anche condiviso qui sotto:
espressione di avviso di acquisto
EMA(CLOSE,90) > EMA(CLOSE,390) e REF(EMA(CLOSE,90),1) EMA(CLOSE,150)
espressione di uscita dall'acquisto
EMA(CLOSE,90) > EMA(CLOSE,390) e EMA(CLOSE,90) < EMA(CLOSE,150)
vendere espressione di allarme
EMA(CLOSE,90) REF(EMA(CLOSE,390),1) e EMA(CLOSE,90) < EMA(CLOSE,150)
vendere espressione di uscita
EMA(CLOSE,90) EMA(CLOSE,150)
Grazie
Grazie mille