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

 
ObjectCreate () fonksiyonunda pencere numarasını belirterek ayrı bir pencerede çizim yaparsınız.
 

Merhaba Phy

Bu sabah denedim, ekranda hiçbir şey görünmüyor. Kodunuz gerçekten yardımcı olacak, böylece başkalarına konsantre olmaya başlayabilirim

nesne oluşturma kullandım

dikdörtgen, büyük ve küçük yazı ile ekranda hiçbir şey görünmez. zaman ve fiyat seviyelerini nasıl belirleyeceğimi ve bir şamdan deseni nasıl elde edeceğimi bilmiyorum

Lütfen kodunuzu sağlayın veya nesne oluşturma işlevini kullanarak bir şamdan almak için bir örnek verin.

 
İşte bir örnek:

Basit çubuklar çizer.

 #property indicator_separate_window
 
#property indicator_buffers 2
#property indicator_color1 CLR_NONE
#property indicator_color2 CLR_NONE
 
 
double high [] ;
double low [] ;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init ()
  {
    SetIndexBuffer ( 0 , high ) ;
    SetIndexBuffer ( 1 , low ) ;
    SetIndexStyle ( 0 , DRAW_LINE ) ;
    SetIndexStyle ( 1 , DRAW_LINE ) ;
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit ()
  {
 
   return ( 0 ) ;
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start (){
  
   string basename = " test " ;
   IndicatorShortName ( basename ) ;
   int window = WindowFind ( basename ) ;
  
   for ( int i = Bars - 100 ; i >= 0 ; i -- ){
  
       // these two indexes are used to control the size of the subwindow
       // they are not visible
       high [ i ] = High [ i ] ;
       low [ i ] = Low [ i ] ;
 
       string name = basename + i ;
  
       if ( ObjectFind ( name ) != - 1 ) ObjectDelete ( name ) ;
       ObjectCreate ( name , OBJ_TREND , window , Time [ i ] , High [ i ] , Time [ i ] , Low [ i ]) ;
       ObjectSet ( name , OBJPROP_RAY , 0 ) ;
   }
   return ( 0 ) ;
  }
 

Merhaba Phy, kod için teşekkürler, ancak kod mum çubukları oluşturmaz, bir çizgi çubuğu oluşturur. Mum çubukları için bir şeye ihtiyacım var plzz..zzz,>

Bu işlevleri kullanarak bir şamdan çubuğu oluşturmak neden bu kadar zor?

Lütfen yardım et

desteğin için teşekkürler

 
Öyleyse gövdeyi ekleyin:


 ...
...
string name = basename + i ;
  
   if ( ObjectFind ( name ) != - 1 ) ObjectDelete ( name ) ;
       ObjectCreate ( name , OBJ_TREND , window , Time [ i ] , High [ i ] , Time [ i ] , Low [ i ]) ;
       ObjectSet ( name , OBJPROP_RAY , 0 ) ;
   }
   name = basename + "Body"+i ;
  
   if ( ObjectFind ( name ) != - 1 ) ObjectDelete ( name ) ;
       ObjectCreate ( name , OBJ_TREND , window , Time [ i ] , Open [ i ] , Time [ i ] , Close [ i ]) ;
       ObjectSet ( name , OBJPROP_WIDTH , 3 ) ;
       ObjectSet ( name , OBJPROP_RAY , 0 ) ;

   }
...
...
 

Sonunda çok teşekkür ederim İşe yaradı ama mum gövdesi üstte ve altta gizli, neden? Herhangi bir fikir? ve son 20 mum civarında daha da kötüsü...


#özellik göstergesi_separate_window

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


çift yüksek[];
çift düşük[];
çift açık[];
çift kapanış[];
//+------------------------------------------- -------------------+
//| Ö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);
SetIndexBuffer(0, yüksek);

SetIndexBuffer(1, düşük);
SetIndexBuffer(2, açık);
SetIndexBuffer(3, kapat);


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;
haAç=(Aç[i+1]+Kapat[i+1])/2;
open[i] = haOpen;
haClose=(Açık[i]+Yüksek[i]+Düşük[i]+Kapat[i])/4;
kapat[i] = haClose;
haHigh=MathMax(haOpen,Yüksek[i]);
haLow=MathMax(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, 1);

string name2 = "Heikin-Ashi-OC-"+i;
if(ObjectFind(name2) != -1) ObjectDelete(isim2);
ObjectCreate(name2, OBJ_TREND, pencere, Zaman[i], haOpen, Zaman[i], haClose);
ObjectSet(isim2, OBJPROP_WIDTH, 3);
//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);
}

 
"Kaçak" nedir?

Ayrıca, kodunuzu kullanan daha düşük kuyruk olmadığını fark ettim.
HA hesaplamanızın tamamen doğru olduğunu düşünmüyorum.
 

teşekkürler phy

Nazik cevabınız için, kendini beğenmiş demek, gövdenin düzgün dikdörtgenler olmadığı, kenarları kavisli olduğu anlamına gelir. Senin de hakkın, dip not yok... Bütün bunların nedenini merak ediyorum.


Vücutları fiyat tablosu gibi mükemmel dikdörtgenler haline nasıl getirebilirim?


Soru:

1. En üstte göstergeleri ve arabellekleri bildiriyoruz ve ardından dizin stilini DRAW_LINE olarak söylüyoruz. Ardından, bir göstergeyi temsil etmek için bu genişlik ve renkte trend çizgisi ekle diyoruz. Yani tamponları sadece nesneyi (trendline) boyamak için kullanıyoruz, üstte göstergeler bildirmemiz ve indeks stilini draw_line olarak mı yapmamız gerekiyor?

Hem çizim çizgisine sahip olmak hem de nesne eğilim çizgisi eklemek biraz kafa karıştırıcı mı?


Lütfen uzman yorumlarınızı ve düşüncemi düzeltebilirseniz sevinirim?

 

Kuyruklarla ilgili sorun buydu,

haLow= MathMax (haOpen,Düşük[i]);

olmalı

haLow=MathMin(haOpen,Düşük[i]);

Bir önceki sorum hala orada duruyor lütfen yardım edin?

Nazik cevabınız için, kendini beğenmiş demek, vücudun uygun dikdörtgenler olmadığı, kenarların kavisli olduğu anlamına gelir. Vücutları fiyat tablosu gibi mükemmel dikdörtgenler haline nasıl getirebilirim?

Soru:

1. En üstte göstergeleri ve arabellekleri bildiriyoruz ve ardından dizin stilini DRAW_LINE olarak söylüyoruz. Ardından, bir göstergeyi temsil etmek için bu genişlik ve renkte trend çizgisi ekle diyoruz. Yani tamponları sadece nesneyi (trendline) boyamak için kullanıyoruz, üstte göstergeler bildirmemiz ve indeks stilini draw_line olarak mı yapmamız gerekiyor?

Hem çizim çizgisine sahip olmak hem de nesne eğilim çizgisi eklemek biraz kafa karıştırıcı mı?

Lütfen uzman yorumlarınızı ve düşüncemi düzeltebilirseniz sevinirim?

 
Gösterge penceresi, #özellik göstergesi_maksimum ve #özellik gösterge_minumum kullanılarak belirtilen bir boyutta olabilir.

Bunlar belirtilmemişse (benim örneğimde değiller), o zaman gösterge penceresi görüntülenen pencereye göre kendini yeniden boyutlandırır.
gösterge indekslerinden birinin en yüksek ve en düşük değerleri.

Asla trend çizgisi ekle demiyoruz... Objeler belirli zaman ve fiyat özellikleri ile çizilir.

Fiyatlar zaman içinde değiştikçe alt pencereyi uygun şekilde boyutlandırmak için indeks tamponları vardır (ancak görünmez).