Ich bin ein Neuling und möchte HA in einem neuen Fenster erhalten.. - Seite 2

 
Sie zeichnen in einem separaten Fenster, indem Sie die Fensternummer in der Funktion ObjectCreate() angeben.
 

Hallo Phy

ich habe es seit heute Morgen versucht, es erscheint nichts auf dem Bildschirm. Dein Code wäre sehr hilfreich, damit ich mich auf andere Dinge konzentrieren kann

ich habe das Objekt create

mit Typ als Rechteck, groß und klein, nichts erscheint auf dem Bildschirm. Ich weiß nicht, wie man die Zeit und Preisniveaus angeben und ein Candlestick-Muster erhalten

Pleasse bieten Ihren Code würde sehr geschätzt oder ein Beispiel für eine Kerze mit Objekt erstellen funciton erhalten

 
Hier ist ein Beispiel:

Es zeichnet einfache Balken.

#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);
  }
 

Hallo Phy danke für den Code, aber der Code nicht erstellen Kerze Stick Bars, es schafft eine Linie bar. Ich brauche etwas für Candlestickbars plzz..zzz,>

Ich bin so verwirrt, warum ist es so schwer, einen Candlestick-Balken mit diesen Funktionen zu erstellen?

Bitte um Hilfe

Danke für Ihre Unterstützung

 
Fügen Sie also den Körper hinzu:


...
...
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);

   }
...
...
 

Schließlich danke Ihnen so viel bekam es funktioniert, aber die Kerze Körper ist alle oben und unten gesmuggelt, warum? jede Idee? und schlimmer um letzten 20 Kerzen...


#property indicator_separate_window

#Eigenschaft indicator_buffers 5
#property indicator_color1 CLR_NONE
#property indikator_farbe2 CLR_NONE


double high[];
double low[];
double open[];
double close[];
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
SetIndexStyle(0, DRAW_LINE);
SetIndexStyle(1, DRAW_LINE);
SetIndexStyle(2, DRAW_LINE);
SetIndexStyle(3, DRAW_LINE);
SetIndexBuffer(0, hoch);

SetIndexBuffer(1, niedrig);
SetIndexBuffer(2, open);
SetIndexBuffer(3, close);


return(0);
}
//+------------------------------------------------------------------+
//| Benutzerdefinierte Funktion zur Deinitialisierung des Indikators |
//+------------------------------------------------------------------+
int deinit()
{

return(0);
}
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Iterationsfunktion |
//+------------------------------------------------------------------+
int start(){

string basename = "Heikin-Ashi";
IndicatorShortName(basename);
int window = WindowFind(basename);

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

// diese beiden Indizes werden zur Steuerung der Größe des Teilfensters verwendet
// sie sind nicht sichtbar
hoch[i] = Hoch[i];
low[i] = Low[i];
double haOpen, haHigh, haLow, haClose,haDiffCo;
haOpen=(Open[i+1]+Close[i+1])/2;
open[i] = haOpen;
haClose=(Open[i]+High[i]+Low[i]+Close[i])/4;
close[i] = haClose;
haHigh=MathMax(haOpen,High[i]);
haLow=MathMax(haOpen,Low[i]);
string name1 = "Heikin-Ashi-HL-"+i;

if(ObjectFind(name1) != -1) ObjectDelete(name1);
ObjectCreate(name1, OBJ_TREND, window, Time[i], haHigh, Time[i], haLow);
ObjectSet(name1, OBJPROP_STYLE, STYLE_SOLID);
ObjectSet(name1, OBJPROP_RAY, 0);
ObjectSet(name1, OBJPROP_WIDTH, 1);

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

if (haOpen < haClose) {
ObjectSet(name1, OBJPROP_COLOR, Chartreuse);
ObjectSet(name2, OBJPROP_COLOR, Chartreuse);
}else{
ObjectSet(name1, OBJPROP_COLOR, Rot);
ObjectSet(name2, OBJPROP_COLOR, Rot);
}

}

return(0);
}

 
Was bedeutet "smugged"?

Außerdem stelle ich fest, dass es mit Ihrem Code keine unteren Schwänze gibt.
Ich glaube, Ihre HA-Berechnung ist nicht ganz korrekt.
 

Danke phy

für deine freundliche Antwort, smugged bedeutet, dass der Körper keine richtigen Rechtecke sind, die Kanten sind gebogen. Sie haben auch Recht, es gibt keine unteren Schwänze... Ich frage mich, whyy all dies.


Wie kann ich Körper perfekte Rechtecke wie Preisdiagramm machen?


Frage:

1. Wir deklarieren Indikatoren und Puffer auf der Oberseite und sagen dann Index-Stil als DRAW_LINE. Dann sagen wir einfügen Trendlinie mit dieser Breite und Farbe, um einen Indikator darstellen. Also verwenden wir nur die Puffer für die Malerei des Objekts (Trendlinie) müssen wir Indikatoren auf der Oberseite zu deklarieren und machen Index-Stil als draw_line?

Es ist ein bisschen verwirrend, sowohl drawline und Objekt einfügen trendline haben?


Bitte Ihre Experten Kommentare und wäre dankbar, wenn Sie mein Denken korrigieren können?

 

DAS war das Problem mit den Schwänzen,

haLow=MathMax(haOpen,Low[i]);

sollte sein

haLow=MathMin(haOpen,Low[i]);

Meine vorherige Frage bleibt immer noch bestehen, bitte helfen Sie mir?

für Ihre freundliche Antwort, smugged bedeutet, dass die Körper sind nicht richtig Rechtecke die Kanten sind gekrümmt. Wie kann ich Körper perfekte Rechtecke wie Preisdiagramm machen?

Frage:

1. Wir deklarieren Indikatoren und Puffer auf der Oberseite und sagen dann Index-Stil als DRAW_LINE. Dann fügen wir eine Trendlinie mit dieser Breite und Farbe ein, um einen Indikator darzustellen. Also verwenden wir nur die Puffer für die Malerei des Objekts (Trendlinie) müssen wir Indikatoren auf der Oberseite zu deklarieren und machen Index-Stil als draw_line?

Es ist ein bisschen verwirrend, sowohl drawline und Objekt einfügen trendline haben?

Ich bitte um Ihre fachkundigen Kommentare und wäre Ihnen dankbar, wenn Sie mein Denken korrigieren könnten.

 
Das Indikatorfenster kann eine bestimmte Größe haben, indem man #property indicator_maximum und #property indicator_minumum

Wenn diese nicht angegeben sind (in meinem Beispiel sind sie es nicht), dann ändert das Indikatorfenster seine Größe auf der Grundlage der angezeigten
höchsten und niedrigsten Werte eines der Indikatorindizes.

Wir sagen nie "Trendlinie einfügen"... Die Objekte werden mit bestimmten Zeit- und Preisattributen gezeichnet.

Die Indexpuffer sind dazu da (aber unsichtbar), um die Größe des Teilfensters entsprechend anzupassen, wenn sich die Preise im Laufe der Zeit ändern.
Grund der Beschwerde: