Demandez ! - page 71

 

Questions et réponses

Bonjour à tous,

Je pensais avoir trouvé mes réponses avec le code suivant :

double range[5];

for(int i=1;i<5;i++)

{

range={High-Low};

int Max=ArrayBsearch(range,10,WHOLE_ARRAY,1,MODE_ASCEND);

double MaxRange=(High[Max]-Low[Max])/Point;

}

Print("Max Range: ",MaxRange," found at index: ",Max);

Mais il renvoie toujours le dernier indice et non le plus grand indice de la plage.

Toute aide supplémentaire serait appréciée.

SaxMan

 

Erreur corrigée

SaxMan:
Bonjour à tous,

Je pensais avoir mes réponses avec le code suivant :

double range[5];

for(int i=1;i<5;i++)

{

range={High-Low};

int Max=ArrayBsearch(range,10,WHOLE_ARRAY,1,MODE_ASCEND);

double MaxRange=(High[Max]-Low[Max])/Point;

}

Print("Max Range: ",MaxRange," found at index: ",Max);

[/code]

But it still just returns the last index not the largest range index.

Any further help would be appreciated.

SaxMan

Voici la correction :

[code]

double range[5] ;

for(int i=1;i<5;i++)

{

range={High-Low} ;

int Max=ArrayMaximum(range) ;

double MaxRange=(High[Max]-Low[Max])/Point ;

}

Print("Max Range : ",MaxRange," found at index : ",Max) ;

Ceci peut être utilisé pour obtenir la valeur la plus élevée/la plus basse (en utilisant ArrayMinimum(range)) du tableau pour comparer des variables.

J'espère que cela vous aidera,

SaxMan

 

Même code avec des ajouts

Ajouté :

* Plage minimale

* Lignes verticales pour mettre en évidence les barres des plages Max et Min :

double range[2000];

for(int i=1;i<2000;i++)

{

range={High-Low};

int Max=ArrayMaximum(range,WHOLE_ARRAY,1);

int Min=ArrayMinimum(range,WHOLE_ARRAY,1);

double MaxRange=(High[Max]-Low[Max])/Point;

double MinRange=(High[Min]-Low[Min])/Point;

}

Print("Max Range: ",MaxRange," pips found at index: ",Max);

Print("Min Range: ",MinRange," pips found at index: ",Min);

int time1=Time[Max];

int time2=Time[Min];

ObjectCreate("stats1",OBJ_VLINE,0,0,0);

ObjectSet("stats1", OBJPROP_TIME1, time1);

ObjectSet("stats1", OBJPROP_COLOR, Red);

ObjectSet("stats1", OBJPROP_WIDTH, 1);

ObjectCreate("stats2",OBJ_VLINE,0,0,0);

ObjectSet("stats2", OBJPROP_TIME1, time2);

ObjectSet("stats2", OBJPROP_COLOR, Blue);

ObjectSet("stats2", OBJPROP_WIDTH, 1);
 

Le code est conforme, mais n'affiche pas la valeur

extern Bool Direction_Up=true ;

if(Direction_Up==true) Dir="UP" ; ///////////Cette conversion est erronée - Comment la convertir dans la bonne syntaxe ????

ObjectCreate("Dir", OBJ_LABEL, 0, 0, 0) ;

ObjectSetText("Dir", 10, "Arial", White);///////////Ceci est une erreur - Comment faire pour qu'il affiche UP à l'écran ????

ObjectSet("Dir", OBJPROP_CORNER, 1) ;

ObjectSet("Dir", OBJPROP_XDISTANCE, 36) ;

ObjectSet("Dir", OBJPROP_YDISTANCE, 120);///

Dave <<<
 

Bonjour,

int start()

