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
Ciao Pro-Coders,
Ricevo l'avvertimento "controllare la precedenza dell'operatore per possibili errori; usare le parentesi per chiarire la precedenza".
if ((STC115)||(STC185)&&(Ask>emaFilter && ADXmain>25))
{
OpenBuy();
}
Sembra che l'istruzione ..AND (Ask>emaFilter) venga anche ignorata da MT4.
Qualcuno potrebbe consigliarmi?
Grazie in anticipo!probabilmente dovresti scriverlo in questo modo:
if (((STC115) || (STC185)) && (Ask>emaFilter && ADXmain>25) )
Ma dipende principalmente da cosa vuoi testare esattamente. L'avvertimento viene perché prima la precedenza di && (e) e || (o) era diversa - l'hanno invertita e ora tutti quei confronti logici devono essere controllati
probabilmente dovresti scriverlo in questo modo:
if (((STC115) || (STC185)) && (Ask>emaFilter && ADXmain>25) )
Ma dipende principalmente da cosa vuoi testare esattamente. L'avvertimento viene perché prima la precedenza di && (e) e || (o) era diversa - l'hanno invertita e ora tutti quei confronti logici devono essere controllatiCiao Mladen,
grazie mille per il tuo suggerimento. Lo proverò! Sei sempre molto utile!
In parole povere, tutte e tre le parentesi dovrebbero diventare vere prima che l'EA apra un trade.
Immagino che il tuo codice fornirà questa funzionalità.
Cordiali saluti,
T.
Codificatori,
Qualcuno potrebbe aiutarmi con quanto segue?
Sto usando uno script di Elliot Wave per etichettare manualmente le onde. Lo script mette 8 oggetti diversi sul grafico (i,ii,iii,iv,v,a,b,c).
Tutto funziona bene, ma cancellare gli oggetti è un sacco di lavoro. Perché devo cliccare su ogni oggetto (i,ii,iii,iv,v,a,b,c), per cancellarli. Vorrei aggiungere qualcosa al codice che mi permetta di evidenziare tutti gli oggetti (i,ii,iii,iv,v,a,b,c) con un solo clic sugli oggetti. Ho già cercato ma non ho trovato la funzione di cui ho bisogno.
(Non sto cercando uno script che cancelli tutti gli oggetti del grafico).
Grazie in anticipo
//+------------------------------------------------------------------+
#property version "1.00"
#property strict
#include
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
extern string Text1 = "(i)"; // Enter Text to place on screen
extern string Text2 = "(ii)"; // Enter Text to place on screen
extern string Text3 = "(iii)"; // Enter Text to place on screen
extern string Text4 = "(iv)"; // Enter Text to place on screen
extern string Text5 = "(v)"; // Enter Text to place on screen
extern string Text6 = "(a)"; // Enter Text to place on screen
extern string Text7 = "(b)"; // Enter Text to place on screen
extern string Text8 = "(c)"; // Enter Text to place on screen
extern string Text_font="Arial Bold"; // font of text
extern int Text_fontsize = 14; // size of text
extern color Text_color = Red; // color of text
int TextBarsAhead2 = 7; // # bars to space 2nd letter from first
int TextBarsAhead3 = 14; // # bars to space 3rd letter from first
int TextBarsAhead4 = 21; // # bars to space 4th letter from first
int TextBarsAhead5 = 28; // # bars to space 5th letter from first
int TextBarsAhead6 = 35; // # bars to space 6th letter from first
int TextBarsAhead7 = 42; // # bars to space 7th letter from first
int TextBarsAhead8 = 49; // # bars to space 8th letter from first
//+------------------------------------------------------------------+
//+-----------------------------SCRIPT CODE--------------------------+
int OnStart(){
double price = WindowPriceOnDropped(); // find the price point where dropped
datetime Time1 = WindowTimeOnDropped(); // find the time point where dropped
datetime TimeNow = TimeCurrent(); // get the current time ( makes name unique)
datetime Time2 = (int)Time1+TextBarsAhead2*(int)Period()*60;
datetime Time3 = (int)Time1+TextBarsAhead3*(int)Period()*60;
datetime Time4 = (int)Time1+TextBarsAhead4*(int)Period()*60;
datetime Time5 = (int)Time1+TextBarsAhead5*(int)Period()*60;
datetime Time6 = (int)Time1+TextBarsAhead6*(int)Period()*60;
datetime Time7 = (int)Time1+TextBarsAhead7*(int)Period()*60;
datetime Time8 = (int)Time1+TextBarsAhead8*(int)Period()*60;
string gap=" "; // spacing between text characters
string text=Text1+gap+Text2+gap+Text3+gap+Text4+gap+Text5; // put the text in a line
TextToPrint ("Wave labels 1 " + (string)TimeNow, Text1, Text_fontsize, Text_font, Text_color, Time1, price); //print 1st letter
TextToPrint ("Wave labels 2 " + (string)TimeNow, Text2, Text_fontsize, Text_font, Text_color, Time2, price); //print 1st letter
TextToPrint ("Wave labels 3 " + (string)TimeNow, Text3, Text_fontsize, Text_font, Text_color, Time3, price); //print 1st letter
TextToPrint ("Wave labels 4 " + (string)TimeNow, Text4, Text_fontsize, Text_font, Text_color, Time4, price); //print 1st letter
TextToPrint ("Wave labels 5 " + (string)TimeNow, Text5, Text_fontsize, Text_font, Text_color, Time5, price); //print 1st letter
TextToPrint ("Wave labels 6 " + (string)TimeNow, Text6, Text_fontsize, Text_font, Text_color, Time6, price); //print 1st letter
TextToPrint ("Wave labels 7 " + (string)TimeNow, Text7, Text_fontsize, Text_font, Text_color, Time7, price); //print 1st letter
TextToPrint ("Wave labels 8 " + (string)TimeNow, Text8, Text_fontsize, Text_font, Text_color, Time8, price); //print 1st letter
return(0);
}
//+------------------------------------------------------------------+
void TextToPrint(string TextName,string LabelText,int FontSize,string FontName,color TextColor,datetime Time0,double Price0)
{
if(StringLen(LabelText)>1){
ObjectCreate(TextName,OBJ_TEXT,0,Time0,Price0);
ObjectSetText(TextName,LabelText,FontSize,FontName,TextColor);
}
}
//+------------------------------------------------------------------+Codificatori,
Qualcuno potrebbe aiutarmi con quanto segue?
Sto usando uno script di Elliot Wave per etichettare manualmente le onde. Lo script mette 8 oggetti diversi sul grafico (i,ii,iii,iv,v,a,b,c).
Tutto funziona bene, ma cancellare gli oggetti è un sacco di lavoro. Perché devo cliccare su ogni oggetto (i,ii,iii,iv,v,a,b,c), per cancellarli. Vorrei aggiungere qualcosa al codice che mi permetta di evidenziare tutti gli oggetti (i,ii,iii,iv,v,a,b,c) con un solo clic sugli oggetti. Ho già cercato ma non ho trovato la funzione di cui ho bisogno.
(Non sto cercando uno script che cancelli tutti gli oggetti del grafico).
Grazie in anticipo
//+------------------------------------------------------------------+
#property version "1.00"
#property strict
#include
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
extern string Text1 = "(i)"; // Enter Text to place on screen
extern string Text2 = "(ii)"; // Enter Text to place on screen
extern string Text3 = "(iii)"; // Enter Text to place on screen
extern string Text4 = "(iv)"; // Enter Text to place on screen
extern string Text5 = "(v)"; // Enter Text to place on screen
extern string Text6 = "(a)"; // Enter Text to place on screen
extern string Text7 = "(b)"; // Enter Text to place on screen
extern string Text8 = "(c)"; // Enter Text to place on screen
extern string Text_font="Arial Bold"; // font of text
extern int Text_fontsize = 14; // size of text
extern color Text_color = Red; // color of text
int TextBarsAhead2 = 7; // # bars to space 2nd letter from first
int TextBarsAhead3 = 14; // # bars to space 3rd letter from first
int TextBarsAhead4 = 21; // # bars to space 4th letter from first
int TextBarsAhead5 = 28; // # bars to space 5th letter from first
int TextBarsAhead6 = 35; // # bars to space 6th letter from first
int TextBarsAhead7 = 42; // # bars to space 7th letter from first
int TextBarsAhead8 = 49; // # bars to space 8th letter from first
//+------------------------------------------------------------------+
//+-----------------------------SCRIPT CODE--------------------------+
int OnStart(){
double price = WindowPriceOnDropped(); // find the price point where dropped
datetime Time1 = WindowTimeOnDropped(); // find the time point where dropped
datetime TimeNow = TimeCurrent(); // get the current time ( makes name unique)
datetime Time2 = (int)Time1+TextBarsAhead2*(int)Period()*60;
datetime Time3 = (int)Time1+TextBarsAhead3*(int)Period()*60;
datetime Time4 = (int)Time1+TextBarsAhead4*(int)Period()*60;
datetime Time5 = (int)Time1+TextBarsAhead5*(int)Period()*60;
datetime Time6 = (int)Time1+TextBarsAhead6*(int)Period()*60;
datetime Time7 = (int)Time1+TextBarsAhead7*(int)Period()*60;
datetime Time8 = (int)Time1+TextBarsAhead8*(int)Period()*60;
string gap=" "; // spacing between text characters
string text=Text1+gap+Text2+gap+Text3+gap+Text4+gap+Text5; // put the text in a line
TextToPrint ("Wave labels 1 " + (string)TimeNow, Text1, Text_fontsize, Text_font, Text_color, Time1, price); //print 1st letter
TextToPrint ("Wave labels 2 " + (string)TimeNow, Text2, Text_fontsize, Text_font, Text_color, Time2, price); //print 1st letter
TextToPrint ("Wave labels 3 " + (string)TimeNow, Text3, Text_fontsize, Text_font, Text_color, Time3, price); //print 1st letter
TextToPrint ("Wave labels 4 " + (string)TimeNow, Text4, Text_fontsize, Text_font, Text_color, Time4, price); //print 1st letter
TextToPrint ("Wave labels 5 " + (string)TimeNow, Text5, Text_fontsize, Text_font, Text_color, Time5, price); //print 1st letter
TextToPrint ("Wave labels 6 " + (string)TimeNow, Text6, Text_fontsize, Text_font, Text_color, Time6, price); //print 1st letter
TextToPrint ("Wave labels 7 " + (string)TimeNow, Text7, Text_fontsize, Text_font, Text_color, Time7, price); //print 1st letter
TextToPrint ("Wave labels 8 " + (string)TimeNow, Text8, Text_fontsize, Text_font, Text_color, Time8, price); //print 1st letter
return(0);
}
//+------------------------------------------------------------------+
void TextToPrint(string TextName,string LabelText,int FontSize,string FontName,color TextColor,datetime Time0,double Price0)
{
if(StringLen(LabelText)>1){
ObjectCreate(TextName,OBJ_TEXT,0,Time0,Price0);
ObjectSetText(TextName,LabelText,FontSize,FontName,TextColor);
}
}
//+------------------------------------------------------------------+xtractalpha
Nella procedura deinit() aggiungi la parte di pulizia
Nel tuo caso sarebbe ObjectDelete(objectName) per ogni oggetto che il tuo codice ha creato
Ciao Mladen
Potresti aiutarmi con gli errori di compilazione nel seguente
Ciao Mladen Potresti aiutare con gli errori di compilazione nel seguente
Controlla ora: genie_stoch_rsittt_1.mq4
Caro Mladen
Grazie per questo grande indy
È possibile la versione con istogramma?
Caro Mladen
Thanx per questo grande indy
È possibile la versione con istogramma?È possibile acquistare allora le due linee di segnale devono essere completamente ignorate e tagliate fuori
È possibile acquistare allora le due linee di segnale devono essere completamente ignorate e tagliate fuori
Nessun problema.... ho bisogno solo di questa linea rosso-verde
(linea rosso verde come istogramma)
Thanx in anticipo
Ciao Mladen,
Ho aggiunto un codice per il trailing stop all'EA. Sto ricevendo due errori di compilazione. Le istruzioni sull'aggiunta del codice erano:
Come si usa?
Molto semplice. inserisci il codice sottostante in qualsiasi parte del tuo programma Expert Advisor e chiama la funzionetrail2(#ticket) nella funzione Start().ticket = è il tuo ordine ticket, potrebbe essere sia un ordine di acquisto che di vendita. Ma deve essere un ordine dal vivo, non un ordine in sospeso.
Ad es.
{...(il tuo codice)
ticket=ordersend(...)
...
}
..
trail2(biglietto)
oppure trail2(ticket, 300, 40, 250, 100)
..