Dato che i nomi sono identici, si seleziona la prima cifra più piccola del numero ed è il 4° oggetto, poi, dato che i primi 2 oggetti hanno una 4° cifra, si seleziona la cifra più piccola che segue la 4° dei primi 2 oggetti.
A100:
Sì, solo la conversione inversa non può essere fatta. Assegnare numeri casuali agli oggetti è come chiamare il linguaggio MQL831 invece di MQL5.
Secondo me, per elaborare manualmente gli oggetti nell'ordine della loro creazione, bisogna o numerare i nomi dopo tutti o durante il processo di creazione di ognuno di essi e poi eseguire il robot per elaborare e scrivere l'array mantenendo la numerazione di creazione nei nomi. Questo permetterà in futuro di ordinare correttamente gli oggetti della lista come nella funzioneObjectName e altre simili, nell'ordinedi creazione degli oggetti manualmente.
Secondo me, per elaborare manualmente gli oggetti in ordine di creazione, bisogna o numerare i nomi dopo che tutti gli oggetti sono stati creati o durante il processo di creazione di ciascuno, e poi accendere il robot, che elabora e scrive un array mantenendo la numerazione di creazione nei nomi. In futuro, questo permetterà di selezionare correttamente gli oggetti dalla lista, sia attraverso la funzione ObjectName che altre simili, nell'ordinedi creazione degli oggetti manualmente.
Perché non usare ObjectGetInteger() con l'identificatore di proprietà OBJPROP_CREATETIME?
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in] Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
Cosa mi impedisce di usare ObjectGetInteger() con la proprietà ID OBJPROP_CREATETIME?
L'idea è che voglio che tutto ciò che disegno sul grafico sia scritto nel nome degli oggetti, compresa la numerazione della creazione dell'oggetto nella lista, nell'ordine di creazione, timeframe, tipo di livello Fibo e numero di serie del tipo di livello Fibo, allo stesso tempo scrivendo array con questi dati di livello nell'ordine in cui sono elencati. Poi creeremo criteri per azioni di trading da questi nomi e dati in array corrispondenti all'ordine di creazione di questi oggetti.
Finora, ho trovato questo modo: creiamo 4 oggetti Fibo Nella lista, l'ordine di creazione è salvato, numerarli per l'elaborazione secondo l'ordine di creazione Eseguire l'Expert Advisor
//+------------------------------------------------------------------+//| F.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| Fibo_Massiv.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+string NameFiboUp[15]; // Объявление массиваstring NameFiboDown[15]; // Объявление массиваstring NameFibo[9]; // Объявление массиваint TimeFrame[9];
string Num[9];
int Frame;
//string New_N;//+------------------------------------------------------------------+intOnInit()
{
//______________________________Массив новых имён с индексацией номеров очерёдности________________________________
NameFiboUp[1]="FiboUp1 ";
NameFiboDown[1]="FiboDown1 ";
NameFiboUp[2]="FiboUp2 ";
NameFiboDown[2]="FiboDown2";
NameFiboUp[3]="FiboUp3";
NameFiboDown[3]="FiboDown3 ";
NameFiboUp[4]="FiboUp4 ";
NameFiboDown[4]="FiboDown4 ";
NameFiboUp[5]="FiboUp5";
NameFiboDown[5]="FiboDown5 ";
NameFiboUp[6]="FiboUp6 ";
NameFiboDown[6]="FiboDown6 ";
NameFiboUp[7]="FiboUp7 ";
NameFiboDown[7]="FiboDown7 ";
NameFiboUp[8]="FiboUp8 ";
NameFiboDown[8]="FiboDown8 ";
NameFiboUp[9]="FiboUp9 ";
NameFiboDown[9]="FiboDown9 ";
NameFiboUp[10]="FiboUp10 ";
NameFiboDown[10]="FiboDown10";
NameFiboUp[11]="FiboUp11 ";
NameFiboDown[11]="FiboDown11 ";
NameFiboUp[12]="FiboUp12 ";
NameFiboDown[12]="FiboDown12 ";
NameFiboUp[13]="FiboUp13 ";
NameFiboDown[13]="FiboDown13";
NameFiboUp[14]="FiboUp14 ";
NameFiboDown[14]= "FiboDown14";
//____________________string Массив таймфреймов______________________________
NameFibo[1]="M1";
NameFibo[2]="M5";
NameFibo[3]="M15";
NameFibo[4]="H1";
NameFibo[5]="H4";
NameFibo[6]="Da";
NameFibo[7]="We";
NameFibo[8]="Mo";
//___________________int Массив таймфреймов__________________________________________
TimeFrame[1]=1;
TimeFrame[2]=5;
TimeFrame[3]=15;
TimeFrame[4]=60;
TimeFrame[5]=240;
TimeFrame[6]=1440;
TimeFrame[7]=10080;
TimeFrame[8]=43200;
//_____________________________________________________________________________
Num[1]="1";
Num[2]="2";
Num[3]="3";
Num[4]="4";
Num[5]="5";
Num[6]="6";
Num[7]="7";
Num[8]="8";
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Expert deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//---
}
//+------------------------------------------------------------------+//| Expert tick function |//+------------------------------------------------------------------+voidOnTick()
{
int G=0;
int UP=1; //Счётчик очерёдности типов фибоint Down=1; //Счётчик очерёдности типов фибоstring nameUP = "FiboUp";
string nameDown = "FiboDown";
double FiboDown[4][10],FiboUp[4][10]; // 2x мерный массив// Alert("ArraySize(FiboDown)= ", ArraySize(FiboDown));int Fibo_Koll = ObjectsTotal(0,0,OBJ_FIBO); //Запрос колличества объектов Fibo//_________________________________________________________if(Fibo_Koll==0) //Если нет не одного фибо выход //return; ////_________________________________________________________//// int Koll[]; //Индексация и запись в массив по порядку появления фибо в окне инструментов// int Tip[]; //Запись типа Fibo в массив по порядку появления фибо в окне инструментов//ArrayResize(Koll,Fibo_Koll); // Устанавливает новый размер в первом измерении массива Koll []//ArrayResize(Tip,Fibo_Koll); // Устанавливает новый размер в первом измерении массива Tip []// ObjectName(0,0,0,OBJ_FIBO); //Вытаскивает имя найденого фибоfor(int i=0; i < Fibo_Koll; i++)
{
G++; // Нумератор объектов из списка объектовstring n =ObjectName(0,i,0,OBJ_FIBO); //Имя для обрезки до 2х первых знаков для получения тайм-фреймаstring Name_Static =ObjectName(0,i,0,OBJ_FIBO);
//--------------------------------------------------------//----------------------------------------------------------------------------------------double Fibo_Level_0= ObjectGetDouble(
0, // идентификатор графика
n, // имя объектаOBJPROP_PRICE, // идентификатор свойства0// модификатор свойства
);
double Fibo_Level_1= ObjectGetDouble(
0, // идентификатор графика
n, // имя объектаOBJPROP_PRICE, // идентификатор свойства1// модификатор свойства
);
//------------------------------------------------------------------------------------------------------if(Fibo_Level_0>Fibo_Level_1)
{
//вызов функции расчёта уровня 78.6double Fibo_78_Up = Function_Up(Fibo_Level_0, Fibo_Level_1);
//Изменение имени объектаbool l = StringSetLength( //Устанавливает для строки указанную длину в символах 2
n, // строка2// новая длина строки
);
//-----------------------------------------------------------int N = 1;
string q;
for(int e = 1; N != 0; e++) // пока N не == 0, гоняем функцию StringCompare. сравнивая обрезанную переменную(StringSetLength) с массивом NameFibo[]
{
N= StringCompare(
n, // первая сравниваемая строка
NameFibo[e], // вторая сравниваемая строкаtrue// режим учета регистра букв при сравнении
);
q= NameFibo[e];
Frame= TimeFrame[e];
}
string New_N =Num[G];
string r= New_N+q+NameFiboUp[UP];
//--------------------------------------------------------------------
FiboUp[UP][1]=1; // Тип обектов 1 == FiboUp
FiboUp[UP][2]=UP; // Нумерация обектов FiboUp по типу
FiboUp[UP][3]=Fibo_78_Up; // 78.6%
FiboUp[UP][4]=Frame; // Тайм фрейм
FiboUp[UP][5]=0; // 50%//----------------------------------------------------------------------------------------------------------bool F =ObjectSetString(0,Name_Static,OBJPROP_NAME,r);
UP++;
}
//----------------------------------------------------------------------------------else
{
//вызов функции расчёта уровня 78.6double Fibo_78_Down = Function_Down(Fibo_Level_0, Fibo_Level_1);
//Изменение имени объектаbool l = StringSetLength( //Устанавливает для строки указанную длину в символах 2
n, // строка2// новая длина строки
);
//-----------------------------------------------------------int N = 1;
string q;
for(int e = 1; N != 0; e++) // пока N не == 0, гоняем функцию StringCompare. сравнивая обрезанную переменную(StringSetLength) с массивом NameFibo[]
{
N= StringCompare(
n, // первая сравниваемая строка
NameFibo[e], // вторая сравниваемая строкаtrue// режим учета регистра букв при сравнении
);
q= NameFibo[e];
Frame= TimeFrame[e];
}
string New_N =Num[G];
string r= New_N+q+NameFiboDown[Down];
//-------------------------------------------------------------------
FiboDown[Down][1]=2; // // Тип обектов 2 == FiboDown
FiboDown[Down][2]=Down; // Нумерация обектов по типу
FiboDown[Down][3]=Fibo_78_Down; // 78.6%
FiboDown[Down][4]=Frame; // Тайм фрейм
FiboDown[Down][5]=0; // 50%//------------------------------------------------------------------//Изменение имени объектаbool F =ObjectSetString(0,Name_Static,OBJPROP_NAME,r);
Down++;
}
}
//+------------------------------------------------------------------+ArrayPrint(
FiboUp, // выводимый массив6, // количество десятичных знаков после запятойNULL, // разделитель между значениями полей структуры0, // индекс первого выводимого элементаWHOLE_ARRAY, // количество выводимых элементовARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_ALIGN
);
ArrayPrint(
FiboDown, // выводимый массив6, // количество десятичных знаков после запятойNULL, // разделитель между значениями полей структуры0, // индекс первого выводимого элементаWHOLE_ARRAY, // количество выводимых элементовARRAYPRINT_HEADER|ARRAYPRINT_INDEX|ARRAYPRINT_ALIGN
);
}
// for(int i=0; i<ArraySize(Koll); i++)// printf("Koll[%d] = %d",i,Koll[i]);//------------------------------------------------------------------------------------------------------//+------------------------------------------------------------------+//+------------------------------------------------------------------+double Function_Up(double a, double b) // имя функции и список параметров
{
double Sum_100 = a - b; //Вычисляем 100% В пунктах от точек построения фибоdouble Sum_78 = Sum_100 * 78.6 / 100; //Вычисляем 78.6% В пунктахreturn (Sum_78 + b); // Вычисляем 78.6% в цене инструмента
}
//+------------------------------------------------------------------+double Function_Down(double a, double b) // имя функции и список параметров
{
double Sum_100 = b - a ; //Вычисляем 100% В пунктах от точек построения фибоdouble Sum_78 = Sum_100 * 21.4 / 100; //Вычисляем 78.6% В пунктахreturn (Sum_78 + a); // Вычисляем 78.6% в цене инструмента
}
//+------------------------------------------------------------------+
Passiamo attraverso gli oggetti nell'ordine della loro creazione con cambio di nomi per mantenere l'ordine di creazione nella lista, e scriviamo caratteristiche e livelli degli oggetti in array nell'ordine della loro creazione come nella lista. Il primo passaggio di codice, mantenendo l'ordine di creazione degli oggetti nella lista modifica i nomi, integrando con le caratteristiche per l'orientamento durante la creazione dei criteri e mantenendo l'ordine nella lista degli oggetti per una corretta selezione ulteriore passando attraverso l'ordine in caso di cambiamento delle coordinate degli oggetti, e la corretta sovrascrittura degli array nell'ordine di primo riempimento.
Finora, la logica viene salvata al primo passaggio)))
Il punto è che voglio che tutto ciò che disegno sul grafico sia scritto nel nome degli oggetti, compresa la numerazione degli oggetti nella lista, in ordine di creazione, timeframe, tipo di livello Fibo e numero seriale del tipo di livello Fibo, in parallelo scrivendo gli array con i dati di questi livelli nell'ordine degli oggetti nella lista degli oggetti grafici. Poi creeremo criteri per azioni di trading con questi nomi, e dati in array corrispondenti all'ordine di creazione di questi oggetti.
Finora, ho trovato il seguente metodo. Creiamo 4 oggetti Fibo nella lista nell'ordine della loro creazione, li numeriamo per l'elaborazione secondo l'ordine di creazione Launch Expert Advisor
Il primo passaggio di codice, mantenendo l'ordine degli oggetti nella lista, modifica i nomi degli oggetti per mantenere l'ordine della loro creazione e registrare caratteristiche e livelli negli array nell'ordine di creazione di questi oggetti come nella lista. Il primo passaggio di codice, mantenendo l'ordine degli oggetti nella lista, modifica i nomi, aggiungendo caratteristiche per l'orientamento durante la creazione dei criteri e mantenendo l'ordine nella lista degli oggetti per una corretta selezione successiva cercando di cambiare l'ordine delle coordinate degli oggetti e sovrascrivendo correttamente gli array nel primo passaggio
Mentre al primo passaggio, la logica viene salvata)))
Tutto sarebbe molto più semplice se gli oggetti avessero un numero nella lista degli oggetti che corrisponde all'ordine di creazione.
Nikolay Kositsin: Le persone che sono consapevoli di questo, hanno iniziato a fare sketch usando la classe CCanvas. E ho scoperto un problema totalmente sconosciuto. I rettangoli e i cerchi di sfondo riempiti vengono disegnati bene, ma tutti i miei tentativi di disegnare un cerchio sono finiti in un completo fallimento. Ci sono tre varianti di cerchi nel codice e nessun risultato di disegnarli sul grafico. Questo codice funziona per i cerchi o manca qualcosa?
Nikolai Semko: Ha sempre funzionato.
Stai facendo qualcosa di sbagliato.
Sì, tutto funziona. Prova questo script. Disegna in tre algoritmi Circle, CircleAA e CircleWu cerchi di raggio, colore e trasparenza casuali
CircleAA è meglio non usarlo - è un algoritmo molto lento.
Sarebbe molto più facile se agli oggetti fosse tacitamente assegnato un numero nella lista degli oggetti corrispondente all'ordine in cui sono stati creati.
Il tempo di creazione dell'oggetto (usare OBJPROP_CREATETIME come tipo ulong) non è un identificatore dell'ordine di creazione dell'oggetto?
Il punto è che voglio che tutto ciò che disegno sul grafico sia scritto nel nome degli oggetti, compresa la numerazione degli oggetti nella lista, in ordine di creazione, timeframe, tipo di livello Fibo e numero seriale del tipo di livello Fibo, in parallelo scrivendo gli array con i dati di questi livelli nell'ordine degli oggetti nella lista degli oggetti grafici. Poi creeremo criteri per azioni di trading con questi nomi, e dati in array corrispondenti all'ordine di creazione di questi oggetti.
Finora, ho trovato il seguente metodo. Creiamo 4 oggetti Fibo nella lista nell'ordine della loro creazione, li numeriamo per l'elaborazione secondo l'ordine di creazione Esegui l'Expert Advisor
Il primo passaggio di codice, mantenendo l'ordine degli oggetti nella lista, modifica i nomi degli oggetti per mantenere l'ordine della loro creazione e registrare caratteristiche e livelli negli array nell'ordine di creazione di questi oggetti come nella lista. Il primo passaggio di codice, mantenendo l'ordine degli oggetti nella lista, modifica i nomi, aggiungendo caratteristiche per l'orientamento quando si creano i criteri e mantenendo l'ordine nella lista degli oggetti per una corretta selezione successiva cercando di cambiare l'ordine degli oggetti in caso di cambio di coordinate e corretta sovrascrittura degli array nell'ordine del primo passaggio
Mentre nel primo passaggio, la logica è conservata)))
La tua domanda è risolta su "una volta". È sufficiente scrivere la ridenominazione degli oggetti creati.
/***********************OnChartEvent function************************/voidOnChartEvent(constint id, // идентификатор событияconstlong& lparam, // параметр события типа longconstdouble& dparam, // параметр события типа doubleconststring& sparam // параметр события типа string
)
{
if(id == CHARTEVENT_OBJECT_CREATE)
{
string result[]; // массив для получения строкStringSplit(sparam, ' ', result); // получим из имени созданного объекта подстрокиulong timeCreate = ObjectGetInteger(0, sparam, OBJPROP_CREATETIME); // получим время создания объектаstring newName = result[0]+" "+result[1]+" "+string(timeCreate); // сформируем новое имя объектаObjectSetString(0, sparam, OBJPROP_NAME, newName); // переименуем объект
}
}/******************************************************************/
Ora ogni volta che si crea un oggetto grafico sul grafico con un Expert Advisor installato, i nomi degli oggetti avranno il tempo di creazione invece di un numero casuale nel nome e saranno ordinati rigorosamente nella sequenza di creazione.
Ciao a tutti, potete consigliare a un "programmatore" analfabeta cosa aggiungere al codice dell'indicatore in mql4, per sovrapporre l'istogramma sul grafico di uno strumento in un certo punto? È anche auspicabile che l'istogramma sia semitrasparente, in modo che non copra il grafico. Nel file allegato (non so come allegarlo al messaggio come immagine) vi ho mostrato approssimativamente come dovrebbe essere.
La tua domanda è risolta in un attimo. È sufficiente scrivere la ridenominazione degli oggetti creati.
Ora ogni volta che si crea un oggetto grafico sul grafico con l'Expert Advisor installato, i nomi degli oggetti, invece di un numero casuale, nel nome avranno il tempo di creazione e saranno ordinati rigorosamente nella sequenza di creazione.
Grazie mille!!! Non ho letto completamente queste funzioni di gestione degli eventi, semplificano la vita di un proger)
Artyom Trishkin: Il tempo di creazione dell 'oggetto (usato come tipo ulong) OBJPROP_CREATETIME non è un identificatore dell'ordine di creazione dell'oggetto?
Dato che i nomi sono identici, si seleziona la prima cifra più piccola del numero ed è il 4° oggetto, poi, dato che i primi 2 oggetti hanno una 4° cifra, si seleziona la cifra più piccola che segue la 4° dei primi 2 oggetti.
Sì, solo la conversione inversa non può essere fatta. Assegnare numeri casuali agli oggetti è come chiamare il linguaggio MQL831 invece di MQL5.
Secondo me, per elaborare manualmente gli oggetti nell'ordine della loro creazione, bisogna o numerare i nomi dopo tutti o durante il processo di creazione di ognuno di essi e poi eseguire il robot per elaborare e scrivere l'array mantenendo la numerazione di creazione nei nomi. Questo permetterà in futuro di ordinare correttamente gli oggetti della lista come nella funzioneObjectName e altre simili, nell'ordinedi creazione degli oggetti manualmente.
Secondo me, per elaborare manualmente gli oggetti in ordine di creazione, bisogna o numerare i nomi dopo che tutti gli oggetti sono stati creati o durante il processo di creazione di ciascuno, e poi accendere il robot, che elabora e scrive un array mantenendo la numerazione di creazione nei nomi. In futuro, questo permetterà di selezionare correttamente gli oggetti dalla lista, sia attraverso la funzione ObjectName che altre simili, nell'ordinedi creazione degli oggetti manualmente.
Perché non usare ObjectGetInteger() con l'identificatore di proprietà OBJPROP_CREATETIME?
Cosa mi impedisce di usare ObjectGetInteger() con la proprietà ID OBJPROP_CREATETIME?
L'idea è che voglio che tutto ciò che disegno sul grafico sia scritto nel nome degli oggetti, compresa la numerazione della creazione dell'oggetto nella lista, nell'ordine di creazione, timeframe, tipo di livello Fibo e numero di serie del tipo di livello Fibo, allo stesso tempo scrivendo array con questi dati di livello nell'ordine in cui sono elencati. Poi creeremo criteri per azioni di trading da questi nomi e dati in array corrispondenti all'ordine di creazione di questi oggetti.
Finora, ho trovato questo modo: creiamo 4 oggetti Fibo
Nella lista, l'ordine di creazione è salvato, numerarli per l'elaborazione secondo l'ordine di creazione
Eseguire l'Expert Advisor
Passiamo attraverso gli oggetti nell'ordine della loro creazione con cambio di nomi per mantenere l'ordine di creazione nella lista,
e scriviamo caratteristiche e livelli degli oggetti in array nell'ordine della loro creazione come nella lista.
Il primo passaggio di codice, mantenendo l'ordine di creazione degli oggetti nella lista modifica i nomi, integrando con le caratteristiche per l'orientamento durante la creazione dei criteri e mantenendo l'ordine nella lista degli oggetti per una corretta selezione ulteriore passando attraverso l'ordine in caso di cambiamento delle coordinate degli oggetti, e la corretta sovrascrittura degli array nell'ordine di primo riempimento.
Finora, la logica viene salvata al primo passaggio)))
Il punto è che voglio che tutto ciò che disegno sul grafico sia scritto nel nome degli oggetti, compresa la numerazione degli oggetti nella lista, in ordine di creazione, timeframe, tipo di livello Fibo e numero seriale del tipo di livello Fibo, in parallelo scrivendo gli array con i dati di questi livelli nell'ordine degli oggetti nella lista degli oggetti grafici. Poi creeremo criteri per azioni di trading con questi nomi, e dati in array corrispondenti all'ordine di creazione di questi oggetti.
Finora, ho trovato il seguente metodo. Creiamo 4 oggetti Fibo nella lista nell'ordine della loro creazione, li numeriamo per l'elaborazione secondo l'ordine di creazione Launch Expert Advisor
Il primo passaggio di codice, mantenendo l'ordine degli oggetti nella lista, modifica i nomi degli oggetti per mantenere l'ordine della loro creazione e registrare caratteristiche e livelli negli array nell'ordine di creazione di questi oggetti come nella lista. Il primo passaggio di codice, mantenendo l'ordine degli oggetti nella lista, modifica i nomi, aggiungendo caratteristiche per l'orientamento durante la creazione dei criteri e mantenendo l'ordine nella lista degli oggetti per una corretta selezione successiva cercando di cambiare l'ordine delle coordinate degli oggetti e sovrascrivendo correttamente gli array nel primo passaggio
Mentre al primo passaggio, la logica viene salvata)))
Tutto sarebbe molto più semplice se gli oggetti avessero un numero nella lista degli oggetti che corrisponde all'ordine di creazione.
Le persone che sono consapevoli di questo, hanno iniziato a fare sketch usando la classe CCanvas. E ho scoperto un problema totalmente sconosciuto. I rettangoli e i cerchi di sfondo riempiti vengono disegnati bene, ma tutti i miei tentativi di disegnare un cerchio sono finiti in un completo fallimento. Ci sono tre varianti di cerchi nel codice e nessun risultato di disegnarli sul grafico. Questo codice funziona per i cerchi o manca qualcosa?
Ha sempre funzionato.
Sì, tutto funziona.
Prova questo script. Disegna in tre algoritmi Circle, CircleAA e CircleWu cerchi di raggio, colore e trasparenza casuali
CircleAA è meglio non usarlo - è un algoritmo molto lento.
Sarebbe molto più facile se agli oggetti fosse tacitamente assegnato un numero nella lista degli oggetti corrispondente all'ordine in cui sono stati creati.
Il punto è che voglio che tutto ciò che disegno sul grafico sia scritto nel nome degli oggetti, compresa la numerazione degli oggetti nella lista, in ordine di creazione, timeframe, tipo di livello Fibo e numero seriale del tipo di livello Fibo, in parallelo scrivendo gli array con i dati di questi livelli nell'ordine degli oggetti nella lista degli oggetti grafici. Poi creeremo criteri per azioni di trading con questi nomi, e dati in array corrispondenti all'ordine di creazione di questi oggetti.
Finora, ho trovato il seguente metodo. Creiamo 4 oggetti Fibo nella lista nell'ordine della loro creazione, li numeriamo per l'elaborazione secondo l'ordine di creazione Esegui l'Expert Advisor
Il primo passaggio di codice, mantenendo l'ordine degli oggetti nella lista, modifica i nomi degli oggetti per mantenere l'ordine della loro creazione e registrare caratteristiche e livelli negli array nell'ordine di creazione di questi oggetti come nella lista. Il primo passaggio di codice, mantenendo l'ordine degli oggetti nella lista, modifica i nomi, aggiungendo caratteristiche per l'orientamento quando si creano i criteri e mantenendo l'ordine nella lista degli oggetti per una corretta selezione successiva cercando di cambiare l'ordine degli oggetti in caso di cambio di coordinate e corretta sovrascrittura degli array nell'ordine del primo passaggio
Mentre nel primo passaggio, la logica è conservata)))
La tua domanda è risolta su "una volta". È sufficiente scrivere la ridenominazione degli oggetti creati.
Ora ogni volta che si crea un oggetto grafico sul grafico con un Expert Advisor installato, i nomi degli oggetti avranno il tempo di creazione invece di un numero casuale nel nome e saranno ordinati rigorosamente nella sequenza di creazione.
La tua domanda è risolta in un attimo. È sufficiente scrivere la ridenominazione degli oggetti creati.
Ora ogni volta che si crea un oggetto grafico sul grafico con l'Expert Advisor installato, i nomi degli oggetti, invece di un numero casuale, nel nome avranno il tempo di creazione e saranno ordinati rigorosamente nella sequenza di creazione.
Grazie mille!!! Non ho letto completamente queste funzioni di gestione degli eventi, semplificano la vita di un proger)
Il tempo di creazione dell 'oggetto (usato come tipo ulong) OBJPROP_CREATETIME non è un identificatore dell'ordine di creazione dell'oggetto?
Sì, grazie!!!