MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1514

 
Danışmanın nerede çalışacağını görmek için satırları belirledim, satırların yerine sipariş vermek ve değiştirmek için bir koşul ekledim ve danışman çalışmaya başladı. Dürüst olmak gerekirse, başarmasına sevindim. Bu benim ilk bağımsız danışmanım. Test cihazının neden sadece bir satır belirlediğini anladım))
 
Alexey Viktorov :

MA'nın kesişimini 1 ve 2 çubuklarda değil, 3 ve 4'te kontrol edin. Ve eğer kesişme ise, 1 ve 2 çubuklarda AO değerlerini kontrol edin.

Teşekkür ederim. Yapmaya çalışacağım.
 

bir baş ağrısı daha var - seçip grafikte başka bir yere taşıyabilmeniz için Dikdörtgen etiket nesnesini seçmek için KEY_TILDE tuşunun nasıl kaydedileceğini açıklayın, anlayamıyorum. En altta Neo Fork göstergesi ile ilgili örnek bir ekran ekledim. Fareyi çözdüm ama tuşları atamanın bir yolu yok.

 int OnInit ()
  {
RectLabelCreate( 0 , "RectLabel" , 0 , 10 , 200 , 149 , 143 , C'55,55,55' , BORDER_SUNKEN , CORNER_LEFT_LOWER , C'55,55,55' , STYLE_SOLID , 1 , false , false , true , 0 );

   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,         // идентификатор события
                   const long & lparam,   // параметр события типа long
                   const double & dparam, // параметр события типа double
                   const string & sparam) // параметр события типа string
  {

     if (id== CHARTEVENT_KEYDOWN )
     {
       switch ( int (lparam))
        {
         case KEY_TILDE:
             Print ( "Нажата KEY_TILDE" );
             break ;
        }
         ChartRedraw (); 
     }

  }
Dosyalar:
01.jpg  8 kb
02.jpg  3 kb
 
DYM :

bir baş ağrısı daha var - seçip grafikte başka bir yere taşıyabilmeniz için Dikdörtgen etiket nesnesini seçmek için KEY_TILDE tuşunun nasıl kaydedileceğini açıklayın, anlayamıyorum. En altta Neo Fork göstergesi ile ilgili örnek bir ekran ekledim. Fareyi çözdüm ama tuşları atamanın bir yolu yok.

     if (id== CHARTEVENT_KEYDOWN )
     {
       switch ( int (lparam))
        {
         case KEY_TILDE:
         ObjectSetInteger ( 0 , "RectLabel" , OBJPROP_SELECTABLE , true ); 
         Print ( "Нажата KEY_TILDE" );
         break ;
        }
         ChartRedraw (); 
     }
 
MakarFX :
İpucu için çok teşekkürler. Çözünürlük ve seçim kullanmam gerektiğini anladım ama yine de nasıl uygulayacağımı çözemedim. Tekrar teşekkürler.
 
Meslektaşlar! Garip bir durum, diye ekledi danışman. Test cihazında iyi çalışır, grafiğe eklendiğinde hemen rastgele bir sipariş açacak şekilde yapılandırılmıştır. GBPUSD için ideal. Ancak demo siparişleri açmıyor. Spread geniş ayarlandı, hata vermiyor ama yine bir günlüğüne koyduğum süre içerisinde emir açmadım ama aynı gün için test cihazında indirilen kenelerde normal şekilde işlem yaptım. Metatrader'ın tüm ayarları normal, yüzü gülümsüyor, aracılık sunucusuyla bağlantısı da normal görünüyor. Geriye kodda neyin yanlış olduğunu görmek kalıyor. Bunun için hindi gerekli olmamasına ve siparişlerin açılmasını atlama koşullarına göre parametreler geçerli olmasına rağmen. Kafamı kırmak.
Dosyalar:
BlackJack.mq4  47 kb
 
Порт-моне тв :
Meslektaşlar! Garip bir durum, diye ekledi danışman. Test cihazında iyi çalışır, grafiğe eklendiğinde hemen rastgele bir sipariş açacak şekilde yapılandırılmıştır. GBPUSD için ideal. Ancak demo siparişleri açmıyor. Spread geniş ayarlandı, hata vermiyor ama yine bir günlüğüne koyduğum süre içerisinde emir açmadım ama aynı gün için test cihazında indirilen kenelerde normal şekilde işlem yaptım. Metatrader'ın tüm ayarları normal, yüzü gülümsüyor, aracılık sunucusuyla bağlantısı da normal görünüyor. Geriye kodda neyin yanlış olduğunu görmek kalıyor. Bunun için hindi gerekli olmamasına ve siparişlerin açılmasını atlama koşullarına göre parametreler geçerli olmasına rağmen. Kafamı kırmak.

Çok sayıda darboğaz. Kod kötü yazılmış - son derece özensiz veri işleme. Yeniden düzenleme gerekli

 
Nikita Chernyshov :

Çok sayıda darboğaz. Kod kötü yazılmış - son derece özensiz veri işleme. Yeniden düzenleme gerekli

Soyut değerlendirmeniz nedeni ortaya çıkarmaz.

 
Порт-моне тв :

ne darboğaz... @@#$'da ne gibi bir refactor

kod "tek sevgilim için, birayla ve hatırladığım kadarıyla" yazıyor :-)

dürüst olmak gerekirse - indirdim, çapraz olarak baktım, çözme sözü yoktu ..

----

ani kişisel mesleki amnezi durumunda herhangi bir kod belgelenir/yorumlanır. Bu, programlama dili dışında her şeyi unuttuğum zamandı.

hiç kimse bilinmeyen şekillerde uygulanan bilinmeyen bir algoritmayı ayrıştırmaz. En azından ücretsiz. Para için basitçe yenisiyle yeniden yazacaklar

dahil ediyorsun. İki veya üç ay ara verdikten sonra, OnTick'te neyin bu kadar çok değişken olduğunu ve bunlardan neyi saymak istediğinizi hatırlamayacaksınız.

 
Maxim Kuznetsov :

ne darboğaz... @@#$'da ne gibi bir refactor

kod "tek sevgilim için, birayla ve hatırladığım kadarıyla" yazıyor :-)

dürüst olmak gerekirse - indirdim, çapraz olarak baktım, çözme sözü yoktu ..

----

ani kişisel mesleki amnezi durumunda herhangi bir kod belgelenir/yorumlanır. Bu, programlama dili dışında her şeyi unuttuğum zamandı.

hiç kimse bilinmeyen şekillerde uygulanan bilinmeyen bir algoritmayı ayrıştırmaz. En azından ücretsiz. Para için basitçe yenisiyle yeniden yazacaklar

dahil ediyorsun. İki veya üç ay ara verdikten sonra, OnTick'te neyin bu kadar çok değişken olduğunu ve bunlardan neyi saymak istediğinizi hatırlamayacaksınız.

Test için çok fazla gereksiz var, diyelim ki farklı fonksiyonlar. Sadece çalışmakta olan diğer Uzman Danışmanlara müdahale etmemeli ve müdahale etmemelidir. Braketi yanlış yere koyduğumdan veya bunun gibi bir şeyden şüpheleniyorum.