Aiuto per la codifica - pagina 350

 
apprentice coder:
Come posso testare dal codice se la connessione al broker è attiva o meno?

Potete usare la funzione IsConnected() per questo, ma ...

Quella funzione non sarà mai raggiunta se non ci sono nuovi tick in arrivo.

Quindi, devi tenerlo in un ciclo infinito (che è inaccettabile per un EA) o devi usare gli eventi del timer per controllarlo (nel qual caso, se è un EA, potrebbe avvisarti che non c'è connessione. Presumo che tutti noi consideriamo gli indicatori come meno critici per la connessione - nessuna operazione con gli ordini e così via - quindi la soluzione del timer può essere applicata anche agli indicatori, ma sono probabilmente meno importanti da controllare da lì che da EA) . Altrimenti il tuo codice non saprà che la connessione è stata persa

 
mladen:
Puoi usare la funzione IsConnected() per questo, ma ...

Quella funzione non sarà mai raggiunta se non ci sono nuovi tick in arrivo.

Quindi, devi tenerlo in un ciclo infinito (che è inaccettabile per un EA) o devi usare gli eventi del timer per controllarlo (nel qual caso, se è un EA, potrebbe avvisarti che non c'è connessione. Presumo che tutti noi consideriamo gli indicatori come meno critici per la connessione - nessuna operazione con gli ordini e così via - quindi la soluzione del timer può essere applicata anche agli indicatori, ma sono probabilmente meno importanti da controllare da lì che da EA) . Altrimenti il tuo codice non saprà che la connessione è stata persa

Puoi postare qualche esempio di codice che lo faccia, per favore?

 
apprentice coder:
puoi postare qualche esempio di codice che lo faccia, per favore?

Domani posterò un esempio. OK?

 
mladen:
Domani posterò un esempio. OK?

OK... Riposiamoci un po'

 
apprentice coder:
puoi postare qualche esempio di codice che lo faccia, per favore?

apprendista codificatore

Ecco un semplice indicatore (ma il modo in cui viene utilizzato, si può fare esattamente lo stesso nell'EA) che controlla lo stato della connessione del broker ad un intervallo di tempo desiderato: _check_connection.mq4

#property indicator_chart_window

extern int CheckStatusEveryNMilliseconds = 250;

int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); }

int deinit() { EventKillTimer(); return(0); }

int start() { return(0); }

void OnTimer()

{

static bool previouslyConnected = true;

bool currentlyConnected = IsConnected();

if (previouslyConnected != currentlyConnected)

{

previouslyConnected = currentlyConnected;

string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected";

Comment("connection status changed.\nterminal is now : "+cdescription);

}

Come potete vedere, è un semplice esempio di come può essere fatto

File:
 
mladen:
apprendista codificatore

Ecco un semplice indicatore (ma il modo in cui viene utilizzato, si può fare esattamente lo stesso nell'EA) che controlla lo stato della connessione del broker ad un intervallo di tempo desiderato: _check_connection.mq4

#property indicator_chart_window

extern int CheckStatusEveryNMilliseconds = 250;

int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); }

int deinit() { EventKillTimer(); return(0); }

int start() { return(0); }

void OnTimer()

{

static bool previouslyConnected = true;

bool currentlyConnected = IsConnected();

if (previouslyConnected != currentlyConnected)

{

previouslyConnected = currentlyConnected;

string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected";

Comment("connection status changed.\nterminal is now : "+cdescription);

}

Come puoi vedere, è un semplice esempio di come può essere fatto

grazie :0

Lo vedo funzionare anche oggi (senza tick). interessante. imparare, imparare

 
mladen:
Cambia il nome del file fxpreislevelsv5.ex4 o fxpreislevelsv5.dll (metatrader non riconosce le estensioni in questo caso - devi avere un nome diverso del file indipendentemente dall'estensione)

Grazie per l'aiuto!!!

Ma mi sono imbattuto in un altro problema dopo la compilazione non ci sono stati errori ma non funziona e continua a rimuovere

"2014.09.20 19:56:40.262 Indicatore personalizzato Trend_Imperator_V2e GBPUSDe,M5: rimosso

2014.09.20 19:56:38.901 Indicatore personalizzato Trend_Imperator_V2e GBPUSDe,M5: caricato con successo"

succede sempre devo aggiornare i codici?

 
forexeaexpert:
Grazie per l'aiuto!!!

Ma mi sono imbattuto in un problema diverso dopo la compilazione non ci sono stati errori ma non funziona e continua a rimuovere

"2014.09.20 19:56:40.262 Indicatore personalizzato Trend_Imperator_V2e GBPUSDe,M5: rimosso

2014.09.20 19:56:38.901 Indicatore personalizzato Trend_Imperator_V2e GBPUSDe,M5: caricato con successo"

succede sempre devo aggiornare i codici?

forexeaexpert

Questo errore di solito accade quando l'indicatore viene chiamato con parametri errati

Controlla i parametri nella chiamata iCustom() a quell'indicatore

 

Ciao mladen ,

Stavo cercando di inserire questo indicatore nel mio ea.

Ma dopo il test è stato solo ottenere un segnale di acquisto.

Per favore aiutatemi a vedere se è un codice giusto che inserisco

MACD = iCustom(NULL,0,"MACD_ColorHist_Alert_EMA 2",FastEMA,SlowEMA,SignalEMA,true,true,true,false,false,false,false,false,false,false,false,0);

E so che macd>0 e macd<0 è il segnale che attraversa la linea dello zero.

Ma come posso ottenere un altro segnale dalla direzione della pendenza?

Ero molto confuso, dopo aver provato così tante volte

 
stevenpun:
Ciao mladen ,

Stavo cercando di inserire questo indicatore nel mio ea.

Ma dopo aver fatto dei test ha ottenuto solo un segnale di acquisto.

Vi prego di aiutarmi a vedere se è un codice giusto che inserisco

MACD = iCustom(NULL,0,"MACD_ColorHist_Alert_EMA 2",FastEMA,SlowEMA,SignalEMA,true,true,true,false,false,false,false,false,false,false,false,0);

E so che macd>0 e macd<0 è il segnale che attraversa la linea dello zero.

Ma come posso ottenere un altro segnale dalla direzione della pendenza?

Ero molto confuso, dopo aver provato tante volte

stevenpun

Per questo sarebbe più semplice aggiungere un buffer "slope direction" a quell'indicatore o usare qualche altro MACD che ha già quella slope risolta in un buffer

Motivazione: