Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1749

 
makssub #:
Après-midi. J'utilise ce code pour fermer toutes les commandes. Mais j'ai remarqué que s'il y en a beaucoup, tous ne sont pas fermés. Que puis-je ajouter pour les fermer tous, même si ce n'est pas la première fois. Si possible, veuillez nous donner un exemple.

https://www.mql5.com/ru/docs/common/sleep

   if(AccountInfoDouble(ACCOUNT_EQUITY)<=TargetLoss || AccountInfoDouble(ACCOUNT_EQUITY)>=TargetProfit)
     {
      AllClose();
      Sleep(1000);
      AllClose();
      ExpertRemove();
     }
//---
Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Sleep - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Dernière question)

Celui qui a porté son EA de la plateforme mql à windows ou linux. Permettez-moi d'expliquer, une fois il ya longtemps écrit des scripts pour le mu en ligne, que le jeu lui-même pompé le héros, pendant que vous dormez. La question est donc de savoir qui a transféré le conseiller, en dehors de la plateforme ? Le métier est une personne, pas un robot.

Désolé si je ne l'ai pas expliqué correctement)

 
makssub #:

Dernière question)

Celui qui a porté son EA de la plateforme mql à windows ou linux. Permettez-moi d'expliquer, une fois il ya longtemps écrit des scripts pour le mu en ligne, que le jeu lui-même pompé le héros, pendant que vous dormez. La question est donc de savoir qui a transféré le conseiller, en dehors de la plateforme ? Le métier est une personne, pas un robot.

Si cela n'a pas été expliqué correctement, désolé).

sur un serveur Windows (VDS ou VPS) est placé MetaTrader, dans lequel le conseiller expert est en cours d'exécution. C'est tout : le soldat dort, le service va :-)

La plateforme de trading est algorithmique et conçue pour la participation active d'un robot, voire entièrement par un robot.

Bien que, les clickers (logiciel qui "clique" dans les boutons en émulant un humain) quelqu'un utilise. Et les freelances sont périodiquement sollicités et il en existe à vendre sur Internet.

 

Bonjour !

Quelqu'un peut-il rencontrer un EA ou un morceau de code (à inclure dans le code de la chouette), pour changer le SL TP pour la prochaine commande ?

Disons que l'ordre a été ouvert avec 0.01 SL= 30 TP=100

l'ordre suivant est ouvert avec 0.02SL= 30 TP=95

etc.

Quelle fonction dois-je utiliser pour décrire cela ?

C'est ainsi que monTP SL est actuellement attribué :

//+-----------------------------------------------------------------------------------------------+
//|                                                                    Функция модификации ордера |
//+-----------------------------------------------------------------------------------------------+
void vOrderModify(int iOTi)
  {
   int    iOTy = -1;    // Тип ордера
   double dOOP = 0;     // Цена открытия ордера
   double dOSL = 0;     // Стоп Лосс
   int    iMag = 0;     // Идентификатор советника
   double dSL  = 0;     // Уровень убытка
   double dTP  = 0;     // Уровень прибыли

// Выберем по тикету открытый ордер, получим некоторые значения
   if(OrderSelect(iOTi, SELECT_BY_TICKET, MODE_TRADES))
     {
      iOTy = OrderType();
      dOOP = OrderOpenPrice();
      dOSL = OrderStopLoss();
      iMag = OrderMagicNumber();
     }

// Если ордер открыл данный советник, то входим в условие
   if(OrderSymbol() == Symbol() && OrderMagicNumber() == iMag)
     {
// Если Стоп Лосс текущего ордера равен нулю, то модифицируем ордер
      if(dOSL == 0)
        {
         if(iOTy == OP_BUY)
           {
            dSL = NormalizeDouble(dOOP - StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP + TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }

         if(iOTy == OP_SELL)
           {
            dSL = NormalizeDouble(dOOP + StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP - TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }
        }
     }
  }
 

Messieurs les professionnels, conseillez moi, je n'ai aucune idée (je viens de commencer à apprendre la programmation).

Voici une partie d'un conseiller expert, peu importe lequel. Dans la fonction OnInit(), il y a deux opérateurs de retour.

Je n'arrive pas à mettre les chiffres -1 et 0 entre parenthèses, d'où viennent-ils et où retourne le programme avorté ?

//| Fonction d'initialisation de l'expert |

//+------------------------------------------------------------------+
int OnInit()
{
*******************************************
si(********* || *********)
{
Alert("***************",******(),"!!");
retour(-1) ;
}


**** = ******* ;
*** = ********* ;
if(_******** || _********)
{
************ ;
************ ;
}
retour(0) ;
}
//+------------------------------------------------------------------+
//| Fonction de désinitialisation experte |
 
vladeimirami #:

Je n'arrive pas à mettre les chiffres -1 et 0 entre parenthèses, d'où viennent-ils et où retourne le programme avorté ?

https://www.mql5.com/ru/docs/event_handlers/oninit

Lire la suite. Zéro est un succès et le programme va continuer à fonctionner. Les autres chiffres correspondent à la fin du travail.

Документация по MQL5: Обработка событий / OnInit
Документация по MQL5: Обработка событий / OnInit
  • www.mql5.com
OnInit - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Stepanenko #:

https://www.mql5.com/ru/docs/event_handlers/oninit

Lire la suite. Zéro est un succès et le programme se poursuit. Les autres chiffres correspondent à la fin du travail.

Merde. Je l'ai. Je n'ai pas lu attentivement l'énumérationENUM_INIT_RETCODE. Merci. Quoi qu'il en soit, lorsque l'initialisation échoue, nous sortons avec n'importe quel nombre autre que zéro. Au moins, ça a bougé du point mort. Merci !
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Функции обработки событий - Функции - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

La tâche de vérifier les barres manquantes dans les diagrammes de symboles

Je ne trouve pas de solution à ce problème

J'ai besoin d'écrire le script selon le principe suivant : Print(date), Print(date), Print(date), Print(date ) s'il y a un écart de barre

Par exemple, le script devrait être 48 barres sur le graphique M30 etPrint(date) s'il y a un écart de 47 barres.

Comment l'écrire ? Une solution multiplateforme est souhaitable.

P.S. Ceci devrait être fait sur tous les historiques disponibles.

 

Vitaly, comment estimez-vous le passage du barreau ? 48 barres par jour ? Parfois le travail s'arrête à 23 heures, parfois il commence à 2 heures. Si vous regardez le rouble, il n'y a pas de transactions la nuit.

Si c'est strictement 24 heures sur 24 et 5 jours sur 7, alors nous essayerons chaque barre dans l'ordre avec vérification de la séquence. Mais il y aura alors des signaux sur les barres manquées, qui ne devraient pas exister.

 
Vitaly Muzichenko Print(date), Print(date), Print(date ) s'il y a un écart de barre

Par exemple, le script devrait être 48 barres sur le graphique M30 etPrint(date) s'il y a un écart de 47 barres.

Comment l'écrire ? Une solution multiplateforme est souhaitable.

P.S. Ceci devrait être fait sur tous les historiques disponibles.

Il existe une tâche similaire - faire un cadre temporel avec des barres manquées. C'est-à-dire, par exemple, avoir exactement 1440 minutes dans une journée. Peu importe si certains d'entre eux sont vides.

Je n'ai rien trouvé de rapide, de net et de beau :-( Seulement de former un tableau en début de journée, de compter les minutes écoulées à partir de 0:00 et de le remplir de cette façon.

Et le fait qu'il manque des minutes peut être vérifié en comparant iBars(current_time,0:01 of current day) et (current_time_beginning of day)/PERIOD_SECONDS...