[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 39

 
Cod:

Et ici, l'AG augmente le nombre de courses ? Est-ce possible ?

Oups !

Cas extrêmement intéressant...)

 
DhP:

Whoa !

Cas extrêmement intéressant...)


Pas plus d'options que possible
 

Merci, j'ai fait des recherches mais je n'ai rien compris. Par exemple :

Une transaction n'est pas exécutée si l'une des conditions spécifiées est violée.

Limite de vente

1) OpenPrice-Bid StopLevel

2) SL-OpenPrice ≥StopLevel(plus loin dans l'exemple)

3) OpenPrice-TP ≥ StopLevel

Que signifie "L'opération de trading n'est pas exécutée" ? Si un ordre en attente n'est pas placé (accepté) ou s'il est déjà placé, il ne se déclenche pas (que lui arrive-t-il - est-il supprimé par le courtier) ? Je répète ma question : si les conditions ont changé et qu'un ordre passé avec succès une heure plus tard, par exemple, a un SL-OpenPrice dans modifié à ce moment-là StopLevel, que lui arrivera-t-il ?

Et une autre question. Supposons que l'écart était de 2 et qu'il est devenu de 7 points. Qu'est-ce que cela signifie - le prix d'achat ou de vente a-t-il changé, ou le courtier le choisit-il arbitrairement comme bon lui semble ?

 

Lors de la compilation d'un fichier include (*.mqh), une erreur '\end_of_program' - aucune fonction définie. Quel est le problème et comment le résoudre ?

extern double Lots = 0.0 ;
extern int Pourcentage = 0 ;
extern int StopLoss = 100 ;
extern int TakeProfit = 40 ;
extern int TrailngStop = 100 ;

int Level_New ;
int Level_Old ;

 

J'ai regardé la couverture du livre STUDY de tous les côtés et je ne comprends toujours rien...))

Partout, je le vois écrit comme ça :

int Ticket = OrderSend(...);

L'écriture ci-dessous est-elle correcte si je veux obtenir Price = OrderOpenPrice() pour un traitement ultérieur et la fixation de Stops ?

double Price = OrderSend(...);

Cela fonctionne pour moi, mais est-ce acceptable ?

 
Vinin:

Il n'y a pas de fonctions intégrées, il suffit d'écrire son propre assistant avec une période de calcul dépendant de l'horizon temporel.
Pas de problème... Mais comment déterminer la valeur actuelle de TF dans le code ?
 

Bonne journée à vous tous !

J'écris pour la première fois, si quelque chose ne va pas, désolé.

Question : pourquoi la fonction (voir ci-dessous) donne une erreur : 'A' - l'élément du tableau ne peut pas être assigné ?

double get_init_values(double A[], int index){

int size = 0;

size = ArraySize(A);

if (size < index){

return (0);

}else{

A [index] = Ask;

return (A);
}

}
Merci d'avance !
 
Saltan:

Lors de la compilation d'un fichier include (*.mqh), une erreur '\end_of_program' - aucune fonction définie. Qu'est-ce qui ne va pas et comment le réparer... ?

Vous n'avez pas besoin d'essayer ! Les fichiers .mqh sont placés dans include et ils restent là tranquillement. Lorsque vous compilez l'EA dans lequel ils sont écrits, le compilateur joint automatiquement les éléments de code nécessaires et les compile ensemble.
Lorsque vous essayez de compiler séparément le fichier .mqh, le compilateur essaie de déterminer le type de produit (Expert Advisor, indicateur...) et commence à demander "où avez-vous commencé ?
Vous devriez commencer à vous occuper des .mqh si des erreurs se produisent lors de la compilation correcte.
 

J'ai inséré un nouveau bloc dans mon EA pour calculer la taille du lot de la position à ouvrir. L'idée est la suivante :

1. Le Stop est fixé au High du jour en cas de position de vente, et au Low du jour en cas de position d'achat.

2. Lorsque la condition d'ouverture de l'ordre se déclenche, ce bloc pour le calcul du lot commence à être exécuté. La distance au plus haut/bas du jour en points est calculée et je boucle sur les lots à partir de 0.1 pour trouver le lot nécessaire (5% quand un stop s'est déclenché).

Mais dans le journal, ces lignes apparaissent :

2011.01.30 16:59:47 TestGenerator : erreur de données non correspondantes (limite de volume 1107 au 2011.01.13 14:45)

Dès que j'éteins cette unité, tout est OK. Où ai-je tort ? Veuillez me conseiller.

Voici le code lui-même :

double Balance = AccountBalance();
    double DistanceToHighDay = MathAbs(HighDay-Ask)*10000;
    double DistanceToLowDay  = MathAbs(Bid-LowDay)*10000;
    double ExpectedSellLoss;
    double ExpectedBuyLoss;
    double ExpectedSellRisk;
    double ExpectedBuyRisk;
    double LotSell;
    double LotBuy;
    int     Risk = 5;
   
    // Расчёт лота для Sell
    for(int i=0.1; ExpectedSellRisk<Risk; i=i+0.1)
       {
        ExpectedSellLoss = DistanceToHighDay*i*10;         // ожидаемый убыток в $
        ExpectedSellRisk = (ExpectedSellLoss*100)/Balance; // ожидаемый убыток в %
        LotSell=i;
       }
       
    // Расчёт лота для Buy
    for(i=0.1; ExpectedBuyRisk<Risk; i=i+0.1)
       {
        ExpectedBuyLoss = DistanceToLowDay*i*10;         // ожидаемый убыток в $
        ExpectedBuyRisk = (ExpectedBuyLoss*100)/Balance; // ожидаемый убыток в %
        LotBuy=i;
       }
 
Je suis en train d'apprendre mql4, je n'arrive pas à écrire un indicateur de volume simple, c'est à dire qui calcule combien de ticks il y a dans chaque barre, si quelqu'un en a un, merci de le partager. Si quelqu'un l'écrit spécifiquement, merci beaucoup.