Lütfen tekrarlanabilir bir örnek yapın. Yani, derleyebileceğiniz, bir grafiğe atabileceğiniz ve sonuç alabileceğiniz hazır bir koda ihtiyacınız var.
Bu olmadan, çok az insan neden bahsettiğimizi anlayacaktır.
İnsanları boş yere bekletmemek için kısa keseyim dedim.
İşte tam sürüm:
#property indicator_separate_window // Gösterge ayrı bir pencerede çizilir#property indicator_buffers 1#property indicator_plots 1#property indicator_type1 DRAW_LINE#property indicator_color1 Aquainputstring InstrumentName = "EURJPY";
//-- Gösterge dizisidouble ScreenBuffer[];
//-- Dinamik Tampon --double ArrayBuffer[];
intOnInit() // Özel init() işlevi
{
//--------------------------------------------------------------------IndicatorSetString(INDICATOR_SHORTNAME,InstrumentName);
SetIndexBuffer(0,ScreenBuffer,INDICATOR_DATA);
return0; // Çıkış
}
//--------------------------------------------------------------------intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime& time[],
constdouble& open[],
constdouble& high[],
constdouble& low[],
constdouble& close[],
constlong& tick_volume[],
constlong& volume[],
constint& spread[])
{
int Counted_bars; // Çalıştırılacak çubuk sayısı int copied;
//--------------------------------------------------------------------//1 input rates_total = 9667 / prev_calculated = 0 / Bars = 9667//-- o zaman rates_total = 9667 / prev_calculated = 9667 / Bars = 9667//-- işlem sırasında o zaman rates_total = 9668 / prev_calculated = 9667 / Bars = 9668//Print("rates_total: " + (string)rates_total);if (rates_total == prev_calculated) return (rates_total);//-- Hala aynı bar, yani biz yokuz--//-- İşlenmemiş çubukların sayısını al (ilk girişte hepsi, sonra 1)//-- Çıktı çubuklarının sayısı grafiğin kendisini ifade eder, ancak biz başka bir enstrümanın çıktısını alacağız//-- çubuk sayısı farklı olabilir, bu nedenle önce tüm verileri tampona atıyoruz --
Counted_bars = rates_total-prev_calculated;
// Print("Counted_bars: " + Counted_bars);Print("rates_total: " + rates_total + " / prev_calculated: " + prev_calculated + " / Bars: " + Bars(Symbol(),0));
//-- Ana enstrümanın çubuk sayısına göre bellek ayırın --if (ArrayResize(ArrayBuffer, Counted_bars,0) == -1) return (rates_total);//-- Bellek ayırma hatası --//--- dizi elemanlarını EMPTY_VALUE değeri ile başlatın ----ArrayInitialize(ArrayBuffer,EMPTY_VALUE);
//-- Bu enstrümanın gerçekte kaç çubuğu olduğunu alın --
copied = (int)SeriesInfoInteger(InstrumentName,0,SERIES_BARS_COUNT);
if (copied > 0){
copied=CopyClose(InstrumentName,0,0,copied,ArrayBuffer);//-- Verileri bellek tamponuna yaz --if (copied <= 0) return (rates_total);//-- hata
}
else{
return (rates_total);//-- hata
}
if (Counted_bars > copied) Counted_bars = copied;//-- Düşük değeri al --
Counted_bars--;//-- 0'dan itibaren sayıldığı için --//-- Veri bellek tamponuna yüklendi, şimdi sağdan sola doğru ekran tamponuna yaz --for (int i = Counted_bars; i > 0; i--){
ScreenBuffer[i] = ArrayBuffer[i];
}
//--------------------------------------------------------------------return(rates_total);
}
voidOnDeinit(constint reason)
{
ObjectsDeleteAll(0,0,-1); // grafikteki tüm nesneler silinir.
}
Ancak indükleyicinin mantığına ve uygulamasına girmediğim için sonuçların doğruluğunu değerlendirmek bana düşmez.
PS
Yine de parametredeki sembolden kurtulur ve onu mevcut sembol ve TF ile yapardım ve ardından normal iCustom () kullanarak Expert Advisor'da veya başka bir araçta kullanırdım.
Ayrıca, tamponlarla çalışmanın mantığını gerçekten anlamıyorum (hesap makinesinin kuyruğunu kastediyorum vb.). Bence üzerinde çalışılması gereken çok şey var....
Ancak indükleyicinin mantığına ve uygulamasına girmediğim için sonuçların doğruluğunu değerlendirmek bana düşmez.
PS
Yine de parametredeki sembolden kurtulur ve bunu mevcut sembole ve TF'ye göre yapardım ve ardından bunu Uzman Danışman'da veya normal iCustom () kullanarak başka herhangi bir araçta kullanırdım.
Ayrıca, tamponlarla çalışmanın mantığını gerçekten anlamıyorum (yani hesap makinesinin kuyruğu vb.). Bence üzerinde çalışılması gereken çok şey var....
Yine de tamponlarla çalışma algoritmasına dikkat ederdim. Doğru anladıysam, bir tampon yeterlidir (sadece doğru hesaplanması ve grafikte çizilmesi gerekir).
PS
Ve mevcut varyantla, indükleyicinin "sağ" (güncel) yerine "sol" verileri (geçmişin en başlangıcı) görüntülediği izlenimine sahibim ....
Ya da bu göstergenin mantığında hiçbir şey anlamıyorum....
6.Eksik gibi görünüyor:
TradePerformer( 4, Symb4, Trade4, StLoss4, TkProfit4, Lots4, Slippage4, UpSignal, DnSignal, UpStop, DnStop);
Exp_TEMA.mq5 içinde ?
6. Kayıp gibi görünüyor
Exp_TEMA.mq5'te?
Lütfen tekrarlanabilir bir örnek yapın. Yani, derleyebileceğiniz, bir grafiğe atabileceğiniz ve sonuç alabileceğiniz hazır bir koda ihtiyacınız var.
Bu olmadan, çok az insan neden bahsettiğimizi anlayacaktır.İnsanları boş yere bekletmemek için kısa keseyim dedim.
İşte tam sürüm:
Neyi yanlış yapıyorum, neden başka bir enstrümanın grafiğini normal şekilde görüntüleyemiyorum?
MQL4'te her şey çalıştı, burada yalnızca aynı enstrümanda görüntülerseniz çalışıyor, o zaman hata yok.
Neyi yanlış yapıyorum, neden başka bir enstrümanın grafiğini normal şekilde görüntüleyemiyorum?
MQL4'te her şey çalıştı, burada yalnızca aynı enstrümanda görüntülerseniz çalışıyor, o zaman hata yok.
Uygulamanın ve genel olarak algoritmanın doğruluğundan emin değilim, ancak koda ve onunla yapabildiklerime dayanarak bunu varsayıyorum:
Dize
şöyle görünmelidir
Belki de her yerde "0" olarak geçen periyodu PERIOD_CURRENT olarak değiştirmek daha doğru olacaktır.
En azından bu tür değişikliklerden sonra her şey benim için çalıştı.....
PS
Belki konuyla ilgili değildir, ancak bu şekilde derleyici çok daha az ÖNEMLİDİR
Genel olarak doğru uygulama ve algoritmadan emin değilim, ancak koda ve onunla yapabildiklerime dayanarak bunu varsayacağım:
Dize
şöyle görünmelidir
PS
Belki de her yerde "0" olarak geçen periyodu PERIOD_CURRENT olarak değiştirmek daha doğru olacaktır.
En azından bu tür değişikliklerden sonra her şey benim için çalıştı....
Ekranımda böyle görünüyor:

Açıkça yanlış.Benim için bu şekilde sonuçlandı
Ancak indükleyicinin mantığına ve uygulamasına girmediğim için sonuçların doğruluğunu değerlendirmek bana düşmez.
PS
Yine de parametredeki sembolden kurtulur ve onu mevcut sembol ve TF ile yapardım ve ardından normal iCustom () kullanarak Expert Advisor'da veya başka bir araçta kullanırdım.
Ayrıca, tamponlarla çalışmanın mantığını gerçekten anlamıyorum (hesap makinesinin kuyruğunu kastediyorum vb.). Bence üzerinde çalışılması gereken çok şey var....
Ben de bunu aldım.
Ancak indükleyicinin mantığına ve uygulamasına girmediğim için sonuçların doğruluğunu değerlendirmek bana düşmez.
PS
Yine de parametredeki sembolden kurtulur ve bunu mevcut sembole ve TF'ye göre yapardım ve ardından bunu Uzman Danışman'da veya normal iCustom () kullanarak başka herhangi bir araçta kullanırdım.
Interesting:
Ayrıca, tamponlarla çalışmanın mantığını gerçekten anlamıyorum (yani hesap makinesinin kuyruğu vb.). Bence üzerinde çalışılması gereken çok şey var....
Yine de tamponlarla çalışma algoritmasına dikkat ederdim. Doğru anladıysam, bir tampon yeterlidir (sadece doğru hesaplanması ve grafikte çizilmesi gerekir).
PS
Ve mevcut varyantla, indükleyicinin "sağ" (güncel) yerine "sol" verileri (geçmişin en başlangıcı) görüntülediği izlenimine sahibim ....
Ya da bu göstergenin mantığında hiçbir şey anlamıyorum....