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

 
Rustam Bikbulatov :
İkinci. Sipariş açma komutu

Belli değil. Piyasa düzeni nerede? Belki göstergeyi ara ? Ardından göstergeyi yeniden oluşturun ve iMACD yerine iCustom ile arayın.

Belki de bu iyiliğin kod tabanında hiçbir şeyi yeniden yapmanız gerekmez - en azından takılıp kaldınız.

 
Vitalie Postolache :

Belli değil. Piyasa düzeni nerede? Belki göstergeyi ara ? Ardından göstergeyi yeniden oluşturun ve iMACD yerine iCustom ile arayın.

Belki de bu iyiliğin kod tabanında hiçbir şeyi yeniden yapmanız gerekmez - en azından takılıp kaldınız.


iCustom aracılığıyla denedim ama yavaş çalışıyor. gecikme büyüktür. iMAOnArray aracılığıyla denendi ancak dizilerle ilgili bir sorun var. Birkaç gün hepsini bir araya getiremedim. iMACD yapmak daha kolay ama soru nasıl

 
Rustam Bikbulatov :

iCustom aracılığıyla denedim ama yavaş çalışıyor. gecikme büyüktür. iMAOnArray aracılığıyla denendi ancak dizilerle ilgili bir sorun var. Birkaç gün hepsini bir araya getiremedim. iMACD yapmak daha kolay ama soru nasıl


Hayır, standart iMACD sinyal hattını SMA formülünü kullanarak hesaplar, yalnızca özel yardımcı olur.

 
Vitalie Postolache :

Hayır, standart iMACD sinyal hattını SMA formülünü kullanarak hesaplar, yalnızca özel yardımcı olur.


Her neyse, bunu yapmanın imkansız olduğunu anladım. bilgi için çok teşekkürler

 
Rustam Bikbulatov :

Her neyse, bunu yapmanın imkansız olduğunu anladım. bilgi için çok teşekkürler


Evet imkansız diye bir şey yok sadece sınırları biraz zorlamanız gerekiyor )))

 
Rustam Bikbulatov :

Her neyse, bunu yapmanın imkansız olduğunu anladım. bilgi için çok teşekkürler

İşte standart MACD kodu

 //+------------------------------------------------------------------+
//|                                                  Custom MACD.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright    "2005-2014, MetaQuotes Software Corp."
#property link          "http://www.mql4.com"
#property description "Moving Averages Convergence/Divergence"
#property strict

#include <MovingAverages.mqh>

//--- indicator settings
#property   indicator_separate_window
#property   indicator_buffers 2
#property   indicator_color1  Silver
#property   indicator_color2  Red
#property   indicator_width1   2
//--- indicator parameters
input int InpFastEMA= 12 ;   // Fast EMA Period
input int InpSlowEMA= 26 ;   // Slow EMA Period
input int InpSignalSMA= 9 ;   // Signal SMA Period
//--- indicator buffers
double     ExtMacdBuffer[];
double     ExtSignalBuffer[];
//--- right input parameters flag
bool       ExtParameters= false ;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ( void )
  {
   IndicatorDigits ( Digits + 1 );
//--- drawing settings
   SetIndexStyle ( 0 , DRAW_HISTOGRAM );
   SetIndexStyle ( 1 , DRAW_LINE );
   SetIndexDrawBegin ( 1 ,InpSignalSMA);
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,ExtMacdBuffer);
   SetIndexBuffer ( 1 ,ExtSignalBuffer);
//--- name for DataWindow and indicator subwindow label
   IndicatorShortName ( "MACD(" + IntegerToString (InpFastEMA)+ "," + IntegerToString (InpSlowEMA)+ "," + IntegerToString (InpSignalSMA)+ ")" );
   SetIndexLabel ( 0 , "MACD" );
   SetIndexLabel ( 1 , "Signal" );
//--- check for input parameters
   if (InpFastEMA<= 1 || InpSlowEMA<= 1 || InpSignalSMA<= 1 || InpFastEMA>=InpSlowEMA)
     {
       Print ( "Wrong input parameters" );
      ExtParameters= false ;
       return ( INIT_FAILED );
     }
   else
      ExtParameters= true ;
//--- initialization done
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
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[])
  {
   int i,limit;
//---
   if (rates_total<=InpSignalSMA || !ExtParameters)
       return ( 0 );
//--- last counted bar will be recounted
   limit=rates_total-prev_calculated;
   if (prev_calculated> 0 )
      limit++;
//--- macd counted in the 1-st buffer
   for (i= 0 ; i<limit; i++)
      ExtMacdBuffer[i]= iMA ( NULL , 0 ,InpFastEMA, 0 , MODE_EMA , PRICE_CLOSE ,i)-
                     iMA ( NULL , 0 ,InpSlowEMA, 0 , MODE_EMA , PRICE_CLOSE ,i);
//--- signal line counted in the 2-nd buffer
   SimpleMAOnBuffer(rates_total,prev_calculated, 0 ,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
   //ExponentialMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);
//--- done
   return (rates_total);
  }
//+------------------------------------------------------------------+

Pembe ile işaretlenmiş satır benim eklediğim satırdır.

Pembe ile işaretlenmiş satırın yorumunu kaldırır ve yeşil ile işaretlenmiş satırı yorumlarsanız , MACD tamamen üstel MA'lar kullanılarak hesaplanmalıdır.

 
Artyom Trishkin :

İşte standart MACD kodu

Pembe ile işaretlenmiş satır benim eklediğim satırdır.

Pembe ile işaretlenmiş satırın yorumunu kaldırır ve yeşil ile işaretlenmiş satırı yorumlarsanız , MACD tamamen üstel MA'lar kullanılarak hesaplanmalıdır.


Soru, danışmanda nasıl yapılacağıydı. EA , SMA formülüne göre otomatik olarak hesaplar

 
Rustam Bikbulatov :

Soru, danışmanda nasıl yapılacağıydı. EA , SMA formülüne göre otomatik olarak hesaplar

Size özel bir MACD'nin nasıl yapıldığını gösterdim.

İşte burada ve iCustom() aracılığıyla danışmana götürün

 
Artyom Trishkin :

Size özel bir MACD'nin nasıl yapıldığını gösterdim.

İşte burada ve iCustom() aracılığıyla danışmana götürün


Çok fazla veriye sahibim ve çalı yavaşlıyor. Ben zaten denedim. Sonuçları etkiler. Yine de teşekkürler.

 
Rustam Bikbulatov :

Çok fazla veriye sahibim ve çalı yavaşlıyor. Ben zaten denedim. Sonuçları etkiler. Yine de teşekkürler.

Ayarları kontrol edin, görüntülenecek çok fazla çubuğunuz olabilir, bu yüzden gecikmeler var.