Hilfe bei der Codierung - Seite 466

 

Guten Morgen an alle.

Ich habe viele Versionen dieses Indikators gesehen und rote Kerzen ich nie erscheinen, könnte der Fehler ???? korrigieren.

Ich danke Ihnen sehr viel.

#property indicator_separate_window

#Eigenschaft indicator_buffers 2

#property indikator_farbe1 LimeGreen

#property indicator_color2 Rot

//---- anzeigepuffer

double ind_buffer1[];

double ind_buffer2[];

double ind_buffer3[];

//----

double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1;

double resh = 0, resl = 0, deltah = 0, deltal = 0;

int CurrentBar=0;

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- 1 zusätzlicher Puffer für die Zählung verwendet.

IndicatorBuffers(3);

//---- Zeichnungseinstellungen

SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);

SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);

SetIndexDrawBegin(0, 34);

SetIndexDrawBegin(1, 34);

//---- Zuweisung von 3 Indikatorpuffern

if(!SetIndexBuffer(0, ind_buffer1) &&

!SetIndexBuffer(1, ind_buffer2) &&

!SetIndexBuffer(2, ind_buffer3))

Print("Indikatorpuffer können nicht gesetzt werden!");

//---- Name für DataWindow und Bezeichnung des Indikator-Unterfensters

IndikatorKurzname("DeltaForce");

SetIndexLabel(0, "DF1");

SetIndexLabel(1, "DF2");

//---- Initialisierung abgeschlossen

return(0);

}

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

//| Delta Force |

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

int start()

{

for(CB = 0 ; CB <= Bars ; CB++)

{

CurrentBar = Bars - CB;

if(Close[CurrentBar] > Close[CurrentBar+1])

{

resl = 0;

if(resh == 0)

deltah = 0;

deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]);

// valueh = High[CurrentBar];

resh= 1;

}

if(resh == 0)

deltah = 0;

ind_buffer1[CurrentBar] = deltah;

if(Close[CurrentBar] < Close[CurrentBar+1] )

{

resh = 0;

if(resl == 0)

deltal = 0;

deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]);

//valuel = Low[CurrentBar];

resl= 1;

}

if(resl == 0 )

deltal=0;

ind_buffer2[CurrentBar] = deltal;

}

//---- erledigt

return(0);

}

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

 
rookiespain:
Guten Morgen an alle.

Ich habe viele Versionen dieses Indikators gesehen und rote Kerzen ich nie erscheinen, könnte der Fehler ???? korrigieren.

Ich danke Ihnen sehr viel.

#property indicator_separate_window

#Eigenschaft indicator_buffers 2

#property indikator_farbe1 LimeGreen

#property indicator_color2 Rot

//---- anzeigepuffer

double ind_buffer1[];

double ind_buffer2[];

double ind_buffer3[];

//----

double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1;

double resh = 0, resl = 0, deltah = 0, deltal = 0;

int CurrentBar=0;

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- 1 zusätzlicher Puffer für die Zählung verwendet.

IndicatorBuffers(3);

//---- Zeichnungseinstellungen

SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);

SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);

IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);

SetIndexDrawBegin(0, 34);

SetIndexDrawBegin(1, 34);

//---- Zuweisung von 3 Indikatorpuffern

if(!SetIndexBuffer(0, ind_buffer1) &&

!SetIndexBuffer(1, ind_buffer2) &&

!SetIndexBuffer(2, ind_buffer3))

Print("Indikatorpuffer können nicht gesetzt werden!");

//---- Name für das Datenfenster und die Bezeichnung des Indikator-Unterfensters

IndikatorKurzname("DeltaForce");

SetIndexLabel(0, "DF1");

SetIndexLabel(1, "DF2");

//---- Initialisierung abgeschlossen

return(0);

}

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

//| Delta Force |

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

int start()

