Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 589

 
Frostr :
Bir histogram var, yani çubuklarla bir yol yoksa, onu kullanmak zorunda kalacaksın...
Barları mumlardan daha çok sever misin? İlginç bir soru, ama bunun üzerinde zaman harcamak üzücü. Aslında, çubuk aynı zamanda bir histogramdır ve ona Aç ve Kapat etiketleri eklenmiştir.
Bu işaretlerin rengiyle uğraşmazsanız H.A.'daki gibi bir yöntem uygulayabilirsiniz. Sadece çubuğun genişliğini piksel cinsinden hesaplayın (mümkün, kontrol ettim, ancak yardımın neresinde olduğunu hatırlamıyorum) ve böyle bir histogram genişliği atayın ve Aç ve Kapat , grafik özelliklerinde belirtilen renkler olarak kalacaktır. .
 

CListNode sınıfında geçersiz kılınan sanal yöntem Karşılaştır geçersiz kılınan neden yok sayılıyor?

 #include <Arrays\List.mqh>
#define SIZE 10

class CData : public CObject
  {
public :
   int m_data;
  };

class CListNode : public CList
  {
public :
   virtual int Compare( const CObject *node, const int mode= 0 ) const {
       int _test= 1 ;
       return (_test);
   }
  };

int OnInit () {
        CListNode *node= new CListNode;
         if ( CheckPointer (node)== POINTER_INVALID ) {
           Print ( "Не могу создать объект" );
           return ( INIT_FAILED );
        }
         else Print ( "Объект создан, работаем дальше" );

         MathSrand ( GetTickCount ());
         for ( int i= 0 ;i<SIZE;i++) {
           CData *data= new CData;
           if (data== NULL ) {
               Print ( "Нет возможности получить указатель" ); delete node; return ( INIT_FAILED );
           }
           printf ( "Узел %i, данные узла %i" ,i,data.m_data= MathRand ());
           node.Add(data);
        }
        
        node.Sort( 0 );
         int _total=node.Total();
         for ( int i= 0 ;i<_total;i++) {
           CData *data=node.GetNodeAtIndex(i);
           if (data== NULL ) {
               Print ( "Нет возможности получить указатель" ); delete node; return ( INIT_FAILED );
           }
           printf ( "Узел %i, данные узла %i" ,i,data.m_data);
        }

         if ( CheckPointer (node)== POINTER_DYNAMIC ) { Alert ( "Удаляем объект" ); delete node;}
         else Alert ( "Non-dynamic object" );
   return ( INIT_SUCCEEDED );
}
Hata ayıklayıcıda kontrol edildi, CObject'ten Karşılaştır her zaman kullanılır
 

Merhaba, böyle bir danışman yazdım. Uyarı neden neredeyse her saniye satış dışı bir sinyal bildiriyor?

//+------------------------------------------- --------------------+

//| Peresechenie TM.mq4 |

//| Popov Vladimir |

//| http://vk.com/id143715412 |

//+------------------------------------------- --------------------+

#özellik telif hakkı "Vladimir Popov"

#özellik bağlantısı "http://vk.com/id143715412"


çift SatışFiyatı;

çift Kar Al;

çift StopLoss;


extern string TimeFrame = "geçerli zaman çerçevesi";

extern int HalfLength = 20;

extern int Fiyat = PRICE_CLOSE;

harici çift ATRMÇarpan = 2.0;

harici int ATRPeriyot = 100;

extern bool Interpolate = true;



çift FiyatYüksek, FiyatDüşük, FiyatOrta;

doubleHighsBuffer[];

çift LowesBuffer[];

//+------------------------------------------- --------------------+

//| uzman başlatma işlevi |

//+------------------------------------------- --------------------+

int init()

{

if (Rakamlar == 3 || Basamaklar == 5)

{

Kâr Al *= 10;

StopLoss *= 10;

}

dönüş(0);

}

//+------------------------------------------- --------------------+

//| uzman sıfırlama işlevi |

//+------------------------------------------- --------------------+

int tanım()

{





dönüş(0);

}

//+------------------------------------------- --------------------+

int başlangıç()

{

PriceHigh = iCustom(Symbol(), 0, "Zaman", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPperiod, Interpolate, 2, 0);

PriceLow = iCustom(Symbol(), 0, "Zaman", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriyod, Interpolate, 1, 0);

PriceMiddle = iCustom(Symbol(), 0, "Zaman", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPperiod, Interpolate, 0, 0);


if(Sorun <= FiyatDüşük)

{

Alert("Satın alınacak sinyal");

}

if(Teklif >= FiyatYüksek)

{

Alert("Satış sinyali");

}

dönüş(0);

}

//+------------------------------------------- --------------------+

 

Lütfen testten sonra raporu otomatik olarak kaydetmenin mümkün olup olmadığını kimin bildiğini söyleyin?

Otomatik modda çok sayıda test çalıştırması yapmanız yeterlidir (GA olmadan optimizasyonu planlıyorum) ve böylece bunlar hakkında tam bir rapor (bir resim dahil) HDD'ye kaydedilir.

 
tuner :

Lütfen testten sonra raporu otomatik olarak kaydetmenin mümkün olup olmadığını kimin bildiğini söyleyin?

Otomatik modda çok sayıda test çalıştırması yapmanız yeterlidir (GA olmadan optimizasyonu planlıyorum) ve böylece bunlar hakkında tam bir rapor (bir resim dahil) HDD'ye kaydedilir.


TesterStatistics() ve OnTester () işlevi vardır.

Onlara bir bakın, yardımcı olabilirler.

 
Pr0t0tip :

Merhaba, böyle bir danışman yazdım. Uyarı neden neredeyse her saniye satış dışı bir sinyal bildiriyor?



değiştirmeyi dene

 if ( Ask <= PriceLow)

 {

 Alert ( "Сигнал к покупке" );

 }

 if ( Bid >= PriceHigh)

 {

 Alert ( "Сигнал к продаже" );

 }

 return ( 0 );

üzerinde

int static flag= 0 ;
if ( Ask <= PriceLow && flag< 1 )

 {

 Alert ( "Сигнал к покупке" );
flag= 1 ;
 }

 else if ( Bid >= PriceHigh && flag>- 1 )

 {

 Alert ( "Сигнал к продаже" );
flag=- 1 ;
 }
else flag= 0 ;

 return ( 0 );
 
Vinin :


TesterStatistics() ve OnTester () işlevi vardır.

Onlara bir bakın, yardımcı olabilirler.


Tavsiyen için teşekkürler, ama yardımcı olacak gibi görünmüyor. raporun kendisine orijinal biçiminde (htm) bir resim ile ihtiyacınız var. Görünüşe göre hazır bir çözüm yok. Test cihazında "Başlat" düğmesine belirli sayıda basan ve her çalıştırmadan sonra "Rapor" sekmesine giden ve sonuçları bir dosyaya kaydeden autoit üzerinde bir komut dosyası oluşturmaya çalışacağım.
 

Merhaba! Lütfen bu soruna yardımcı olun: MT4 test cihazında yapı 625'ten başlayarak, başlatıldığında, Uyarı (...), Yazdır (...), Yorum (...) bilgi işlevlerinden gelen değerler görüntülenmez. gösterge tablosunda; bu değerler, gösterge gerçek ticaret için veya hata ayıklayıcı aracılığıyla başlatıldığında görüntülenir. Görünüşe göre, bu yapı ile parametrelerdeki değişiklikleri en azından Yazdır (...) işlevi aracılığıyla izlemek için geçmiş verilerde imkansız hale geliyor. 610. yapı ile ilgili herhangi bir sorun yaşanmadı, tüm değerler terminaldeki "uzmanlar" sekmesinde görüntülendi.

Belki kodun bir şekilde MQL5 tarzında yeniden yapılması gerekiyor? Eski yapı ile çalışmak zorundayken ne yapacağımı bilmiyorum...

 

Merhaba. Daha önce böyle bir sorunla karşılaşan var mı?

Klasörde birkaç Uzman Danışman var, ancak bunlar terminalde değiller (MT 4, yapı 625). Ve terminalde olanlar klasörde değil. Harikalar mı?



 
Ale-xander :

Merhaba. Daha önce böyle bir sorunla karşılaşan var mı?

Klasörde birkaç Uzman Danışman var, ancak bunlar terminalde değiller (MT 4, yapı 625). Ve terminalde olanlar klasörde değil. Harikalar mı?



Mucize yok.

Dosya --> Veri dizinini aç --> Açılan pencerede --> MQL4 --> ve burada ihtiyacınız olan klasörleri bulacaksınız. Bu zaten üç yüz kez yazıldı, forumun ana sayfasında makaleye bir bağlantı var. Tembellik basittir.

Neden: