Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Murray seviyelerine biraz güzellik getirdi
Tünaydın. Zanaatkarların gerçekten korelasyon göstergesini MT5'e çevirmesi gerekiyor
#ö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);
}
Çizgiler neden çizilmiyor?
böyle bir şey olmalı, her şeyin işe yaradığına inanıyorum
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.
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:
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 =)
Belki birileri bu göstergeyi MQL5 dönüşümlerinde görmüştür? http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=67
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.