Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1681

 
void OpenOrder(int db = -1){

  if(db == -1){
    Print("'db' должен иметь корректное значение");
    return;
  }

  Order order;

  //Если бид в границах ДБ (его хай/лоу) то инициализируем ордер для селстопа или байстопа
  if(Bid > db_last.low && Bid < db_last.hight){
    if(db == BEAR) order.InitForSell(SELLSTOP);
    if(db == BULL) order.InitForBuy(BUYSTOP);
  }

 ...

  if(order.is_init == true)
  {
    int order_send = OrderSend(Symbol(), order.cmd, 0.01, order.open_price, 10, 
    order.sl_price, order.tp_price, "", GetMagic(order), 0, order.arrow_color);

    if(order_send == -1){
      Print(order.error_text," | ",GetLastError()," db_last.third ",db_last.third,
        " | db_last.size_open_to_low ",db_last.size_open_to_low," | order.sl_price: ",
        order.sl_price," | order.cmd ",order.cmd);
      ResetLastError();
      return;
    }
  }
}

...

int GetMagic(Order &order)
{
  int magic = 0;
  //Если должен быть открыт стопордер и если есть уже открытые или отложенные 
  //ордера, то возможно некоторые с маджиком, это надо проверить и сгенерировать 
  //для нашего ордера уникальный маджик
  if(order.cmd == OP_SELLSTOP || order.cmd == OP_BUYSTOP)
    if(OrdersTotal() >= 1)
      for(;;){
        magic++;
        for(int i = OrdersTotal(); i > 0 ; i --)
          if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) != false) //<------------ СЮДА НЕТ ВХОЖДЕНИЯ
            if(magic != OrderMagicNumber())
              return magic;
            
      }
    //Если нет открытых или отложенных ордеров то увеличиваем значение 
    //маджика, чтобы он равнялся единице
    else if (OrdersTotal() == 0)
      return (magic + 1);
  return magic;
}
 
Bonsoir, j'ai écrit un indicateur très simple sur le travail (je joins le fichier) Je voudrais préciser s'il y a un moyen de prescrire dans le code au lieu d'une ligne rouge et bleue (RSI2 et RSI3 dans l'image (jointe aussi), respectivement) était une seule ligne - et il était rouge si RSI2>RSI3 et bleu si RSI2 < RSI3

#property indicator_color2 Red
#property indicator_color3 Blue 
                                                              
extern int RSIPERIOD=3;
extern double KOEFF1=2.5;
extern double KOEFF2=1.86; 
                                                                                                                                                                  
double Buf0[],Buf1[],Buf2[];
double D10,D11,D12;
                                                                                                                                                                                                                                                                                                                                             
int init()
  {
   IndicatorDigits(0);
   string short_name="RSITEST";           
   IndicatorShortName("RSITEST");
   
   D10=RSIPERIOD;D11=D10*KOEFF1;D12=D11*KOEFF2;;
 
   SetIndexBuffer(0,Buf0);
   SetIndexLabel (0,"Stoch "+Ds_0(D10)+")\n");
   SetIndexBuffer(1,Buf1);
   SetIndexLabel (1,"Stoch ("+Ds_0(D11)+")\n");
   SetIndexBuffer(2,Buf2);
   SetIndexLabel (2,"Stoch ("+Ds_0(D12)+")\n");
   return(0);
  }
                                                                                                               
int start()
  {
   if(Bars<=RSIPERIOD) return(0);
   int ExtCountedBars=IndicatorCounted();
   if (ExtCountedBars<0) return(-1);
   if (ExtCountedBars>0) ExtCountedBars--;
   for(int i=0;i<Bars-RSIPERIOD;i++)
      {
       Buf0[i] = iRSI(NULL,0,D10,0,i);
       Buf1[i] = iRSI(NULL,0,D11,0,i);
       Buf2[i] = iRSI(NULL,0,D12,0,i); 
      }
   return(0);
  }
string Ds_0(double DOUBLE) {return(DoubleToStr(DOUBLE,0));}
Dossiers :
RSITEST.mq4  4 kb
 
Andrey Kipyatkov #:
Bonsoir, j'ai écrit un indicateur très simple sur le travail (fichier joint) Je voudrais préciser s'il ya un moyen de prescrire dans le code au lieu d'une ligne rouge et bleue (RSI2 et RSI3 dans l'image (ci-joint ainsi), respectivement) était une seule ligne - et il était rouge si RSI2>RSI3 et bleu si RSI2 < RSI3

dans MT5, vous pouvez
 
MakarFX #:
dans mt5 vous pouvez

Dans mt4 aussi :)

 
Vitaly Muzichenko #:

Dans mt4 aussi :)

EMPTY_VALUE
 
Ivan Butko #:

Compte tenu de N bougies à l'envers. Trouvez les bougies de taille >= X pips, retenez leur nombre et la taille de chacune d'elles.
Ajoutez les chandeliers >= X pips au tableau trié, puis recherchez la place du chandelier actuel dans le tableau.
 
Vitaly M
MakarFX #:
EMPTY_VALUE
uzichenko #
:

Dans mt4 aussi :)

https://docs.mql4.com/ru/constants/namedconstants/otherconstants Je ne vois pas vraiment commentEMPTY_VALUE peut m'aider. J'ai 3 tableaux et chacun d'entre eux donne du rsy si je mets EMPTY_VALUE, cela ne me donne rien. ma tâche est d 'écrire dans le code à la place de la ligne rouge et bleue la même ligne - et ce sera rouge siRSI2>RSI3 et bleu siRSI2<RSI3
Прочие константы - Именованные константы - Константы, перечисления и структуры - Справочник MQL4
Прочие константы - Именованные константы - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Прочие константы - Именованные константы - Константы, перечисления и структуры - Справочник MQL4
 
Andrey Kipyatkov #:
https://docs.mql4.com/ru/constants/namedconstants/otherconstants Je ne comprends pas vraiment commentEMPTY_VALUE peut m'aider. J'ai 3 tableaux, chacun d'eux produit des Rsai ; si je mets EMPTY_VALUE, cela ne me donne rien. ma tâche est d 'écrire dans le code à la place de la ligne rouge et bleue la même ligne - et ce sera rouge siRSI2>RSI3 et bleu siRSI2<RSI3
       Buf0[i] = iRSI(NULL,0,D10,0,i);
       if(iRSI(NULL,0,D11,0,i)>iRSI(NULL,0,D12,0,i))
       Buf1[i] = Buf0[i];
       else
       Buf1[i] = EMPTY_VALUE;
Dossiers :
RSITEST-1.mq4  4 kb
 
Andrey Kipyatkov #:
https://docs.mql4.com/ru/constants/namedconstants/otherconstants Je ne vois pas vraiment commentEMPTY_VALUE peut m'aider. J'ai 3 tableaux et chacun d'entre eux donne des Rsai ; si je mets EMPTY_VALUE, cela ne me donne rien. ma tâche est d 'écrire dans le code à la place de la ligne rouge et bleue la même ligne - et ce sera rouge siRSI2>RSI3 et bleu siRSI2<RSI3

Changez de couleur à votre guise pour répondre à vos besoins

if(Open < Close) {
  SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1,clrRed);
  ...
 
Vitaly Muzichenko #:

Changez la couleur selon vos besoins

Vraiment ? !))

L'avez-vous essayé ?