Ben bir acemiyim ve HA'yı yeni bir pencerede almak istiyorum .. - sayfa 3

 

bunun için teşekkürler

Çizgi çizmek için Nesneleri kullandığımızda, yukarıdaki kodda SetIndexStyle (0, DRAW_LINE) bu çizginin rolü nedir? Bunlardan hiç bahsetmemize gerek var mı, arabelleklerin rolünü anlıyorum Bir arabelleğin neden bir dizine bağlanması gerektiğini ve neden bir dizinin neden bir stile sahip olması gerektiğini bilmiyorum, çünkü gördüğümüz, fiyat öznitelikleriyle createObject çağrısının dışında mı?


Yukarıdaki kodu kullanarak kendinizi gördünüz mü, mumların kavisli kenarları var ve fiyat tablosu olarak saf dikdörtgenler değil mi?

 

Onu zaten açıkladım.

Dikdörtgenler istiyorsanız, trend çizgisi nesneleri yerine dikdörtgenler çizin.

 

Merhaba Phy

Zahmet ettiğim için üzgünüm, DİKDÖRTGEN seçeneği çalışmıyor, bu yüzden sizi rahatsız ediyorum, sabrınız için teşekkürler ve lütfen bunu deneyin ve bana bildirin, HA hesaplamalarını düzelttim.

Lütfen son bir kez deneyin teşekkürler, keşke bu dikdörtgenin düzgün çalışmasını sağlayabilsem.


#özellik göstergesi_separate_window

#özellik göstergesi_buffers 6
#özellik göstergesi_renk1 CLR_NONE
#özellik göstergesi_color2 CLR_NONE


çift yüksek[];
çift düşük[];
çift açık[];
çift kapanış[];
çift haOpen1[];
çift haClose1[];

//+------------------------------------------- -------------------+
//| Özel gösterge başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexStyle(4, DRAW_LINE);
SetIndexStyle(5, DRAW_LINE);
SetIndexBuffer(0, yüksek);
SetIndexBuffer(1, düşük);
SetIndexBuffer(2, açık);
SetIndexBuffer(3, kapat);
SetIndexBuffer(4, haOpen1);
SetIndexBuffer(5, haClose1);
dönüş(0);
}
//+------------------------------------------- -------------------+
//| Özel gösterge sıfırlama işlevi |
//+------------------------------------------- -------------------+
int tanım()
{

dönüş(0);
}
//+------------------------------------------- -------------------+
//| Özel gösterge yineleme işlevi |
//+------------------------------------------- -------------------+
int start(){

string basename = "Heikin-Ashi";
GöstergeKısaAdı(taban adı);
int pencere = WindowFind(taban adı);

for (int i = Çubuk-100; i >= 0; i--){

// bu iki dizin alt pencerenin boyutunu kontrol etmek için kullanılır
// onlar görünmez
yüksek[i] = Yüksek[i];
düşük[i] = Düşük[i];
çift haOpen, haHigh, haLow, haClose,haDiffCo;
haOpen=(haOpen1[i+1]+haClose1[i+1])/2;
haOpen1[i] = haOpen;
haClose=(Açık[i]+Yüksek[i]+Düşük[i]+Kapat[i])/4;
haClose1[i] = haClose;
haHigh=MathMax(haOpen,Yüksek[i]);
haLow=MathMin(haOpen,Düşük[i]);
string name1 = "Heikin-Ashi-HL-"+i;

if(ObjectFind(name1) != -1) ObjectDelete(name1);
ObjectCreate(ad1, OBJ_TREND, pencere, Zaman[i], haYüksek, Zaman[i], haLow);
ObjectSet(ad1, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(isim1, OBJPROP_RAY, 0);
ObjectSet(isim1, OBJPROP_WIDTH, 2);

string name2 = "Heikin-Ashi-OC-"+i;
if(ObjectFind(name2) != -1) ObjectDelete(isim2);
ObjectCreate(name2, OBJ_RECTANGLE, pencere, Zaman[i], haOpen, Zaman[i], haClose);
ObjectSet(name2, OBJPROP_WIDTH, 5);
//ObjectSet(name2, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(isim2, OBJPROP_RAY, 0);

if (haOpen <haClose) {
ObjectSet(ad1, OBJPROP_COLOR, Chartreuse);
ObjectSet(name2, OBJPROP_COLOR, Chartreuse);
}başka{
ObjectSet(isim1, OBJPROP_COLOR, Kırmızı);
ObjectSet(name2, OBJPROP_COLOR, Kırmızı);
}

}

dönüş(0);
}

 

Mumlar trend çizgileri olmalı

Vücut genişliği 2 veya daha büyük olasılıkla, 3

Çizgilerin "yuvarlanmasından" ne bahsettiğini bilmiyorum


bir resim göster

 
resme bakın lütfen..
 

Bazen sola kaydırdığınızda bunu da elde edersiniz (Karışık yeşil ve kırmızı)

 

Evet, görüyorum.

Sanırım orada silmek için bazı eski çubuklarınız var.

 
Cevabınız için teşekkürler, nasıl yapılır?
 

neyin yanlış olduğunu anlayın, sonra onu nasıl düzeltebileceğinizi düşünün. yinelenen çubuklar var mı, neler oluyor?

 

Merhaba Phy

Haklıysam, sorun bunu yapmamdan kaynaklanıyor olabilir.

SetIndexStyle (0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexStyle(4, DRAW_LINE);
SetIndexStyle(5, DRAW_LINE);

Yukarıdakileri yapıyorum ve tamponların çizilmesini sağlıyorum ve aynı zamanda


if(ObjectFind(name1) != -1) ObjectDelete(name1);
ObjectCreate(ad1, OBJ_TREND, pencere, Zaman[i], haYüksek, Zaman[i], haLow);
ObjectSet(ad1, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(isim1, OBJPROP_RAY, 0);
ObjectSet(isim1, OBJPROP_WIDTH, 2);

string name2 = "Heikin-Ashi-OC-"+i;
if(ObjectFind(name2) != -1) ObjectDelete(isim2);
ObjectCreate(name2, OBJ_TREND, pencere, Zaman[i], haOpen, Zaman[i], haClose);
ObjectSet(name2, OBJPROP_WIDTH, 5);
//ObjectSet(name2, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(isim2, OBJPROP_RAY, 0);

Yani hem arabellekteki veriler hem de nesneler üst üste çizilmiş, doğru mu?

Sadece veri depolama için arabelleği kullandığım ve onu çizmek istemediğim için dizin stili kodunun ayarını kaldırmalı mıyım?

Haklıyım?

Neden: