[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 459

 
Değerli uzmanlar yardım edin.
Şablonu otomatik kaydetme sorununun üstesinden gelemiyorum.
Dosya adını kaydetme penceresine yapıştırmaz.
İşte kod.
 // Функция выгрузки файл шаблона с текущего графика
     string slash= StringSubstr ( "\a" , 0 , 1 );
     string path= "experts\files" ;
     if ( IsTesting ()) path= "tester\files" ;
     SaveTemplate( StringConcatenate ( TerminalPath (),slash,path,slash, Symbol (), "-" , TimeCurrent (), ".tpl" )); //загрузка шаблона с именем 
 
void SaveTemplate( string lpTemplateName)
{
     int hParent, hDlg, hEdit,hButtonSave ;
    hParent = GetAncestor( WindowHandle ( Symbol (), Period ()), 2 );
    PostMessageA(hParent,WM_COMMAND, 33220 , 0 ); //вызываем окно сохранения шаблона
     Sleep ( 100 );
    hDlg = GetLastActivePopup(hParent); //основное окно
    hEdit = GetDlgItem(hDlg,0x3E9); //поле имени файла
    SetWindowTextA(hEdit,lpTemplateName); //вводим имя шаблона
     // 0x45A
    hButtonSave = GetDlgItem(hDlg, 1 );             //определяем дескриптор кнопки "Сохранить"
     Print (lpTemplateName, " " ,hEdit, " " ,hDlg, " " ,hParent, " " , hButtonSave);
    PostMessageA(hDlg,WM_COMMAND, 1 ,hButtonSave);   //нажимаем на кнопку

}
Şimdiden teşekkürler.
 
vasili :
Değerli uzmanlar yardım edin.
Şablonu otomatik kaydetme sorununun üstesinden gelemiyorum.
Dosya adını kaydetme penceresine yapıştırmaz.
İşte kod.

Hazır MT4 yönetim fonksiyonlarına sahip kütüphane .

//============================================== =========================================
// 4.4. Grafik şablonunu ayarlama işlevleri.
//============================================== =========================================
// 4.4.1. İşlev, belirtilen şablonu, şablonlar listesindeki adıyla belirtilen grafiğe yükler.
void ServiceSetTemplateByName (int hwndChart, // Şablonun yüklendiği grafik penceresine sistem tanıtıcısı.
dize sNameTemplate); // Şablon listesindeki şablonun adı.
//============================================== =========================================
// 4.4.2. İşlev, belirtilen şablonu, şablonlar listesindeki numarasına göre belirtilen şemaya yükler. İşlev, başarılı olduğunda TRUE, aksi takdirde FALSE döndürür.
bool ServiceSetTemplateByNumber(int hwndChart, // Şablonun yüklendiği grafik penceresine sistem tanıtıcısı.
int nTemplate); // Şablon listesindeki şablon numarası. Şablonlar listede ada göre sıralanır. Şablon sayısı 64 ile sınırlıdır.

Son zamanlarda kontrol edildi. İşler.

 
7777877 :
Gülen yüze sağ tıklayın (istemci terminal penceresinin sağ üst köşesinde) -> Uzman Danışmanlar -> Sil

Kod kullanarak programlı olarak nasıl yapabilirim? Danışman işlevini yerine getirdi ve bayıldı mı?
 
Elektronik :

Kod kullanarak programlı olarak nasıl yapabilirim? Danışman işlevini yerine getirdi ve bayıldı mı?
https://www.mql5.com/ru/forum/110207
PostMessageA( WindowHandle ( Symbol (), Period ()), WM_COMMAND, 33050 , 0 );
 
Elektronik :

Kod kullanarak programlı olarak nasıl yapabilirim? Danışman işlevini yerine getirdi ve bayıldı mı?

Hazır MT4 yönetim fonksiyonlarına sahip aynı kütüphane .

//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// 7. MQL4 PROGRAMLARINI YÖNETMEK İÇİN FONKSİYONLAR.
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
// 7.1. İşlev, Uzman Danışmanı belirtilen çizelgeden kaldırır. İşlev, başarılı olduğunda TRUE, aksi takdirde FALSE döndürür.
bool ServiceDeleteExpert (int hwndChart); // Grafik penceresinin sistem tanıtıcısı, silinecek EA.
//============================================== ===================================
// 7.2. FUNCTION, yüklü göstergeler listesinden göstergeleri ada göre kaldırır.
void ServiceDeleteIndicatorsByName (int hwndChart, // Göstergenin eklendiği pencereye sistem tanıtıcısı.
int nWindow, // Göstergeleri kaldırılacak alt pencere sayısı. -1 ise, göstergeler tüm alt pencerelerden kaldırılır.
string &asIndicatorName[], // Kaldırılacak göstergelerin adlarını içeren tek boyutlu dizi.
int nNumaraAdı); // Dizideki gösterge adlarının sayısı.
//============================================== ===================================
// 7.3. İşlev, komut dosyasını belirtilen grafikten kaldırır. İşlev, başarılı olduğunda TRUE, aksi takdirde FALSE döndürür.
bool ServiceDeleteScript (int hwndChart); // Grafik penceresinin sistem tanıtıcısı, silinen script.oo
//============================================== ===================================
// 7.4. İşlev, kod tamamlama iletişim kutusunu yönetir ve varsa, komut dosyası tamamlama iletişim kutusunun sistem tanıtıcısını döndürür,
// aksi halde - NULL. Komut dosyası yalnızca Rusça ve İngilizce yerelleştirmelerle çalışır.
int ServiceDialogScript (int bInstruction); // Komut dosyası tamamlama iletişim kutusu için komut: DOĞRU - komut dosyasını sonlandır, FALSE - komut dosyasını sonlandırmayın.
//============================================== ===================================
// 7.5. İşlev, yüklenen göstergeler listesinden gösterge adlarını alır.
// Başarılı olursa, işlev belirtilen alt pencerelerdeki göstergelerin sayısını "nWindow" parametresiyle, aksi takdirde sıfır olarak döndürür.
int ServiceGetNamesIndicators (int hwndChart, // Göstergenin eklendiği pencereye sistem tanıtıcısı.
int nWindow, // Alt çizelge numarası. -1 ise, gösterge adları tüm alt pencerelerden okunur.
string &asIndicatorName[], // Gösterge adlarını almak için tek boyutlu dize dizisi.
// Dizi, her hücrede farklı değerlerle başlatılmalıdır!
// Bu, MQL4'te dizi dizisi başlatmanın bir özelliğidir.
int nNumaraAdı); // Gösterge adlarını almak için "asIndicatorName[]" dizisinin boyutu.
//============================================== ===================================
// 7.6. İşlev, gösterge listesi penceresini çağırır.
bool ServiceListIndicators (int hwndChart); // Gösterge listesi penceresinin çağrıldığı grafik penceresinin sistem tanıtıcısı.
//============================================== ===================================
// 7.7. İşlev, belirtilen çizelgede adına göre özel bir gösterge yükler.
void ServiceLoadCustomIndicator (int hwndChart, // Göstergenin yüklendiği grafik penceresinin sistem tanıtıcısı.void
string szNameIndicator, // Yüklenen göstergenin adı.
int bOK); // Bir gösterge özellikleri iletişim kutusu varsa, gösterge başlatma onayı.
// DOĞRU - "Tamam" düğmesine otomatik tıklama etkinleştirilir, YANLIŞ - "Tamam" düğmesine otomatik tıklama devre dışı bırakılır.
//============================================== ===================================
// 7.8. İşlev, belirtilen çizelgeye adıyla bir Uzman Danışman yükler.
void ServiceLoadExpert (int hwndChart, // Expert Advisor'ın yüklendiği grafik penceresinin sistem tanıtıcısı.
string szNameExpert, // Yüklenen uzmanın adı.
int bOK); // Uzmanın özellikleri iletişim kutusu mevcutsa, uzmanın başlatıldığının onayı.
// DOĞRU - "Tamam" düğmesine otomatik tıklama etkinleştirilir, YANLIŞ - "Tamam" düğmesine otomatik tıklama devre dışı bırakılır.
//============================================== ===================================
// 7.9. İşlev, belirtilen grafiğe adıyla bir komut dosyası yükler.
void ServiceLoadScript (int hwndChart, // Komut dosyasının yüklendiği grafik penceresine sistem tanıtıcısı.
string szNameScript, // Yüklenen betiğin adı.
int bOK); // Komut dosyası özellikleri iletişim kutusu varsa, komut dosyasını çalıştırma onayı. Komut dosyasının bir özellikler penceresi olmayabilir!
// Geçerli grafikteki bir komut dosyasından bir komut dosyası yüklemek için işlevi kullanırken, parametre şu nedenle çalışmıyor:
// iki betiğin aynı grafik üzerinde aynı anda çalışmasının imkansızlığı.
// DOĞRU - "Tamam" düğmesine otomatik tıklama etkinleştirilir, YANLIŞ - "Tamam" düğmesine otomatik tıklama devre dışı bırakılır.
//============================================== ===================================
// 7.10. İşlev, belirtilen tabloya adıyla standart bir gösterge yükler.
void ServiceLoadStdIndicator (int hwndChart, // Göstergenin yüklendiği grafik penceresine sistem tanıtıcısı.
string szNameIndicator, // Yüklenen göstergenin adı.
int bOK); // Bir gösterge özellikleri iletişim kutusu varsa, gösterge başlatma onayı.
// DOĞRU - "Tamam" düğmesine otomatik tıklama etkinleştirilir, YANLIŞ - "Tamam" düğmesine otomatik tıklama devre dışı bırakılır.
//============================================== ===================================
// 7.11. İşlev, uzmanın özellikler menüsünü çağırır. İşlev, başarılı olduğunda TRUE, aksi takdirde FALSE döndürür.
bool ServicePropertiesExpert (int hwndChart); // EA'nın özellikler menüsünün çağrıldığı grafik penceresinin sistem tanıtıcısı.
//============================================== ======================================
// 7.12. İşlev, "Uzman Danışmanlar" düğmesini kontrol ederek Uzman Danışmanları etkinleştirir/devre dışı bırakır.
geçersiz ServiceSetExperts ();

 
Elektronik :

Kod kullanarak programlı olarak nasıl yapabilirim? Danışman işlevini yerine getirdi ve bayıldı mı?

SSS :
https://www.mql5.com/ru/forum/110207
PostMessageA( WindowHandle ( Symbol (), Period ()), WM_COMMAND, 33050 , 0 );

Aynı fikirde olmamak. Mql'nin ötesine geçmeye gerek yok, danışmanı grafikten çıkarmaya gerek yok. Danışman kodunda sağlayarak ticareti programlı olarak engellemek yeterlidir.

 
granit77 :

Aynı fikirde olmamak. Mql'nin ötesine geçmeye gerek yok, danışmanı grafikten çıkarmaya gerek yok. Danışman kodunda sağlayarak ticareti programlı olarak engellemek yeterlidir.


Size katılmama izin verin (sonuna kadar izleyin):

 
granit77 :

Aynı fikirde olmamak. Mql'nin ötesine geçmeye gerek yok, danışmanı grafikten çıkarmaya gerek yok. EA kodunda sağlayarak ticareti programlı olarak engellemek yeterlidir.

Evet! Doğru şekilde! Tek istisna uzaktan kumanda içindir.
 

Uzmanlar, lütfen bana söyleyin, danışmanda böyle bir kod bölümü var mı, yeni bir mumun açılışı sırasında son mumun iki çift üzerinde nasıl kapandığını bulmanız gerekiyor, her şey yolunda gidiyor, ancak o anda iki çiftte keneler var, danışman ana çiftte ve onunla ilgili sorunlar var hayır, ancak yeni bir mum çubuğunun başlangıcında ikinci çiftte kene yoksa, ondan gelen değerler Güncellenmedi ve ondan veriler son mumdan değil, önceki günden elde edildi, elbette bir dakika bekleyebilirsin, bu H1 için çok kritik değil ama daha mantıklı bir karar olabilir mi?

{ //1
if ( iClose (SignalSimbol, PERIOD_H1 , 1 ) > iOpen (SignalSimbol, PERIOD_H1 , 1 )) svcolor1 = 1 ; // бычья свеча
if ( iClose (SignalSimbol, PERIOD_H1 , 1 ) < iOpen (SignalSimbol, PERIOD_H1 , 1 )) svcolor1 = 2 ; // медвежья свеча
if ( iClose (SignalSimbol, PERIOD_H1 , 1 ) == iOpen (SignalSimbol, PERIOD_H1 , 1 )) svcolor1 = 3 ; // додж
if ( iClose (TradeSimbol, PERIOD_H1 , 1 ) > iOpen (TradeSimbol, PERIOD_H1 , 1 )) svcolor2 = 1 ; // бычья свеча
if ( iClose (TradeSimbol, PERIOD_H1 , 1 ) < iOpen (TradeSimbol, PERIOD_H1 , 1 )) svcolor2 = 2 ; // медвежья свеча
if ( iClose (TradeSimbol, PERIOD_H1 , 1 ) == iOpen (TradeSimbol, PERIOD_H1 , 1 )) svcolor2 = 3 ; // додж
spread =   MarketInfo (TradeSimbol,MODE_SPREAD);
TimeBar_t = ( TimeCurrent ()-Time[ 0 ])/ 60 ; // время в минутах с открытия свечи
RefreshRates ();
} //1 
 
Zhunko :

Hazır MT4 yönetim fonksiyonlarına sahip kütüphane .

Son zamanlarda kontrol edildi. İşler.

Teşekkür ederim.