Anladım! isimler aynı olduğundan, sayıdaki en küçük ilk basamak seçilir ve bu 4. nesnedir, ardından ilk 2 nesnenin ilk basamağı 4 olduğundan, ilk 2 nesnenin dördünden sonraki daha küçük basamak seçilir . VB.
A100 :
Evet, ancak ters dönüşüm yapılamaz. Nesnelere rastgele sayılar atamak, bir dili MQL5 yerine MQL831 olarak adlandırmak gibidir.
O zaman bana öyle geliyor ki, nesneleri yaratılış sırasına göre manuel olarak işlemek için, tüm nesneleri oluşturduktan sonra ya da her birini oluşturma sürecinde isimleri oluşturma sırasına göre numaralandırmanız ve sonra robotu açın, böylece diziyi işler ve yazar, oluşturma numaralandırmasını isimlerde tutar. Gelecekte, bu , nesnelerin manuel olarak oluşturulmasından sırayla, hem ObjectName işlevi hem de benzerleri aracılığıyla listeden nesneleri doğru şekilde seçmeyi mümkün kılacaktır.
O zaman bana öyle geliyor ki, nesneleri yaratılış sırasına göre manuel olarak işlemek için, tüm nesneleri oluşturduktan sonra ya da her birini oluşturma sürecinde isimleri oluşturma sırasına göre numaralandırmanız ve sonra robotu açın, böylece diziyi işler ve yazar, oluşturma numaralandırmasını isimlerde tutar. Gelecekte, bu , nesnelerin manuel olarak oluşturulmasından sırayla, hem ObjectName işlevi hem de benzerleri aracılığıyla listeden nesneleri doğru şekilde seçmeyi mümkün kılacaktır.
OBJPROP_CREATETIME özellik tanımlayıcısıyla ObjectGetInteger () işlevini kullanmaktan sizi alıkoyan nedir?
2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром. [in] Модификатор указанного свойства. Для первого варианта по умолчанию значение модификатора равно 0. Большинство свойств не требуют модификатора...
OBJPROP_CREATETIME özellik tanımlayıcısıyla ObjectGetInteger () işlevini kullanmaktan sizi alıkoyan nedir?
Sonuç olarak, çizelgeye çizdiğim her şeyin nesneler adına yazılmasını istiyorum, listedeki nesnelerin oluşturulmasının numaralandırılması dahil, oluşturma sırasına, zaman dilimine, fibo seviye türüne göre ve fibo seviye tipinin sıra sayısı, nesnelerin grafik nesneler listesinde bulunduğu sırayla bu seviyelerin verileriyle paralel yazma dizilerinde. Daha sonra bu isimler tarafından alım satım işlemleri için kriterler ve bu nesnelerin yaratıldığı sıraya karşılık gelen dizilerdeki veriler oluşturulacaktır.
Ben böyle bir yol bulmuşken 4 adet fibo nesne oluşturuyoruz. Oluşturma sırası listeye kaydedilir, bunları oluşturma sırasına göre işlemek için numaralandırırız. Danışmanı başlatmak
//+------------------------------------------------------------------+//| 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% в цене инструмента
}
//+------------------------------------------------------------------+
Listede oluşturulma sırasını korumak için isimlerinde değişiklik olan nesnelerin oluşturulma sırasına göre nesneler üzerinde yinelenir, ve nesnelerin özelliklerini ve seviyelerini, bir listede olduğu gibi, bu nesnelerin oluşturuldukları sırayla dizilere yazmak. Kodun ilk geçişi, listedeki nesnelerin oluşturulma sırasını korur, adları değiştirir, ölçüt oluştururken yönlendirme için özellikleri tamamlar ve doğru bir sonraki seçim için nesne listesindeki sırayı korur, her durumda sırayla yineleyerek nesnelerin koordinatlarını değiştirme ve dizileri ilk doldurma sırasına göre doğru şekilde yeniden yazma.
Sonuç olarak, çizelgeye çizdiğim her şeyin nesneler adına yazılmasını istiyorum, listedeki nesnelerin oluşturulmasının numaralandırılması dahil, oluşturma sırasına, zaman dilimine, fibo seviye türüne göre ve fibo seviye tipinin sıra sayısı, nesnelerin grafik nesneler listesinde bulunduğu sırayla bu seviyelerin verileriyle paralel yazma dizilerinde. Daha sonra bu isimler tarafından alım satım işlemleri için kriterler ve bu nesnelerin yaratıldığı sıraya karşılık gelen dizilerdeki veriler oluşturulacaktır.
Ben böyle bir yöntem bulmuşken 4 adet fibo nesnesi oluşturuyoruz Oluşturma sırası listeye kaydediliyor, oluşturulma sırasına göre işlenmek üzere numaralandırıyoruz Expert Advisor'ı Başlatın
Listedeki oluşum sırasını korumak için isim değişikliği ile nesneleri oluşum sırasına göre sıralar ve listedeki gibi nesnelerin özelliklerini ve düzeylerini bu nesnelerin oluşturulma sırasına göre dizilere yazar. Kodun ilk geçişi, listedeki nesnelerin oluşturulma sırasını korur, adları değiştirir, ölçüt oluştururken yönlendirme için özellikleri tamamlar ve doğru bir sonraki seçim için nesne listesindeki sırayı korur, her durumda sırayla yineleyerek nesnelerin koordinatlarını değiştirme ve dizileri ilk doldurma sırasına göre doğru şekilde yeniden yazma.
İlk geçişte mantık korunur)))
Nesneler listesindeki yaratılış sırasına karşılık gelen sayılar örtük olarak nesnelere atansaydı, her şey çok daha basit olurdu.
Nikolay Kositsin : Bilen kişiler CCanvas sınıfını kullanarak eskiz yapmaya başladılar. Ve tamamen bilinmeyen bir problem keşfettim. Dikdörtgenler ve arka planla dolu daireler normal olarak çizilir, ancak daire çizme girişimlerim tamamen başarısızlıkla sonuçlandı. Kodda dairelerin üç çeşidi vardır ve bunları grafikten çıkarmanın bir sonucu yoktur. Çevreler için bu kod çalışıyor mu, yoksa bir şey mi eksik?
Nikolay Semko : Her zaman çalıştı.
Yanlış bir şey yapıyorsun.
Evet, her şey çalışıyor. Bu komut dosyasını deneyin. Circle, CircleAA ve CircleWu adlı üç algoritmayı kullanarak rastgele yarıçap, renk ve şeffaflığa sahip daireler çizer
CircleAA kullanmamak daha iyidir - çok yavaş bir algoritma.
Sonuç olarak, çizelgeye çizdiğim her şeyin nesneler adına yazılmasını istiyorum, listedeki nesnelerin oluşturulmasının numaralandırılması dahil, oluşturma sırasına, zaman dilimine, fibo türüne göre seviye ve fibo seviye tipinin sıra sayısı, bu seviyelerin verileriyle paralel yazma dizileri, nesnelerin grafik nesneler listesinde bulunduğu sırayla. Daha sonra bu isimler tarafından alım satım işlemleri için kriterler ve bu nesnelerin yaratıldığı sıraya karşılık gelen dizilerdeki veriler oluşturulacaktır.
Ben böyle bir yöntem bulmuşken 4 adet fibo nesnesi oluşturuyoruz Oluşturma sırası listeye kaydediliyor, oluşturulma sırasına göre işlenmek üzere numaralandırıyoruz Expert Advisor'ı Başlatın
Listedeki oluşum sırasını korumak için isim değişikliği ile nesneleri oluşum sırasına göre sıralar ve listedeki gibi nesnelerin özelliklerini ve düzeylerini bu nesnelerin oluşturulma sırasına göre dizilere yazar. Kodun ilk geçişi, listedeki nesnelerin oluşturulma sırasını korur, adları değiştirir, ölçüt oluştururken yönlendirme için özellikleri tamamlar ve doğru bir sonraki seçim için nesne listesindeki sırayı korur, her durumda sırayla yineleyerek nesnelerin koordinatlarını değiştirme ve dizileri ilk doldurma sırasına göre doğru şekilde yeniden yazma.
İlk geçişte mantık korunur)))
Sorunuz "bir" de çözüldü. Oluşturulan nesnelerin yeniden adlandırılmasını yazmak yeterlidir.
/***********************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); // переименуем объект
}
} /******************************************************************/
Artık, bir Expert Advisor kurulu olan bir grafik üzerinde bir grafik nesnesi her oluşturulduğunda, rastgele bir sayı yerine nesnelerin adları, adında oluşturma süresine sahip olacak ve kesinlikle oluşturma sırasına göre sıralanacaktır.
Merhaba! Okuma yazma bilmeyen bir "programcıya", sembol tablosunda belirli bir yerde bir histogramı üst üste bindirmek için mql4 gösterge koduna ne ekleyeceğini söyleyin? Grafiği gizlememesi için histogramın yarı saydam olması da istenir. Ekteki dosyada (Mesaj içine nasıl resim ekleyeceğimi bilmiyorum) nasıl görünmesi gerektiğini gösterdi.
Sorunuz "bir" de çözüldü. Oluşturulan nesnelerin yeniden adlandırılmasını yazmak yeterlidir.
Artık, bir Expert Advisor kurulu olan bir grafik üzerinde bir grafik nesnesi her oluşturulduğunda, rastgele bir sayı yerine nesnelerin adları, adında oluşturma süresine sahip olacak ve kesinlikle oluşturma sırasına göre sıralanacaktır.
Çok teşekkürler!!! Bu Olay İşleme İşlevlerini tam olarak okumadım, programın ömrünü basitleştirirler)
Anladım! isimler aynı olduğundan, sayıdaki en küçük ilk basamak seçilir ve bu 4. nesnedir, ardından ilk 2 nesnenin ilk basamağı 4 olduğundan, ilk 2 nesnenin dördünden sonraki daha küçük basamak seçilir . VB.
Evet, ancak ters dönüşüm yapılamaz. Nesnelere rastgele sayılar atamak, bir dili MQL5 yerine MQL831 olarak adlandırmak gibidir.
O zaman bana öyle geliyor ki, nesneleri yaratılış sırasına göre manuel olarak işlemek için, tüm nesneleri oluşturduktan sonra ya da her birini oluşturma sürecinde isimleri oluşturma sırasına göre numaralandırmanız ve sonra robotu açın, böylece diziyi işler ve yazar, oluşturma numaralandırmasını isimlerde tutar. Gelecekte, bu , nesnelerin manuel olarak oluşturulmasından sırayla, hem ObjectName işlevi hem de benzerleri aracılığıyla listeden nesneleri doğru şekilde seçmeyi mümkün kılacaktır.
O zaman bana öyle geliyor ki, nesneleri yaratılış sırasına göre manuel olarak işlemek için, tüm nesneleri oluşturduktan sonra ya da her birini oluşturma sürecinde isimleri oluşturma sırasına göre numaralandırmanız ve sonra robotu açın, böylece diziyi işler ve yazar, oluşturma numaralandırmasını isimlerde tutar. Gelecekte, bu , nesnelerin manuel olarak oluşturulmasından sırayla, hem ObjectName işlevi hem de benzerleri aracılığıyla listeden nesneleri doğru şekilde seçmeyi mümkün kılacaktır.
OBJPROP_CREATETIME özellik tanımlayıcısıyla ObjectGetInteger () işlevini kullanmaktan sizi alıkoyan nedir?
OBJPROP_CREATETIME özellik tanımlayıcısıyla ObjectGetInteger () işlevini kullanmaktan sizi alıkoyan nedir?
Sonuç olarak, çizelgeye çizdiğim her şeyin nesneler adına yazılmasını istiyorum, listedeki nesnelerin oluşturulmasının numaralandırılması dahil, oluşturma sırasına, zaman dilimine, fibo seviye türüne göre ve fibo seviye tipinin sıra sayısı, nesnelerin grafik nesneler listesinde bulunduğu sırayla bu seviyelerin verileriyle paralel yazma dizilerinde. Daha sonra bu isimler tarafından alım satım işlemleri için kriterler ve bu nesnelerin yaratıldığı sıraya karşılık gelen dizilerdeki veriler oluşturulacaktır.
Ben böyle bir yol bulmuşken 4 adet fibo nesne oluşturuyoruz.
Oluşturma sırası listeye kaydedilir, bunları oluşturma sırasına göre işlemek için numaralandırırız.
Danışmanı başlatmak
Listede oluşturulma sırasını korumak için isimlerinde değişiklik olan nesnelerin oluşturulma sırasına göre nesneler üzerinde yinelenir,
ve nesnelerin özelliklerini ve seviyelerini, bir listede olduğu gibi, bu nesnelerin oluşturuldukları sırayla dizilere yazmak.
Kodun ilk geçişi, listedeki nesnelerin oluşturulma sırasını korur, adları değiştirir, ölçüt oluştururken yönlendirme için özellikleri tamamlar ve doğru bir sonraki seçim için nesne listesindeki sırayı korur, her durumda sırayla yineleyerek nesnelerin koordinatlarını değiştirme ve dizileri ilk doldurma sırasına göre doğru şekilde yeniden yazma.
İlk geçişte mantık korunur)))
Sonuç olarak, çizelgeye çizdiğim her şeyin nesneler adına yazılmasını istiyorum, listedeki nesnelerin oluşturulmasının numaralandırılması dahil, oluşturma sırasına, zaman dilimine, fibo seviye türüne göre ve fibo seviye tipinin sıra sayısı, nesnelerin grafik nesneler listesinde bulunduğu sırayla bu seviyelerin verileriyle paralel yazma dizilerinde. Daha sonra bu isimler tarafından alım satım işlemleri için kriterler ve bu nesnelerin yaratıldığı sıraya karşılık gelen dizilerdeki veriler oluşturulacaktır.
Ben böyle bir yöntem bulmuşken 4 adet fibo nesnesi oluşturuyoruz Oluşturma sırası listeye kaydediliyor, oluşturulma sırasına göre işlenmek üzere numaralandırıyoruz Expert Advisor'ı Başlatın
Listedeki oluşum sırasını korumak için isim değişikliği ile nesneleri oluşum sırasına göre sıralar ve listedeki gibi nesnelerin özelliklerini ve düzeylerini bu nesnelerin oluşturulma sırasına göre dizilere yazar. Kodun ilk geçişi, listedeki nesnelerin oluşturulma sırasını korur, adları değiştirir, ölçüt oluştururken yönlendirme için özellikleri tamamlar ve doğru bir sonraki seçim için nesne listesindeki sırayı korur, her durumda sırayla yineleyerek nesnelerin koordinatlarını değiştirme ve dizileri ilk doldurma sırasına göre doğru şekilde yeniden yazma.
İlk geçişte mantık korunur)))
Nesneler listesindeki yaratılış sırasına karşılık gelen sayılar örtük olarak nesnelere atansaydı, her şey çok daha basit olurdu.
Bilen kişiler CCanvas sınıfını kullanarak eskiz yapmaya başladılar. Ve tamamen bilinmeyen bir problem keşfettim. Dikdörtgenler ve arka planla dolu daireler normal olarak çizilir, ancak daire çizme girişimlerim tamamen başarısızlıkla sonuçlandı. Kodda dairelerin üç çeşidi vardır ve bunları grafikten çıkarmanın bir sonucu yoktur. Çevreler için bu kod çalışıyor mu, yoksa bir şey mi eksik?
Her zaman çalıştı.
Evet, her şey çalışıyor.
Bu komut dosyasını deneyin. Circle, CircleAA ve CircleWu adlı üç algoritmayı kullanarak rastgele yarıçap, renk ve şeffaflığa sahip daireler çizer
CircleAA kullanmamak daha iyidir - çok yavaş bir algoritma.
Nesneler listesindeki yaratılış sırasına karşılık gelen sayılar örtük olarak nesnelere atansaydı, her şey çok daha basit olurdu.
Sonuç olarak, çizelgeye çizdiğim her şeyin nesneler adına yazılmasını istiyorum, listedeki nesnelerin oluşturulmasının numaralandırılması dahil, oluşturma sırasına, zaman dilimine, fibo türüne göre seviye ve fibo seviye tipinin sıra sayısı, bu seviyelerin verileriyle paralel yazma dizileri, nesnelerin grafik nesneler listesinde bulunduğu sırayla. Daha sonra bu isimler tarafından alım satım işlemleri için kriterler ve bu nesnelerin yaratıldığı sıraya karşılık gelen dizilerdeki veriler oluşturulacaktır.
Ben böyle bir yöntem bulmuşken 4 adet fibo nesnesi oluşturuyoruz Oluşturma sırası listeye kaydediliyor, oluşturulma sırasına göre işlenmek üzere numaralandırıyoruz Expert Advisor'ı Başlatın
Listedeki oluşum sırasını korumak için isim değişikliği ile nesneleri oluşum sırasına göre sıralar ve listedeki gibi nesnelerin özelliklerini ve düzeylerini bu nesnelerin oluşturulma sırasına göre dizilere yazar. Kodun ilk geçişi, listedeki nesnelerin oluşturulma sırasını korur, adları değiştirir, ölçüt oluştururken yönlendirme için özellikleri tamamlar ve doğru bir sonraki seçim için nesne listesindeki sırayı korur, her durumda sırayla yineleyerek nesnelerin koordinatlarını değiştirme ve dizileri ilk doldurma sırasına göre doğru şekilde yeniden yazma.
İlk geçişte mantık korunur)))
Sorunuz "bir" de çözüldü. Oluşturulan nesnelerin yeniden adlandırılmasını yazmak yeterlidir.
Artık, bir Expert Advisor kurulu olan bir grafik üzerinde bir grafik nesnesi her oluşturulduğunda, rastgele bir sayı yerine nesnelerin adları, adında oluşturma süresine sahip olacak ve kesinlikle oluşturma sırasına göre sıralanacaktır.
Sorunuz "bir" de çözüldü. Oluşturulan nesnelerin yeniden adlandırılmasını yazmak yeterlidir.
Artık, bir Expert Advisor kurulu olan bir grafik üzerinde bir grafik nesnesi her oluşturulduğunda, rastgele bir sayı yerine nesnelerin adları, adında oluşturma süresine sahip olacak ve kesinlikle oluşturma sırasına göre sıralanacaktır.
Çok teşekkürler!!! Bu Olay İşleme İşlevlerini tam olarak okumadım, programın ömrünü basitleştirirler)
Ve nesne oluşturma zamanı (ulong tipi olarak kullanın) OBJPROP_CREATETIME, nesne oluşturma sırasının bir tanımlayıcısı değil mi?
Evet! Teşekkürler!!!