Meta Trader 4/5 için Dilekler

 

1) Sezgisel, sürükle ve bırak strateji oluşturucuyu Gordago'ya dönüştürün (ve daha iyi, daha karmaşık strateji tasarım seçenekleri). Bu, kesinlikle az çok sistematik olarak ticaret yapmak isteyen, ancak MQL'yi öğrenmek ve kurcalamak için çok fazla zaman harcamak istemeyen yeni kullanıcıları çekecektir. Tacirin işi, piyasayı düşünmek ve seçenekleri denemektir, hatanın program kodunda nereye sızdığıyla ilgili değil.

2) Testler için geçmişi işaretleyin . Her neyse, rekabet ve devam eden değişiklikler nedeniyle er ya da geç bunu "herkes için" yapmak zorunda kalacaksınız ve bilgili ve "uzun süredir oynayan" insanlar MT4'teki testlere nasıl yaklaşacaklarını biliyorlar.

Bunları yapın ve MT tartışmasız uzun süre 1 numara olacak, siz yapmazsanız başkaları yapacak (ve zaten yapacak). Ancak bu gerekli şeyleri eklemek için zaten yeterince kaliteli ve uygun bir ürününüz var.

Anlamak ümidiyle.

 
Çok naif.

Çok az insan "şimdi görsel olarak küpleri yuvarladım ve işiniz bitti" şeklindeki rüyaya direnebilir. Acı gerçekler ve uzun vadeli uygulamalar, bunun işe yaramadığını, yürümediğini ve yürümesinin pek mümkün olmadığını kanıtlıyor. Biz tam tersi yönde ilerliyoruz - programcılara odaklanıyoruz ve onlara eksiksiz bir geliştirme araç seti sağlıyoruz.
 
Sevgili Renat.

Meta Trader 4'ün yeni sürümünde mümkün mü?
"Dergi" sayfasındaki strateji test cihazında
farenin sağ tuşuna basıldığında beliren menü aracılığıyla
"Otomatik kaydırma" öğesiyle birlikte öğeler ekleyin
"Test mesajlarının çıktısını devre dışı bırak".
"Günlüğü devre dışı bırak".

Yalnızca EA işleminin sonuçlarını günlüklerde tutmak ve hiçbirini tutmamak için:

2007.09.04 22:49:44 Uzman: başarıyla yüklendi
2007.09.04 22:55:37 2006.01.02 07:00 Uzman: EURUSD,M1: 1 açık 1.1832 sl'de 0.50 EURUSD satın al: 1.1732 tp: 1.1882 tamam
2007.09.04 22:55:38 2006.01.03 06:03 Testçi: 1.1882'de (1.1883 / 1.1886) kâr al 1.

ve benzeri mesajlar.
EA, test süresi boyunca çok sayıda sipariş gönderdiğinde
uzmanın kendi mesajlarını bulmak neredeyse imkansız
ve hata ayıklamayı çok zorlaştırır.
Ve diskteki günlüklerde bir şey aramak da uygun değil.

Şimdiden teşekkürler.
 
1) Tarihte oynamak için tam teşekküllü bir fırsat.
2) Optimizasyon sırasında iki değişkenli uzayın tüm formuna bakma yeteneği
sadece en iyi sonucu değil, diğerlerinin sabit değerlerinde.
3) Otomatik WFA gerçekleştirme imkanı.
4) Çoklu para birimi (portföy) danışmanlarını test etme ve optimize etme yeteneği.
 
Renat :
Çok naif.

Çok az insan "şimdi görsel olarak küpleri yuvarladım ve işiniz bitti" şeklindeki rüyaya direnebilir. Acı gerçekler ve uzun vadeli uygulamalar, bunun işe yaramadığını, yürümediğini ve yürümesinin pek mümkün olmadığını kanıtlıyor. Biz tam tersi yönde ilerliyoruz - programcılara odaklanıyoruz ve onlara eksiksiz bir geliştirme araç seti sağlıyoruz.


Garip cevap. Bu arada "Politik" ve diğer birçok cevap. "Parlak bir rüya"dan bahsetmiyorum, genel olarak arayüzden bahsediyorum. Ve neyin, kimden ve tam olarak nasıl “işe yaradığını” tartışarak zaman kaybetmeyeceğim. Bunun yerine, karmaşık programlamayı bırakıp geliştirmenizi ve buna platformun hedef kitlesinin başka bir kısmı için görsel bir sezgisel kurucu eklemenizi önereceğim. İşlevsel olarak programlama ile aynı (hemen olmasa bile) veya daha da iyisi, bu iki yöntemi birleştirebilmek için yapılırsa, kullanıcının stratejiyi nasıl oluşturacağı - kod, "küpler" veya toplamda?

Belli ki buna "Bütün saçmalıklarla uğraşacak kadar kaynak yok. Ömrümüz boyunca aynı nağmeyi şiddetle üfleyeceğiz" diyeceksiniz. Peki hakkında?

 
ADI :


Belli ki buna "Bütün saçmalıklarla uğraşacak kadar kaynak yok. Ömrümüz boyunca aynı nağmeyi şiddetle üfleyeceğiz" diyeceksiniz. Peki hakkında?

Teori iyi, ama biz uygulayıcılarız. Halihazırda "tüccarlar için basit bir çözüm yapma" girişimleri olmuştur (MQL, MQL2). Bu konuda zaten birçok kez yazdım.

Ama biz yapıcı/sihirbaz ile çalışacağız - basit temel iskeletleri (programları tamamlamadan) otomatik olarak yapmaya çalışacağız.
 
Her zamanki değişken bildirimi ile birlikte, bir göstergenin veya bir uzmanın çalışması sırasında değiştirilebilen bir parametre olarak işlev gören bir dize adıyla benzer değişkenlerin oluşturulmasını çok isterim. Global değişkenlere benzeterek! Örneğin, bunun gibi:
 CreatIntVariable ( " Variable_Name " ) ;
 

Renat, gelecek sürümlerde iCustom işlevinin prototipini düşünmeni öneririm. Artık koda açıkça bir parametre listesi yazması gerekiyor ve bu şekilde, herhangi bir göstergenin argüman sayısı önceden bilinmediğinden, örneğin kullanıcı tarafından verilen keyfi bir göstergeyi adıyla çağırmak imkansızdır. . Bu, iCustom kullanımını büyük ölçüde sınırlar. Ayrıca, iCustom bağımsız değişken listesinin sonunda iki çağrı parametresi vardır (int modu, int shift), yani. göstergenin parametreleri, prototipte iCustom'un parametrelerini "kırar".

Bu prototipi sunabilirim:

 double iCustom ( string symbol , int timeframe , string name , int mode , int shift , object [] indicatorParams )

Onlar. başlangıçta, iCustom'un kendisinin gerekli tüm parametreleri ve işlevin son argümanı, rastgele bir yeni tür nesnesinin (aslında int, bool, double, datetime ve diğer yerleşik MQL türleridir) bir gösterge argümanları dizisidir. dizideki değişken sayı. Bu, içinde isteğe bağlı göstergelerin çağrı kombinasyonlarını içeren görsel bir kurucu oluşturma konusunun ilk fikrine biraz daha yakındır. Bu fikrin kendisi gerçekçi olmasa da - yaklaşık 5 yıl önce, bir kişi bana programcıların, uzmanlar ve bir bilgisayar arasındaki gereksiz bir katman gibi, ölmekte olan bir insan sınıfı olduğunu iddia etti. Zamanla, tahmin tam tersi gerçekleşir - BT çözümlerinin sayısı ve karmaşıklığı yalnızca büyüyor.

Ve göstergeler için argümanlarını sıralayacak fonksiyonlara sahip olmak güzel olurdu: Number IndicatorArgsCount(), ArgsItemName[i] parametrenin adını döndürür, vb.
Ve en önemlisi, MQL 5'te bir hata ayıklayıcıdır .

 

Chv'ye - iCustom'da varsayılan parametreleri kullanma olasılığı artık mevcuttur - bkz. https://docs.mql4.com/en/indicators/iCustom

Prensip olarak, şimdi bile MQL4 her şeyi temsil eder, ancak yine de daha fazlası mümkündür. İşte listem:

1.) StopLoss veya TakeProfit tarafından yeni kapatılan emirleri tanımlama imkanı. Bu şimdi yapılabilir, ancak oldukça zordur. Yaklaşık kullanım:

3 fonksiyon -

int OrderJustClosedCount () - duraklarla kapatılan siparişlerin sayısını döndürür

int OrderJustClosed (int pos) - bilet numarası

void OrderJustClosedClea r() - arabelleği temizler - bundan hemen sonra OrderJustClosedCount 0 döndürür - işlem çok uzun sürerse.

2.) Bazı nesneler için (örn. lineer regresyon kanalı) çizildikten sonra bazı değerler okunamıyor (örn. kanalın uçlarındaki fiyat).

3.) Biraz daha mat eklemek. kütüphaneler - en azından MathArcTan2 - elbette, birçoğu zaten MQL4'te uygulandı, ama yine de - neden onları gömmüyorsunuz?

Hata ayıklayıcı hakkında - zaten üzerinde çalıştığınıza inanıyorum ;-)

 
Itso :

1.) StopLoss veya TakeProfit tarafından yeni kapatılan emirleri tanımlama imkanı. Bu şimdi yapılabilir, ancak oldukça zordur.

Ardından tetiklenen ertelenenlerin listesi.

Genel olarak, sadece "olay" kavramını tanıtmanız yeterlidir ve bu tür tüm durumlar işlenebilir.
Örneğin, "sipariş tetiklendi", "SL tetiklendi" veya " süre sonunda sipariş silindi" olayı.
 
Itso :

Chv'ye - iCustom'da varsayılan parametreleri kullanma olasılığı artık mevcuttur - bkz. https://docs.mql4.com/en/indicators/iCustom


Biliyorsunuz, iCustom fonksiyon prototipini zaten okudum;). İhtiyacınız olanı "varsayılan parametreler" vermeyin. İşte size basit bir görev - EA, rastgele bir göstergenin adını bir dizede argüman olarak ve örneğin bir metin dosyasında, parametrelerinin virgülle ayrılmış bir değer listesi olarak alır. EA kodundaki bu göstergeyi verilen argüman değerleri ile ismiyle çağırmak ve değerlerini almak gerekiyor ve bunları log'a yazdıralım. iCustom'un açıklamasında da gördüğümüz gibi bir ibare var:

 ...   -   Список параметров ( при необходимости ) . Передаваемые параметры должны соответствовать порядку объявления и типу внешних ( extern ) переменных пользовательского индикатора.

Şimdi bunu keyfi bir gösterge için yapmak mümkün değil - ne olduğunu bilmeden bir şeyler yazmak. EA derleme aşamasında, gösterge argümanlarının sayısı ve türleri bilinmemektedir. Yalnızca çalışma zamanı yürütme sırasında belirlenir. Programlama dillerinde buna "geç bağlama" (geç bağlama) denir. Şu anda MQL'de yoktur.

Neden: