Questions des débutants MQL4 MT4 MetaTrader 4 - page 190

 
gyulnara.kosareva:
Bonjour, puis-je installer un EA sans fichier mql4 si je n'ai que le fichier ex de l'EA ?

Oui, c'est à ça que sert le fichier .ex.

 
Bonjour à tous.
J'avais la version 400.1129 de l'app MT4 installée sur mon androïde, jusqu'au 29.10.2019 l'app fonctionnait comme sur des roulettes. Vendredi, j'ai commencé à l'ouvrir sur mon téléphone, l'écran d'accueil a clignoté pour indiquer que j'ouvrais un nouveau compte de démonstration et l'application s'est immédiatement fermée. Et je me suis retrouvé sur le bureau. La douzaine de tentatives suivantes ont abouti au même résultat. J'ai enlevé le terminal, j'ai téléchargé le nouveau terminal à partir de la liste de lecture, je l'ai installé, je l'ai exécuté avec le même résultat - l'application a planté. J'ai téléchargé Rojo forex MT4 sur le marché, je l'ai installé et lancé et il fonctionne comme sur des roulettes. J'ai également téléchargé la version 500.1780 de MT5 depuis Market, je l'ai installée et exécutée, j'ai ouvert un compte de démonstration, tout fonctionne bien.
Veuillez me conseiller sur ce que je dois faire si je veux que MT4 fonctionne à nouveau sur mon téléphone ! S'il vous plaît.
 

Bonjour à tous, Pouvez-vous me dire ce qui ne va pas ? Le testeur de stratégie sur le marché se plaint de la requote -NEW_ORDER() : lot=0.20 ; POSITION_TYPE_BUY(EURUSD) ; err : 4756/Failed tosend trade request; retcode : 10004/Requote;

Où puis-je en savoir plus sur cette erreur et comment la corriger ?

 
Nikolai Konstantinov:

Bonjour à tous, Pouvez-vous me dire ce qui ne va pas ? Le testeur de stratégie sur le marché se plaint de la requote -NEW_ORDER() : lot=0.20 ; POSITION_TYPE_BUY(EURUSD) ; err : 4756/Failed tosend trade request; retcode : 10004/Requote;

Où puis-je en savoir plus sur cette erreur et comment la corriger ?


Il ne s'agit pas d'une erreur mais d'une situation de marché.
1. mettre à jour les prix avant d'envoyer une transaction pour exécution.
2. Réouverture après réparation
3. Augmenter le glissement
 
Vladislav Andruschenko:

Ce n'est pas une erreur, c'est une situation de marché.
1. Mettre à jour les prix avant d'envoyer une transaction pour exécution.
2. Ré-ouvrir après réparation.
3. Augmenter le glissement

Merci, mais tout ce que vous avez écrit est déjà pris en compte. Y a-t-il autre chose à considérer ?

 

Bonjour ! Aidez-nous !

Tout à coup, MT4 a commencé à se bloquer. Tous provenant de différentes sociétés de courtage.

Au démarrage, le terminal se bloque. In Manager dit devant lui "ne répond pas". Ne répond à rien, en bas du panneau MT ; il est indiqué qu'il n'y a pas de connexion.

Redémarrer les terminaux, les changer de courtiers différents, supprimer et réinstaller, nettoyer les données avec le programme Clean, éteindre et allumer l'ordinateur - n'a pas donné de résultat.

Il reste à réinstaller l'OS, mais on hésite tellement.

Peut-être que quelqu'un a eu une telle chose ?

Des conseils ?

 
odyn:

Reste à réinstaller l'OS, mais si réticent.

Alternativement, sur une machine virtuelle installer l'OS et le terminal, j'ai installé Oracle VM VirtualBox sans aucun problème là MT4/MT5 fonctionne

si c'est un problème avec le système d'exploitation, vous devez le réinstaller.


Je l'ai vérifié moi-même, il fonctionne avec MT4 et MT5 sans aucun problème.

 
odyn:

Bonjour ! Aidez-nous !

Tout à coup, MT4 a commencé à se bloquer. Tous provenant de différentes sociétés de courtage.

Au démarrage, le terminal se bloque. In Manager dit devant lui "ne répond pas". Ne répond à rien, En bas du panneau MT est marqué qu'il n'y a pas de connexion.

Redémarrer les terminaux, les changer de courtiers différents, supprimer et réinstaller, nettoyer les données avec le programme Clean, éteindre et rallumer l'ordinateur - n'a pas donné de résultat.

Il reste à réinstaller l'OS, mais on hésite tellement.

Peut-être que quelqu'un a eu une telle chose ?

Veuillez indiquer qui peut le faire.

Internet Explorer pourrait être à l'origine du problème

compte tenu des circonstances - il faut soit faire une mise à niveau, soit revenir en arrière :-) Et n'autorisez en aucun cas toutes sortes d'add-ons, plugins et extensions.

Les auteurs ont décidé que le composant "explorateur" était le meilleur pour afficher les marchés, les signaux, les nouvelles et les discussions, mais que l'explorateur lui-même était une version bêta perpétuelle. Et ses problèmes "interfèrent" avec le terminal

 

Bonne journée à tous.

Peut-on changer la condition dans le code : "L'Expert Advisor ouvre une position en fonction de la fermeture de la dernière position. S'il n'y avait pas de position, il s'ouvre en fonction de la direction du chandelier précédent" et nous devrionsle changer pour lapossibilité de placer 2 ordres en attente à une certaine distance du prix actuel, et, quand l'un d'eux se déclenche, le 2ème ordre sera supprimé. Le reste de l'algorithme reste inchangé.

Je l'ai modifié moi-même, mais je n'ai pas réussi à obtenir une version fonctionnelle.

#property description "Советник открывает позицию в зависимости от закрытия прошлой позиции. Если позиции не было то в зависимости от направления прошлой свечи"
#property description "При достижение Т/P следующий ордер открывается в эту же сторону"
#property description "При достижение S/L следующий открывается в противоположную сторону"
//+------------------------------------------------------------------
#property  show_inputs
//+------------------------------------------------------------------
enum TT {BUY, SELL, BUYLIMIT, SELLLIMIT, BUYSTOP, SELLSTOP};
enum YN {No,Yes};
//+------------------------------------------------------------------
extern TT     Type         = BUY;
extern double Price        = 0; 
extern int    Distance     = 0;
extern int    stoploss     = 300,
              takeprofit   = 300;
extern double risk         = 0.01; //процент от депозита для рассчета объема первой позиции
extern double KoeffMartin  = 2.0;
extern int    OkrLOT       = 2;//округление лота
extern int    slippage     = 3;//Максимально допустимое отклонение цены для рыночных ордеров
extern int    MagicNumb    = 77;//Magic

double MINLOT,MAXLOT;                                  
//+------------------------------------------------------------------+
int OnInit()
{
   MAXLOT = MarketInfo(Symbol(),MODE_MAXLOT);
   MINLOT = MarketInfo(Symbol(),MODE_MINLOT);
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnTick()
{
   double OSL,OTP,OOP,SL,TP;
   int tip;
   double STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   for (int i=0; i
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            tip = OrderType(); 
            OSL = NormalizeDouble(OrderStopLoss(),Digits);
            OTP = NormalizeDouble(OrderTakeProfit(),Digits);
            OOP = NormalizeDouble(OrderOpenPrice(),Digits);
            SL=OSL;TP=OTP;
            if (tip==OP_BUY)             
            {  
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP - stoploss   * Point,Digits);
               } 
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP + takeprofit * Point,Digits);
               } 
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            }                                         
            if (tip==OP_SELL)        
            {
               if (OSL==0 && stoploss>=STOPLEVEL && stoploss!=0)
               {
                  SL = NormalizeDouble(OOP + stoploss   * Point,Digits);
               }
               if (OTP==0 && takeprofit>=STOPLEVEL && takeprofit!=0)
               {
                  TP = NormalizeDouble(OOP - takeprofit * Point,Digits);
               }
               if (SL != OSL || TP != OTP)
               {  
                  if (!OrderModify(OrderTicket(),OOP,SL,TP,0,White)) Print("Error OrderModify <<",GetLastError(),">> ");
               }
            } 
            return;
         }
      }
   }
   tip=-1;
   double Lot=0;
    for (i=OrdersHistoryTotal()-1; i>=0; i--)
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
      {
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumb)
         {
            if (OrderProfit()<0) 
            {
               Lot=lot(OrderLots(),KoeffMartin);
               tip=OrderType();
            }
            else 
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                               
}
//--------------------------------------------------------------------

double lot(double l,double k)

{

   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);

   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
            {
               Lot=lot(0,1);
               if (OrderType()==OP_BUY)  tip=OP_SELL;
               if (OrderType()==OP_SELL) tip=OP_BUY;
            }
            break;
         }
      }
   }

   if (tip==-1)
   {
      Lot=lot(0,1);
      if (Open[1]>Close[1]) tip=OP_BUY;
      else tip=OP_SELL;
   }
   
   if (tip==OP_BUY) if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bi  d,Digits),slippage,0,0,NULL,MagicNumb,Blue)!=-1) Comment("Open Sell");
   if (tip==OP_SELL) if (OrderSend(Symbol(),OP_BUY ,Lot,NormalizeDouble(Ask,Digits),slippage,0,0,NULL  ,MagicNumb,Blue)!=-1) Comment("Open Buy");                                 
}
//--------------------------------------------------------------------
double lot(double l,double k)
{
   double ML = AccountFreeMargin()/MarketInfo(Symbol(),MODE_MARGINREQUIRED);
   if (k==1) l = ML*risk/100;
   else l = NormalizeDouble(l*k,OkrLOT);
   if (l>ML) l = ML;
   if (l>MAXLOT) l = MAXLOT;
   if (l
   return(l);
}
//-----------------------------------------------------------------
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
Dossiers :
SSSR_v.1.mq4  11 kb
 
Je vais essayer de reformuler le dernier message :

//--------------------------------------
Selon l'algorithme, l'Expert Advisor ouvre une position en fonction de la clôture d'une position précédente.
S'il n'y avait pas de position, il s'ouvre en fonction de la direction de la dernière bougie.

Cet algorithme devrait être changé en :

Achetez :

Placez 2 ordres en attente BuyStop au prix spécifié dans les paramètres et SellStop au prix spécifié dans les paramètres.
Dès que le prix atteint l'un des ordres stop, il passe en position de marché avec ТР et SL fixés. L'ordre qui n'a pas été déclenché est supprimé.

Le reste de l'algorithme reste inchangé, à savoir "Lorsque le TP/P est atteint, l'ordre suivant est ouvert dans la même direction".
"Quand S/L est atteint, l'ordre suivant est ouvert dans la direction opposée"
//---------------------------------------------------
Raison: