![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
Buongiorno ralph.ronnquist
Quindi dovrei creare un'altra linea sdl qualcosa come SDLL = long SDLS = short?
Penso di aver ragione nel dire che sull'indi SDL
uptrend = buffer 1 & indice 1 colore blu
dntrend = buffer 2 & indice 2 colore rosso
Se è così dove dovrei metterli. li metto alla fine della linea iCustom.
double SDL=iCustom(NULL,0, "Slope Direction Line",period,method,price,1,1,shift);
o sono fuori strada
L'istruzione:
fa sì che SDL mantenga il valore del secondo buffer (Uptrend) alla data barra "shift".
(Nota che avevi un ",1" ripetuto, che sembrava un errore di battitura. In ogni caso non dovrebbe essere lì)
Quindi, sì, se vuoi leggere sia Uptrend che Dntrend, allora avrai bisogno di due variabili per contenere i valori. Come dici tu, Uptrend è 1 e Dntrend è 2.
Buongiorno Ralph
Grazie per l'aiuto, funziona, ora posso andare a dormire.![](https://c.mql5.com/forextsd/smiles/sleepy.png)
Grazie
Beno
Spero che questo sia quello che stavate cercando.
Mi ha mandato nella giusta direzione - grazie amico, davvero apprezzato.
Il mio nuovo problema è che quando la mia istruzione if viene chiamata....
Si basa sul valore della barra dell'indicatore precedente in relazione alla barra corrente, e invia un Alert(); che ho creato... circa 20 volte.
Come potrei fare in modo che invii solo una volta?
Ho provato a creare un interruttore on/off usando le variabili, ma non funziona in MQL4 purtroppo.
Poi ho pensato ai timer... se ci fosse un timer che potessi creare e che avvisasse solo una volta in un periodo di 20 secondi, funzionerebbe anche questo....
Ma sono in perdita per quanto riguarda un'idea che sarebbe effettivamente possibile in MQL4.
Qualche idea?
In altre parole... Ho bisogno di un modo per impedirgli di allertare dopo il primo, perché al momento sta allertando più volte (fastidioso e inutile come si può intuire)
In altre parole... Ho bisogno di un modo per impedirgli di inviare l'allarme dopo il primo, perché al momento l'allarme viene inviato più volte (fastidioso e non necessario, come potete immaginare)
Potresti fornire un po' di codice da guardare?
Forse potresti impostare un booleano vero/falso da far scattare dopo che l'allarme è stato inviato la prima volta.
Non sono sicuro di quale codice avrebbe senso. Ecco la mia dichiarazione if per l'avviso.
latestlatestmain = 2 barre indietro nel mio indicatore.
latestmain = barra precedente nel mio indicatore
se(MainCCI > ErgoCCI){
{segnale = "SHORT";
se ((latestlatestmain >= 0) && (latestmain < 0)) {
PlaySound("alert2.wav");
}
}
if(lastsignal != signal && alertTag!=Time[0]){
alertTag = Time[0];
lastsignal=segnale;
}
}
if (MainCCI < ErgoCCI){
{signal = "LONG";
if ((latestlatestmain 0)) {
PlaySound("alert2.wav");
}
Questo è l'indicatore FX Sniper, e quando si adatta ai miei parametri invia l'Alert.
Come potrei impostare una cosa booleana vero/falso?
Ho provato a fare questo.....
if(MainCCI > ErgoCCI){
{signal = "SHORT";
if ((latestlatestmain >= 0) && (latestmain < 0)) {
if (onealert == 1) {
PlaySound("alert2.wav");
onealert = 0;
} }
}
if(lastsignal != signal && alertTag!=Time[0]){
alertTag = Time[0];
lastsignal=segnale;
}
}
if (MainCCI < ErgoCCI){
{signal = "LONG";
if ((latestlatestmain 0)) {
if (onealert == 0) {
PlaySound("alert2.wav");
onealert = 1;
} }
o qualche variante di questo, per creare l'on/off con le variabili.
C'è qualcos'altro che potrei fare usando booleani, vero? Qualche idea su come posso fare?
Al momento funziona bene per quanto riguarda l'avviso, mi avvisa solo circa 5-6 volte.
Apprezzo il tempo e l'aiuto amico.
-dharsant
Pensavo di aver risolto il problema e che Sleep(); avrebbe funzionato....![](https://c.mql5.com/forextsd/smiles/smile.png)
Ho trovato questo da Codersguru;
{
if (ref > 10)
return;
ref--;
static int LastAlert[10];
if( LastAlert[ref] == 0 || LastAlert[ref] < Bars)
{
Alert(alert_msg);
LastAlert[ref] = Bars;
}
}Sembra quello che sto cercando!
Usando questo con il mio indicatore...
Devo solo mettere la funzione nel mio script, e poi usare
AlertOnce("Sniper going LONG",10);
al posto del mio Alert(); ?
Mi sento come un piccolo programmatore inesperto![](https://c.mql5.com/forextsd/smiles/embaressed_smile.png)
Capito, grazie per l'aiuto!!!