{

for(CB = 0 ; CB <= Bars ; CB++)

{

CurrentBar = Bars - CB;

if(Close[CurrentBar] > Close[CurrentBar+1])

{

resl = 0;

if(resh == 0)

deltah = 0;

deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]);

// valueh = High[CurrentBar];

resh= 1;

}

if(resh == 0)

deltah = 0;

ind_buffer1[CurrentBar] = deltah;

if(Close[CurrentBar] < Close[CurrentBar+1] )

{

resh = 0;

if(resl == 0)

deltal = 0;

deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]);

//valuel = Low[CurrentBar];

resl= 1;

}

if(resl == 0 )

deltal=0;

ind_buffer2[CurrentBar] = deltal;

}

//---- erledigt

return(0);

}

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

Probieren Sie es jetzt aus: _test.mq4

Dateien:
_test.mq4  3 kb
test.gif  68 kb
 
Big Be:
Stanwell,

Ein paar Bilder, die das alles zeigen, wären hilfreich.

Big Be

Hallo Big Be,

Guter Punkt, ich werde morgen ein paar Diagramme posten.

cheers,

Stan

 

Hier ist der AUD-Chart, den ich manuell markiert habe. Die roten Kästen sind die sich überschneidenden Balken. Auf der linken Seite gibt es ein Quadrat, das nur drei Balken enthält, also nicht der Definition entspricht. Wenn dieses Bein jedoch signifikant ist, z.B. größer als 6 x ATR, würde ich es auch als Swing zählen (es ist einfach schwer, mit nur drei Balken zu handeln), aber ich dachte, diese Anforderung würde die Kodierung verkomplizieren, also können wir es vorerst weglassen.

Vielen Dank.

Stan

Dateien:
 

Hallo Mladen und Mrtools!

Ich brauche mal wieder eure Hilfe, könnt ihr diesem Indikator bitte einen visuellen/akustischen Alarm hinzufügen?

Vielen Dank im Voraus, Prost!

Dateien:
 

MLADEN, guten Morgen.

Vielen Dank, haben versucht, ihre _test und rechts erscheint.

Jede Hilfe habe ich hier, obwohl seine Dominanz ist viel mehr als meine, obwohl in ProRealTime / VISUALCHART ja kann ich mehr helfen.

Mit freundlichen Grüßen.

 

Hallo,

ich habe einen Indikator und möchte die Berechnung der Balken begrenzen.

Der ursprüngliche Code war:

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]

i changed it with this:

[CODE]int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(NBars-counted_bars,NBars-1);

Ist das korrekt? Der Indikator scheint gut zu funktionieren, aber ich habe Zweifel, wenn ich wirklich die Bars Berechnung begrenzt haben.

 
thefxpros:
Hallo!

Ich habe einen Indikator und möchte die Berechnung der Balken begrenzen.

Der ursprüngliche Code war:

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]

i changed it with this:

[CODE]int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(NBars-counted_bars,NBars-1);
ist das richtig? Der Indikator scheint gut zu funktionieren, aber ich habe Zweifel, wenn ich wirklich die Bars Berechnung begrenzt haben.

thefxpros

Nein. Machen Sie es wie folgt:

int limit = MathMin(MathMin(Bars-counted_bars,Bars-1),NBars);

Aber in diesem Fall müssen Sie immer sicherstellen, dass NBars immer > 0 ist.

 

Hallo mladen

wenn du mir helfen kannst, füge die X- und Y-Achsen hinzu, dann kann ich sie in die Ecke stellen.

und kann die Schriftgröße einstellen, sorry für mein Englisch.

!X2014-PIPSv2

Vielen Dank.

Dateien:
 
blueface:
Hallo mladen

Wenn Sie mir helfen können, fügen Sie die X- und Y-Achsen hinzu, dann kann ich sie in die Ecke stellen.

und kann die Schriftgröße anpassen, sorry für mein Englisch.

!X2014-PIPSv2

herzlichen Dank.

blueface

Du hast sie bereits: posX und posY Variablen im Code

Grund der Beschwerde: