Uzman Danışmanlar: YAĞ PANELİ - sayfa 2

 
Vigor:
Bir kılavuz hazırlayacağım, ama kısa bir tane. ...................

Ve kendi işlevselliğinizi (göstergeler, günlük öğeleri, durumlar, vb.) eklemek için bir kılavuz.

İdeal (ancak kolay olmayan) varyant: tüm işlevsel öğeleri eklentiler gibi "kolayca eklenebilir" hale getirmek, böylece kod tabanında mantar gibi çoğalmaları ve çoğalmaları ... :)

--

Yaptığın şey harika, Igor. Teşekkür ederim! Bütün akşam bununla oynadım.

Henüz koda tam olarak girmedim ama bu hafta sonu girmeyi planlıyorum. Bazı özelliklerin nasıl uygulandığını ayrıntılı olarak anlamayı çok merak ediyorum.

Koda hızlı bir bakışta, izlenim çok hoş.

 

Bloklar basit bir şekilde yazılmıştır! Eğer MQL get_declared_classes, class_exists ve is_subclass_of'a benzer bir mekanizmaya sahip olsaydı, yeni işlevselliğin tüm kurulumu sadece yeni bir sınıfın (temel sınıflardan birinin soyundan gelen) enclode/add dosyası olurdu.

//+------------------------------------------------------------------+
class CAlgoBlockLogicOr: public CAlgoBlockLogic {
        public:
        //+------------------------------------------------------------------+ 
        void CAlgoBlockLogicOr() {              
                setLabel("name",12,20,1,"OR");//--uniq, x, y, fontsize, title                
                //--bağlayıcılar
                CConnectPointer* pointer1 = new CConnectPointer();
                pointer1.connectType = ALGO_BOOL;
                pointer1.connectDirection = ALGO_DIRECTION_IN;
                pointer1.x = 0;
                pointer1.y = 0.11;
                connectPointers.Add(pointer1);
                
                CConnectPointer* pointer2 = new CConnectPointer();
                pointer2.connectType = ALGO_BOOL;
                pointer2.connectDirection = ALGO_DIRECTION_IN;
                pointer2.x = 0;
                pointer2.y = 0.89;
                connectPointers.Add(pointer2);
                
                CConnectPointer* pointer3 = new CConnectPointer();
                pointer3.connectType = ALGO_BOOL;
                pointer3.connectDirection = ALGO_DIRECTION_OUT;
                pointer3.x = 1;
                pointer3.y = 0.5;
                connectPointers.Add(pointer3);
        }
        
        bool operate(CAlgoBlockLogic* s1, CAlgoBlockLogic* s2) {
                bool S1 = s1.process();
                bool S2 = s2.process();
                if ( S2 || S1 ) {  
                        return (true);
                }
                return (false);
        }
        
        //+------------------------------------------------------------------+
};

Ve görsel modda kod ek leme yaparsanız, yeni blok kendini ekleyecektir. EA'yı anında yeniden derlemek ve yeni "oluşturulmuş" içerikleri almak zaten çözülmüştür. Test cihazı için blokların giriş parametrelerinin güncellenmesi şu anda bu şekilde uygulanmaktadır.

 
Merhaba yazar, birleştirilmiş blokların ekran görüntüsünü veya testte böyle bir resim veren kaydedilmiş bir dosyayı gönderme imkanınız var mı? Bu iyi bir kılavuz olurdu.
 

Kod tabanı açıklamasında 4 bloktan oluşan aynı şema vardır. Yalnızca işlem bloğundaki 300 değeri ">" dir. Şematik dosya arşivdedir, klasöre açın

C:\Documents and Settings\All Users\Application Data\MetaQuotes\Terminal\Common\.

(yol farklı olabilir, fatpanel.dat dosyasını aramak ve değiştirmek daha iyidir)

Dosyalar:
FATPANEL.rar  1 kb
 

Yeni sürüm hazırlanırken, 2005'teki aynı stratejinin bir çalışmasını göstereceğim. Test modu "her tik". Takip eden durdurma ile deneyler:

Diyagram, stratejinin tüm parametrelerini ve prensibini gösterir. Yeniden yatırım yok. Ek bloklar içeren bir versiyon yakında yayınlanacaktır.

Strateji Test Cihazı Raporu
MetaQuotes-Demo (Yapı 370)

Ayarlar
Uzman Danışman: FatPanel
Sembol EURUSD
Dönem: M1 (2005.01.01 - 2010.12.17)
Girdi parametreleri:
Broker: MetaQuotes Yazılım A.Ş.
Para birimi: ABD DOLARI
İlk Depozito: 10 000.00
Kaldıraç: 1:100

Sonuçlar
Barlar: 2095758 Tiki: 39061924
Net kar: 468 436.28 Toplam kar 1 377 840.48 Toplam zarar -909 404.20
Kârlılık: 1.52 Kazanma beklentisi: 84.33
Kurtarma Faktörü: 16.62 Sharpe Oranı 0.05

Bilanço küçülmesi:
Mutlak bilanço küçülmesi: 4 393.10 Maksimum bakiye çekilişi: 5 593.40 (8.46%) Göreceli bakiye düşüşü: 8.46% (5 593.40)
Fonlarda düşüş:
Fonlarda mutlak düşüş: 4 622.90 Fonlardan maksimum çekiş: 6 119.20 (9.21%) Fonlardaki nispi azalma: 9.21% (6 119.20)

Toplam işlem sayısı: 5555 Kısa işlemler (% kazanılan): 3237 (56.32%) Uzun işlemler (% kazanılan): 2318 (60.05%)
Toplam işlem sayısı: 268659 Kârlı işlemler (tüm işlemlerin %'si): 3215 (57.88%) Kayıp işlemler (tüm işlemlerin %'si): 2340 (42.12%)

En büyük kârlı işlemler: 8 040.10 En çok kaybettiren işlem: -7 181.70

Ortalama kârlı işlem: 428.57 Ortalama kaybedilen işlem: -388.63

Maksimum sürekli kazanç sayısı (kar): 75 (9 306.86) Maksimum sürekli kayıp sayısı (kayıp): 24 (-13 829.70)

Maksimum sürekli kar (kazanç sayısı): 12 396.20 (14) Maksimum sürekli kayıp (kayıp sayısı): -13 829.70 (24)

Ortalama sürekli kazanç: 3 Ortalama sürekli kayıp: 2

 
İşlem sayısındaki kısıtlama gerçek olacaktır, çünkü her adımda belirtilen lotla işlem açar ve iyi olan nedir?
Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 
Bu şekilde pozisyonun hacmi kazanılır. "Hissederek" sürekli yeniden doldurulan kısımlar sonunda teklifte yerel bir ekstremum bulur. Ve bir yönde en fazla 1 pozisyonun açılmasını sınırlarsanız, daha uygun açılış anları kaçırılır ve strateji başarısız olur. Bu kısıtlamayı eklemek zor değildir: her yön için +3 blok. AND ve IS_BUY (veya IS_SELL) + NOT
 
Vigor:
Bu şekilde pozisyonun hacmi kazanılır. "Hissederek" sürekli yeniden doldurulan kısımlar sonunda teklifte yerel bir ekstremum bulur. Ve bir yönde en fazla 1 pozisyonun açılmasını sınırlarsanız, daha uygun açılış anları kaçırılır ve strateji başarısız olur. Bu kısıtlamayı eklemek zor değildir: her yön için +3 blok. AND ve IS_BUY (veya IS_SELL) + NOT
Teşekkürler, son cildin bilinmeyeceğini anlıyorum, bu kötü....
 

Sürüm 0.2 çalışmak istemiyor. Nasıl çalıştırabilirim?

 

Bu sorun terminalin son sürümlerinden birinde ortaya çıkmıştır.

https://www.mql5.com/ru/forum/1111/page232

Terminal en son sürüme güncellenirse (düzeltildiği yerde), göstergeyi (mql5/indicators/fatpanel/ klasöründe) ve Uzman Danışmanı (mql5/experts/fatpanel/) yeniden derlemeniz gerekir.