Kayıpsız MetaTrader 5'e geçmeme yardım et - sayfa 12

 
vdv2001 :

Murray seviyelerine biraz güzellik getirdi

Bu göstergeyi indirin. Derlerken 228. satırda hata verdim çizim yapamadım o yüzden lütfen kusuruma bakmayın. Genel olarak, MT5'e atmak için kullandığım indikatörü istedim, bu yüzden buradayım, kendim yapamadım. Belki benim için yeniden yazabilirsin. Teşekkür ederim.
Dosyalar:
 

Tünaydın. Zanaatkarların gerçekten korelasyon göstergesini MT5'e çevirmesi gerekiyor

Dosyalar:
iCorel_v3.mq4  11 kb
 
Ve bu da iyi ve kullanışlı. Herkes için faydalı
Dosyalar:
 
Çizgiler neden çizilmiyor?


#özellik göstergesi_chart_window
#özellik göstergesi_tamponları 2
#özellik göstergesi_plots 2
#özellik göstergesi_renk1 clrDeepSkyBlue
#özellik göstergesi_renk2 clrDeepSkyBlue
#özellik göstergesi_chart_window
çift UpBuffer[];
doubleDnBuffer[];
int OnInit()
{
SetIndexBuffer(0,UpBuffer);
SetIndexBuffer(1,DnBuffer);
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE); PlotIndexSetInteger(0,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE); PlotIndexSetInteger(1,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
dönüş(0);
}
//+------------------------------------------- --------------------+
//| özel gösterge yineleme işlevi |
//+------------------------------------------- --------------------+
int OnCalculate(const int oranlar_toplam,const int önceki_hesaplanmış,sabit tarihsaat &saat[],const double &open[],const double &yüksek[],const double &düşük[],const double &kapa[],const uzun &tick_hacim[],sabit uzun &hacim [],const int &spread[])
{int i;
for(i=1000;i>0;i--)
{ UpBuffer[i]=1.428; DnBuffer[i]=1.41;
}
dönüş(0);
}
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
fellow :
Çizgiler neden çizilmiyor?



böyle bir şey olmalı, her şeyin işe yaradığına inanıyorum

 #property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_color1 clrDeepSkyBlue
#property indicator_color2 clrDeepSkyBlue

double UpBuffer[];
double DnBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,UpBuffer);
   SetIndexBuffer ( 1 ,DnBuffer);

   PlotIndexSetInteger ( 0 , PLOT_DRAW_TYPE , DRAW_LINE );
   PlotIndexSetInteger ( 0 , PLOT_DRAW_TYPE , PLOT_LINE_WIDTH , 3 );

   PlotIndexSetInteger ( 1 , PLOT_DRAW_TYPE , DRAW_LINE );
   PlotIndexSetInteger ( 1 , PLOT_DRAW_TYPE , PLOT_LINE_WIDTH , 3 );

//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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 i=rates_total- 1000 ;i<rates_total;i++)
     {
      UpBuffer[i]= 1.428 ;
      DnBuffer[i]= 1.41 ;
     }
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
 
voinG :
Bu göstergeyi indirin. Derlerken 228. satırda hata verdim çizim yapamadım o yüzden lütfen kusuruma bakmayın. Genel olarak, MT5'e atmak için kullandığım indikatörü istedim, bu yüzden buradayım, kendim yapamadım. Belki benim için yeniden yazabilirsin. Teşekkür ederim.
Kaydet İşlemi Tamamlandı mı? Bir şeye cevap ver.
 

Bana yardım et lütfen.

WATL'yi yeniden yazmaya çalıştım, neredeyse başarılı oldu. Çizgiler, eğri LWMA hesaplaması nedeniyle yanlış çiziyor. Ve en önemlisi, bazen bu tür sürprizler grafikte ortaya çıkıyor:

Sürpriz

WATL olarak kabul edilen, bazen bire bir noktalar dizisi.

Veya bazen grafiği döndürürsünüz ve noktaların tümü komşu çubukta kopyalanır.

Herhangi bir yardım için şimdiden teşekkürler =)

Dosyalar:
WATL.mq5  41 kb
 

Belki birileri bu göstergeyi MQL5 dönüşümlerinde görmüştür? http://www.kimiv.ru/index.php?option=com_remository&amp;Itemid=13&func=fileinfo&id=67

Автоматизация торговли на финансовых рынках - Скачать i-Spread3.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Индикаторы   Очень хорошую доработку индикатора i-Spread предложил пользователь pavik. Суть доработки в добавлении отображения минимальных значений спрэда за последние час, четыре часа и сутки. А также...
 
Mq5 için yeniden düzenlemeye yardımcı olun. Onlarsız, eller olmadan!
 

Merhaba,

Dönmediğim için yapamadım, istediğim buydu

Kısa olanlar, durdurulan göstergeden farklı bir çift için hesaplanan farklı bir hareketli tampon çağırır.

[kod]
#özellik göstergesi_separate_window
#özellik göstergesi_buffers 6
#property Indicator_plots 2
#özellik göstergesi_type1 DRAW_COLOR_LINE
#özellik göstergesi_type2 DRAW_COLOR_LINE
#özellik göstergesi_renk1 clrMavi
#özellik göstergesi_renk2 clrRed
#özellik göstergesi_style1 STYLE_SOLID
#özellik göstergesi_style2 STYLE_SOLID

giriş int periyot_1 = 20;
girdi int period_2 = 100;
ENUM_MA_METHOD girin ma_method = MODE_SMA;
ENUM_APPLIED_PRICE girdisi application_price = PRICE_CLOSE;

çift ExtMapBuffer1[];
çift ExtMapBuffer2[];
intEMHandle1=0;
intEMHandle2=0;
intEMHandle11=0;
intEMHandle22=0;
MqlParam parametreleri[]; // Parametreleri göstergede saklamak için yapı
double ma1[],ma2[],ma3[],ma4[];//Zaman arabelleği

int OnInit()
{
//--- gösterge arabellek eşlemesi
SetIndexBuffer(0, ExtMapBuffer1, INDICATOR_DATA);
SetIndexBuffer(1, ExtMapBuffer2, INDICATOR_DATA);
SetIndexBuffer(2, ma1, INDICATOR_DATA);
SetIndexBuffer(3, ma2, INDICATOR_DATA);
SetIndexBuffer(4, ma3, INDICATOR_DATA);
SetIndexBuffer(5, ma4, INDICATOR_DATA);

PlotIndexSetInteger(0, PLOT_SHIFT, 0);
PlotIndexSetInteger(1, PLOT_SHIFT, 0);

PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_SOLID);
PlotIndexSetInteger(1,PLOT_LINE_STYLE,STYLE_SOLID);
//---
PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrBlue);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,clrRed);

PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
IndicatorSetString(INDICATOR_SHORTNAME,"2_2_MA");
//--- doğruluğu ayarla
GöstergeSetTamsayı(INDICATOR_DIGITS,4);
//---
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_1;
// Telafi etmek
params[1].type =TYPE_INT;
params[1].integer_value=0;
// Hesaplama yöntemi: basit ortalama
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
// Hesaplama için fiyat türü: kapanış fiyatları
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle1 = IndicatorCreate(_Symbol, 0, IND_MA, 4, paragraflar);
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_2;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle2 = IndicatorCreate(_Symbol, 0, IND_MA, 4, paragraflar);
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_1;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle11 = IndicatorCreate(_Symbol, 0, IND_MA, 4, paragraflar);
ArrayResize(params,4);
params[0].type =TYPE_INT;
params[0].integer_value=period_2;
params[1].type =TYPE_INT;
params[1].integer_value=0;
params[2].type =TYPE_INT;
params[2].integer_value=MODE_SMA;
params[3].type =TYPE_INT;
params[3].integer_value=PRICE_CLOSE;

EMHandle22 = IndicatorCreate(_Symbol, 0, IND_MA, 4, paragraflar);

dönüş(0);
}
int OnCalculate (const int oranlar_toplam, // fiyat[] dizi boyutu;
const int prev_hesaplanmış,// mevcut çubuk sayısı ;önceki çağrıda;
const int başlangıç,// geçerli verinin fiyat[] dizisindeki hangi dizinde başladığı;
const double &fiyat[]) // göstergenin hesaplanacağı dizi;
{
int i;
ArraySetAsSeries(ma1, true);
ArraySetAsSeries(ma2, doğru);
ArraySetAsSeries(ma3, doğru);
ArraySetAsSeries(ma4, true);

if(CopyBuffer(EMHandle1, 0, 0, 1, ma1) < 0){Print("CopyBuffer ma1 hatası =", GetLastError());}
if(CopyBuffer(EMHandle2, 0, 0, 1, ma2) < 0){Print("CopyBuffer ma2 hatası =", GetLastError());}
if(CopyBuffer(EMHandle11, 0, 0, 1, ma3) < 0){Print("CopyBuffer ma3 error =", GetLastError());}
if(CopyBuffer(EMHandle22, 0, 0, 1, ma4) < 0){Print("CopyBuffer ma4 hatası =", GetLastError());}
int limiti;
//if(önceki_hesaplanmış<1)
//sınır=dönem_1;
limit=önceki_hesaplanan-1;
for( i=0; i<limit; i++)
ExtMapBuffer1[0]=hesaplama;
ExtMapBuffer2[0]=hesaplama;

Yorum(
"\n=====================",
"\n ma1[0] : ",DoubleToString(ma1[0],5),
"\n ma2[0] : ",DoubleToString(ma2[0],5),
"\n ma3[0] : ",DoubleToString(ma3[0],5),
"\n ma4[0] : ",DoubleToString(ma4[0],5),
"\n ExtMapBuffer1[0] : ",DoubleToString(ExtMapBuffer1[0],4),
"\n ExtMapBuffer2[0] : ",DoubleToString(ExtMapBuffer2[0],4)
);
dönüş(oranlar_toplam);
}
geçersiz OnDeinit(const int nedeni)
{
Yorum("");
}
[/kod]

i (bar için) yerine 0 olduğunda sonucu görüyorum, bar için (current= i ) ne zaman ikinci çift için veri bulamadığını veriyor.

Parite tablosu açık, market penceresinde bir sembol var, nerede/neyi karıştırıyorum anlamadım?

Bir göstergede iki farklı çift - peki benim hatam nerede?

0'a ayarladığımda sonucu yorum olarak görüyorum ama denemediğim için çizgiler çekmiyor.

Açıklama: bir çiftte ma1 ve ma2 ve başka bir çiftte ma3 ve ma4.

Teşekkürler.

Neden: