Comment trouver le moment de la barre où les moyennes mobiles se sont croisées ? (code à l'intérieur) - page 2

 

Oh et Alladir - vous semblez être du genre odieux.

Faites-vous une faveur et arrêtez de perdre votre temps à écrire sur ce fil ou sur tout autre fil que je pourrais écrire à l'avenir, si tout ce que vous allez faire est de troller et de ne pas être utile de quelque façon que ce soit.

 
DomGilberto:

Oh et Alladir - vous semblez être du genre odieux.

Faites-vous une faveur et arrêtez de perdre votre temps à écrire sur ce fil ou sur tout autre fil que je pourrais écrire à l'avenir, si tout ce que vous allez faire est de troller et de ne pas être utile de quelque façon que ce soit.

Si vous ne pouvez pas être civilisé, ne postez pas.
 

WHRoader (si vous le voulez bien), pourriez-vous me dire si j'ai raison ou tort ?

double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0); 

int Buy_Price = buyPrice; 

int buyticket = OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);   Usually I'd put OP_BUY where Buy_Price is...

Etes-vous en train de dire que parce que iHighest indique simplement un numéro de barre, le fait que j'essaie de mettre Buy_Price à la place de OP_BUY n'a aucun sens parce que OrderSend prend un double ? (alors que iHighest est un entier ?)

Comment puis-je convertir ma logique iHighest en un prix afin que ma fonction OrderSend comprenne que je veux acheter le plus haut de la gamme iHighest ?

 
RaptorUK:
Si vous ne pouvez pas être civilisé, ne postez pas.


Oui, tu as raison. Désolé.
 
DomGilberto:

WHRoader (si vous le voulez bien) pouvez-vous me dire si j'ai raison ou tort dans ce qui suit ?

"double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0) ;"

int Buy_Price= buyPrice ;

"int buyticket =OrderSend(Symbol(),Buy_Price,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green) ;" Habituellement, je mettrais OP_BUY là où se trouve Buy_Price...


  1. Jouer la vidéo
    Veuillez modifier votre message.
    Pour les grandes quantités de code, joignez-le.

  2. "double buyPrice = iHighest... 
    "double price = int bar index," n'a aucun sens. Décomposez-le :
    // double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    int    iTBT     = iBarShift(Symbol(), 0, triggerBarTime, true),
           iHH      = iHighest(Symbol(), 0, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    
  3. Si la plupart des fonctions (sauf marketInfo) vous n'avez pas besoin d'utiliser Symbol(). Vous pouvez utiliser NULL comme symbole actuel du graphique, tout comme vous utilisez déjà 0 comme période actuelle du graphique.
 

Omg - Pourquoi c'est si clair après avoir réalisé ! Je suppose que c'est la pratique qui rend parfait.

Honnêtement, je comprends beaucoup mieux maintenant. Mettez un :) sur mon visage !

Je vais essayer de le faire maintenant et voir ce que je peux sortir avec !

Merci !

 
int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

Lorsque j'essaie d'utiliser cette fonction ci-dessous, j'obtiens une erreur dans le journal disant que la fonction cmd OrderSend doit être un entier ?

Je ne comprends manifestement pas car vous avez mentionné que "OrderSend ne prend qu'un prix (un double), cela n'a aucun sens d'ouvrir un ordre à 9".

Évidemment si je le change en "int Buy_Price = buyPrice" cela fonctionne pour placer les ordres, mais ce n'est pas pertinent pour savoir où l'entrée devrait être. (C'est ma dernière question - je ne veux pas me moquer de vous, bien sûr).

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
         iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];
 
DomGilberto:

Lorsque j'essaie d'utiliser cette commande ci-dessous, j'obtiens une erreur dans le journal disant que la fonction OrderSend cmd doit être un nombre entier ?

Je ne comprends manifestement pas car vous avez mentionné que "OrderSend ne prend qu'un prix (un double), cela n'a aucun sens d'ouvrir un ordre à 9".

Évidemment, si je le change en "int Buy_Price = buyPrice", cela fonctionne pour placer les ordres, mais ce n'est pas pertinent pour savoir où l'entrée doit être. (C'est ma dernière question - je ne veux pas me moquer de vous, bien sûr).

L'erreur vient de la commande dans l'OrderSend(), je sais que vous ne voulez pas l'entendre mais si vous voulez apprendre, vous devez aussi apprendre à vérifier la documentation et apprendre à la lire... cela fait partie du processus... lorsque je code une commande OrderSend(), je la compare à la documentation à chaque fois pour vérifier que je me souviens correctement.

int buyticket = OrderSend(Symbol(),buyPrice,LotSize,Ask,3,0,0,NULL,MagicNumber,0,Green);

Quel est ce type d'ordre ? click -->OrderSend() dit que le 2ème paramètre estcmd - Type d'opération. Il peut s'agir de n'importe quelle opération de l'énumération Trade operation.

 

Oui, vous avez raison RaptorUK - En fait, pour tout ce que je fais, je lis la documentation (mon doigt est pratiquement assis sur F1 tout le temps).

Jésus - Avec des yeux neufs, je me suis rendu compte à quel point j'ai été stupide !

Je n'avais pas l'intention de mettre buyPrice dans la cmd - deuxième paramètre, je voulais le placer dans le 4ème paramètre (double Price) !

Donc cela fonctionne (en le mettant dans le bon ordre) - je l'ai changé en un ordre d' achat et un ordre de vente. Mon Dieu, je suis ennuyé de voir à quel point j'ai été stupide !

int buyticket = OrderSend(Symbol(),OP_BUYSTOP,LotSize,buyPrice,3,bsl,btp,NULL,MagicNumber,0,Green); 
      if(buyticket>0)OrderModify(buyticket,OrderOpenPrice(),bsl,btp,0,CLR_NONE);

int iTBT= iBarShift(NULL,60, triggerBarTime, true),
        iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
            double buyPrice = High[iHH];

Le "buyPrice" place simplement l'ordre au-dessus du plus haut de la dernière barre fermée qui a touché la 21 EMA (au lieu de la barre qui était la plus haute du croisement MA et de la barre qui a touché la 21 EMA...).

Je vais faire un tour et voir où je me trompe ! (j'ai passé tellement de temps à regarder ça que ça devient douloureux maintenant lol).

Merci !!!!

(p.s que veut dire // Inclure la mesure tBT. Len = de - à + 1 note ?)

 
  1. DomGilberto:

    (p.s que signifie // Inclure la barre iTBT. Len = de - à + 1 note ?)

    HH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1

    L'indice de mesure le plus élevé commençant à zéro pour les mesures iTBT+1 inclut la mesure iTBT.

    Votre message original

    double buyPrice = iHighest(Symbol(), 0, MODE_HIGH, iBarShift(Symbol(), 0, triggerBarTime, true), 0);
    
    n'incluait pas la barre triggerBarTime.
  2. iHH= iHighest(NULL,60, MODE_HIGH, iTBT + 1, 0); // Include tBT bar. Len = from - to + 1
    double buyPrice = High[iHH];
    Pourquoi avez-vous changé le NULL,0 en NULL,60 ? Maintenant iHH n'est valable que pour le graphique PERIOD_H1, et si le graphique actuel n'est PAS le H1, alors High[iHH] est faux.