Aide au codage - page 350

 
apprentice coder:
Comment puis-je tester à partir du code si la connexion au courtier est activée ou désactivée ?

Vous pouvez utiliser la fonction IsConnected() pour cela, mais ...

Cette fonction ne sera jamais atteinte s'il n'y a pas de nouveaux ticks entrants.

Donc, vous devez la maintenir dans une boucle sans fin (ce qui est inacceptable pour un EA) ou vous devez utiliser les événements du timer pour vérifier cela (dans ce cas, si c'est un EA, il pourrait vous avertir qu'il n'y a pas de connexion. Je suppose que nous considérons tous que les indicateurs sont moins critiques en matière de connexion - pas d'opérations avec des ordres et ainsi de suite - donc la solution de la minuterie peut être appliquée aux indicateurs aussi, mais il est probablement moins important de vérifier à partir de là qu'à partir d'un EA). Sinon, votre code ne saura pas que la connexion a été perdue.

 
mladen:
Vous pouvez utiliser la fonction IsConnected() pour cela, mais ...

Cette fonction ne sera jamais atteinte s'il n'y a pas de nouveaux ticks entr ants.

Donc, vous devez le garder dans une boucle sans fin (ce qui est inacceptable pour un EA) ou vous devez utiliser les événements du timer pour vérifier cela (dans ce cas, si c'est un EA, il pourrait vous avertir qu'il n'y a pas de connexion. Je suppose que nous considérons tous que les indicateurs sont moins critiques en matière de connexion - pas d'opérations avec des ordres et ainsi de suite - donc la solution de la minuterie peut être appliquée aux indicateurs aussi, mais il est probablement moins important de vérifier à partir de là qu'à partir d'un EA). Sinon, votre code ne saura pas que la connexion a été perdue.

Pouvez-vous afficher un exemple de code qui ferait cela, s'il vous plaît ?

 
apprentice coder:
Pouvez-vous afficher un exemple de code qui ferait cela, s'il vous plaît ?

Je posterai un exemple demain. OK ?

 
mladen:
Je posterai un exemple demain. D'ACCORD ?

OK. Prenons un peu de repos

 
apprentice coder:
Pouvez-vous afficher un exemple de code qui ferait cela, s'il vous plaît ?

apprenti codeur

Voici un indicateur simple (mais la façon dont il est utilisé, vous pouvez le faire exactement de la même façon dans l'EA) qui vérifie le statut de connexion du courtier à un intervalle de temps désiré : _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);

}

Comme vous pouvez le voir, il s'agit d'un exemple simple de la façon dont cela peut être fait.

Dossiers :
 
mladen:
apprenti codeur

Voici un indicateur simple (mais la façon dont il est utilisé, vous pouvez le faire exactement de la même façon dans l'EA) qui vérifie le statut de connexion du courtier à un intervalle de temps désiré : _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);

}

Comme vous pouvez le voir, c'est un exemple simple de la façon dont cela peut être fait.

Merci :0

Je vois que cela fonctionne même aujourd'hui (sans ticks). intéressant. apprentissage, apprentissage

 
mladen:
Changez le nom du fichier fxpreislevelsv5.ex4 ou fxpreislevelsv5.dll (metatrader ne reconnaît pas les extensions dans ce cas - vous devez avoir un nom différent du fichier indépendamment de l'extension).

Merci pour l'aide !!!

Mais j'ai rencontré un problème différent après la compilation, il n'y avait pas d'erreurs mais il ne fonctionne pas et continue de s'enlever.

"2014.09.20 19:56:40.262 Indicateur personnalisé Trend_Imperator_V2e GBPUSDe,M5 : supprimé

2014.09.20 19:56:38.901 Custom indicator Trend_Imperator_V2e GBPUSDe,M5 : loaded successfully" (Indicateur personnalisé Trend_Imperator_V2e GBPUSDe,M5 : chargé avec succès)

Il arrive toujours que je doive mettre à jour les codes ?

 
forexeaexpert:
Merci pour votre aide ! !!

Mais j'ai rencontré un problème différent après la compilation, il n'y avait pas d'erreurs, mais il ne fonctionne pas et continue de s'enlever.

"2014.09.20 19:56:40.262 Indicateur personnalisé Trend_Imperator_V2e GBPUSDe,M5 : supprimé

2014.09.20 19:56:38.901 Custom indicator Trend_Imperator_V2e GBPUSDe,M5 : chargé avec succès"

Je dois toujours mettre à jour les codes ?

forexeaexpert

Cette erreur se produit généralement lorsque l'indicateur est appelé avec de mauvais paramètres.

Vérifiez les paramètres dans l'appel iCustom() de cet indicateur.

 

Bonjour mladen ,

J'ai essayé d'insérer cet indicateur dans mon ea.

Mais après avoir testé, je n'ai obtenu qu'un signal d'achat.

S'il vous plaît aidez-moi à voir si c'est un bon code que j'insère.

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

Et je sais que macd>0 et macd<0 est le signal qui traverse la ligne zéro.

Mais comment puis-je obtenir un autre signal dans la direction de la pente ?

J'étais très confus, après avoir essayé tant de fois.

Dossiers :
 
stevenpun:
Bonjour mladen ,

J'ai essayé d'insérer cet indicateur dans mon ea.

Mais après avoir testé, je n'ai obtenu qu'un signal d'achat.

S'il vous plaît aidez-moi à voir si c'est un bon code que j'insère.

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

Et je sais que macd>0 et macd<0 est le signal qui traverse la ligne zéro.

Mais comment puis-je obtenir un autre signal dans la direction de la pente ?

J'étais très confus, après avoir essayé tant de fois

stevenpun

Pour cela, le plus simple serait d'ajouter un tampon "direction de la pente" à cet indicateur ou d'utiliser un autre MACD qui a déjà cette pente résolue dans un tampon.