Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 809

 
Ciao!
Potete dirmi quale argomento di kodobase ha un esempio di un algoritmo che disegna i numeri in modo che i numeri degli indici delle barre siano visualizzati nella parte inferiore e/o superiore della finestra? Come nella foto.
Il punto è che OBJ_TEXT è mappato su prezzo e tempo e OBJ_LABEL sulle coordinate della finestra in pixel. Ma come combinarli?
 
Leo59:
Ciao!
Potete dirmi quale tema di Kodobase ha un esempio di un algoritmo che disegna i numeri in modo che la parte inferiore e/o superiore della finestra mostri i numeri degli indici delle barre? Come nella foto.
Il punto è che OBJ_TEXT è mappato su prezzo e tempo e OBJ_LABEL sulle coordinate della finestra in pixel. Ma come combinarli?

È necessario andare al prezzo, e il prezzo è il massimo o il minimo della candela, poi gli oggetti saranno a posto

 
Vitaly Muzichenko:

È necessario andare al prezzo, e il prezzo è il massimo o il minimo della candela, poi gli oggetti saranno a posto

"nella parte inferiore e/o superiore della finestra visualizzata i numeri di indice delle barre" e "specificare la candela Higt o Low" non è il "focus".

 
Leo59:

"la parte inferiore e/o superiore della finestra visualizza i numeri di indice delle barre" e "specifica il massimo o il minimo della candela" non è un "focus".

Questo?

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
В этом разделе представлены примеры для работы со свойствами графика. Для каждого свойства приведены одна или две законченные функции, которые позволяют задавать/получать значение этого свойства. Эти функции можно использовать в своих MQL5 программах как есть. На рисунке показана графическая панель для наглядной демонстрации того, как изменение...
 
Vitaly Muzichenko:

Questo?

Ho visto questa sezione per anni. Ma questo è tutto ciò per cui ho il cervello:
#property  indicator_chart_window

extern int History = 35;                                              // Сколько баров мы имеем ввиду
extern int Multiple = 5;                                              // Кратность отображаемой разметки

color    Color=0;
color    Color_multiple=Moccasin;                                     // Цвет индексов кратных "Multiple"
color    Color_between=MintCream;                                     // Цвет индексов промежуточных 
string   name="";
string   Text="";
int      Font_size=0;
int      Font_size_multiple=14;                                       // Размер шрифта индексов кратных "Multiple"
int      Font_size_between=8;                                         // Размер шрифта индексов промежуточных

bool     Back=true;                                                   //--- отобразим на переднем (false) или заднем (true) плане. Если (true), то подсветки дат не выводится
string   Font="Arial";                                                // Шрифт
double   Angle=270.0;                                                 // Угол наклона в градусах

int      Style=STYLE_DOT;                                             // Для всех - стиль пунктир
int      Width=1;                                                     // Толщина линии

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//+------------------------------------------------------------------+
//| Custom indicator initialization function                    F  1 | int init()
//+------------------------------------------------------------------+
int init()
   {
//    IndicatorShortName(IN + " (" + ")");                              // Короткое имя индикатора
    return(INIT_SUCCEEDED);                                           // Успешная инициализация приложения
   }

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//+------------------------------------------------------------------+
//| expert deinitialization function                             F 2 | int deinit()
//+------------------------------------------------------------------+
int deinit() // Время исполнения специальной функции deinit() ограничено периодом 2,5 секунды.
   {
    ObjectsDeleteAll(0, "label", 0);                                  // Идентификатор графика, префикс имени объекта, индекс окна
    return(0);                                                        // Выход из deinit()
   }

//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//+------------------------------------------------------------------+
//| Custom indicator iteration function                         F  3 | int start()
//+------------------------------------------------------------------+
int start()
   {
    int i=0;
    int limit=Bars-IndicatorCounted()-1; 
    if(limit>1) limit=MathMin(Bars, History+(History==0)*Bars)-1;
    
    for(i=0; i<History; i++)
        {
         name = "label "+i;
         Text = DoubleToStr(i,0);
          
         if(MathMod(i, Multiple) == 0)                                     // MathMod() Возвращает вещественный остаток от деления двух чисел (i/Multiple).
             {
              Color = Color_multiple;
              Font_size = Font_size_multiple;

              if(ObjectFind(0, name)==-1)                                  // Если объект "name" не найден
                  {
                   ObjectCreate(0,name,OBJ_VLINE,0,Time[i],0);             // Создаем объект..
                   ObjectSetInteger(0,name,OBJPROP_STYLE,Style);           //--- установим стиль отображения линии
                   ObjectSetInteger(0,name,OBJPROP_WIDTH,Width);           //--- установим толщину линии
                   ObjectSetInteger(0,name,OBJPROP_COLOR,Color);           //--- установим цвет
                   ObjectSetString(0,name,OBJPROP_TEXT,Text);              //--- установим текст
                   ObjectSetString(0,name,OBJPROP_FONT,Font);              //--- установим шрифт текста
                   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,Font_size);    //--- установим размер шрифта
                   ObjectSetDouble(0,name,OBJPROP_ANGLE,Angle);            //--- установим угол наклона текста
                   // Для отображения текстового описания объекта необходимо включить галочку опции "Показывать описания объектов" в окне Графики->Свойства финансового инструмента (F8) > Общие.         
                   ObjectSetInteger(0,name,OBJPROP_BACK, Back);            //--- отобразим на переднем (false) или заднем (true) плане
                  }
               else                                                        // Если объект "name" найден
                  {
                   ObjectMove(0,name, 0, Time[i], 0);                     // Сообщение новых координат. 
                  }
             }
//         else
//             {
//              Color = Color_between;
//              Font_size = Font_size_between;
//
//              if(ObjectFind(0, name)==-1)                                  // Если объект "name" не найден
//                  {
//                   ObjectCreate(0,name,OBJ_VLINE,0,Time[i],0);             // Создаем объект..
//                   ObjectSetInteger(0,name,OBJPROP_STYLE,Style);           //--- установим стиль отображения линии
//                   ObjectSetInteger(0,name,OBJPROP_WIDTH,Width);           //--- установим толщину линии
//                   ObjectSetInteger(0,name,OBJPROP_COLOR,Color);           //--- установим цвет
//                   //ObjectSetString(0,name,OBJPROP_TEXT,Text);              //--- установим текст
//                   //ObjectSetString(0,name,OBJPROP_FONT,Font);              //--- установим шрифт текста
//                   //ObjectSetInteger(0,name,OBJPROP_FONTSIZE,Font_size);    //--- установим размер шрифта
//                   ObjectSetDouble(0,name,OBJPROP_ANGLE,Angle);            //--- установим угол наклона текста
//                   // Для отображения текстового описания объекта необходимо включить галочку опции "Показывать описания объектов" в окне Графики->Свойства финансового инструмента (F8) > Общие.         
//                   ObjectSetInteger(0,name,OBJPROP_BACK, Back);            //--- отобразим на переднем (false) или заднем (true) плане
//                  }
//               else                                                        // Если объект "name" найден
//                  {
//                   ObjectMove(0,name, 0, Time[i], 0);                     // Сообщение новых координат. 
//                  }
//             }
        }
    return(0);
   }

 
Leo59:
Ciao!
Potete dirmi quale argomento di Kodobase ha un esempio di un algoritmo che disegna i numeri in modo che la parte inferiore e/o superiore della finestra mostri i numeri di indice delle barre? Come nella foto.
Il punto è che OBJ_TEXT è mappato su prezzo e tempo e OBJ_LABEL sulle coordinate della finestra in pixel. Ma come combinarli?

Conqueste funzioni ChartTimePriceToXY e ChartXYToTimePrice può essere posizionato ovunque

 
Leo59:
Ciao!
Potete dirmi quale argomento di kodobase ha un esempio di un algoritmo che disegna i numeri in modo che i numeri degli indici delle barre siano visualizzati nella parte inferiore e/o superiore della finestra? Come nella foto.
Il punto è che OBJ_TEXT è mappato su prezzo e tempo e OBJ_LABEL sulle coordinate della finestra in pixel. Ma come combinarli?

Perché ho bisogno di numeri su un grafico? C'è una soluzione pronta nella documentazione su come visualizzare il numero di barra

Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
//| Custom indicator initialization function                         | //| Custom indicator iteration function                              |
 
Leo59:
Ho visto questa sezione per molti anni. Ma il mio cervello è sufficiente solo per questo:

Una raccomandazione discreta:

Se stai cercando di padroneggiare mql5, prova a sbarazzarti di extern, int init(), int deinit() e int start().

sostituirli con input completi, int OnInit(), void OnDeinit(const int reason) e void OnTick()

 

Saluti!


Potete dirmi come fare un array di istu

Sto cercando di fare così:

input double Df_1 = 0.8;

ingresso doppio Df_2 = 0,1;

input double Df_3 = 0.3;


const double Df[3] = {Df_1 ,Df_2 ,Df_3 };


ma genera un errore:

'Df_1' - espressione costante richiesta

'Df_2' - espressione costante richiesta

'Df_3' - espressione costante richiesta

Facendo riferimento alla stringa di inizializzazione dell'array
 
Anttonnio:

Saluti!


Potete dirmi come fare un array di istu

Sto cercando di fare così:

input double Df_1 = 0.8;

ingresso doppio Df_2 = 0,1;

input double Df_3 = 0.3;


const double Df[3] = {Df_1 ,Df_2 ,Df_3 };


ma genera un errore:

'Df_1' - espressione costante richiesta

'Df_2' - espressione costante richiesta

'Df_3' - espressione costante richiesta

Facendo riferimento alla stringa di inizializzazione dell'array

L'array deve essere inizializzato con delle costanti.

Se volete riempirlo di parametri d'ingresso, prima dichiaratelo e poi dategli un nome.