Comment coder ? - page 263

 

Est-il possible de faire glisser une ligne vers le haut et vers le bas ?

Bonjour,

Est-il possible qu'une ligne de niveaux (ou une ligne de niveaux "effective") dans une fenêtre d'indicateur séparée soit déplacée (c'est-à-dire "glissée") manuellement et que la nouvelle valeur des paramètres soit mise à jour dans un EA qui les utilise pour initier et sortir un trade ?

J'ai lu qu'il existe des scripts "drag'n drop" permettant de déplacer une ligne, mais je ne sais pas s'il est possible d'incorporer / d'intégrer un tel script dans un EA.

 
 
yourspace:
Salut

C'est peut-être vrai, vous pouvez essayer.

double upper_red = iCustom(NULL,0, "DDM",Nmbr_Bars,Order,Ecart,3,0) ;

Ça ne change rien, mais c'est quand même un réservoir de réaction.

Peut-être que quelqu'un connaît un indicateur similaire ?

edit : J'ai résolu le problème, l'indicateur " i-Regr H&L " est presque le même, celui-ci tire normalement.

 

Économiseur de devis

Bonjour,

Je veux sauvegarder les données tick actuelles dans un fichier csv. Chaque semaine ou mois, je veux sauvegarder un fichier csv.

Donc dans ma fonction init, j'ouvre un nouveau fichier et à chaque tick, je fais un

FileWrite(handle_tick,TimeToStr(CurTime(),TIME_DATE|TIME_MINUTES|TIME_SECONDS),Bid,Ask) ;

Maintenant, j'ai quelques problèmes / questions :

1.

Quand il y a un problème avec l'écriture dans le fichier, l'ea s'arrête pour le trou (semaine/mois) et ne peut pas l'ouvrir à nouveau.

-Dois-je écrire FileOpen(...) à chaque tick ? Ou dois-je utiliser FileFlush(...) ?

2.

Il y avait aussi un problème avec le temps sauvegardé. Si je le comparais avec le temps du graphique, ou le temps du centre d'histoire, il y avait une grande différence (pas statique, parfois par exemple 39 minutes, ou 87 minutes).

Dois-je sauvegarder la CurTime ou quelle heure ?

3.

Il y a des interruptions dans ma connexion internet (par exemple 2-5 minutes, environ 3 fois par jour).

Comment puis-je vérifier mes cotations sauvegardées automatiquement, afin que l'ea récupère les données de minutes manquantes dans l'historique ?

Et comment puis-je récupérer mes données tick si la connexion internet a été perdue ? Existe-t-il également un centre d'historique ou un tampon pour les dernières heures ?

4.

Quelqu'un connaît-il un moyen facile de combiner automatiquement les fichiers csv-quote ?

5.

Je veux aussi sauvegarder les données tick et minute des cfd's comme Ger30 ! Si je sauvegarde le fichier .csv mensuellement, mais que le nouveau contrat, qui arrive tous les 3 mois, change au cours du mois. Alors l'EA ne peut pas trouver les données parce que le sous-jacent actuel (le contrat "Juli" n'est plus valide, mais maintenant par exemple le contrat de septembre) ne fonctionne plus.

Peut-être y a-t-il déjà un EA fiable pour ce problème ?

 

Après chaque écriture de fichier, vous devez effectuer un vidage de fichier pour vous assurer que les données sont écrites sur le disque après chaque écriture. Si la purge n'est pas utilisée, le système de fichiers stocke les écritures dans une mémoire tampon et écrit ensuite tous les enregistrements de la mémoire tampon sur le disque pour plus d'efficacité. Cela peut être la raison pour laquelle vous perdez des enregistrements ; l'ea s'arrête et vous perdez les enregistrements en mémoire. La purge de fichier écrira chaque enregistrement sur le disque, ce qui est plus lent mais vous assure de les avoir tous. Avec la purge de fichier, vous pouvez ouvrir le fichier en utilisant Excel pendant que l'EA est en cours d'exécution et l'examiner en mode lecture seule.

Dans la fonction deinit, vérifiez si votre handle de fichier est > 0, puis fermez le fichier.

Le tampon de mémoire sera automatiquement vidé.

Lors de l'ouverture, il existe des options permettant de créer un nouveau fichier sur le disque ou d'ajouter à un fichier existant. Il semble que vous deviez utiliser la méthode d'ajout à un fichier existant. Cela résoudra automatiquement votre problème de fusion de fichiers. Vous pouvez ouvrir chaque fichier CSV dans une instance distincte d'Excel et faire un copier-coller, vous pouvez aussi utiliser le Bloc-notes. Dans Excel, vous pouvez enregistrer le fichier fusionné au format CSV ou utiliser Excel comme base de données pour stocker les informations fusionnées au format XLSX. Vous pouvez aussi obtenir VB express de MS, c'est gratuit, apprendre VB et écrire une fusion de fichiers dans ce langage.

La meilleure option est de rechercher d'autres exemples d'économie de ticks.

Salutations

 

J'ai également une autre question :

6.

Est-il utile de sauvegarder le bid, le ask et le volumen dans mon tick-file ?

7.

Est-ce que quelqu'un a un tutoriel sur la façon de backtester des tickdata avec metatrader 4 ou/et 5 ?

Y a-t-il un expert qui pourrait m'aider ? Vous pouvez également répondre par message privé...

Merci !

julia

 

Et surtout, qu'en est-il des CFD ? Ils changent le contrat tous les trois mois ! Alors comment puis-je programmer cela dans mon tick-saver.mq4, pour que le changement de sous-jacent se fasse automatiquement et que je ne perde pas de ticks ?

 

Bonjour à tous, j'ai besoin d'aide pour utiliser 1 EA sur plusieurs graphiques !

Résumé de ma question :

J'ai un EA qui place un seul ordre à la fois en utilisant la variable total = OrdersTotal() . Un nouvel ordre ne s'ouvre que lorsque cet ordre est fermé.

Comment puis-je le modifier pour que deux paires de devises différentes puissent avoir chacune 1 ordre ouvert sans que la même paire de devises ait 2 ordres ouverts ?

Ce dont j'ai besoin, ce sont des lignes de code qui me permettent de faire cela :

placer un ordre (disons, avec le numéro magique 12345) s'il n'y a pas déjà un ordre ouvert avec ce numéro magique spécifique.

ou, placer 1 ordre s'il n'y a pas déjà un ordre du même symbole d'ordre ouvert.

--------------------------

Version plus longue de mon problème :

J'ai donc récemment modifié un EA simple basé sur le placement d'ordres lorsque les lignes 10 et 5 SMA se croisent.

Il fonctionne bien avec mon graphique EURUSD et il ne place qu'un seul ordre à la fois, soit d'achat ou de vente, car j'ai ces lignes de code :

total = OrdersTotal() ;

si(total < 1)

--alors il place un ordre

Lorsque j'ai créé un EA dupliqué et que je l'ai appliqué au graphique EURJPY, j'ai dû changer le code en

total = OrdersTotal() ;

si(total < 2)

--pour qu'il passe un ordre si un ordre était déjà ouvert sur le graphique EURUSD.

Le problème est que lorsque l'ordre EURUSD se ferme, un deuxième ordre EURJPY peut s'ouvrir et l'EA EURUSD ne placera pas de nouvel ordre puisqu'il y a déjà un ordre EURJPY ouvert.

Je donne aux différentes paires des numéros magiques distincts. J'avais un ordre ouvert sur mon graphique EURUSD avec le numéro magique 22341 et j'ai essayé d'utiliser une nouvelle variable pour mon graphique EURJPY :

tott = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;

if(OrderMagicNumber() == 22341) //22341 est le numéro magique pour les ordres EURUSD

total = OrdersTotal() ;

si(total < 2 && tott == true)

--alors un ordre est placé pour EURJPY

mais cela devient compliqué de laisser les EAs fonctionner seuls... surtout si j'ajoute une troisième paire de devises USDJPY sur laquelle je veux que mon EA fonctionne.

toute aide est appréciée !

edit :

j'ai décidé d'utiliser des nombres magiques :

total= 0 ;

for(int i=0;i<OrdersTotal() ; i++ )

{

if(OrderSelect(i, SELECT_BY_POS)==true)

{

si (OrderMagicNumber()==12341)

total++ ;

}

}

{

si(total < 1)

--alors un échange sera effectué

 

Backtesting des données tic-tac

Sunshineh,

"7. Est-ce que quelqu'un a un tutoriel sur la façon de backtester les données tickdata avec metatrader 4 ou/et 5 ?"

Une ancienne version - je crois que c'était la 208 - était la dernière qui permettait de faire des données en tic-tac. Il a été posté quelque part, cherchez d'abord sur TSD.

Si vous arrivez à résoudre tout cela, j'aimerais l'utiliser aussi. Je connais également un fil de discussion où ce problème est résolu de manière acceptable, bien qu'il ne soit pas sur TSD.

Big Be

 

Comment faire pour que l'EA réalise que la barre précédente a clôturé au-dessus de la BB ?

Bonjour à tous,

J'essaie de faire en sorte que l'EA enregistre la fermeture d'une barre en dehors des bandes de Bollinger, puis lance une transaction si cela s'est produit dans la barre précédente.

et que les ema se croisent ou autre. Mon code jusqu'à présent ressemble à ceci :

int bar, sll ;

if( Close[0] > bollingerband ){

bar = Bars;}

si( bar+1 == Bars){

if(ema1>ema2){

sll = 1}

si ( bar+2 == Bars ){

bar = 0;}

Malheureusement, cela ne semble pas fonctionner et j'ai également essayé d'en faire une variable statique et globale. Je serais donc très reconnaissant si quelqu'un pouvait m'indiquer la bonne direction.

Merci,

Sapere

Raison: