[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 5

 
granit77:

Question : comment mettre un terminal propre ? Après tout, lorsque j'essaie de redémarrer, le système me reconnaît automatiquement, ce qui me permet de recharger le fichier du terminal et de sauvegarder les informations précédemment accumulées : compte de démonstration, indicateurs écrits, etc. Apparemment, il y a un fichier parmi ceux qui ont été sauvegardés qui ne permet pas de recharger les données historiques. :)
 
Bonjour, ma question est de savoir si les EA de MT4 fonctionneront sur cet appareil.
 
boris.45:
Il suffit de le télécharger à nouveau depuis votre courtier et de le placer dans un autre répertoire. Saisissez manuellement le nom d'utilisateur et le mot de passe de votre compte de démonstration si vous en avez besoin, mais il est préférable d'en ouvrir un nouveau.
Et comme un nouveau-né, vous serez complètement sans péché.
 
afirius:
Bonjour, la question est de savoir si les EA de MT4 fonctionneront sur cet appareil .
il le fera !
 
Cool) enfin une panacée).
T-G:
le sera !
 
qui pourrait aider, changer l'achat en vente dans le code de cet expert.
Dossiers :
ema_wma.mq4  5 kb
 

Bonjour, voici le problème.

Le même conseiller expert fonctionne normalement sur un compte de démonstration et dans le testeur, mais refuse de fonctionner ou fonctionne incorrectement sur un compte réel.

Que dois-je faire pour le réparer ?

extern int ma1 = 7;
extern int ma2 = 100;
extern int ma3 = 200;
extern int ma4 = 300;
extern int shift = 15;
extern double StartLot = 0.5;
extern double LotStep = 0.25;
extern int candleAmount = 25;
extern bool workAlone = true;

double   MA1;
double   MA2;
double   MA3;
double   MA4;
int      Trend;
int      i;
datetime shiftTime;
int      ticket;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   if (Digits == 3 || Digits == 5)
      shift = shift*10;
   MA1 = iMA(NULL,0,ma1,0,MODE_SMA,PRICE_CLOSE,1);
   MA2 = iMA(NULL,0,ma2,0,MODE_SMA,PRICE_CLOSE,1);
   MA3 = iMA(NULL,0,ma3,0,MODE_SMA,PRICE_CLOSE,1);
   MA4 = iMA(NULL,0,ma4,0,MODE_SMA,PRICE_CLOSE,1);
   if (MA1<MA2 && MA1<MA3 && MA1<MA4)        {Trend = 1;}
   else if (MA1>MA2 && MA1>MA3 && MA1>MA4)   {Trend = 4;}
   else                                      {Trend = 2;}
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----

//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   MA1 = iMA(NULL,0,ma1,0,MODE_SMA,PRICE_CLOSE,1);
   MA2 = iMA(NULL,0,ma2,0,MODE_SMA,PRICE_CLOSE,1);
   MA3 = iMA(NULL,0,ma3,0,MODE_SMA,PRICE_CLOSE,1);
   MA4 = iMA(NULL,0,ma4,0,MODE_SMA,PRICE_CLOSE,1);

   if (Trend == 2)
   {  if (MA1<MA2 && MA1<MA3 && MA1<MA4)
      {  for (i = OrdersTotal(); i >= 0; i--)
         {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType() == OP_BUY)
               OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),shift,Blue);
         }
         shiftTime = Time[0];
         if (OrdersTotal() == 0 || !workAlone)
         {  ticket = OrderSend(Symbol(),OP_SELL,LotsOptimized(Symbol()),NormalizeDouble(Bid,Digits),shift,0,0,"",777,0,Red);
            if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
               shiftTime = OrderOpenTime();
         }
         Trend = 1;
      }
      else if (MA1>MA2 && MA1>MA3 && MA1>MA4)
      {  for (i = OrdersTotal(); i >= 0; i--)
         {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderType() == OP_SELL)
              OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),shift,Red);
         }
         shiftTime = Time[0];
         if (OrdersTotal() == 0 || !workAlone)
         {  ticket = OrderSend(Symbol(),OP_BUY,LotsOptimized(Symbol()),NormalizeDouble(Ask,Digits),shift,0,0,"",777,0,Blue);
            if (OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
               shiftTime = OrderOpenTime();
         }
         Trend = 4;
      }
   }

   if (Trend == 1)
   {  if (MA1>MA2 || MA1>MA3 || MA1>MA4)
      {  Trend = 2;
         if (iBarShift(NULL,0,shiftTime,false) >= candleAmount)
         {  for (i = OrdersTotal(); i >= 0; i--)
            {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
               {  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),shift,Red);}}}}}

   if (Trend == 4)
   {  if (MA1<MA2 || MA1<MA3 || MA1<MA4)
      {  Trend = 2;
         if (iBarShift(NULL,0,shiftTime,false) >= candleAmount)
         {  for (i = OrdersTotal(); i >= 0; i--)
            {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
               {  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),shift,Blue);}}}}}
//----
   return(0);
  }

//+------------------------------------------------------------------+

double LotsOptimized(string symbol)
{  double lot = StartLot;
   int    losses = 0;
   if (LotStep > 0)
   {  for (int c = OrdersHistoryTotal() - 1; c >= 0; c--)
      {  if (OrderSelect(c,SELECT_BY_POS,MODE_HISTORY) == false) break;
         if (OrderSymbol() != symbol) continue;
         //----
         if (OrderProfit() > 0) break;
         if (OrderProfit() < 0) losses++;
      }
      if (losses >= 1) lot = NormalizeDouble(lot + LotStep * losses,2);
   }
   if (lot < MarketInfo(symbol,MODE_MINLOT)) lot = MarketInfo(symbol,MODE_MINLOT);
   return (lot);
}

//+------------------------------------------------------------------+ 
 
deboir:

Bonjour, voici le problème.

Le même conseiller expert fonctionne normalement sur un compte de démonstration et dans le testeur, mais refuse de fonctionner ou fonctionne incorrectement sur un compte réel.

Que dois-je faire pour le réparer ?


Les miracles ne se produisent pas. Quelle est votre société de courtage ? Certaines sociétés de courtage ne vous permettent pas de passer des ordres au marché si votre ordre contient des instructions pour fixer un stop loss et/ou un take profit. Broco, par exemple, est comme ça. Là, vous devez d'abord ouvrir un ordre au marché et ensuite seulement placer des ordres stop par modification.
 
j'ai spécifiquement fait un test avec le paramètre x=1, puis le paramètre x=2, puis j'ai optimisé x de 1 à 2 étape 1. toutes les cases à cocher sont désactivées, en sautant les coupes inutiles aussi. l'algorithme génétique a été activé et désactivé. les résultats sont différents, helpppp !

j'ai décoché "skip useless cuts" et les coupes apparaissent. seulement elles diffèrent d'un test simple. par exemple, avec le paramètre x=1 un test simple donne 500 affaires, avec x=2 - 700 affaires. Je dois optimiser ce paramètre et x=1 obtient maintenant 1 transaction, x=2 obtient également 1 transaction. Mon Expert Advisor utilise une modification graphique virtuelle, est-il possible que l'optimisation ne parvienne pas à créer un objet graphique?

conseiller ce qui pourrait être, je l'ai essayé dans le testeur, les ordres s'ouvrent et se ferment normalement, j'ai sélectionné le paramètre, j'ai testé tous les résultats sont rejetés, j'ai changé manuellement ce paramètre dans le test, tout est ok. J'ai activé l'algorithme génétique pendant l'optimisation et l'ai désactivé, changé mes paramètres.
 

dzhini, eddy

Avertissement pour les messages en double. Les messages en double sont supprimés. Il y aura une interdiction à partir de maintenant.