[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 145

 
xmurik писал(а) >>
Où est l'erreur ?

Apparemment trop proche du prix actuel. Vous devriez vérifier MarketInfo(Symbol(),MODE_STOPLEVEL) ;

 
Vinin писал(а) >>

Apparemment trop proche du prix actuel. Nous devrions vérifier MarketInfo(Symbol(),MODE_STOPLEVEL) ;

Le prix est de 210 points. Et le testeur donne l'erreur 3.

 
xmurik писал(а) >>

Jusqu'à un prix de 210 points. Et le testeur donne l'erreur 3.

Je pense que c'est mal réglé, quelque part dans le passé.

 
xmurik писал(а) >>

Jusqu'à un prix de 210 points. Et le testeur donne l'erreur 3.

J'ai eu cette erreur récemment. J'ai réussi à m'en remettre.

 
Veuillez m'aider à trouver l'erreur. Je ne peux pas... Je ne sais même pas où le chercher. Erreur du type : '\end_of_program' - parenthèse gauche non équilibrée
Dossiers :
 
Alex5757000 писал(а) >>
Veuillez aider à trouver l'erreur. Je ne peux plus le trouver. Je ne sais même pas où le chercher. Erreur du type : '\end_of_program' - parenthèse gauche non équilibrée

if(NormalizeDouble(MathAbs(OrderOpenPrice()-Win_Price),Digits) < NormalizeDouble(Dist,Digits)) // parenthèse fermante manquante

 
Vinin >> :

if(NormalizeDouble(MathAbs(OrderOpenPrice()-Win_Price),Digits) < NormalizeDouble(Dist,Digits)) // parenthèse fermante manquante

Vinin , merci beaucoup :-). Désolé pour une erreur aussi ridicule, je commence juste à programmer, je gagne de l'expérience...

 
Roger писал(а) >>

Je pense que c'est mal dirigé, quelque part dans le passé.

Exactement. C'était le problème.

 

Je reviens vers vous pour vous demander de l'aide... Je pense que j'ai terminé l'EA, .... Mais je ne parviens pas à clôturer un ordre selon certaines conditions spécifiques. Je continue à obtenir des erreurs lors de la recherche d'un ticket ou d'un numéro de commande, ou bien j'obtiens une valeur invalide dans les codes lorsque j'essaie de déterminer la commande à clôturer. Je n'ai pas de fun- bilité d'ordres, mais il semble possible de s'en passer, peut-être y a-t-il une mauvaise installation des opérations consécutives dans le code, mais cela semble correct. Aide qui peut, regarder le code, conseiller ce qui doit être ajouté pour fermer l'ordre par une condition, faire des commentaires sur la mise en œuvre du code en termes de correction de la séquence de traitement dans le début fun-i, et le sentiment que je suis comme une boucle et dans certains moments où la condition n'est pas ouvert ordre (sauté à la prochaine affaire) ....... ! ! !! ..))) Voici le code !

//+-----------------Включаемые дериктивы-----------------------------+
#include <Param.mqh>          //фун-я параметры 
//#include <Message_Print.mqh>          //фун-я коммент
#include <isTradeTimeString_m.mqh> //фун-я торгов по времени
#include <TrailingStop.mqh>          //фун-я трайлинг 
#include <isNewBar.mqh>       //фун-я проверки нового бара
#include <TotalOrders.mqh>    //фун-я проверки кол-ва открытых сделок
#include <Crit_Flat.mqh>      //фун-я проверки флэт
#include <Crit_Sell.mqh>      //фун-я проверки сигнала  продажи
#include <Crit_Buy.mqh>       //фун-я проверки сигнала  покупки
#include <TakeProfitLastClosePos.mqh>      //фун-я определения профита послед закрыт поз
#include <GetTypeLastClosePos2.mqh>         //функция определения типа закрытой поз
//+-----------------Переменные---------------------------------------+
int               ExpertOrdersTotal;   //общее колличество открытых позиций
int tiket = 0;
int mn = 0;                                //магик


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   MinStop=MarketInfo(Symbol(),MODE_STOPLEVEL); //минимальное разрешимое отклонение стоп лосс от рыночной цены
//----
   return(0);
  }

int start()
  {

//Print("Проверка открытых ордеров 1");
//---------------------Проверка по времени------------1---------
  if ( tim==true)
   {
   isTradeTimeString(); //торговля по времени
   if ( isTradeTimeString( TimeBegin, TimeEnd))
     {
//---------------------Проверка трейлинга------------2---------
   TrailingStop();


//---------------------Проверка открытых ордеров------------3---------
   ExpertOrdersTotal = TotalBuy()+ TotalSell(); // СКОЛЬКО ВСЕГО ОРДЕРОВ ОТКРЫТО  
   if ( ExpertOrdersTotal>= Sdelki)         // если кол-во открытых сделок меньше максимального
     {                                   // кол-ва сделок, проверяем возможность открытия сделки
      //Print("превышено кол-во сделок,выход"); 
      return(0);
     }   
   else
     {

          Print("проверка появления нового бара ");

//--------------------проверка появления нового бара--------4---------
        Fun_New_Bar();                               // Обращение к функции и передача ей управления
        if ( New_Bar==false)                          // Если бар не новый..
         {
          //Print("Нового бара пока нет,выход");   
          return;                                      // ..то уходим   
         }
        //Print("проверка сигнала ");
//--------------------проверка сигнала----------------------5---------
        Crit_Flat();
      
        Crit_Sell();
        Crit_Buy();
//        Print("коэф-нт покупки ",ves_buy);
//        Print("коэф-нт продажи ",ves_sell);
        
        if ( Flat == true)  //проверка наличия флэта
          {
            return(0);
          }
        if ( Trend==true)  //сделки по тренду
          {
              
              if ( ves_buy < ves_sell) 
                {
                 tiket = OrderSend(Symbol(),OP_SELL, Lot,Bid,3,Bid+ SL*Point,Ask- TP*Point,"My order #", mn,0,Green);
                 Print ("Ордер открыт по тренду"); 
                } 
              if ( ves_buy > ves_sell)
                {
                 tiket = OrderSend(Symbol(),OP_BUY, Lot,Ask,3,Bid- SL*Point,Ask+ TP*Point,"My order #", mn,0,Red);
                 Print ("Ордер открыт по тренду"); 
                } 
          }
        else
          {       
        if ( ves_buy > ves_sell && ves_buy >= param)
           {
             tiket = OrderSend(Symbol(),OP_BUY, Lot,Ask,3,Bid- SL*Point,Ask+ TP*Point,"My order #", mn,0,Red);
             Print ("Ордер открыт по коэфициенту"); 
        //--------------------------------------------------
        //          доработать фун-ю открытия ордера
        //--------------------------------------------------
           }
           
        if ( ves_buy < ves_sell && ves_sell >= param)
           {
            tiket = OrderSend(Symbol(),OP_SELL, Lot,Bid,3,Bid+ SL*Point,Ask- TP*Point,"My order #", mn,0,Green);
            Print ("Ордер открыт по коэфициенту");
        //--------------------------------------------------
        //          доработать фун-ю открытия ордера
        //--------------------------------------------------
           }
          }  
    
//+------------------------------------------------------------------------   
            
       
     }        //скобка проверки колва сделок
  Print("есть сделки, выход");

  }//скобка проверки времени   
 Print ("время не подошло");  
  }//проверка флага торговли по времени 
   return(0);                                  //ретурн основного старта
  }

Voici le code. Puisque je suis ici, j'ai une autre question ... y a-t-il des restrictions sur la mise en œuvre de l'EA, en termes de recalcul multiple ou de demande de paramètres d'une société de courtage ?

j'attends de l'aide et un peu de critique ;)

 
Alex5757000 >> :
Veuillez m'aider à trouver l'erreur. Je ne peux pas... Je ne sais même pas où le chercher. Erreur du type : '\end_of_program' - parenthèse gauche non équilibrée

Semyon Semyonych...

Apprenez à écrire une construction comme celle-ci :

if(){}

puis commencez à le remplir, alors vous ne serez presque jamais confus.

Une erreur comme : '\end_of_program' - parenthèses gauches déséquilibrées est très désagréable car le compilateur ne peut pas localiser l'emplacement de l'erreur, donc il vaut mieux ne pas le faire, mais l'éviter par la méthode décrite ci-dessus, vous pouvez quelque part faire un modèle et le coller aux bons endroits.

Le prochain "Tu ne peux pas rentrer une robe de chambre dans ton jean".

if();{} - это не верная конструкция

>> enlevez-le, votre code avec les corrections est dans le fichier joint.

Dossiers :