{

int i;

if ((Year() >= X) && (Month() >= Y))

{

Comment("===========",expired,"===========");

return(0);

}

GetPosition = StrToTime(StrGetPosition);

StartOrderTime = StrToTime(StrStartOrderTime);

EndOrderTime = StrToTime(StrEndOrderTime);

return(0);

Ma question est la suivante :

Est-ce que GetPosition, StartOrderTime, EndOrderTime seront exécutés ?

Salutations

 

Questions

Bonjour,

Un de mes amis m'a parlé de ce site. Elle m'a dit qu'ils ont les meilleurs programmeurs mql.

Voici une question :

Si j'ai défini un code, par exemple.... pour acheter à 15:30 (la plupart des nouvelles heure), j'ai vérifié le calendrier économique.

if (Hour()==15)

{

if (Minute()>=30)

{

if (Seconds()>=00)

[/PHP]

After this, something like this goes:

[PHP]

OrderSend(Symbol().......................

Tout le monde l'écrit différemment, hehe.

Pourquoi ça ne peut pas être la même chose ?

Ok, voilà le problème. Pour le code ci-dessus, je veux que l'OrderSend........ et la partie continue pour créer un BuyStop 30 pips au-dessus du prix à 15:30:00, et un SellStop 25 pips en dessous du prix à 15:30:00.

J'ai demandé à ma meilleure amie, et elle m'a dit de vous demander à vous. Donc, j'espère vraiment que vous serez d'une grande aide.

J'ai passé des semaines à essayer de comprendre ce code. Je ne plaisante pas. Alors, est-ce que quelqu'un qui code en mql4 peut m'aider ?

---Julia---

 
iscuba11:
extern Bool Direction_Up=true ;

if(Direction_Up==true) Dir="UP" ; ///////////Cette conversion est erronée - Comment la convertir dans la bonne syntaxe ????

ObjectCreate("Dir", OBJ_LABEL, 0, 0, 0) ;

ObjectSetText("Dir", 10, "Arial", White);///////////Ceci est une erreur - Comment faire pour qu'il affiche UP à l'écran ????

ObjectSet("Dir", OBJPROP_CORNER, 1) ;

ObjectSet("Dir", OBJPROP_XDISTANCE, 36) ;

ObjectSet("Dir", OBJPROP_YDISTANCE, 120);///

Dave <<<

Salut Iscuba11,

voir le code pour le correctif et l'explication

extern bool Direction_Up=true; //-- bool with a lower case "b"

string Dir; //-- Dir has to be declared as a string

if(Direction_Up==true) Dir="UP";

ObjectCreate("Dir", OBJ_LABEL, 0, 0, 0);

ObjectSetText("Dir",Dir, 10, "Arial", White); // -- you left out the text to print - you named the object only.

ObjectSet("Dir", OBJPROP_CORNER, 1);

ObjectSet("Dir", OBJPROP_XDISTANCE, 36);

ObjectSet("Dir", OBJPROP_YDISTANCE, 120);

J'espère que cela vous aidera,

SaxMan

 

Semaines ? !

MQL4 : trading forex automatisé, testeur de stratégie et indicateurs personnalisés avec MetaTrader

recherche de OrderSend() - docs

Devis

OrderSend - Documentation MQL4

int OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)

symbol - Symbole pour la négociation.

cmd - Type d'opération. Il peut s'agir de n'importe quelle opération de l'énumération Trade operation.

volume - Nombre de lots.

price - Prix préférentiel de la transaction.

slippage - Glissement de prix maximum pour les ordres d'achat ou de vente.

stoploss - Niveau d'arrêt des pertes.

takeprofit - Niveau de prise de profit.

comment - Texte du commentaire de l'ordre. La dernière partie du commentaire peut être modifiée par le serveur.

magic - Numéro magique de l'ordre. Peut être utilisé comme identifiant défini par l'utilisateur.

expiration - Date d'expiration de l'ordre (pour les ordres en attente uniquement).

arrow_color - Couleur de la flèche d'ouverture sur le graphique. Si le paramètre est absent ou a la valeur CLR_NONE, la flèche d'ouverture n'est pas dessinée sur le graphique.

Donc, dans notre cas, nous avons ceci :

OrderSend(Symbol(),OP_BUYSTOP,0.1,Ask+30*Point,3,0,0,NULL,1,0); OrderSend(Symbol(),OP_SELLSTOP,0.1,Bid-25*Point,3,0,0,NULL,1,0);

C'est tout !

Pas de stoploss, pas de takeprofit.

Veuillez noter que votre courtier (très probablement) n'acceptera pas de nouveaux ordres à 15h30, n'y pensez même pas. Oui, cela fonctionnera sur une démo mais pas sur un compte réel - pas plus tôt que 5 minutes avant les nouvelles et pas moins de 3 minutes après les nouvelles.

Utilisez les moteurs de recherche

Google

Yahoo !

et autres.

PS :

si vous voulez que j'écrive un EA pour vous, envoyez-moi un message.

 

Vous avez fait ma journée et mon week-end avec la correction du code. Merci infiniment !

Je vous souhaite un bon week-end !

Sincèrement,

Dave

<<<
 

Comment utiliser ObjectCreate sur un indicateur-separate-window par rapport au chart-window ????. Ce serait bien pratique !

Dave <<<