Qui peut aider avec le robot, pourquoi ne fonctionne-t-il pas ? - page 5

 
Sergey Gritsay:
Le plus probable est que le compilateur se bat, mais il devrait donner un avertissement plutôt qu'une erreur.
Je viens de compiler le code ci-dessus et de joindre une capture d'écran, sous#property strict étrangement pas d'erreurs et d'avertissements, mais les variables ne devraient pas coïncider, à moins bien sûr qu'il soit intelligemment conçu de cette façon. Je ne suis pas entré dans la logique de l'opération.
 

Alors c'est comme ça

//+------------------------------------------------------------------+
//|                                                          123.mq4 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

input double  lots       = 0.01;   // Лот
input int     stop_loss      = 10; // Указываем в валюте депозита
input int     take_profit    = 20; // Указываем в валюте депозита
extern int    Slippage = 3;        // Допустимое проскальзываение цены в пунктах
input int     Magic = 16384;       // Уникальный номер эксперта

int            last_bar       = 0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
// ===== Пересчет под пятизнак =========
   if(Digits()==3 || Digits()==5)
     {
      Slippage           *= 10;
     }   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if (last_bar == Bars) {return;}
   last_bar = Bars;
   if (OrdersTotal() == 0){
          int ticketbuy = OrderSend(Symbol(), OP_BUY, lots ,Ask, Slippage, 0, 0,  "", Magic, 0, clrBlue);
            if(ticketbuy<0)
               Print(Symbol()," OpenPosition. OrderSend Buy fail #",GetLastError());
            else
               Print(Symbol()," OpenPosition. OrderSend Buy successfully");
          int ticketsell = OrderSend(Symbol(), OP_SELL, lots ,Bid, Slippage, 0, 0,  "", Magic, 0, clrRed);
            if(ticketsell<0)
               Print(Symbol()," OpenPosition. OrderSend Sell fail #",GetLastError());
            else
               Print(Symbol()," OpenPosition. OrderSend Sell successfully");      
}
 double profit=0;
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic)
        {
         profit+=OrderProfit()+OrderSwap()+OrderCommission();
        }
     }
 int requot=0;
 if(profit>=take_profit || (-profit)>=stop_loss)
   for(int ii=0;ii<OrdersTotal();ii++)
     {
      if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Symbol && OrderMagicNumber()== Magic)
        {
         if(OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),Slippage,clrRed))
               requot=0;
            else
              {
               requot++;
              }
         if(requot>10)
              {
               ii++;
               requot=0;
              }
            ii--;
        }
     }
 
  }
//+------------------------------------------------------------------+
 
Vladimir Zubov:

Alors c'est comme ça

Merci ! Je vais essayer de vérifier demain.....
 
Vladimir Zubov:

Alors c'est comme ça

Fonctionne via le testeur, mais aucune transaction ouverte sur le compte réel....
 
GIM:
Le testeur fonctionne, mais le compte réel n'ouvre pas une seule transaction.....
Le conseiller expert a quelques entrées dans l'onglet Conseillers experts, mais en général, je pense que l'EA du compte réel est mal écrit.
 
Sergey Gritsay:
Le conseiller expert a quelques entrées dans l'onglet Conseillers experts, mais à mon avis, il est mal écrit pour l'argent réel.
Où dois-je le réparer pour qu'il fonctionne ?
 
GIM:
Où devez-vous le réparer pour qu'il fonctionne ?
Partout, je n'arrive pas encore à comprendre la logique de cet EA tel qu'il est écrit, vous ouvrez dans différentes directions à la fois, mais le profit de ces deux ordres sera toujours le même, il ne changera que lorsque les swaps seront accumulés.
 
Sergey Gritsay:
Vous ouvrez dans différentes directions à la fois, mais le profit de ces deux ordres sera toujours le même, il ne changera que lorsque les swaps seront facturés.
Lorsque j'installe l'EA sur le graphique, je constate que les ordres ne s'ouvrent que dans une seule direction, dans la tendance et sur plusieurs paires, à l'achat ou à la vente.
 
GIM:
Lorsque j'installe un EA sur un graphique, j'ajuste que les ordres s'ouvrent dans une seule direction, dans la tendance et sur plusieurs paires, soit à l'achat, soit à la vente, donc je dois clôturer toutes les transactions en profit total.
Je comprends, c'est trop tard pour moi aujourd'hui, je vous présenterai une option demain.
 
Sergey Gritsay:
Je vois, il est trop tard pour moi aujourd'hui, j'esquisserai une version pour vous demain.
Merci !
Raison: