Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 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;
}
 
Guten Abend, ich schrieb einen sehr einfachen Indikator auf den Job (ich die Datei anhängen) Ich möchte klären, ob es eine Möglichkeit gibt, in den Code statt einer roten und blauen Linie (RSI2 und RSI3 in das Bild (auch beigefügt), bzw.) war eine einzige Linie - und es war rot, wenn RSI2>RSI3 und blau, wenn 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));}
Dateien:
RSITEST.mq4  4 kb
 
Andrey Kipyatkov #:
Guten Abend, ich schrieb einen sehr einfachen Indikator auf dem bole (angehängte Datei) Ich möchte klären, ob es eine Möglichkeit, in den Code statt einer roten und blauen Linie (RSI2 und RSI3 in das Bild (auch beigefügt), bzw.) war eine einzige Linie - und es war rot, wenn RSI2>RSI3 und blau, wenn RSI2 < RSI3

im MT5 können Sie
 
MakarFX #:
in mt5 können Sie

Auch in mt4 :)

 
Vitaly Muzichenko #:

Auch in mt4 :)

EMPTY_VALUE
 
Ivan Butko #:

Gegeben N Kerzen rückwärts. Finden Sie Kerzen mit einer Größe von >= X Pips, merken Sie sich deren Anzahl und die Größe jeder Kerze.
Fügen Sie Candlesticks >= X Pips zum sortierten Array hinzu und suchen Sie dann den Platz des aktuellen Candlesticks im Array.
 
Vitaly M
MakarFX #:
EMPTY_VALUE
uzichenko #
:

Auch in mt4 :)

https://docs.mql4.com/ru/constants/namedconstants/otherconstants Ich sehe nicht wirklich, wieEMPTY_VALUE mir helfen kann. Ich habe 3 Arrays und jeder gibt rsy, wenn ich EMPTY_VALUE es einfach nicht mir etwas geben. meine Aufgabe ist es , in den Code statt der roten und blauen Linie die gleiche Zeile zu schreiben - und es wird rot sein, wennRSI2>RSI3 und blau, wennRSI2<RSI3
Прочие константы - Именованные константы - Константы, перечисления и структуры - Справочник MQL4
Прочие константы - Именованные константы - Константы, перечисления и структуры - Справочник MQL4
  • docs.mql4.com
Прочие константы - Именованные константы - Константы, перечисления и структуры - Справочник MQL4
 
Andrey Kipyatkov #:
https://docs.mql4.com/ru/constants/namedconstants/otherconstants Ich verstehe nicht wirklich, wieEMPTY_VALUE mir helfen kann. Ich habe 3 Arrays, jeder von ihnen gibt rsi, wenn ich EMPTY_VALUE setzen , es wird einfach nicht geben mir nichts. meine Aufgabe ist es , in den Code statt der roten und blauen Linie die gleiche Zeile zu schreiben - und es wird rot sein, wennRSI2>RSI3 und blau, wennRSI2<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;
Dateien:
RSITEST-1.mq4  4 kb
 
Andrey Kipyatkov #:
https://docs.mql4.com/ru/constants/namedconstants/otherconstants Ich sehe nicht wirklich, wieEMPTY_VALUE mir helfen kann. Ich habe 3 Arrays und jeder gibt Rsai aus, wenn ich EMPTY_VALUE setze , wird es mir einfach nichts geben. meine Aufgabe ist es , in den Code statt der roten und blauen Linie die gleiche Zeile zu schreiben - und es wird rot sein, wennRSI2>RSI3 und blau, wennRSI2<RSI3

Ändern Sie die Farbe nach Bedarf und passen Sie sie Ihren Bedürfnissen an

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

Ändern Sie die Farbe nach Bedarf und passen Sie sie Ihren Bedürfnissen an

Wirklich?!))

Haben Sie es ausprobiert?