MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 128
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Grafiklerde göstergeler/uzmanlar var mı?
Danışman yok, yalnızca terminalden gelen standart hacimler göstergedir
Onlar. çizelgeyi açtı, yatay bir çizgi çizdi, terminali kapattı, terminali açtı, çizelge (çizgi çizmeye açık) yerinde ama çizginin kendisi orada değil mi?
kesinlikle
Dostum, bu olmamalı...
Selamlar! Lütfen bana MQL4\Indicators klasöründe belirli bir özel göstergenin varlığını veya yokluğunu adıyla nasıl programlı olarak kontrol edeceğimi söyler misiniz?
Yani, iCustom işlevinin göstergeyi bulduğunu ve onunla çalıştığını kontrol etmem gerekiyor.
Aynı ada sahip bir gösterge olup olmadığını kontrol edin (nasıl olduğunu bilmiyorum)
if( !=Indicatorname)// Peki, ya da aynı ada sahip bir gösterge olmadığını gösteren başka bir "sinyal", -1, false gibi...
{buraya bir şeyler yazıyorum :)}
else // Göstergeden değeri al
{
iCustom(....Gösterge adı....);
}
Konunun "Kısıtlamasız dosya işlemleri" düzleminde yattığından şüpheleniyorum (yanılıyor olabilirim), ancak genellikle "bu konuda" kullanılan sistem kitaplıklarına hiç rastlamadım ...
Genel olarak, tavsiyeye ihtiyacımız var ... belki zaten hazır bir şey var ... veya en azından - "nereyi kazmak"
teşekkürler
Selamlar! Lütfen bana MQL4\Indicators klasöründe belirli bir özel göstergenin varlığını veya yokluğunu adıyla nasıl programlı olarak kontrol edeceğimi söyler misiniz?
Yani, iCustom işlevinin göstergeyi bulduğunu ve onunla çalıştığını kontrol etmem gerekiyor.
Aynı ada sahip bir gösterge olup olmadığını kontrol edin (nasıl olduğunu bilmiyorum)
if( !=Indicatorname)// Peki, ya da aynı ada sahip bir gösterge olmadığını gösteren başka bir "sinyal", -1, false gibi...
{buraya bir şeyler yazıyorum :)}
else // Göstergeden değeri al
{
iCustom(....Gösterge adı....);
}
Konunun "Kısıtlamasız dosya işlemleri" düzleminde yattığından şüpheleniyorum (yanılıyor olabilirim), ancak genellikle "bu konuda" kullanılan sistem kitaplıklarına hiç rastlamadım ...
Genel olarak, tavsiyeye ihtiyacımız var ... belki zaten hazır bir şey var ... veya en azından - "nereyi kazmak"
teşekkürler
göstergeyi bir kaynak olarak bağlamak daha iyidir, o zaman onu aramanıza gerek kalmayacak, her zaman orada olacak
daha sonra dosya işlemlerinde size yardımcı olabilirler, işte dosya arama belgelerinden bir örnek
#property script_show_inputs
//--- дата для старых файлов
input datetime InpFilesDate= D'2013.01.01 00:00' ;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart ()
{
string file_name; // переменная для хранения имен файлов
string filter= "*.txt" ; // фильтр для поиска файлов
datetime create_date; // дата создания файла
string files[]; // список имен файлов
int def_size= 25 ; // размер массива по умолчанию
int size= 0 ; // количество файлов
//--- выдели память для массива
ArrayResize (files,def_size);
//--- получение хэндла поиска в корне локальной папки
long search_handle= FileFindFirst (filter,file_name);
//--- проверим, успешно ли отработала функция FileFindFirst()
if (search_handle!= INVALID_HANDLE )
{
//--- в цикле перебираем файлы
do
{
files[size]=file_name;
//--- увеличим размер массива
size++;
if (size==def_size)
{
def_size+= 25 ;
ArrayResize (files,def_size);
}
//--- сбрасываем значение ошибки
ResetLastError ();
//--- получим дату создания файла
create_date=( datetime ) FileGetInteger (file_name, FILE_CREATE_DATE , false );
//--- проверим, старый ли файл
if (create_date<InpFilesDate)
{
PrintFormat ( "Файл %s удален!" ,file_name);
//--- удаляем старый файл
FileDelete (file_name);
}
}
while ( FileFindNext (search_handle,file_name));
//--- закрываем хэндл поиска
FileFindClose (search_handle);
}
else
{
Print ( "Files not found!" );
return ;
}
//--- проверим какие из файлов остались
PrintFormat ( "Результаты:" );
for ( int i= 0 ;i<size;i++)
{
if ( FileIsExist (files[i]))
PrintFormat ( "Файл %s существует!" ,files[i]);
else
PrintFormat ( "Файл %s удален!" ,files[i]);
}
}
....
daha sonra dosya işlemlerinde size yardımcı olabilirler, işte dosya arama belgelerinden bir örnek
#property script_show_inputs
//--- дата для старых файлов
input datetime InpFilesDate= D'2013.01.01 00:00' ;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart ()
{
string file_name; // переменная для хранения имен файлов
string filter= "*.txt" ; // фильтр для поиска файлов
datetime create_date; // дата создания файла
string files[]; // список имен файлов
int def_size= 25 ; // размер массива по умолчанию
int size= 0 ; // количество файлов
//--- выдели память для массива
ArrayResize (files,def_size);
//--- получение хэндла поиска в корне локальной папки
long search_handle= FileFindFirst (filter,file_name);
//--- проверим, успешно ли отработала функция FileFindFirst()
if (search_handle!= INVALID_HANDLE )
{
//--- в цикле перебираем файлы
do
{
files[size]=file_name;
//--- увеличим размер массива
size++;
if (size==def_size)
{
def_size+= 25 ;
ArrayResize (files,def_size);
}
//--- сбрасываем значение ошибки
ResetLastError ();
//--- получим дату создания файла
create_date=( datetime ) FileGetInteger (file_name, FILE_CREATE_DATE , false );
//--- проверим, старый ли файл
if (create_date<InpFilesDate)
{
PrintFormat ( "Файл %s удален!" ,file_name);
//--- удаляем старый файл
FileDelete (file_name);
}
}
while ( FileFindNext (search_handle,file_name));
//--- закрываем хэндл поиска
FileFindClose (search_handle);
}
else
{
Print ( "Files not found!" );
return ;
}
//--- проверим какие из файлов остались
PrintFormat ( "Результаты:" );
for ( int i= 0 ;i<size;i++)
{
if ( FileIsExist (files[i]))
PrintFormat ( "Файл %s существует!" ,files[i]);
else
PrintFormat ( "Файл %s удален!" ,files[i]);
}
}
....
daha sonra dosya işlemlerinde size yardımcı olabilirler, işte dosya arama belgelerinden bir örnek
}
....
ancak standart araçları kullanmazsanız, muhtemelen göstergelerin bulunduğu klasöre girmezsiniz, bu örneği analiz etmeye çalışın, eğer yardımcı olmazsa, o zaman sadece wine api aracılığıyla
#property script_show_inputs
//--- фильтр
input string InpFilter= "Dir1\\*" ;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart ()
{
string file_name;
string int_dir= "" ;
int i= 1 ,pos= 0 ,last_pos=- 1 ;
//--- ищем последний бэк-слеш
while (! IsStopped ())
{
pos= StringFind (InpFilter, "\\" ,pos+ 1 );
if (pos>= 0 )
last_pos=pos;
else
break ;
}
//--- в фильтре присутствует имя папки
if (last_pos>= 0 )
int_dir= StringSubstr (InpFilter, 0 ,last_pos+ 1 );
//--- получение хэндла поиска в корне локальной папки
long search_handle= FileFindFirst (InpFilter,file_name);
//--- проверим, успешно ли отработала функция FileFindFirst()
if (search_handle!= INVALID_HANDLE )
{
//--- в цикле проверим являются ли переданные строки именами файлов или директорий
do
{
ResetLastError ();
//--- если это файл, то функция вернет true, а если директория, то функция генерирует ошибку ERR_FILE_IS_DIRECTORY
FileIsExist (int_dir+file_name);
PrintFormat ( "%d : %s name = %s" ,i, GetLastError ()== ERR_FILE_IS_DIRECTORY ? "Directory" : "File" ,file_name);
i++;
}
while ( FileFindNext (search_handle,file_name));
//--- закрываем хэндл поиска
FileFindClose (search_handle);
}
else
Print ( "Files not found!" );
}
...