Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1267

 
Vladimir Karputov :

Bunun göstergesi bir renk giriş parametresine sahip olmalıdır. Yani, özel bir gösterge olmalıdır.

TEŞEKKÜR ETMEK! ama kaynağa erişimim yoksa, bu mümkün değil mi?

 
Tango_X :

TEŞEKKÜR ETMEK! ama kaynağa erişimim yoksa, bu mümkün değil mi?

Evet, ya açık kaynak kodlu ya da hazır bir uygulamanız olması gerekiyor.

 
Vladimir Karputov :

Evet, ya açık kaynak kodlu ya da hazır bir uygulamanız olması gerekiyor.

test cihazında rengi clrNONE olarak ayarladığımda, renk hala görüntüleniyor! clrNONE'ın test cihazında çalışmadığı ortaya çıktı mı? Gerçek hayatta, kontrol etmenin bir yolu yok - hafta sonu şimdi ...  

clrNONE yerine herhangi bir renk ayarladım, sonra bu renk görüntüleniyor, ancak boş değer = çalışmıyor .. garip ..
 
Aleksey Mavrin :

Cevap: ayrıca makroyu tekrar tekrar yükleyin)

Ancak dizelerde + operatörünü kullanmak ve her şeyi dizelere dönüştürmek daha iyidir, o zaman bir dizi parametreye sahip bir işlev (ve makro) sürümüne ihtiyacınız olmaz

Teşekkür ederim. Makroların yeniden yüklenebileceğini bilmiyordum.

 
pivomoe :

Teşekkür ederim. Makroların yeniden yüklenebileceğini bilmiyordum.

yazım hatası - yeniden yükle değil yeniden yükle)

 

bu yardım bölümünün sonundaki örnekleri analiz etti https://www.mql5.com/ru/docs/constants/structures/mqltraderequest

Metaquot sunucusunda her şey yolunda

başka bir sunucuda, ticaret talebi hata kodlarını inceledikten sonra, sorunun MqlTradeResult alanını doldurmak olduğunu öğrendim:

request.type_filling = ORDER_FILLING_IOC ;

forumda arama yapmak net bir çözüm bulamadı - MqlTradeResult alanı için sunucu ayarları programlı olarak nasıl belirlenir

 ENUM_ORDER_TYPE_FILLING        type_filling;     // Тип ордера по исполнению 


UPD: çalışan bir çözüm buldu https://www.mql5.com/ru/forum/168912/page2#comment_4062864

@fxsaber teşekkürler!

 
Lütfen bana otomatik oluşturma sırasında fibo seviyelerinin nasıl yapılandırıldığını söyleyin
 
VVT :
Lütfen bana otomatik oluşturma sırasında fibo seviyelerinin nasıl yapılandırıldığını söyleyin

Fibonaci RR kodunda örnek -

 //+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   long chart_id= ChartID ();
   datetime time1= ChartTimeOnDropped ();
   double price1= ChartPriceOnDropped ();
   if ( ObjectFind (chart_id,InpFiboName)< 0 )
      FiboLevelsCreate(chart_id,InpFiboName, 0 ,time1,price1,time1+InpAddSecond,price1-InpStopLoss* Point (),InpColor);
   else
     {
       ObjectDelete (chart_id,InpFiboName);
       ChartRedraw (chart_id);
      FiboLevelsCreate(chart_id,InpFiboName, 0 ,time1,price1,time1+InpAddSecond,price1-InpStopLoss* Point (),InpLevelsColor);
     }
//---
   int                levels   = 6 ;                                                                     // number of level lines
   double             values[ 6 ]= { 1.0 , 0.0 , 2.0 , 3.0 , 4.0 , 5.0 };                                             // values of level lines
   color              colors[ 6 ];                                                                       // color of level lines
   for ( int i= 0 ; i< 6 ; i++)
      colors[i]=InpLevelsColor;
   ENUM_LINE_STYLE    styles[ 6 ];                                                                       // style of level lines
   for ( int i= 0 ; i< 6 ; i++)
      styles[i]=InpLevelsStyles;
   int                widths[ 6 ]= { 2.0 , 2.0 , 2.0 , 2.0 , 2.0 , 2.0 };                                             // width of level lines
   string             texts[ 6 ] = { "BREAK EVEN" , "STOP LOSS" , "TP1 1.1" , "TP2 2.1" , "TP3 3.1" , "TP4 4.1" };   // text of level lines
//---
   FiboLevelsSet(levels,values,colors,styles,widths,texts,chart_id,InpFiboName);
  }


seviyeler için ayarlayabilirsiniz: satır sayısı, satır değeri, satır rengi, satır stili, satır genişliği, satır metni.

 
int OnInit ()
  {
//---
   ChartSetInteger ( ChartID (), CHART_EVENT_OBJECT_CREATE , true );
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
  }
//+------------------------------------------------------------------+

/***********************OnChartEvent function************************/
void OnChartEvent ( const int id,         // идентификатор события
                   const long & lparam,   // параметр события типа long
                   const double & dparam, // параметр события типа double
                   const string & sparam   // параметр события типа string
                 )
  {
   if (id == CHARTEVENT_OBJECT_CREATE )
     {
      I++;
       string result[];       //  массив для получения строк
       StringSplit (sparam, ' ' , result); //  получим из имени созданного объекта подстроки
       ulong timeCreate = ObjectGetInteger ( 0 , sparam, OBJPROP_CREATETIME ); //  получим время создания объекта
       string newName = result[ 0 ]+ " " +result[ 1 ]+ " " + string (I); //  сформируем новое имя объекта
       ObjectSetString ( 0 , sparam, OBJPROP_NAME , newName);   //  переименуем объект

       //----------------------------------------------------------------------------------------
       double    Level_0= ObjectGetDouble (
                                 0 ,           // идентификатор графика
                                newName,               // имя объекта
                                 OBJPROP_PRICE ,           // идентификатор свойства
                                 0      // модификатор свойства
                             );


       double    Level_1= ObjectGetDouble (
                                 0 ,           // идентификатор графика
                                newName,               // имя объекта
                                 OBJPROP_PRICE ,           // идентификатор свойства
                                 1      // модификатор свойства
                             );
       //------------------------------------------------------------------------------------------------------
       if (Level_0 > Level_1)
        {
         ObjectSetInteger ( 0 ,newName, OBJPROP_COLOR , clrDeepSkyBlue );
        }
       else
        {
         ObjectSetInteger ( 0 ,newName, OBJPROP_COLOR , clrYellow );
        }
     } /******************************************************************/
  }

Hey! Hata ayıklama yaparken, kodu adım adım geçerken, koordinat değerlerine bağlı olarak çizgiler neden her iki renkte yeniden boyandığını söyleme. Ve Expert Advisor'ı grafiğe atarken if(Level_0 > Level_1) koşulu asla doğru olmaz mı?
 
Kira27 :

Hey! Hata ayıklama yaparken, kodu adım adım geçerken, koordinat değerlerine bağlı olarak çizgiler neden her iki renkte yeniden boyandığını söyleme. Ve Expert Advisor'ı grafiğe atarken if(Level_0 > Level_1) koşulu asla doğru olmaz mı?

Nesneyi yeniden adlandırdıktan sonra, ona erişmek için henüz uygun olmaması çok yüksek bir olasılıktır. Yeniden adlandırdıktan sonra ChartRedraw'ı koymayı deneyebilirsiniz. Yardımcı olmazsa, bir şekilde farklı bir dizi oluşturmanız gerekir.

not; Başka bir seçenek: önce sparam adıyla yeniden renklendirin ve ardından yeniden adlandırın.