jeremy10p100 # : Merhaba ve cevabınız için teşekkür ederim. Beklentilerimi karşılayan bir komut dosyası oluşturabildim, ancak ne yazık ki hala anlayamadığım veya düzeltemediğim iki hata var. Biraz yardım için kiminle iletişime geçeceğimi biliyor musunuz? Derlemeden sonra hata olarak kaydedilen sadece iki satır kod ...
Freelance bir iş oluşturabilir ve işinize başvuran geliştiriciler arasından seçim yapabilirsiniz
WebRequest aracılığıyla json göndermeye çalıştığımda, sunucu"\u0022BTCUSD\u0022, denormalizasyon için geçerli bir paket türü değil." döndürüyor.
Yani ters virgül \u0022 kodlamasını beğenmiyor. Başlıklarda ve StringToCharArray'de tüm kodlama çeşitlerini belirtmeyi den edim, hiçbir şey yardımcı olmuyor.
Python'dan her şey sorunsuz bir şekilde uçuyor: response = requests.post(url, data=json.dumps(data), headers=headers) yani sunucu ile her şey yolunda.
Soruyu biraz daha farklı ifade edeyim. Optimize ediciye OnInit bloğunda belirli koşullar altında test/optimizasyon varyantını atlaması için bir komut vermek mümkün mü?
input group "Входные настройки Стохастик"
input bool Stoch = false; // Стохастик включен/выключен
input int in_StochK = 14; // период основной линии K
input int in_StochD = 3; // период первичного сглаживания D
input int in_StochSlow = 3; // период окончательного сглаживания
int OnInit() {
if ((Stoch = false) && ((StochK != 0) || (StochK != 0) || (StochSlow != 0)))
{
// Некая команда, которая говорит, что такой вариант даже не стоит пробовать оптимизировать
}
}
Bunu yapmayı denedim, ancak yanlış optimizasyon varyantlarına yol açıyor.
if ((Stoch = false) && ((StochK != 0) || (StochK != 0) || (StochSlow != 0)))
{
Print("Такой вариант тестирования не имеет смысла");
return(INIT_FAILED);
}
Hedefim, optimizasyon sırasında 4 stokastik parametrenin (Stoch, in_StochK, int in_StochD, int in_StochSlow) varyantlarının numaralandırılmasını etkinleştirebilmek.
Stokastik etkinleştirildiğinde (Stoch = true), optimize edici in_StochK, in_StochD, in_StochSlow değişkenlerini numaralandırıyor. Bu kısımda her şey doğru çalışıyor.
Stokastik kapatıldığında (Stoch = false), optimize edici hala in_StochK, in_StochD, in_StochSlow değişkenlerini arar. Ve Stoch = false ise bunları aramaması için kodda bir tür durdurucu yapmam gerekiyor.
Belki de optimize edicinin düzgün çalışmamasının nedeni koddaki bu yanlışlıktır:
Sebep bu değil. Kodu çalışma mantığına bir örnek olması için yaptım. Kodun tam sürümü çok büyük - birçok farklı osilatör var. Optimize ederken, optimize edicinin farklı kombinasyonları denemesini istiyorum (bir osilatör açık, iki osilatör açık, üç osilatör açık, vb.)
- Bu durdurucu kullanıldığında, çok sayıda geçiş olması gerekmesine rağmen, optimize edici az sayıda geçişle çalışmayı hızla tamamlar.
- Bu kısıtlamayı kullanmadan, optimize edici daha iyi çalışır, ancak çok sayıda boş varyant üretir (yukarıdaki örnek için - Stokastik kapatıldığında parametrelerini hala arar). Tanrı boş varyantlarla olsun, ancak bu hem optimizasyon için ekstra zaman hem de yararlı olanlar yerine boş geçişler anlamına gelir.
Genetik mi yoksa tam optimizasyon mu kullanıyorsunuz?
Ben de açıkça gereksiz parametre kombinasyonlarını hariç tutmak için bu yaklaşımı kullandım ve yanlış optimize edici performansı fark etmedim. Aksine, optimize edici tam olarak beklendiği gibi çalıştı.
Kaç tane ve hangilerinin gerçekten kaçırıldığını kontrol etmek ve nedenlerini anlamak için kaçırılan parametre kombinasyonlarını veritabanına veya ortak bir dosyaya kaydetmeyi deneyebilirsiniz.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Merhaba ve cevabınız için teşekkür ederim. Beklentilerimi karşılayan bir komut dosyası oluşturabildim, ancak ne yazık ki hala anlayamadığım veya düzeltemediğim iki hata var. Biraz yardım için kiminle iletişime geçeceğimi biliyor musunuz? Derlemeden sonra hata olarak kaydedilen sadece iki satır kod ...
Freelance bir iş oluşturabilir ve işinize başvuran geliştiriciler arasından seçim yapabilirsiniz
https://www.mql5.com/fr/job
WebRequest aracılığıyla json göndermeye çalıştığımda, sunucu"\u0022BTCUSD\u0022, denormalizasyon için geçerli bir paket türü değil." döndürüyor.
Yani ters virgül \u0022 kodlamasını beğenmiyor.
Başlıklarda ve StringToCharArray'de tüm kodlama çeşitlerini belirtmeyi den edim, hiçbir şey yardımcı olmuyor.
Python'dan her şey sorunsuz bir şekilde uçuyor:
response = requests.post(url, data=json.dumps(data), headers=headers)
yani sunucu ile her şey yolunda.
Sorun nasıl çözülür?
Soruyu biraz daha farklı ifade edeyim. Optimize ediciye OnInit bloğunda belirli koşullar altında test/optimizasyon varyantını atlaması için bir komut vermek mümkün mü?
Bunu yapmayı denedim, ancak yanlış optimizasyon varyantlarına yol açıyor.
if ((Stoch = false) && ((StochK != 0) || (StochK != 0) || (StochSlow != 0))) { Print("Такой вариант тестирования не имеет смысла"); return(INIT_FAILED); }Hedefim, optimizasyon sırasında 4 stokastik parametrenin (Stoch, in_StochK, int in_StochD, int in_StochSlow) varyantlarının numaralandırılmasını etkinleştirebilmek.
Merhaba @taramortom.
Muhtemelen şu şekilde değiştirirseniz yardımcı olacaktır
için
Merhaba, @taramortom.
Muhtemelen sadece
için
Belki de optimize edicinin düzgün çalışmamasının nedeni koddaki bu yanlışlıktır:
Belki de optimize edicinin düzgün çalışmamasının nedeni koddaki bu yanlışlıktır:
Sebep bu değil. Kodu çalışma mantığına bir örnek olması için yaptım. Kodun tam sürümü çok büyük - birçok farklı osilatör var. Optimize ederken, optimize edicinin farklı kombinasyonları denemesini istiyorum (bir osilatör açık, iki osilatör açık, üç osilatör açık, vb.)
- Bu durdurucu kullanıldığında, çok sayıda geçiş olması gerekmesine rağmen, optimize edici az sayıda geçişle çalışmayı hızla tamamlar.
- Bu kısıtlamayı kullanmadan, optimize edici daha iyi çalışır, ancak çok sayıda boş varyant üretir (yukarıdaki örnek için - Stokastik kapatıldığında parametrelerini hala arar). Tanrı boş varyantlarla olsun, ancak bu hem optimizasyon için ekstra zaman hem de yararlı olanlar yerine boş geçişler anlamına gelir.
Merhaba MA'ya dayalı bir gösterge yazıyorum - ExtJawsHandle=iMA(NULL,0,Period,0,Method,AppliedPrice);
aşağıdaki şekilde gösterildiği gibi MA seviyelerine programlı olarak nasıl ulaşabilirim.
Türünde bir yapı
IndicatorSetInteger(INDICATOR_LEVELS,1);
IndicatorSetDouble(INDICATOR_LEVELVALUE,0,10);
çalışmıyor.
IndicatorSetDouble(INDICATOR_LEVELVALUE,0,10);
işe yaramıyor.
seçenek yok mu?)