Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 1133

 
le commerce est désactivé .oshıbka
 
--danger--:

prıvet .podzajajajte pojalusta pogu na demo schete ne mogu otkrıt zdelkı

-Danger.. :
le commerce est désactivé .oshıbka
Est-ce que le bouton avtotorgovly ne najata ? Veuillez indiquer le nomer osibki, v jurnale dolzen byti.
 
Alekseu Fedotov:

Pas de péchés, qu'est-ce qu'il jure.

Quelles sont les erreurs du compilateur

Quelque chose à voir avec le fait que la fonction doit être globale et qu'elle attend des virgules à des endroits où cela n'a aucun sens de les mettre ! Par exemple, au niveau du séparateur entre les informations sur le courtier et la paire négociée.

 
GoldenGod:
Un conseil pour un mannequin. Comment ouvrir un compte en direct?
Cela dépend du courtier, vous allez sur son site web et cherchez le bouton "Ouvrir un compte réel" ou quelque chose de similaire. Ou dans le bureau privé du courtier "Créer un nouveau compte".
 
Vitalie Postolache:
Que voulez-vous dire par "aucun" ? Trier par ticket - il y aura toujours un ordre et aucune contradiction avec la documentation, elle parle de trier par numéro de série, pas par ticket, ce sont des choses différentes.
Si vous vous posez une question :
Nous avons cette liste de commandes à un moment donné (par ticket)
  1. Acheter #1
  2. Acheter #2
  3. BuyStop #3
  4. Vendre #4
L'ordre des billets dans la liste est : #1,#2,#3,#4

Après le BuyStop #3, dans quel ordre les billets seront-ils dans la liste ?

C'est #1, #2, #4, #3?

Les billets ne garantissent donc pas non plus l'ordre.
 
Anton Sokolov:

Un autre problème que j'ai rencontré ! Ne jugez pas, j'étudie la langue depuis 2 ou 3 semaines, peut-être que je suis juste stupide !

La tâche du conseiller expert est d'informer le trader par e-mail toutes les 4 heures, si la marge libre sur le compte a ajouté une certaine valeur.

Dans le sujet du message, vous devez écrire le nom du courtier et la paire négociée, et dans le corps du message "Danger ! Le tirage au sort dépasse la limite. Prenez les mesures nécessaires".

Le compilateur fonctionne mal, je ne suis pas bon en anglais et je n'arrive pas à comprendre quelle est l'erreur !

input  double MessageMail     = 50.0;
double Sag;

void OnTick()
  {
   Sag = NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_FREEMARGIN)/AccountInfoDouble(ACCOUNT_BALANCE)), 1);  //находим процент просадки и округляем до 1 знака
    if(Sag > MessageMail && iVolume(NULL,PERIOD_H4,0)<3)                                       //если просадка больше заданного и начата новая свеча на 4ч таймфрейме
     {
     Alert(Symbol(), ": Просадка = ", Sag, " % ", " > ",  MessageMail, " % ");                 //вывести предупреждение в терминале
//Сюда нужно вставить команду SendMail для отправки сообщения, а что и как не понятно
// пробовал bool SendMail( AccountInfoString(ACCOUNT_COMPANY)|Symbol, "Опасность! Просадка привысила допустимое значение. Примите необходимые меры")
//что то не выходит                          
     }
  }


PS : Peut-être qu'en général il y a une solution plus facile pour ce genre de problème, mais jusqu'à présent je ne vois que cette façon de faire)

//+------------------------------------------------------------------+
//|                                               exTestSendMail.mq4 |
//|              Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict

input  double MessageMail     = 50.0;
//---
double Sag=0;
string MailSubject="";
datetime PrevTime=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   MailSubject="Mail from EA "+MQLInfoString(MQL_PROGRAM_NAME);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   //--- Находим процент просадки и округляем до 1 знака
   Sag=NormalizeDouble(100-100*(AccountInfoDouble(ACCOUNT_MARGIN_FREE)/AccountInfoDouble(ACCOUNT_BALANCE)),1);
   //--- Если открыт новый бар на H4
   if(iTime(Symbol(),PERIOD_H4,0) !=PrevTime) {
      //--- если просадка больше заданного
      if(Sag>MessageMail) {
         Alert(Symbol(), ": Просадка = ", DoubleToString(Sag,1), " % ", " > ",  MessageMail, " % ");              //вывести предупреждение в терминале
         string MailText=AccountInfoString(ACCOUNT_COMPANY)+" > Опасность! Просадка ("+DoubleToString(Sag,1)+"%) привысила допустимое значение. Примите необходимые меры.";
         SendMail(MailSubject,MailText);
         }
      PrevTime=iTime(Symbol(),PERIOD_H4,0);
      }
  }
//+------------------------------------------------------------------+
En général, il est préférable d'effectuer ce type de contrôle dans une minuterie.
 

Merci ! Préparez-vous à envoyer des lettres !

 

comment corriger lavaleur de retour '' OrderClose doit être vérifié ??????????????????????????????

 
Vielleicht xamp neu starten
 

Chers programmeurs, veuillez aider un débutant dans ce domaine.

L'EA ouvre les ordres d'achat et de vente séquentiellement après une certaine période de temps. Je veux qu'il modifie tous les ordres précédents (plus précisément, tous les ordres précédents doivent être fermés par la prise de bénéfices du dernier ordre). C'est-à-dire que si le dernier ordre d'achat et l'ordre de vente précédent, alors le stop loss de l'ordre précédent est fixé au niveau du take profit du dernier ordre,

Si l'achat précédent est un achat, alors son TakeProfit sera fixé au niveau du dernier TakeProfit. Le fait est que lorsque le takeprofit du dernier ordre arrive, tous les ordres doivent être fermés).

J'espère l'avoir expliqué clairement, même s'il est difficile de comprendre comment le mettre en œuvre. Merci d'avance.

Je comprends que l'on puisse passer par tous les ordres ouverts et les modifier, mais comment faire pour sauter le dernier ordre ?