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

 
Aleksey Vyazmikin :

Bu nedenle, talimatlarda bu işlev için bir fandan bahsedilmiyor.

Bir fiyat koordinatındaki bir nesnenin birkaç değeri olabileceğinden, satır numarasının belirtilmesi gerekir. Bu özellik yalnızca aşağıdaki nesneler için geçerlidir:

  • Trend çizgisi (OBJ_TREND)
  • Açıya Göre Trend Çizgisi (OBJ_TRENDBYANGLE)
  • Gann hattı (OBJ_GANNLINE)
  • Eşit mesafeli kanal (OBJ_CHANNEL) - 2 satır
  • Doğrusal regresyon kanalı (OBJ_REGRESSION) - 3 satır
  • Standart sapma kanalı (OBJ_STDDEVCHANNEL) - 3 satır
  • Ok Çizgisi (OBJ_ARROWED_LINE)

Her durumda, fanın iki noktası vardır. Buna paralel olan trend çizgisini nokta nokta ekleyin ve hesaplayın. Her zaman bir çıkış yolu bulabilirsiniz.

 
Uladzimir Izerski :

ObjectGetValueByTime yardımıyla hesaplanan fanın herhangi bir yüzdesini bulabiliriz.

Test cihazında çalışır. Kontrol etmedim.

Kodda gösterebilir misin?

 
Aleksey Vyazmikin :

Kodda gösterebilir misin?

Sadece kodu kontrol ettim. Kanallarda çalışır. Tanımlar ve fan üzerinde.

 F_Draw_Object( "FAN" , OBJ_FIBOFAN ,Time[ 20 ],High[ 20 ],Time[ 5 ],Low[ 5 ], 0 , 0 , 0 , 2 , C'00,00,200' , OBJPROP_FILL , false );
 PriseCLv= ObjectGetValueByTime ( 0 , "FAN" ,Time[ 10 ], 0 );

Bir fana bir trend çizgisi bağlayabilir ve onu da belirleyebilirsiniz. Ama böyle çalışıyor.

 
Uladzimir Izerski :

Sadece kodu kontrol ettim. Kanallarda çalışır. Tanımlar ve fan üzerinde.

Bir fana bir trend çizgisi bağlayabilir ve onu da belirleyebilirsiniz. Ama böyle çalışıyor.

Senin için nasıl çalışıyor?

En azından görsel test cihazında benim için çalışmıyor ...

 bool fiboFanCreate( string ffname, datetime tm1, double pr1, datetime tm2, double pr2)
{
   Print ( __FUNCSIG__ );
   
   //if(!ObjectCreate(0,ffname,OBJ_FIBOFAN,0,tm1,pr1,tm2,pr2))
   if (! ObjectCreate ( 0 ,ffname, OBJ_FIBOFAN , 0 ,tm1,pr1,tm2,pr2, 0 , 0 , 0 , 2 , C'00,00,200' , OBJPROP_FILL , false ))
   {
       Print ( __FUNCSIG__ ,
             ": не удалось создать \"Веер Фибоначчи\"! Код ошибки = " , GetLastError ());
       return ( false );
   }
   
   ChartRedraw ();
   Sleep ( 1000 );
   
   return ( true );
}
//+------------------------------------------------------------------+
bool fiboFanLevelsSet( double   &values[],   // значения линий уровня
                       string   name)       // имя веера
{
   Print ( __FUNCSIG__ );
   
   levels = ArraySize (values);
   ArrayPrint (values);
   //--- установим количество уровней
   ObjectSetInteger ( 0 ,name, OBJPROP_LEVELS ,levels);
   
   //--- установим свойства уровней в цикле
   for ( int i= 0 ;i<levels;i++)
   {
       //--- значение уровня
       ObjectSetDouble ( 0 ,name, OBJPROP_LEVELVALUE ,i,values[i]);
       //--- описание уровня
       ObjectSetString ( 0 ,name, OBJPROP_LEVELTEXT ,i, IntegerToString (i+ 1 ));
   }
   ChartRedraw ();
   Sleep ( 1000 );
   //--- успешное выполнение
   return ( true );
}

muayene

 void OnTick ()
{
   new_bars    = current_chart.isNewBar();   // проверить появление нового бара
   
   if (new_bars > 0 )
   {
       if ( ObjectFind ( 0 ,ff_name) >= 0 ) Print (ff_name, "4 = " , NormalizeDouble ( ObjectGetValueByTime ( 0 ,ff_name, TimeCurrent (), 4 ), Digits ()));

....

 2020.01 . 19 19 : 38 : 50.208 2019.09 . 19 11 : 15 : 00    bool fiboFanCreate( string , datetime , double , datetime , double )
2020.01 . 19 19 : 38 : 50.208 2019.09 . 19 11 : 15 : 01    bool fiboFanLevelsSet( double &[], string )
2020.01 . 19 19 : 38 : 51.365 2019.09 . 19 11 : 30 : 00    FFan4 = 0.0
 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

2 soru MT5

Sergey Tabolin , 2020.01.20 11:52

Göstergeyi bir EA'dan çağırırken bir hataya neden olan nedir? Göstergenin kendisinin normalde grafiğe manuel olarak yerleştirilmesine rağmen.

   ResetLastError ();
   handle_ICTMP1 = iCustom ( Symbol (), 0 , "my_used\\ICTMP_3.01" , 0 ,in_symb1, false , false ,in_smoothing);
   if (handle_ICTMP1 == INVALID_HANDLE )                                                 // проверяем наличие хендла индикатора
   {
       Print ( "Не удалось получить хендл индикатора handle_ICTMP1..." , GetLastError ());   // если хендл не получен, то выводим сообщение в лог об ошибке
       return ( INIT_FAILED );                                                             // завершаем работу с ошибкой
   }
   else
   {
       Print ( "Получен хендл индикатора handle_ICTMP1" );
       if (! MQLInfoInteger ( MQL_OPTIMIZATION ))
      {
         if (! ChartIndicatorAdd ( ChartID (), 0 ,handle_ICTMP1)) Print ( "Ошибка подключения индикатора к графику" ); // подключаем индикатор к графику
      }
   }
2020.01.20 13:42:09.390 Core 1  file Indicators\my_used\ICTMP_3.01 read error
2020.01.20 13:42:09.390 Core 1   loading of ICTMP_ EURGBP,M15 failed [557]
2020.01.20 13:42:09.390 Core 1  2019.09.19 00:00:00   cannot load custom indicator 'my_used\ICTMP_3.01' [4802]
2020.01.20 13:42:09.390 Core 1  2019.09.19 00:00:00   Не удалось получить хендл индикатора handle_ICTMP1...4802
2020.01.20 13:42:09.390 Core 1  tester stopped because OnInit returns non-zero code
not Test cihazında.

Ve bu, danışmanın gerçek zamanlı bir grafikte başlatılmasına rağmen. Gösterge çizimi ile. ((((

Özellikle, bu nedir?

 

Sevgili, peki, gerçekten kimse bir şey tahmin edemez mi?

Gösterge hem test cihazında hem de grafikte ayrı ayrı çalışır. Test cihazındaki Expert Advisor'dan başlatıldığında, anlaşılmaz bir hata uçar. Bu göstergeye sahip Uzman Danışman normal şekilde başlar ve grafik üzerinde çalışır.

Nerede kazılır?

 
Сергей Таболин :

Sevgili, peki, gerçekten kimse bir şey tahmin edemez mi?

Gösterge hem test cihazında hem de grafikte ayrı ayrı çalışır. Test cihazında EA'dan başlatıldığında anlaşılmaz bir hata oluşur. Bu göstergeye sahip Uzman Danışman normal şekilde başlar ve grafik üzerinde çalışır.

Nerede kazılır?

Belki test cihazındaki göstergeye giden yola doğru?
 
Artyom Trishkin :
Belki test cihazındaki göstergeye giden yola doğru?

Neye benziyor?

Bu yolda gerekli tüm göstergelere sahibim

handle_ICTMP1 = iCustom ( Symbol (), 0 , "my_used\\ICTMP_3.01"
handle_HMA7C = iCustom ( Symbol (), 0 , "my_used\\my_HMA7C_201" ,

Bu daha önce hiç olmadı. Ayrıca, ilk kez test cihazındaki göstergeye giden ayrı bir yol olduğunu duydum ...

Diğer göstergeler için yol uygun, ancak bunun için değil mi?

 

Önüne özel olarak bir gösterge daha eklendi.

   ResetLastError ();
      handle_HMA7C = iCustom ( Symbol (), 0 , " my_used\\my_HMA7C_201 " , 45 , 9 );
       if (handle_HMA7C == INVALID_HANDLE )                                                   // проверяем наличие хендла индикатора
      {
         Print ( "Не удалось получить хендл индикатора handle_HMA7C..." , GetLastError ());     // если хендл не получен, то выводим сообщение в лог об ошибке
         return ( INIT_FAILED );                                                             // завершаем работу с ошибкой
      }
       else
      {
         Print ( "Получен хендл индикатора handle_HMA7C" );
         if (! MQLInfoInteger ( MQL_OPTIMIZATION ))
         {
             if (! ChartIndicatorAdd ( ChartID (), 0 ,handle_HMA7C)) Print ( "Ошибка подключения индикатора к графику" ); // подключаем индикатор к графику
         }
      }
   
   handle_ICTMP1 = iCustom ( Symbol (), 0 , " my_used\\ICTMP_3.01 " , 0 ,in_symb1, false , false ,in_smoothing);
   if (handle_ICTMP1 == INVALID_HANDLE )                                                 // проверяем наличие хендла индикатора
   {
       Print ( "Не удалось получить хендл индикатора handle_ICTMP1..." , GetLastError ());   // если хендл не получен, то выводим сообщение в лог об ошибке
       return ( INIT_FAILED );                                                             // завершаем работу с ошибкой
   }
   else
   {
       Print ( "Получен хендл индикатора handle_ICTMP1" );
       if (! MQLInfoInteger ( MQL_OPTIMIZATION ))
      {
         if (! ChartIndicatorAdd ( ChartID (), 0 ,handle_ICTMP1)) Print ( "Ошибка подключения индикатора к графику" ); // подключаем индикатор к графику
      }
   }
2020.01.20 20:15:34.713 program file added: Indicators\my_used\my_HMA7C_201.ex5. 41715 bytes loaded
2020.01.20 20:15:34.920 2019.09.19 00:00:00   Получен хендл индикатора handle_HMA7C
2020.01.20 20:15:34.921 file Indicators\my_used\ICTMP_3.01 read error
2020.01.20 20:15:34.921 loading of ICTMP_ EURGBP,M15 failed [557]
2020.01.20 20:15:34.921 2019.09.19 00:00:00   cannot load custom indicator 'my_used\ICTMP_3.01' [4802]
2020.01.20 20:15:34.921 2019.09.19 00:00:00   Не удалось получить хендл индикатора handle_ICTMP1...4802
2020.01.20 20:15:34.921 tester stopped because OnInit returns non-zero code

Danışman hala normal olarak çizelgeye yerleştirilir. Tüm göstergeler yüklü ve çalışıyor....

 
Сергей Таболин :

Sevgili, peki, gerçekten kimse bir şey tahmin edemez mi?

Nerede kazılır?

Kolu tekrar tekrar aldığınızı ve yavaş yavaş hafızayı aştığınızı varsayabilirim. canlı grafikteki bunu yavaş yapıyor ve tüm hafızayı dolduracak zamanı yok. test cihazı bunu saniyede birçok kez yapar ve belleği hızla tıkar.