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

 
User_mt5 :


Genel olarak, "gradyan" diye bir şey vardır. Bu, "dikliği" (grafik) karakterize eden bir göstergedir. Bu sektörle ilgili olarak bu gösterge nokta/zaman cinsinden ifade edilebilir. Esasen hızdır. Bu gösterge ölçeğe bağlı olmayacaktır, çünkü bir programa bağlı değil. Bir eğim kullanın, bir açı kullanmayın.


Bu gradyan nasıl hesaplanır?

Fikrinizi bir şekilde detaylandırabilir misiniz? Lütfen sorumu hangi forum başlığında yazdığımı not edin.

 
igorbel :

Bu gradyan nasıl hesaplanır?

Fikrinizi bir şekilde detaylandırabilir misiniz? Lütfen sorumu hangi forum başlığında yazdığımı not edin.

bir fikrim yok.

Basit matematikten bahsediyorum. Gradyan hızdır. Hızın kendisi, zamanın paydada olduğu zamandır. Yaygın kullanımda bu, aracın km/h cinsinden ifade edilen hızıdır. Ancak hız genellikle farklıdır. Örneğin, kodun yazılma hızı günlük satırlarla ölçülür. Fiyat tablosu ile ilgili olarak, hız, dakikadaki puan sayısıyla ölçülür. Grafiğin bazı bölümlerindeki gradyan (eğim, yükselme hızı) örneğin 100 nokta/dakika'dan büyükse, bu bölümün bir trend olarak nitelendirilebileceği ve eğer daha azsa, koşullu olarak kabul edilebilir. sonra daire olarak

 

Merhaba! 2017.07.07_15:55 GMT+3. Anlamıyorum. Bir sinyal olması gerekiyor gibi görünüyor, ancak strateji test cihazında yok. Öyleyse, övgüye değer MT5 test cihazınızın MT4 test cihazından farkı nedir? Neredeyse standart Moving Average.mq5'teki gibi yazdım. Ve bir demo hesabında, danışmanı hala kontrol etmeyi başardım. Bir anlaşma açtı, ancak kendisi kapatmak zorunda kaldı. Kapatmayı düzelttim. Ama başka bir şey yazdı - danışman yine anlaşmaları açmayı bıraktı. Ve sıfır hata ve sıfır uyarı henüz danışmanın çalışma durumunun bir göstergesi değil. İşte burada takıldım. Danışmanın çalışmadığını nerede yazdığını nasıl bilebilirim. Karputov'u tekrar rahatsız etmek için. Bana yasakların tüm listesi verilseydi, bunu kendim yapardım. Hepsini olmasa da dosyaları yayın. 16:06 GMT+3.

 

Lütfen yardım et!

MQL4'te gösterge değerini elde etmek için basit bir fonksiyon yeterlidir.

 double CMAf( int index)
  {
   return NormalizeDouble ( iMA ( Symbol (), 0 ,period_CMA, 0 , 0 , 0 ,index), Digits );
  }
MQL5 için bir analog nasıl edinilir?
 
-Aleks- :

Lütfen yardım et!

MQL4'te gösterge değerini elde etmek için basit bir fonksiyon yeterlidir.

MQL5 için bir analog nasıl edinilir?

iMA Yardım'a baktınız mı?

Birinci adım: "başlık"ta, iMA göstergesinin tutamağını saklamak için bir değişken tanımlıyoruz:

İkinci adım: OnInit() içinde gösterge tanıtıcısını oluşturun.

 //+------------------------------------------------------------------+
//|                                                       iMAGet.mq5 |
//|                              Copyright © 2017, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
//--- input parameters
input int                   ma_period= 10 ;                 // period of ma 
input int                   ma_shift= 0 ;                   // shift 
input ENUM_MA_METHOD        ma_method= MODE_SMA ;           // type of smoothing 
input ENUM_APPLIED_PRICE    applied_price= PRICE_CLOSE ;     // type of price 
input ENUM_TIMEFRAMES       period= PERIOD_CURRENT ;         // timeframe 
//---
int                         handle_iMA;                   // variable for storing the handle of the iMA indicator 
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- create handle of the indicator iMA
   handle_iMA= iMA ( Symbol (),period,ma_period,ma_shift,ma_method,applied_price);
//--- if the handle is not created 
   if (handle_iMA== INVALID_HANDLE )
     {
       //--- tell about the failure and output the error code 
       PrintFormat ( "Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d" ,
                   Symbol (),
                   EnumToString ( Period ()),
                   GetLastError ());
       //--- the indicator is stopped early 
       return ( INIT_FAILED );
     }
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   double ma_0=iMAGet( 0 );
   double ma_1=iMAGet( 1 );

   Comment ( "MA #0: " , DoubleToString (ma_0, Digits ()+ 1 ), "\n" ,
           "MA #1: " , DoubleToString (ma_1, Digits ()+ 1 ));
  }
//+------------------------------------------------------------------+
//| Get value of buffers for the iMA                                 |
//+------------------------------------------------------------------+
double iMAGet( const int index)
  {
   double MA[ 1 ];
//--- reset error code 
   ResetLastError ();
//--- fill a part of the iMABuffer array with values from the indicator buffer that has 0 index 
   if ( CopyBuffer (handle_iMA, 0 ,index, 1 ,MA)< 0 )
     {
       //--- if the copying fails, tell the error code 
       PrintFormat ( "Failed to copy data from the iMA indicator, error code %d" , GetLastError ());
       //--- quit with zero result - it means that the indicator is considered as not calculated 
       return ( 0.0 );
     }
   return (MA[ 0 ]);
  }
//+------------------------------------------------------------------+


Ve sonuç (ekran görüntüsündeki artı işareti 1 numaralı çubuk olarak ayarlanmıştır):

iMAGet

Dosyalar:
iMAGet.mq5  7 kb
 
Vladimir Karputov :

iMA Yardım'a baktınız mı?

Birinci adım: "başlık"ta, iMA göstergesinin tutamağını saklamak için bir değişken tanımlıyoruz:

İkinci adım: OnInit() içinde gösterge tanıtıcısını oluşturun.

Ve sonuç (ekran görüntüsündeki artı işareti 1 numaralı çubuk olarak ayarlanmıştır):

Cevap için teşekkürler.

MQL4'te her şey bir işlevde bildirilir - bu nedenle, Uzman Danışman ayarlarına bağlı olarak etkinleştirilen bir dizi işlev vardır. Yanılmıyorsam, o zaman sizin durumunuzda bellek, TS'nin kullanmasına izin verdiği, rasyonel olmayan, düzinelerce farklı gösterge için tahsis edilecek mi, yoksa bellek tahsis edilmeyecek mi?

 

Bu sınıfın belirli bir nesnesine sahip olmadan bir sınıf işlevi çağırmak mümkün müdür? Böyle bir şey olmak için:

 class test
  {
public :
                     test( void );
                    ~test( void );
   public : void PrintInfo (){ Print ( "Class test" );}
  };
//---
void OnStart ()
  {
      test.PrintInfo() ;
  }

Yoksa bir nesne oluşturmak gerekli mi? Bu işlev, örneğinden çok sınıfın tanımına atıfta bulunsa bile.

 

Bir işlevin sınıf değişkenlerine erişmesi gerekmiyorsa, onu statik yapın.

 class test
{
public :
   test();
   ~test();

   static void PrintInfo()
   {
       Print ( "Class test" );
   }
};

void OnStart ()
{
   test::PrintInfo();
}
 
Koldun Zloy :

Bir işlevin sınıf değişkenlerine erişmesi gerekmiyorsa, onu statik yapın.

Teşekkürler, ihtiyacın olan şey bu.
 

Hata alıyorum - sorun ne? MQL4'te çalışır ...


   double arrFibo[ 17 ]=
     {
       0 ,
       0.236 ,
       0.382 ,
       0.5 ,
       0.618 ,
       0.764 ,
       1 ,
       1.236 ,
       1.382 ,
       1.5 ,
       1.618 ,
       2.0 ,
       2.236 ,
       2.382 ,
       2.5 ,
       2.618 ,
       2.764 ,
       3          //Всего уровней 17 + 0
     };
'{' - çok fazla başlatıcı TZ_Sky_and_Ground_V_04.mq5 2484 6