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

 

Merhaba! 2020.10.28_05:19 GMT+3. LeManTrend_Indicator.mq5 göstergesini dördüncü sürüm .mq4'e çevirdim. Gösterge grafikte görünüyor, ancak GBPUSD, H1 grafiğini M5 MetaTrader4 zaman dilimine geçirmeye çalıştığınızda donuyor, işlemci yükleniyor. MetaTrader4'ü kapatıp tekrar açmam gerekiyor. LeManTrend_Indicator.ex4'ü grafikten kaldırdığınızda, donma gerçekleşmez. Gösterge kodunda neyin yanlış yazıldığını anlamıyorum. Kim önerecek? Nasıl düzeltilir?

Ve LeMan_BrainTrend1Sig.mq5 dördüncü sürüme çevrildi - göstergeler listesinde yer alıyor, ancak grafikte hiçbir şey görüntülenmiyor. Düzgün çalışması için bu göstergenin kodunu nasıl yeniden yazacağımı bilmiyorum. Daha önce sadece danışman yazardım. onları nasıl kontrol edebilirim   strateji test cihazı   -- Biliyorum. Ve koda Print() değişkenleri yazarsınız - bir şeyin nerede yanlış yazıldığı anlaşılır. Göstergeleri nasıl kontrol edeceğimi bilmiyorum. Kodda Print () yazıyorum - herhangi bir günlüğe yansıtılmıyor. Göstergelerin çalışması ve sabit sürücüde yer kaplamaması için ne yapacağınızı size kim söyleyecek? Bir cevap bekleyeceğim. 05:44 GMT+3.

Evet, şimdi gösterge kodlarını yayınlayacağım. Ve ilerisi. Göstergeleri neden .mq5'ten .mq4'e aktarıyorum? Çünkü aracımın yalnızca MetaTrader4'te ruble hesapları var. Ve göstergeler beşinci versiyonda yazılmıştır. Ve MetaTrader4 için karlı bir Uzman Danışman yazmak için göstergelere ihtiyacım var. Bu kadar. 05:53 GMT+3.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Николай Никитюк :

Merhaba! 2020.10.28_05:19 GMT+3. LeManTrend_Indicator.mq5 göstergesini dördüncü sürüm .mq4'e çevirdim. Gösterge grafikte görünüyor, ancak GBPUSD, H1 grafiğini M5 MetaTrader4 zaman dilimine geçirmeye çalıştığınızda donuyor, işlemci yükleniyor. MetaTrader4'ü kapatıp tekrar açmam gerekiyor. LeManTrend_Indicator.ex4'ü grafikten kaldırdığınızda, donma gerçekleşmez. Gösterge kodunda neyin yanlış yazıldığını anlamıyorum. Kim önerecek? Nasıl düzeltilir?

Ve LeMan_BrainTrend1Sig.mq5 dördüncü sürüme çevrildi - göstergeler listesinde yer alıyor, ancak grafikte hiçbir şey görüntülenmiyor. Düzgün çalışması için bu göstergenin kodunu nasıl yeniden yazacağımı bilmiyorum. Daha önce sadece danışman yazardım. onları nasıl kontrol edebilirim   strateji test cihazı   -- Biliyorum. Ve koda Print() değişkenleri yazarsınız - bir şeyin nerede yanlış yazıldığı netleşir. Göstergeleri nasıl kontrol edeceğimi bilmiyorum. Kodda Print () yazıyorum - herhangi bir günlüğe yansıtılmıyor. Göstergelerin çalışması ve sabit sürücüde yer kaplamaması için ne yapacağınızı size kim söyleyecek? Bir cevap bekleyeceğim. 05:44 GMT+3.

Evet, şimdi gösterge kodlarını yayınlayacağım. Ve ilerisi. Göstergeleri neden .mq5'ten .mq4'e aktarıyorum? Çünkü aracımın yalnızca MetaTrader4'te ruble hesapları var. Ve göstergeler beşinci versiyonda yazılmıştır. Ve MetaTrader4 için karlı bir Uzman Danışman yazmak için göstergelere ihtiyacım var. Bu kadar. 05:53 GMT+3.

LeManTrend_Indicator.mq5 - burada göstergenin kendisi https://www.mql5.com/ru/code/27570

aynı zamanda dördüncüde de çalışır - sadece (err_text) öncesi yinelenen (dize) kaldırmanız gerekir

       string err_text=( TerminalInfoString ( TERMINAL_LANGUAGE )== "Russian" )?
                       "Параметр \"Midle\" меньше 1!" :
                       "Parameter \"Midle\" is less than 1!" ;

ne öyle olurdu

 //+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- check "MA averaging period" parameter
   if (PeriodEMA< 1 )
     {
       string err_text=( TerminalInfoString ( TERMINAL_LANGUAGE )== "Russian" )?
                       "Параметр \"MA averaging period\" меньше 1!" :
                       "Parameter \"MA averaging period\" is less than 1!" ;
       //--- when testing, we will only output to the log about incorrect input parameters
       if ( MQLInfoInteger ( MQL_TESTER ))
        {
         Print ( __FILE__ , " " , __FUNCTION__ , ", ERROR: " ,err_text);
         return ( INIT_FAILED );
        }
       else // if the Expert Advisor is run on the chart, tell the user about the error
        {
         Alert ( __FILE__ , " " , __FUNCTION__ , ", ERROR: " ,err_text);
         return ( INIT_PARAMETERS_INCORRECT );
        }
     }
//--- check "Min" parameter
   if (Min< 1 )
     {
      err_text=( TerminalInfoString ( TERMINAL_LANGUAGE )== "Russian" )?
               "Параметр \"Min\" меньше 1!" :
               "Parameter \"Min\" is less than 1!" ;
       //--- when testing, we will only output to the log about incorrect input parameters
LeManTrend Indicator
LeManTrend Indicator
  • www.mql5.com
Индикатор на основе анализа максимальных и минимальных цен. Сигналы индикатора возникают в месте пересечения линий 'BUY' и 'SELL':
 
SanAlex :

LeManTrend_Indicator.mq5 - burada göstergenin kendisi https://www.mql5.com/ru/code/27570

aynı zamanda dördüncüde de çalışır - sadece (err_text) öncesi yinelenen (dize) kaldırmanız gerekir

ne öyle olurdu

sicim

 
Николай Никитюк :

4 için BrainTrend1Sig burada - https://www.mql5.com/ru/code/8772

burada, dört için zaten düzeltilmiş olan LeManTrend_Indicator.mq4 eklemeniz gerekiyor

BrainTrend1Sig
BrainTrend1Sig
  • www.mql5.com
Индикатор BrainTrend1Sig.
 
SanAlex :

4 için BrainTrend1Sig burada - https://www.mql5.com/en/code/8772

burada, dört için zaten düzeltilmiş olan LeManTrend_Indicator.mq4 eklemeniz gerekiyor

hata veriyor - bu satırı silmeniz gerekiyor ( double const = 0; )

ve her şey işe yarayacak

çift sabit = 0;

çift sabit = 0; 2.png


 
Nikolai Semko :

Sen bir komedyensin.

Burada kimi çarmıha geriyorum?



Neden böyle bir durum? Aynı çubuk indeksi. Üstelik, sadece sembolde ilk çalıştırmada oluyor gibi görünüyor. Ya da tarihin derinliklerinde. Yukarıda kodda sadece çubukların varlığını kontrol ettiğini düşündüm ..

 
Николай Никитюк :


İşte iyi bir Gösterge https://www.mql5.com/en/code/28364

İçine ihtiyacınız olan her şeyi koyabilirsiniz!

 //+------------------------------------------------------------------+
//|                                                      Phoenix.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
//--- setting the indicator name
#property description "Phoenix"
//--- set the strict mode of compilation
#property strict
//--- specify where to draw the indicator
#property indicator_chart_window
//--- specify the number of buffers
#property indicator_buffers 2
//--- setting the color of the indicator rendering
#property indicator_color1 clrGreenYellow
#property indicator_color2 clrRed
//--- we define the input parameters

//--- specify arrays of indicator buffers
double arrow_01[];
double arrow_02[];
//*********************************************//
bool flag_buy   = false ;
bool flag_sell  = false ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ( void )
  {
   string short_name;
//--- we specify two additional buffers for calculations
   IndicatorBuffers( 2 );
   SetIndexBuffer ( 0 ,arrow_01);
   SetIndexBuffer ( 1 ,arrow_02);
//--- setting the indicator to be drawn as a line
   SetIndexStyle( 0 , DRAW_ARROW ,EMPTY, 2 , clrGreenYellow );
   SetIndexArrow( 0 , 233 );
   SetIndexBuffer ( 0 ,arrow_01);
   SetIndexStyle( 1 , DRAW_ARROW ,EMPTY, 2 , clrRed );
   SetIndexArrow( 1 , 234 );
   SetIndexBuffer ( 1 ,arrow_02);
//--- setting a name in the DataWindow window and a label
   short_name= "Phoenix" ;
   IndicatorShortName(short_name);
   SetIndexLabel( 0 ,short_name);
//--- if there are no errors,initialization is completed successfully
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//|                            Phoenix                               |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime & time[],
                 const double & open[],
                 const double & high[],
                 const double & low[],
                 const double & close[],
                 const long & tick_volume[],
                 const long & volume[],
                 const int & spread[])
  {
   for ( int shift=rates_total; shift>= 0 ; shift--)
     {
       //--- to simplify the coding and speed up access data are put into internal variables
       double MacdCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_MAIN,shift);
       double SignalCurrent= iMACD ( NULL , 0 , 12 , 26 , 9 , PRICE_CLOSE ,MODE_SIGNAL,shift);
        {
         if (flag_buy== false )
             //--- check for long position (BUY) possibility
             if (MacdCurrent>SignalCurrent)
              {
               arrow_01[shift]=Low[shift];
               flag_buy= true ;
               flag_sell= false ;
              }
         if (flag_sell== false )
             //--- check for short position (SELL) possibility
             if (MacdCurrent<SignalCurrent)
              {
               arrow_02[shift]=High[shift];
               flag_buy= false ;
               flag_sell= true ;
              }
        }
     }
   return (rates_total);
  }
//+------------------------------------------------------------------+
Phoenix
Phoenix
  • www.mql5.com
В стрелочном индикаторе Phoenix используется комбинация трех индикаторов: Moving Average, Bolinger Bands и Momentum в сочетании с двумя мощными формулами, основанными на поведении цены текущего графика. В индикаторе Phoenix также реализована система звуковых и текстовых алертов, а также отправка...
Dosyalar:
EURUSDM30.png  35 kb
 

Tünaydın!

Lütfen aşağıdaki sorunu çözmeme yardım edin:

Komut dosyasını (Python) MQL4 Expert Advisor'dan çalıştırmak gerekir. Bunu ShellExecuteW() ile şöyle yapmaya çalışıyorum:

 #import "shell32.dll"
string ShellExecuteW( int hwnd, string Operation, string File, string Parameters, string Directory, int ShowCmd);
#import
#include <WinUser32.mqh>

void OnStart ()
  {
ShellExecuteW( NULL , NULL , "C:\\Users\\yansa\\Desktop\\test_script.py" , NULL , NULL , 1 );
  }

Bir dosyaya erişim hatası aldığımda. Komut dosyasının kendisi yürütülür, ancak kod daha ileri gitmez.


Komut dosyasını çalıştırmak için işlevi paylaşırsanız sevinirim.

Başka bir soru: Komut dosyasının yürütülmesi nasıl kontrol edilir?

 
Николай Никитюк :

Merhaba! 2020.10.28_05:19 GMT+3. LeManTrend_Indicator.mq5 göstergesini dördüncü .mq4 sürümüne çevirdim.

Ve uymuyor

https://www.mql5.com/ru/code/9096

LeManTrend
LeManTrend
  • www.mql5.com
Индикатор определяет положение тренда на основе текущей цены и максимальных и минимальных цен за три периода.
 
MakarFX :

Ve uymuyor

https://www.mql5.com/ru/code/9096

Bu daha iyi gibi

 //+------------------------------------------------------------------+
//|                                                      Phoenix.mq4 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
//--- setting the indicator name
#property description "Phoenix"
//--- set the strict mode of compilation
#property strict
//--- specify where to draw the indicator
#property indicator_chart_window
//--- specify the number of buffers
#property indicator_buffers 2
//--- setting the color of the indicator rendering
#property indicator_color1 clrGreenYellow
#property indicator_color2 clrRed
//--- we define the input parameters

//--- specify arrays of indicator buffers
double arrow_01[];
double arrow_02[];
//*********************************************//
bool flag_buy   = false ;
bool flag_sell  = false ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ( void )
  {
   string short_name;
//--- we specify two additional buffers for calculations
   IndicatorBuffers( 2 );
   SetIndexBuffer ( 0 ,arrow_01);
   SetIndexBuffer ( 1 ,arrow_02);
//--- setting the indicator to be drawn as a line
   SetIndexStyle( 0 , DRAW_ARROW ,EMPTY, 2 , clrGreenYellow );
   SetIndexArrow( 0 , 233 );
   SetIndexBuffer ( 0 ,arrow_01);
   SetIndexStyle( 1 , DRAW_ARROW ,EMPTY, 2 , clrRed );
   SetIndexArrow( 1 , 234 );
   SetIndexBuffer ( 1 ,arrow_02);
//--- setting a name in the DataWindow window and a label
   short_name= "Phoenix" ;
   IndicatorShortName(short_name);
   SetIndexLabel( 0 ,short_name);
//--- if there are no errors,initialization is completed successfully
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//|                            Phoenix                               |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime & time[],
                 const double & open[],
                 const double & high[],
                 const double & low[],
                 const double & close[],
                 const long & tick_volume[],
                 const long & volume[],
                 const int & spread[])
  {
   for ( int shift=rates_total; shift>= 0 ; shift--)
     {
       //--- to simplify the coding and speed up access data are put into internal variables
       double MacdCurrent= iCustom ( NULL , 0 , "LeManTrend" , 13 , 21 , 34 , 3 ,MODE_MAIN,shift);
       double SignalCurrent= iCustom ( NULL , 0 , "LeManTrend" , 13 , 21 , 34 , 3 ,MODE_SIGNAL,shift);
        {
         if (flag_buy== false )
             //--- check for long position (BUY) possibility
             if (MacdCurrent>SignalCurrent)
              {
               arrow_01[shift]=Low[shift];
               flag_buy= true ;
               flag_sell= false ;
              }
         if (flag_sell== false )
             //--- check for short position (SELL) possibility
             if (MacdCurrent<SignalCurrent)
              {
               arrow_02[shift]=High[shift];
               flag_buy= false ;
               flag_sell= true ;
              }
        }
     }
   return (rates_total);
  }
//+------------------------------------------------------------------+
Dosyalar: