Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 694

 
Maxim Kuznetsov:

NO, NON PUO'...

È divertente, ma ciò che l'utente ha selezionato nella scheda "Colori" normalmente NON è disponibile all'interno dell'indicatore

Grazie per la risposta.

Ho ancora il sogno che lo sviluppatore di MT4 (per Windows) abbia ADATTATO i reindirizzamenti sul mio tablet....

Gli ho scritto, mi hanno risposto, hanno detto che tutti i loro sforzi sono concentrati su MT5...

 
kopeyka2:

Grazie per la vostra risposta.

Ho ancora il sogno che lo sviluppatore di MT4 (per Windows) ADATTI il redesign per il tablet....

Ho scritto loro, mi hanno risposto, hanno detto che tutti i loro sforzi sono concentrati su MT5...

In mt4 è improbabile che ci sia qualcosa di nuovo.

 
kopeyka2:

Ciao.

Domanda: In MT4, è possibile far coincidere il colore del buffer EZ con il grafico, se il colore dell'indicatore sul grafico è cambiato?

Nel codice

#proprietà indicatori_color1 clrYellow

***

***

ObjectCreate(.......);

ObjectSetInteger(... indicators_color1);


Problema; quando si cambia colore nell'indicatore, il colore della linea del buffer cambia, ma nel grafico è lo stesso di #proprietà. Ha bisogno di corrispondenza.

Finora risolto attraverso il colore di ingresso, MA sono due voci nel codice, due modifiche nelle impostazioni, e vorrei una sola impostazione attraverso il buffer.


Grazie per qualsiasi feedback.

L'ho scritto schematicamente dal mio smartphone.


Prendiamo l'indicatore dove viene visualizzato il grafico e guardiamo:

//+------------------------------------------------------------------+
//| Описание                                                         |
//+------------------------------------------------------------------+
void Descriptions(void)
  {
   int x=4;
   int y=1;
   int arr_colors[]={indicator_color1,indicator_color2,indicator_color3,indicator_color4,indicator_color5};
   string arr_texts[]={"Up direction","Down direction","Crossing to up","Crossing to down","Neutral"};
   string arr_names[COUNT];
   for(int i=0; i<COUNT; i++)
     {
      arr_names[i]=prefix+"label"+(string)i;
      arr_colors[i]=PlotIndexGetInteger(i,PLOT_LINE_COLOR);
      int shift=(i*(i<2 ? 90 : i<COUNT-1 ? 96 : 100)-(i>0 ? x : 0));
      x+=shift;
      Label(arr_names[i],x,y,CharToString(167),16,arr_colors[i],"Wingdings");
      Label(arr_names[i]+"_txt",x+10,y+5,arr_texts[i],10,clrGray,"Calibri");
     }
  }
//+------------------------------------------------------------------+

Un array di colori viene dichiarato e inizializzato con i colori specificati dall'utente nelle impostazioni dell'indicatore.

Poi il valore del colore dall'array viene passato alla funzione di output dell'etichetta di testo.

Tutto è standard nella funzione di output delle etichette di testo:

//+------------------------------------------------------------------+
//| Выводит текстовую метку                                          |
//+------------------------------------------------------------------+
void Label(const string name,const int x,const int y,const string text,const int size,const color clr,const string font)
  {
   if(ObjectFind(0,name)!=wnd)
      ObjectCreate(0,name,OBJ_LABEL,wnd,0,0,0,0);
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
   ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_LOWER);
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_LEFT_LOWER);
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,size);
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//---
   ObjectSetString(0,name,OBJPROP_FONT,font);
   ObjectSetString(0,name,OBJPROP_TEXT,text);
   ObjectSetString(0,name,OBJPROP_TOOLTIP,"\n");
  }
//+------------------------------------------------------------------+

Il colore passato alla funzione imposta il colore del marcatore di testo. E tutto funziona...

 
Artyom Trishkin:

Prendiamo l 'indicatore in cui viene visualizzato il grafico e lo guardiamo:

Un array di colori viene dichiarato e inizializzato con i colori specificati dall'utente nelle impostazioni dell'indicatore.

Poi il valore del colore dall'array viene passato alla funzione di output dell'etichetta di testo.

Tutto è standard nella funzione di output delle etichette di testo:

Il colore passato alla funzione imposta il colore dell'etichetta di testo. E tutto funziona...

Ho considerato l'opzione dell'array... Non è chiaro come sia collegato al buffer...? La domanda riguardava un solo movimento di cambiamento di colore... per il buffer e l'etichetta (linea).

O non capisco?)))

Grazie per l'esempio)))


PS

pensato, forse in qualche modo tirare (confrontare) il colore dal buffer ... Penso che questa sia una sciocchezza...

 

Saluti. Puoi dirmi come scrivere un indicatore che funzioni solo sul prezzo di domanda?

RSI = NormalizeDouble((iRSI(NULL,0,14,0,0)),Digits());

 
Anatolij Anufriev:

Saluti. Puoi dirmi come scrivere un indicatore che funzioni solo sul prezzo di domanda?

RSI = NormalizeDouble((iRSI(NULL,0,14,0,0)),Digits());

nelle barre MT4 - OHLC sono costruiti da Bid, infatti, i prezzi Ask non sono disponibili nella storia. come opzione, raccogliere Ask in tick e utilizzare iRSIOnArray()

 

Qual è la soluzione migliore/comoda per usare i database con MQL4/5?

Ci sono molti articoli, è difficile sceglierne uno

 
Igor Makanu:

nelle barre MT4 - OHLC sono costruite da Bid, infatti i prezzi Ask non sono disponibili nella storia, in alternativa raccogliere in tick Ask e utilizzare iRSIOnArray()

Grazie

 
Sergey Likho:

Qual è la soluzione migliore/comoda per usare i database con MQL4/5?

Ci sono molti articoli, è difficile sceglierne uno.

Se non hai un articolo, cerca "Articoli" sul forum. Puoi trovare tutte le informazioni nella sezione "Forum". Ci sono molte cose che sono state combinate con MT4, SQL e applicazioni come MathLab o R... Cerca quello che ti piace, cerca abbastanza bene su questo forum

https://www.mql5.com/ru/search#!keyword=sql&module=mql5_module_articles

Поиск - MQL5.community
Поиск - MQL5.community
  • www.mql5.com
Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы...
 

Per qualche motivo non riesco a prendere una barra nel loop, che inizia a ore 15.

Se scrivo if(i<24) come condizione, il log mostra il tempo di ogni barra per il giorno, ma la condizione richiesta non è soddisfatta:


   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      
      if( TimeHour(iTime(NULL,PERIOD_H1,i)==15)  )
      //if(i<24)
      Print("TimeHour = ", TimeHour(iTime(NULL,PERIOD_H1,i)));
      
      CrossDown[i]=High[i]+250*Point;
   
      i--;                          // Расчёт индекса следующего бара
     }