Kodlama yardımı.. Uyarı yerine filtrelenecek göstergeyi nasıl alabilirim? - sayfa 2

 
Aaragorn:
bunu yapabilir miyim? göstergeye arabellek indeksleri yazın ve üst ve alt kelimeleri bu şekilde kullanın ve üst ve alt satırların değerlerini döndürmesini sağlayın?

Göstergeye değil. EA'da. (Bir gösterge ile yapabilirsiniz, ancak aynı göstergeyi kendi kodu içinde kullanamazsınız!!!!!)

 
elihayun:
Göstergeye değil. EA'da. (Bir gösterge ile yapabilirsiniz, ancak aynı göstergeyi kendi kodu içinde kullanamazsınız!!!!!)

bu yüzden EA'da bir tampon indeksi yazabilirim ama göstergeden değeri nasıl alıyor? Biraz aptalca olan kendi kodunun içindeki göstergeyi kullanmak istemedim. iletişim kopukluğumu bağışlayın. Bazen sorunun ne olduğunu özellikle yeterince anlatmak kolay değildir. Hem kodlamanın hem de başkalarına kodlama hakkında konuşmanın sıkıntısı budur.

 

Bana yardım etmeye çalışanlardan özür dilememe izin verin, ancak gönderilerimi aşırı bilgi yüklemesi olarak görüyorum. Temelde bir sürü kod gönderdim çünkü daha sonra iki pencereyi yan yana açabiliyorum, bir pencere bu iş parçacığı ve diğeri meta düzenleyici ve kodun bir bölümüne bir pencerede ve diğer bir bölümüne diğer pencerede bakabiliyorum. pencere ve bunu, baktığım problemle ilgili yolumu düşünmeme yardımcı olmak için yapıyorum. Bu şekilde oldukça görselim ve ne yaptığımı ve yapmak istediğimi düşünmeme yardımcı oluyor. Hepsine bakmak zorunda oldukları bir sürü kodla kimseyi bunaltmak istemiyorum. Bazen tüm EA'yı veya tüm göstergeyi gönderdikten sonra NEREDE ve NE yapılması gerektiğine odaklanmaya çalışırken parçacıkları ayırmaya çalıştım. Yaptığım şeye bakmak için zaman ayıran ve yapıcı girdiler sunan herkesi takdir ediyorum. Gönderdiklerimin hacmi çok fazlaysa, sadece ne yapmaya çalıştığımı aramak için filtreleyin ve yalnızca yaptığım şeyle ilgili olarak orada olan geri kalanıyla çıkmaza girmeyin. Temelde sesli düşünüyorum.

 
Aaragorn:
bu yüzden EA'da bir tampon indeksi yazabilirim ama göstergeden değeri nasıl alıyor? Biraz aptalca olan kendi kodunun içindeki göstergeyi kullanmak istemedim. iletişim kopukluğumu bağışlayın. Bazen sorunun ne olduğunu anlatmak kolay değil. Hem kodlamanın hem de başkalarına kodlama hakkında konuşmanın sıkıntısı budur.

NASIL ile uğraşmayın. Bırakın Metatrader bunu sizin için yapsın. U sadece beğendiğiniz bilgileri almak için kodu kullanın.

İpucu: EA'yı çalıştırdığınızda şunu göreceksiniz: "Trend Bantları başarıyla yüklendi", bu istediğinizi yaptığı anlamına gelir

 
elihayun:
NASIL ile uğraşmayın. Metatrader'ın bunu sizin için yapmasına izin verin. U sadece beğendiğiniz bilgileri almak için kodu kullanın. İpucu: EA'yı çalıştırdığınızda şunu göreceksiniz: "Trend Bantları başarıyla yüklendi", bu istediğinizi yaptığı anlamına gelir

Sevdiğim bilgiyi almak için kodu kullanmanın sesini seviyorum, öğrenmeye çalıştığım şey bu. Beğendiğim bilgileri almak için kodu NASIL kullanacağım.

Yani trend bantları için tik değerini almanın en iyi yolunun iCustome() kullanmak olduğunu mu düşünüyorsunuz? ve zaten yaptığım gibi kodu EA'nın içine YAZMAYIN?

Eğitsel amaçlar için.. EA'da zaten yazılmış koda sahip olduğum için, oradan değerleri almanın bir yolu var mı?

 
elihayun:
Bir gösterge yazmak bir şeydir ve bir EA yazmak başka bir şeydir. Onları karıştırmayın. Göstergelerde, doğru çizmek için tarihle de uğraşmak zorundasınız. Bir EA yazarken sadece mevcut tik'e sahipsiniz ve her tik'in değerlerini hesaplamanız gerekiyor (eğer bir ticareti kaybetmek istemiyorsanız). Yani, CURRENT tick'in üst ve alt kenarının değerlerini almak için 2 şey yapabilirsiniz.
  1. Orijinal göstergeyi özel gösterge olarak kullanın
  2. göstergenin mantığını EA'nızın içine yazın

1. seçenek zor değil. İlk önce, üst satır ve alt satır için kullanılan arabellek indeksinin ne olduğunu öğrenmelisiniz.

gösterge koduna bakman gerektiğini bul

bir dakika bekleyin, tamponları var! onları nasıl kaçırmış olabilirim?

//+------------------------------------------------------------------+

//| Trend Bands.mq4 |

//| Dwt5 and adoleh2000 |

//| Copyright © 2005, MetaQuotes Software Corp. |

//| http://www.metaquotes.net |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2005, MetaQuotes Software Corp."

#property link "http://www.metaquotes.net"

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

#property indicator_chart_window

#property indicator_buffers 5

#property indicator_color1 Red

#property indicator_color2 Black

#property indicator_color3 Blue

#property indicator_color4 Red

#property indicator_color5 Blue

double upper[], middle1[], middle2, lower[];

double Xup[], Xdown[];

extern int period = 34;

int init()

{

SetIndexStyle(0,DRAW_LINE,EMPTY,2);

SetIndexShift(0,0);

SetIndexDrawBegin(0,0);

SetIndexBuffer(0,upper);

SetIndexStyle(1,DRAW_LINE,EMPTY,2);

SetIndexShift(1,0);

SetIndexDrawBegin(1,0);

SetIndexBuffer(1,middle1);

SetIndexStyle(2,DRAW_LINE,EMPTY,2);

SetIndexShift(2,0);

SetIndexDrawBegin(2,0);

SetIndexBuffer(2,lower);

SetIndexStyle(3,DRAW_ARROW,EMPTY,2);

SetIndexArrow(3, 162);

SetIndexShift(3,0);

SetIndexDrawBegin(3,0);

SetIndexBuffer(3,Xdown);

SetIndexStyle(4,DRAW_ARROW,EMPTY,2);

SetIndexArrow(4, 162);

SetIndexShift(4,0);

SetIndexDrawBegin(4,0);

SetIndexBuffer(4,Xup);

//---- indicators

//----

return(0);

}

yani....5 tampon görüyorum...bir üst, orta, alt ve yukarı ve aşağı ...

Sanırım istediğim bilgi üst ve alt tampondan ...

 
 
Aaragorn:
Bunun bir öncekinin düzenlemesi değil yeni bir gönderi olmasını kastetmiştim, site operasyonu bazen hala kafamı karıştırıyor..

Bence bunu yapmanın en iyi yolu göstergeyi KULLANMAMAK. Bu sadece en basit yoldur. Başlangıç için yeterince iyi.

Göstergede yaptığım değişikliklere bakıyorsunuz. Bunu kullanmak istiyorsanız, kodunuzun içine doğru adı yazdığınızdan emin olun.

İstediğiniz bilginin hangi arabellekte olduğunu bildiğiniz sürece, kodda birçok göstergenin olması önemli değil

 
elihayun:
Bir gösterge yazmak bir şeydir ve bir EA yazmak başka bir şeydir. Onları karıştırmayın. Göstergelerde, doğru çizmek için tarihle de uğraşmak zorundasınız. Bir EA yazarken sadece mevcut tik'e sahipsiniz ve her tik'in değerlerini hesaplamanız gerekiyor (eğer bir ticareti kaybetmek istemiyorsanız). Yani, CURRENT tick'in üst ve alt kenarının değerlerini almak için 2 şey yapabilirsiniz.
  1. Orijinal göstergeyi özel gösterge olarak kullanın
  2. göstergenin mantığını EA'nızın içine yazın

1. seçenek zor değil. İlk önce, üst satır ve alt satır için kullanılan arabellek indeksinin ne olduğunu öğrenmelisiniz.

gösterge koduna bakman gerektiğini bul

SetIndexBuffer(0,üst);

SetIndexBuffer(1,orta1);

SetIndexBuffer(2, alt);

Gördüğünüz gibi üst satır dizin 0, orta dizin 1 ve alt satır dizin 2'dir.

Şimdi, bu bilgiye sahip olduğumuza göre, göstergenin kaç parametresi olduğunu bilmeliyiz. Bu bilgiyi elde etmek için harici kelimesiyle başlayan satırları aramanız gerekir.

sadece 1 satır buldum

dış int nokta = 34;

Artık göstergeyi bir custome olarak kullanabiliriz.

double upLevel = iCustome(NULL,0, "Trend Bantları", 34, 0, 0);

double LowLevel = iCustome(NULL,0, "Trend Bantları", 34, 2, 0);

34, göstergenin parametresidir

0 tampon indeksidir (alt için 2)

son 0 çubuk kaymasıdır (EA'da akıma ihtiyacımız var, bu yüzden 0 kullanıyoruz

artık üst ve alt değerlere sahip olduğunuza göre bunları fiyata göre kontrol edebilirsiniz

Umarım ilerlemenizi sağlar

Eli

hey, bu, üst ve alt satırların mevcut değerini EA'ya çekmek için çalışacaktır.

double upLevel = iCustome(NULL,0, "Trend Bantları", 34, 0, 0);

double LowLevel = iCustome(NULL,0, "Trend Bantları", 34, 2, 0);

Sanırım ders sayesinde bunu anlamaya başlıyorum...

bu yüzden EA'nın içine gösterge kodunu yazmak zorunda değilim, sadece onu EA'dan böyle çağırın.... ve daha sonra kullanabileceğim satırların mevcut çubuk değerlerini döndürecek... bu mükemmel! ....bkz. BİRİSİNİN bunu nasıl yapacağını bildiğini biliyordum! (sadece ben değildim) ...

yani gösterge için kullandığım periyot sayısını değiştirebilmek istersem bunu yapardım ...

extern double back = 300 //--istediğim gibi değiştirebilirim

double upLevel = iCustome(NULL,0, "Trend Bantları", geri, 0, 0);

double LowLevel = iCustome(NULL,0, "Trend Bantları", geri, 2, 0);

Grafikte kullandığım zamandan daha uzun bir sürenin göstergesinin değerini aramak istediğimi varsayarsak...bunu yapar mıydım?...

extern double back = 300 //--istediğim gibi değiştirebilirim

extern double TF = 30 //--istediğim gibi değiştirebilirim

double upLevel = iCustome(NULL,TF, "Trend Bantları", geri, 0, 0);

double LowLevel = iCustome(NULL,TF, "Trend Bantları", geri, 2, 0);

NULL, geçerli sembolü kullanırsa,

TF, belirttiğim grafik çubuğu dönemini kullanır

Trend Bantları göstergeyi çağırır

geri, gösterge ortalaması için kullanılacak kullanıcı tanımlı çubuk sayısıdır

0 veya 2, hangi arabelleğe erişeceğini söyler

ve son 0, geçerli çubuğu kullanmasını söyler

Işe yarar mı?

 
Aaragorn:
Işe yarar mı?

Harika!!! Fikriniz var!!!!

Mükemmel çalışacak. ve 5M ve 15M'nin aynı anda kenara ulaştığını kontrol etmek istiyorsanız, her bir TF'den değerleri alıp birlikte test edebilirsiniz.

Ama bunu sonraya bırakın....