[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 64

 
alsu:
Si vous vous donnez la peine de regarder dans le terminal, le RSI "en code" est là en standard.
Si vous ne l'avez pas, voilà.
Dossiers :
rsi.mq4  3 kb
 

Comment verrouiller le menu dans MetaTrader4 ? Parfois, il est tellement éparpillé sur l'écran que c'en est effrayant. De la même manière que la barre des tâches est fixe dans Windows, peut-être que les fenêtres sont fixes ici aussi ?

 

Bonjour, pourriez-vous me dire

J'ai ce code maintenant :

         if(M_1<NizUroven && M_0 >=NizUroven)
                {
 for(int i=OrdersTotal()-1;i>=0;i--)
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {     CloseOrder();
     }
   Lot2=GetLot(MaxRisk);
NewOrder(OP_SELL,Lot2);
}


             if(M_1>VerhUroven && M_0<=VerhUroven)
               {
 for(int j=OrdersTotal()-1;j>=0;j--)
   if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
     {    CloseOrder();
     }
Lot2=GetLot(MaxRisk);
 NewOrder(OP_BUY,Lot2);
}



comment puis-je le simplifier comme ça ?

 for(int i=OrdersTotal()-1;i>=0;i--)
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
     {     CloseOrder(); 
     }
   Lot2=GetLot(MaxRisk);

         if(M_1<NizUroven && M_0 >=NizUroven) 
                { NewOrder(OP_SELL,Lot2);
}
             if(M_1>VerhUroven && M_0<=VerhUroven)
               {  NewOrder(OP_BUY,Lot2);
}

 

Et une autre question, j'ai optimisé pendant six mois et j'ai obtenu ces résultats. Il n'est pas clair pourquoi de nombreux laissez-passer ont des zéros (pas de transactions) ?

 
monopolie:

Comment verrouiller le menu dans MetaTrader4 ? Parfois, il est tellement éparpillé sur l'écran que c'en est effrayant. De la même manière que la barre des tâches est fixe dans Windows, peut-être que les fenêtres sont fixes ici aussi ?

Ils disent que ce n'est pas un bug, mais une fonctionnalité))
 
monopolie:

Comment verrouiller le menu dans MetaTrader4 ? Parfois, il est tellement éparpillé sur l'écran que c'en est effrayant. De la même façon que la barre des tâches est fixe dans Windows, peut-être que les fenêtres sont fixes ici aussi ?


Cliquez avec le bouton droit de la souris sur le menu - "Auto-size columns" et déplacez-les comme vous le souhaitez.
 
griha:

Bonjour, pourriez-vous s'il vous plaît

mon code est le suivant :



comment la simplifier par ce principe ?


cette partie :

for(int j=OrdersTotal()-1;j>=0;j--)
   if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
     {    CloseOrder();
     }
Lot2=GetLot(MaxRisk);
 NewOrder(OP_BUY,Lot2);

mettre en place une fonction :

ff(int cmd)
{
   for(int j=OrdersTotal()-1;j>=0;j--)
      if(OrderSelect(j,SELECT_BY_POS,MODE_TRADES))
      {
         CloseOrder();
      }
   double Lot2=GetLot(MaxRisk);
   NewOrder(cmd,Lot2);
}

et ensuite :

if(M_1<NizUroven && M_0 >=NizUroven)
{
   ff(OP_SELL);
}

if(M_1>VerhUroven && M_0<=VerhUroven)
{
   ff(OP_BUY);
}

est à titre d'exemple, avec visibilité ou transfert à la fonction de la variable MaxRisk - calculez vous-même

 
Bonjour !
J'ai rencontré un problème lors de l'ouverture d'un certain nombre de commandes(défini par l'utilisateur).
J'ai écrit un petit code pour résoudre ce problème.
Mais il arrive qu'un nombre arbitraire d'ordres soit ouvert, généralement vers la fin du test.

Voici le code lui-même.

extern string Kolichestvo_orderov = "Количество единовременно открытых ордеров";
extern int OrederBuy = 1;
extern int OrederSell = 1;


int OrdS=1,OrdB=1,ticketBuy,ticketSell,lastticketSell=0,lastticketBuy=0;

//========================================================================================================//     
                                  //---- Открытие ордеров SELL ----//
//========================================================================================================//

if(OrdS<=OrederSell)
  { //----- start
 
if(trendDn==true && SthFast>88.2 && SthSlow<38.2)
     {
ticketSell=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,0,magick,0,Blue);OrdS++; //--- Если ордер открыт параметр OrdS увеличиваю 
     }
   } //-----end
          
//========================================================================================================//  
                                   //----Открытие ордеров BUY ----//
//========================================================================================================//  

if(OrdB<=OrederBuy)
  { //-----start

if(trendUp==true && SthFast<11.8 && SthSlow>61.8)
      {
ticketBuy=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,0,0,0,magick,0,Red);OrdB++; //--- Если ордер открыт параметр OrdB увеличиваю
      }

  } //------end
  

//------------------------------- Подсчет количества ордеров BUY & SELL ----------------------------------//
   
  if(ticketBuy<=OrdersHistoryTotal()) //------ проверка тикетов тех  ордеров которые уже закрыты
   {
  for(int ordBuy=lastticketBuy;ordBuy<=OrdersHistoryTotal();ordBuy++) //--- перебор новых закрытых ордеров
    {
     if(OrderSelect(ordBuy,SELECT_BY_POS,MODE_HISTORY)==true){if(OrderType()==OP_BUY)OrdB--;lastticketBuy=ticketBuy;} //--- если добавился новый закрытый ордер бай, то параметр OrdB уменьшаю
    }
   }
  
  //-----
    
 if(ticketSell<=OrdersHistoryTotal()) //------ проверка тикетов тех  ордеров которые уже закрыты
  {
 for(int ordSell=lastticketSell;ordSell<=OrdersHistoryTotal();ordSell++) //--- перебор новых закрытых ордеров
     {
     if(OrderSelect(ordSell,SELECT_BY_POS,MODE_HISTORY)==true){if(OrderType()==OP_SELL)OrdS--;lastticketSell=ticketSell;} //--- если добавился новый закрытый ордер селл, то параметр OrdS уменьшаю

Si vous avez une solution plus simple, je serais heureux de recevoir des commentaires.

 

Bonjour à tous !

Pouvez-vous me dire s'il est possible d'afficher du texte sur un graphique, comme par exemple

   string mytext = "Hello from programmer!";
   ObjectSetText("mycomment", mytext, 10, "Arial", Gray);
     if (ObjectFind("mycomment") == -1) {
         ObjectCreate("mycomment", OBJ_LABEL, 0, 0, 0);
         ObjectSet("mycomment", OBJPROP_CORNER, 2);
         ObjectSet("mycomment", OBJPROP_XDISTANCE, 5);
         ObjectSet("mycomment", OBJPROP_YDISTANCE, 7);}

comme une fonction séparée afin qu'elle puisse être appelée d'une manière ou d'une autre :

mycomment("Hello from programmer!")
Raison: