Comment coder ? - page 225

 

nouveau venu...

tout d'abord bonne année à tous !

ensuite merci pour toutes les connaissances que vous partagez dans ce forum

Je m'approche de mql4, je ne suis pas un codeur.

J'apprécierais un peu d'aide pour écrire cette stratégie très simple :

entrées longues :

(ask-bid) <= Z_pips /* vérification du spread */

et

(bollinger_up-bollinger_down) <= K_pips /* vérification de la volatilité */

et

ask < (bollinger_down + X_pips) /* vérification du prix */

et

ma_Qperiods >= ma_Wperiods /* vérification de la tendance */

Sorties :

Trailing SL = 15 pips

Est-ce que quelqu'un a le temps de me donner une chance ?

Merci d'avance

neeverr

 

j'ai besoin d'aide avec mon indicateur nr7

Bonjour

Je suis en train de coder un indicateur pour nr7.

L'algorithme est le suivant

-calculer la plage et la stocker dans un tableau

- si la plage actuelle <= 7 dernières plages, alors la barre actuelle est nr7

mais l'indicateur semble marquer chaque barre comme nr7. je ne sais pas où j'ai fait une erreur.

La capture d'écran est ici

2010-01-18_0531

Dossiers :
nr7.mq4  3 kb
 

advancedsar EA

Salut les amis,

J'ai besoin de votre aide, si l'un d'entre vous peut m'aider à modifier un EA que j'ai obtenu dans un autre fil, mais malheureusement je n'ai pas son fichier mql.

A partir de la logique originale de cet EA, je veux faire quelques modifications comme ci-dessous :

- Cet EA ne fonctionne que sur 4 chiffres, aide à l'améliorer, il peut aussi fonctionner sur 5 chiffres.

- Cet EA fonctionne selon le système commun de martingale, j'ai besoin d'ajouter plus de mode de fonctionnement 2X,

1. Si l'EA ouvre un ordre sur le dernier trade, et qu'il atteint le TP, alors l'EA commencera un nouveau cycle et ouvrira un trade dans le même ordre que le dernier. Exemple : si le dernier ordre est un ordre d'achat, et qu'ils atteignent le TP, alors l'EA continuera à ouvrir un ordre d'achat jusqu'à ce qu'ils atteignent le SL et l'EA changera l'ordre en un ordre de vente de direction opposée. La même chose pour l'ordre de vente, tant qu'ils profitent de l'ordre de vente, alors ils continuent à ouvrir un ordre de vente avec un nouveau cycle jusqu'à ce qu'ils atteignent le SL et que la direction change en ordre d'achat.

2. Deuxième mode de fonctionnement. L'EA fonctionne selon une logique de séquence achat-vente-achat-vente-achat, ce mode est conçu pour les marchés sans tendance.

Nous vous remercions pour votre aide.

Merci

yoha

Dossiers :
 

une idée de la raison pour laquelle cet EA ne passe pas de commandes ?

Hé les gars, cela fait un moment que je suis de retour dans ce jeu .... de toute façon je commence juste à rafraîchir sur mql.... beaucoup a changé ici.

En fait, je veux placer des ordres d' achat et de vente à 10 pips de l'ouverture d'une barre des deux côtés. Le Takeprofit est à 15 pips des ordres en attente.

Le problème est que les ordres ne sont jamais placés...

int counted_bars = IndicatorCounted();

int pos = Bars - counted_bars + 1;

if (counted_bars == 0) pos = Bars - 10;

if (counted_bars>0) counted_bars--;

double currentPrice = iClose("EURUSD",PERIOD_M1,0);

while(pos>0)

{

//Putting Pending LongOrder

Print("Long...");

OrderSend("EURUSD",OP_BUYLIMIT,1,Open+10*Point,3,0,Open+25*Point,"Pending Long Order", 888, 0, Green);

Print("Short...");

//Putting Pending ShortOrder

OrderSend("EURUSD",OP_SELLSTOP,1,Open-10*Point,3,0,Open-25*Point,"Pending Short Order", 999, 0, Red);

pos--;

}
 

Je ne vois pas bien ce que les barres comptées ont à voir avec un EA ? N'est-il pas conçu pour être utilisé dans des indicateurs ?

Je pense que si vous enlevez cette partie, tout ira bien.

 

variable de type datetime

Bonjour,

Je veux écrire les données actuelles et l'heure.

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

Comment puis-je écrire ceci ?

Mais comment puis-je écrire ceci :

starttime = Date du jour + starthour + startminute ;

 

Je ne sais pas exactement ce que vous demandez, mais je suppose que vous essayez d'incrémenter une date d'un certain nombre d'heures et de minutes. Si vous consultez le fichier d'aide de TimeCurrent(), vous verrez qu'il renvoie le temps en secondes. Logiquement, vous pouvez donc en déduire que pour ajouter des minutes, vous devez les multiplier par 60 et pour les heures, par 3600 (60*60).

Vous auriez donc quelque chose comme...

TimeCurrent()+(starthour*3600)+(startmin*60);

Remplacez simplement TimeCurrent() par l'heure que vous avez désignée comme 'startdate'.

Lux

 
sunshineh:
Salut,

Je veux écrire les données actuelles et l'heure.

extern int starthour = 8;

extern int startminute = 0;

[/CODE]

in my variable

[CODE]

datetime starttime= 0;

Comment puis-je écrire ceci ?

Mais comment puis-je écrire ceci :

heure de départ = date du jour + heure de départ + minute de départ ;

Utilisez la fonction StrToTime. Si vous ne passez pas le jour à cette fonction mais seulement l'heure et la minute, elle utilisera le jour actuel. Comme ceci :

datetime startTime = StrToTime( StartHour+" : "+ StartMinute) ;

Où StartHour et StartMinute sont des chaînes de caractères :

string StartHour = 8 ;

chaîne de caractères StartMinute = 0 ;

 

Beaucoup de remerciements !

J'ai aussi une autre question.

Comment puis-je le coder, si je veux que mon EA achète ou vende seulement au prix de clôture de la bougie ?

Je pensais que je pouvais écrire

if(!Close[0]) return;

mais cela ne fonctionne pas.

 
sunshineh:
Merci beaucoup !

J'ai aussi une autre question.

Comment puis-je le coder, si je veux que mon EA achète ou vende uniquement au prix de clôture de la bougie ?

Je pensais que je pouvais écrire

if(!Close[0]) return;
mais cela ne fonctionne pas.

Vous devez définir une variable, disons que ce sera :

int barsNumber = 0 ;

dans la section globale (par exemple juste avant la fonction init)

et ensuite dans la fonction de démarrage où vous avez votre partie avec la fonction sendOrder vous devez vérifier cette condition

if(Bars>barsNumber)

et si c'est vrai, définissez notre variable barsNumber à Bars

barsNumber = Bars ;

Donc tout devrait ressembler à ceci :

#quelques propriétés

int barsNumber = 0 ;

int init()

{

}

int deinint()

{

}

int start()

{

if(Bars>barsNumber)

{

SendOrder(...) ;

barsNumber = Bars ;

}

}