Comment coder ? - page 223

 

...

Je pense (puisque je ne peux pas voir votre EA qui écrit les valeurs dans le fichier csv) qu'il vous manque un FileFlush(). Dans les cas où vous voulez rendre les changements dans le fichier accessible par "d'autres" immédiatement sans fermer le fichier (qui utilise implicitement flush ) vous devriez toujours flush les changements sur le disque.

salutations

mladen

sunshineh:
Bonjour,

Je suis en train d'écrire un EA qui fonctionne avec des fichiers CSV.

Pour les tests, je place mes fichiers CSV dans le dossier suivant :

/tester/files

Voici seulement une petite partie de mon EA :

int handle = 0;

int Long = 0;

handle=FileOpen("LongMarket.csv",FILE_CSV|FILE_READ,';');

if (handle > 0)

{

Long= FileReadNumber(handle);

FileClose(handle);

}

Print("LongMarket = ", Long);

Print("Long handle = ", handle);

Dans mon EA, je lis les fichiers CSV, puis j'écris quelques nombres entiers.

Maintenant, lorsque je fais mon test et que je lis dans le journal les messages "Print", j'obtiens souvent de vieux nombres entiers qui ne sont plus écrits dans les fichiers CSV !

Par exemple :

D'abord il y a écrit 3 et mon EA fonctionne et écrit le 0 dans le fichier,

Je ne vois que le 3 dans ce fichier CSV ! !

Lorsque j'efface ce fichier CSV et que je place un nouveau fichier CSV avec 3 dans le dossier " /tester/files ", je ne peux lire que le 0 du test avant ! !!!. Mais je n'arrive pas à trouver où l'EA lit le 0 ! !!

Je deviens fou !!!!!

J'espère que vous pourrez comprendre ma question et me donner un conseil !
 

Quelqu'un peut m'aider à ajouter une fonction d'alarme ?

Je voudrais ajouter une fonction d'alarme à cet indicateur, une alarme de couleur. J'ai essayé depuis longtemps, utiliser le "si alarme", mais jamais sans succès. Quelqu'un peut m'aider ? Merci beaucoup ! ~ Mon anglais n'est pas bon alors désolé.

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 ForestGreen

#property indicator_color2 Red

#property indicator_color3 Black

#property indicator_color4 Black

//---- paramètres d'entrée

extern int FastClosePeriod=13 ;

extern int FastCloseShift=0 ;

extern int FastOpenPeriod=34 ;

extern int FastOpenShift=0 ;

extern int SlowClosePeriod=34 ;

extern int SlowCloseShift=0 ;

extern int SlowOpenPeriod=62 ;

extern int SlowOpenShift=0 ;

//---- tampons indicateurs

double ExtBlueBuffer[] ;

double ExtRedBuffer[] ;

double ExtDarkVioletBuffer[] ;

double ExtBlackBuffer[] ;

//+------------------------------------------------------------------+

//| Fonction d'initialisation de l'indicateur personnalisé |

//+------------------------------------------------------------------+

int init()

{

//---- ligne se décale lors du dessin

SetIndexShift(0,FastCloseShift) ;

SetIndexShift(1,FastOpenShift) ;

SetIndexShift(2,SlowCloseShift) ;

SetIndexShift(3,SlowOpenShift) ;

//---- premières positions sautées lors du dessin

SetIndexDrawBegin(0,FastCloseShift+FastClosePeriod) ;

SetIndexDrawBegin(1,FastOpenShift+FastOpenPeriod) ;

SetIndexDrawBegin(2,SlowCloseShift+SlowClosePeriod) ;

SetIndexDrawBegin(3,SlowOpenShift+SlowOpenPeriod) ;

//---- mappage de 3 tampons d'indicateurs

SetIndexBuffer(0,ExtBlueBuffer) ;

SetIndexBuffer(1,ExtRedBuffer) ;

SetIndexBuffer(2,ExtDarkVioletBuffer) ;

SetIndexBuffer(3,ExtBlackBuffer) ;

//---- paramètres de dessin

SetIndexStyle(0,DRAW_HISTOGRAM,0,2) ;

SetIndexStyle(1,DRAW_HISTOGRAM,0,2) ;

SetIndexStyle(2,DRAW_NONE,0,2) ;

SetIndexStyle(3,DRAW_NONE,0,2) ;

//---- étiquettes d'index

SetIndexLabel(0, "FastClose") ;

SetIndexLabel(1, "FastOpen") ;

SetIndexLabel(2, "SlowClose") ;

SetIndexLabel(3, "SlowOpen") ;

//---- initialisation terminée

retour(0) ;

}

//+------------------------------------------------------------------+

//| 9Squared Trader |

//+------------------------------------------------------------------+

int start()

{

int limite ;

int counted_bars=IndicatorCounted() ;

//---- vérifier les erreurs éventuelles

if(counted_bars<0) return(-1) ;

//---- dernière barre comptée sera recomptée

if(counted_bars>0) counted_bars-- ;

limit=Bars-counted_bars ;

//---- boucle principale

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

{

//---- ma_shift fixé à 0 car SetIndexShift a été appelé auparavant

ExtBlueBuffer=iMA(NULL,0,FastClosePeriod,0,MODE_EMA,PRICE_CLOSE,i) ;

ExtRedBuffer=iMA(NULL,0,FastOpenPeriod,0,MODE_EMA,PRICE_OPEN,i) ;

ExtDarkVioletBuffer=iMA(NULL,0,SlowClosePeriod,0,MODE_EMA,PRICE_OPEN,i) ;

ExtBlackBuffer=iMA(NULL,0,SlowOpenPeriod,0,MODE_EMA,PRICE_MEDIAN,i) ;

}

//---- fait

retour(0) ;

 
 
Dossiers :
example.gif  12 kb
example.mq4  3 kb
 
wolfe:
Voilà. J'ai fait cela très rapidement, et oui, c'est possible.

Consultez le fichier joint example.mq4 pour un exemple de codage.

J'ai également inclus une capture d'écran avec des commentaires, afin que vous puissiez voir que les valeurs RSI sont enregistrées tick par tick dans le tableau.

Salut wolfe,

Merci beaucoup pour votre minuterie et vos efforts. Je vais essayer ceci

Salutations,

MSV

 
 

Bande de Bollinger

Bonjour,

Quelqu'un peut-il m'aider à intégrer la formule de la bande de Bollinger (20period dev 2 on close) dans une feuille de calcul Excel ? Merci d'avance.

 

Salut les gars ! !!

J'ai besoin d'ouvrir un seul ordre d'achat et de vente par jour dans mon EA, s'il vous plaît, quel est le code pour faire cela ?

 
Apolofx:
J'ai besoin d'ouvrir un seul ordre d'achat et de vente par jour dans mon EA, s'il vous plaît, quel est le code pour faire cela ?

Je pense que vous devez boucler tous les ordres fermés et vérifier chacun pour son symbole et son heure de clôture... prenez celui qui correspond à Symbol() et qui a l'heure de clôture la plus récente. Ensuite, ajoutez 24 heures et utilisez cela dans une variable pour tester l'heure actuelle et ouvrez la transaction lorsqu'elle atteint le dernier ordre + 24 heures.

 

Une façon plus simple de le faire serait d'utiliser la fonction TimeDayOfYear et de vérifier le dernier ordre clôturé avec le symbole et le numéro magique correspondants. Assurez-vous simplement qu'il ne s'agit pas du même jour de l'année qu'aujourd'hui.

Consultez le fichier d'aide pour connaître la définition et l'utilisation de la fonction TimeDayOfYear.

Salutations

Lux

Raison: