Fragen Sie! - Seite 7

 

Hallo, ich habe einen Indikator in mq4 beigefügt, der alarmiert, wenn cci<-150

Er warnt auf einer Tick-by-Tick-Basis; kann ihn jemand so modifizieren, dass er nur am Ende der Kerze warnt?

In diesem Fall möchte ich nur alarmiert werden, wenn cci < -150 am Ende einer 5m Kerze ist.

Vielen Dank im Voraus

Dateien:
 

ok, 2. Frage, ich denke, diese ist einfach:

Ich baue einen Benutzerindikator, der mich warnt, wenn der Schlusskurs einen MA kreuzt.

Ich verwende iCustom, um den MA-Indikator zu importieren

und dann weiß ich nicht, wie ich den Kursschluss verwenden soll; ich habe CLOSE und PRICE_CLOSE ausprobiert, aber ohne Ergebnis:

if (CLOSE?>ma1)

adxvalue= -1;

wenn (PRICE_CLOSE?>ma1)

adxvalue= -1;

Außerdem möchte ich, dass der Alarm nur am Ende eines 5-Meter-Balkens ertönt und nicht Tick für Tick funktioniert: Was sollte ich sonst noch ändern (diese Frage ist die in meinem vorherigen Beitrag)

Vielen Dank

 

Hallo Codersguru,

Könnten Sie mir helfen, eine Warnung in Osma Color zu codieren, so dass es eine Warnung gibt, wenn sich die Farben ändern.

Danke

Duncan

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

//| OsMA_color.mq4 |

| Rafael |

//| marynarz15@wp.pl |

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

#Eigenschaft Copyright "Rafael"

#eigenschaft link "marynarz15@wp.pl"

//---- indicator Einstellungen

#Eigenschaft indicator_separate_window

#Eigenschaft indicator_buffers 2

#property indicator_color1 Kalk

#property indicator_color2 Rot

//---- Indikator-Parameter

extern int FastEMA=12;

extern int SlowEMA=26;

extern int SignalSMA=9;

//---- Indikatorpuffer

double ind_buffer1a[];

double ind_buffer1b[];

double ind_buffer2[];

double ind_buffer3[];

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- 2 zusätzliche Puffer werden für die Zählung verwendet.

IndicatorBuffers(4);

//---- Zeichnungseinstellungen

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStil(1,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexDrawBegin(0,SignalSMA);

SetIndexDrawBegin(1,SignalSMA);

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

//---- Zuordnung von 3 Indikatorpuffern

if(!SetIndexBuffer(0,ind_buffer1a) &&

!SetIndexBuffer(1,ind_buffer1b) &&

!SetIndexBuffer(2,ind_buffer2) &&

!SetIndexBuffer(3,ind_buffer3))

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

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

IndicatorShortName("OsMA("+FastEMA+", "+SlowEMA+", "+SignalSMA+")");

//---- Initialisierung abgeschlossen

return(0);

}

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

//| Gleitender Durchschnitt des Oszillators |

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

int start()

{

int limit;

int counted_bars=IndicatorCounted();

//---- Prüfung auf mögliche Fehler

if(gezählte_Balken<0) return(-1);

//---- letzte gezählte Balken wird neu gezählt

if(gezählte_Balken>0) gezählte_Balken--;

limit=Balken-gezählt_Balken;

//---- macd gezählt im 1. zusätzlichen Puffer

for(int i=0; i<limit; i++)

ind_buffer2=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)

-iMA(NULL,0,SlowEMA,0,MODE_EMA,PREIS_SCHLIESSEN,i);

//---- Signalleitung im 2. zusätzlichen Puffer gezählt

for(i=0; i<limit; i++)

ind_buffer3=iMAOnArray(ind_buffer2,Bars,SignalSMA,0,MODE_SMA,i);

//---- Hauptschleife

double value=0;

for(i=0; i<limit; i++)

{

ind_buffer1a=0.0;

ind_buffer1b=0.0;

value=ind_buffer2-ind_buffer3;

wenn (Wert>0) ind_buffer1a=Wert;

wenn (Wert<0) ind_buffer1b=Wert;

}

//---- erledigt

return(0);

}

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

 

Hallo

ich habe ein indicatore, die in der Lage ist, die Schmetterling-Muster zu erkennen, aber es ist für MT3 geschrieben kann jemand mir einen Gefallen tun und konvertieren Sie es zu MQL4.

Dateien:
butterfly.mql  3 kb
 

Ich habe zwei pdf-Dateien angehängt, in denen die Grundzüge des Musters und die Regeln aufgeführt sind.

Dateien:
attachment2.pdf  141 kb
attachment1.pdf  189 kb
 

Hallo

hallo Leute,

Sie alle kennen vielleicht den Namen dieses Autors, wussten aber nicht, dass

seine Methode in Software kodiert ist.

Pesavento hat unter anderem diese wunderbaren Bücher geschrieben:

* Fibonacci-Ratios mit Mustererkennung

* Profitable Patterns für den Aktienhandel

* Astro-Zyklen: Traders Viewpoint

Übrigens weiß ich, dass ENSIGN Software auch sein Original Pesavento Patterns Study Tool hat, welches im nächsten Link zu sehen ist.

Wenn jemand es von ENSIGN in den MetaTrader 4 importieren kann, wäre das großartig.

http://www.ensignsoftware.com/help/pesavento.htm

 

Hallo nochmal

ich habe den Code für das Gartley 222 Muster auf zwei Plattformen gefunden.

Wenn ihn jemand für MetaTrade 4 übersetzen kann, wäre das super!

hier sind die Codes :

1.TradeStation Code für Gartley 222 Muster gefunden in "Trading the Gartley 222" von Aaron Behle und Mark Conway, S. 38:

Eingaben:

Länge(100),

Stärke(8),

Tolerance(0.10),

BullColor(Blau),

BearColor(Rot);

Variablen:

F1(0.618),

F2(0.786),

F3(1.27),

F4(1.618),

P1Bar(-1),

P2Bar(-1),

T1Bar(-1),

T2Bar(-1),

P1(0.0),

P2(0.0),

T1(0.0),

T2(0.0),

PTValid(False),

HLValid(False),

InZone(False),

GD(0.0),

XA(0.0),

AB(0.0),

BC(0.0),

CD(0.0),

AD(0.0),

C1(Falsch),

C2(Falsch),

C3(Falsch),

C4(Falsch),

ABdXA(0.0),

BCdAB(0.0),

CDdBC(0.0),

ADdXA(0.0),

TL1(-1),

TL2(-1),

TL3(-1),

TL4(-1),

TL5(-1),

TL6(-1);

P1Bar = SwingHighBar(1, Hoch, Stärke, Länge);

P2Bar = SwingHighBar(2, High, Stärke, Länge);

T1Bar = SwingLowBar(1, Low, Stärke, Länge);

T2Bar = SwingLowBar(2, Tief, Stärke, Länge);

Wenn P1Bar -1 und

P2Bar -1 und

T1Bar -1 und

T2Bar -1 Then Begin

{Test auf eine bullische 222}

{Tiefpunkt X ist T2}

T2 = Tief[T2Bar];

{Peak A ist P2}

P2 = Hoch[P2Bar];

{Tief B ist T1}

T1 = Tief[T1Bar];

{Spitze C ist P1}

P1 = Hoch[P1Bar];

{D ist der Kaufpunkt}

GD = Tief;

PTValid = P1Bar < T1Bar und T1Bar < P2Bar und P2Bar < T2Bar;

HLValid = P1 T2 und P1 > T1;

InZone = GD T2 und P2 >= Highest(High, T2Bar);

If PTValid and HLValid and InZone Then Begin

XA = P2 - T2;

AB = P2 - T1;

BC = P1 - T1;

CD = P1 - GD;

AD = P2 - GD;

ABdXA = AB / XA; {AB sollte 61,8% von XA sein}

C1 = ABdXA > F1 - Toleranz und ABdXA < F1 + Toleranz;

BCdAB = BC / AB; {BC sollte 61,8-78,6% von AB sein}

C2 = BCdAB > F1 - Toleranz und BCdAB < F2 + Toleranz;

CDdBC = CD / BC; {CD sollte 127-161,8% von BC betragen}

C3 = CDdBC > F3 - Toleranz und CDdBC < F4 + Toleranz;

ADdXA = AD / XA; {AD sollte 78,6% von XA betragen}

C4 = ADdXA > F2 - Toleranz und ADdXA < F2 + Toleranz;

If C1 und C2 und C3 und C4 Then Begin

TL1 = TL_New(Datum[T2Bar], Uhrzeit[T2Bar], T2, Datum[P2Bar], Uhrzeit[P2Bar], P2);

If TL1 >= 0 Then Begin

TL_SetColor(TL1, BullColor);

TL_SetStyle(TL1, Tool_Solid);

TL_SetSize(TL1, 2);

Ende;

TL2 = TL_New(Datum[P2Bar], Zeit[P2Bar], P2, Datum[T1Bar], Zeit[T1Bar], T1);

If TL2 >= 0 Then Begin

TL_SetColor(TL2, BullColor);

TL_SetStyle(TL2, Tool_Solid);

TL_SetSize(TL2, 2);

Ende;

TL3 = TL_New(Datum[T1Bar], Zeit[T1Bar], T1, Datum[P1Bar], Zeit[P1Bar], P1);

If TL3 >= 0 Then Begin

TL_SetColor(TL3, BullColor);

TL_SetStyle(TL3, Tool_Solid);

TL_SetSize(TL3, 2);

Ende;

TL4 = TL_New(Datum[P1Bar], Zeit[P1Bar], P1, Datum, Zeit, GD);

If TL4 >= 0 Then Begin

TL_SetColor(TL4, BullColor);

TL_SetStyle(TL4, Tool_Solid);

TL_SetSize(TL4, 2);

Ende;

TL5 = TL_New(Datum[T1Bar], Zeit[T1Bar], T1, Datum, Zeit, GD);

If TL5 >= 0 Then Begin

TL_SetColor(TL5, BullColor);

TL_SetStyle(TL5, Tool_Dotted);

Ende;

TL6 = TL_New(Datum[T2Bar], Zeit[T2Bar], T2, Datum, Zeit, GD);

If TL6 >= 0 Then Begin

TL_SetColor(TL6, BullColor);

TL_SetStyle(TL6, Tool_Dotted);

Ende;

Ende;

Ende;

{Test auf eine bärische 222}

{Spitze X ist P2}

{Tief A ist T2}

{Spitze B ist P1}

{Tief C ist T1}

{GD ist der Short-Punkt}

GD = Hoch;

PTValid = T1Bar < P1Bar und P1Bar < T2Bar und T2Bar < P2Bar;

HLValid = T1 > T2 und P1 < P2 und T1 < P1;

InZone = GD > P1 und GD < P2 und T2 <= Lowest(Low, P2Bar);

If PTValid and HLValid and InZone Then Begin

XA = P2 - T2;

AB = P1 - T2;

BC = P1 - T1;

CD = GD - T1;

AD = GD - T2;

ABdXA = AB / XA; {AB sollte 61,8% von XA sein}

C1 = ABdXA > F1 - Toleranz und ABdXA < F1 + Toleranz;

BCdAB = BC / AB; {BC sollte 61,8-78,6% von AB sein}

C2 = BCdAB > F1 - Toleranz und BCdAB < F2 + Toleranz;

CDdBC = CD / BC; {CD sollte 127-161,8% von BC betragen}

C3 = CDdBC > F3 - Toleranz und CDdBC < F4 + Toleranz;

ADdXA = AD / XA; {AD sollte 78,6% von XA betragen}

C4 = ADdXA > F2 - Toleranz und ADdXA < F2 + Toleranz;

If C1 und C2 und C3 und C4 Then Begin

TL1 = TL_New(Datum[P2Bar], Uhrzeit[P2Bar], P2, Datum[T2Bar], Uhrzeit[T2Bar], T2);

If TL1 >= 0 Then Begin

TL_SetColor(TL1, BearColor);

TL_SetStyle(TL1, Tool_Solid);

TL_SetSize(TL1, 2);

Ende;

TL2 = TL_New(Datum[T2Bar], Zeit[T2Bar], T2, Datum[P1Bar], Zeit[P1Bar], P1);

If TL2 >= 0 Then Begin

TL_SetColor(TL2, BearColor);

TL_SetStyle(TL2, Tool_Solid);

TL_SetSize(TL2, 2);

Ende;

TL3 = TL_New(Datum[P1Bar], Zeit[P1Bar], P1, Datum[T1Bar], Zeit[T1Bar], T1);

If TL3 >= 0 Then Begin

TL_SetColor(TL3, BearColor);

TL_SetStyle(TL3, Tool_Solid);

TL_SetSize(TL3, 2);

Ende;

TL4 = TL_New(Datum[T1Bar], Zeit[T1Bar], T1, Datum, Zeit, GD);

If TL4 >= 0 Then Begin

TL_SetColor(TL4, BearColor);

TL_SetStyle(TL4, Tool_Solid);

TL_SetSize(TL4, 2);

Ende;

TL5 = TL_New(Datum[P1Bar], Zeit[P1Bar], P1, Datum, Zeit, GD);

If TL5 >= 0 Then Begin

TL_SetColor(TL5, BearColor);

TL_SetStyle(TL5, Tool_Dotted);

Ende;

TL6 = TL_New(Datum[P2Bar], Zeit[P2Bar], P2, Datum, Zeit, GD);

If TL6 >= 0 Then Begin

TL_SetColor(TL6, BearColor);

TL_SetStyle(TL6, Tool_Dotted);

Ende;

Ende;

Ende;

Ende;

2.Wealth-Lab Code:

Verfahren Gartley222

(

VPFactor: float;

Toleranz: Float;

Rückblick: Ganzzahl;

HoldBars: Ganzzahl;

VolMin: ganzzahlig

);

begin

var ATRValue, VP, Reversal: Float;

var F1, F2, F3, F4, P1, P2, T1, T2: Float;

var Balken, P1Balken, P2Balken, T1Balken, T2Balken, p: Ganzzahl;

var XA, AB, BC, CD, AD, D, XD, DT, ABdXA, BCdAB, CDdBC, ADdXA: Float;

var PTValid, HLValid, InZone, C1, C2, C3, C4: boolesche Werte;

var BT, BS, ST, SS: Float;

{Fibonacci-Konstanten}

F1 := 0.618;

F2 := 0.786;

F3 := 1.27;

F4 := 1.618;

InstallTimeBasedExit(HoldBars);

for Bar := Lookback to BarCount() - 1 do

begin

ApplyAutoStops(Bar);

ATRValue := ATR(Bar, Lookback);

SetShareSize( 1000 * Int( 10 / ATRValue ) );

VP := 100 * ATRWert / PriceClose(Bar);

{Peaks und Talsohlen finden}

Umkehrung := Int(VPFactor * VP);

P1 := Peak(Balken, #High, F1 * Reversal);

P1Bar := PeakBar(Bar, #High, F1 * Reversal);

P2 := Peak(P1Bar, #High, Reversal);

P2Bar := PeakBar(P1Bar, #High, Reversal); P2 := PeakBar(P1Bar, #High, Reversal);

T1 := Trough(Bar, #Low, F1 * Reversal);

T1Bar := TroughBar(Bar, #Low, F1 * Reversal);

T2 := Trough(T1Bar, #Low, Reversal);

T2Bar := TroughBar(T1Bar, #Low, Reversal);

{Test für eine bullische 222}

{Trog X ist T2}

{Spitze A ist P2}

{Trog B ist T1}

{Spitze C ist P1}

{D ist die Kaufzone}

D := PriceLow(Bar);

PTValid := (P1Bar > T1Bar) und (T1Bar > P2Bar) und (P2Bar > T2Bar);

HLValid := (P1 T2) und (P1 > T1);

InZone := (D T2);

wenn (MarketPosition = 0) und

(SMA(Bar, #Volume, Lookback) >= VolMin) und

(PTValid) und (HLValid) und (InZone) dann

beginnen

XA := P2 - T2;

AB := P2 - T1;

BC := P1 - T1;

XD := P2 - (F2 * XA);

CD := P1 - XD;

AD := P2 - XD;

ABdXA := AB / XA; {AB sollte 61,8% von XA sein}

C1 := (ABdXA > F1 - Toleranz) und (ABdXA < F1 + Toleranz);

BCdAB := BC / AB; {BC sollte 61,8-78,6% von AB sein}

C2 := (BCdAB > F1 - Toleranz) und (BCdAB < F2 + Toleranz);

CDdBC := CD / BC; {CD sollte 127-161,8% von BC betragen}

C3 := (CDdBC > F3 - Toleranz) und (CDdBC < F4 + Toleranz);

ADdXA := AD / XA; {AD sollte 78,6% von XA betragen}

C4 := (ADdXA > F2 - Toleranz) und (ADdXA < F2 + Toleranz);

wenn C1 und C2 und C3 und C4 dann

beginnen

DrawLine(P2Bar, P2, T2Bar, T2, 0, #Blue, #Solid);

DrawLine(T1Bar, T1, P2Bar, P2, 0, #Blue, #Solid);

DrawLine(P1Bar, P1, T1Bar, T1, 0, #Blue, #Solid);

DrawLine(Balken, D, P1Balken, P1, 0, #Blau, #Solid);

DrawLine(Balken, D, T1Balken, T1, 0, #Blau, #Gestrichelt);

DrawLine(Balken, D, T2Balken, T2, 0, #Blau, #Punktiert);

AnnotateBar('B', Bar, True, #Blue, 10);

BuyAtLimit(Bar, XD, 'G222 LE');

DT := F1 * CD;

BT := XD + DT;

BS := T2;

Ende;

end;

{Test für eine Baisse 222}

{Spitze X ist P2}

{Tief A ist T2}

{Spitze B ist P1}

{Tief C ist T1}

{D ist die Short-Zone}

D := PriceHigh(Bar);

PTValid := (T1Bar > P1Bar) und (P1Bar > T2Bar) und (T2Bar > P2Bar);

HLValid := (T1 > T2) und (P1 < P2) und (T1 < P1);

InZone := (D > P1) und (D < P2);

wenn (MarketPosition = 0) und

(PriceClose( Bar ) >= 5) und

(SMA(Bar, #Volume, Lookback) >= VolMin) und

(PTValid) und (HLValid) und (InZone) dann

beginnen

XA := P2 - T2;

AB := P1 - T2;

BC := P1 - T1;

XD := T2 + (F2 * XA);

CD := XD - T1;

AD := XD - T2;

ABdXA := AB / XA; {AB sollte 61,8% von XA sein}

C1 := (ABdXA > F1 - Toleranz) und (ABdXA < F1 + Toleranz);

BCdAB := BC / AB; {BC sollte 61,8-78,6% von AB sein}

C2 := (BCdAB > F1 - Toleranz) und (BCdAB < F2 + Toleranz);

CDdBC := CD / BC; {CD sollte 127-161,8% von BC betragen}

C3 := (CDdBC > F3 - Toleranz) und (CDdBC < F4 + Toleranz);

ADdXA := AD / XA; {AD sollte 78,6% von XA betragen}

C4 := (ADdXA > F2 - Toleranz) und (ADdXA < F2 + Toleranz);

wenn C1 und C2 und C3 und C4 dann

beginnen

DrawLine(T2Bar, T2, P2Bar, P2, 0, #Red, #Solid);

DrawLine(P1Bar, P1, T2Bar, T2, 0, #Red, #Solid);

DrawLine(T1Bar, T1, P1Bar, P1, 0, #Rot, #Solid);

DrawLine(Balken, D, T1Balken, T1, 0, #Rot, #Solid);

DrawLine(Balken, D, P1Balken, P1, 0, #Rot, #Gestrichelt);

DrawLine(Balken, D, P2Balken, P2, 0, #Rot, #Punktiert);

AnnotateBar('S', Bar, False, #Red, 10);

ShortAtLimit(Bar, XD, 'G222 SE');

DT := F1 * CD;

ST := XD - DT;

SS := P2;

Ende;

end;

wenn LetztePositionAktiv dann

beginnen

if MarktPosition = 1 then begin

SellAtLimit(Bar+1, BT, #All, 'G222 LX+');

SellAtStop(Bar+1, BS, #All, 'G222 LX-');

Ende;

wenn MarketPosition = -1 dann begin

CoverAtLimit(Bar+1, ST, #All, 'G222 LX+');

CoverAtStop(Bar+1, SS, #All, 'G222 LX-');

Ende;

Ende;

Ende;

Ende;

Gartley222(2.0, 0.1, 20, 7, 2000000);

 

Was ist SMCMA und WCMA ???

Weiß jemand etwas über diese 2 Dinge MA und wo zu bekommen und verwenden Sie sie für Meta Trader 4

1. SMCMA

2. WCMA

Das einzige was ich weiß ist, dass es sich um eine Art von MA

(Gleitende Durchschnitte), aber woher bekommt man sie und wie benutzt man sie?

Auf Wiedersehen

Null_Forex

 

Verwendung anderer Währungspaare in einem EA?

Weiß jemand, wie man einen Expert Advisor dazu bringt, Charts anderer Währungspaare zu prüfen, um zu entscheiden, ob man einen Kauf oder Verkauf tätigen möchte? Wie könnte ich zum Beispiel einen EA dazu bringen, den usd-chf als Teil der Kriterien zu betrachten, um zu entscheiden, ob ich den gbp-chf kaufen oder verkaufen soll? Ich habe einen EA, der mir bisher gut gefällt, aber ich denke, es könnte besser sein, wenn ich ihn auch in das Programm schreiben lassen könnte, um andere verwandte Paare zu überprüfen. Codersguru oder jeder andere, der helfen kann, lassen Sie es mich bitte wissen.

Vielen Dank!

 
codersguru:
Hallo Leute,

Ich habe eine Menge privater Nachrichten erhalten, in denen ich um Hilfe bei einigen Code-Stücken gebeten wurde.

Hier können Sie Ihre Fragen zu MQL4 stellen, und ich werde mein Bestes tun, um sie zu beantworten.

Hallo Coder.

Ist es möglich, einen Alarm nur einmal pro 5-Minuten-Balken ertönen zu lassen?

Ist es möglich, dass ein Alarm nur einmal ertönt, wenn die Bedingung erfüllt ist?

Dann ausschalten.

Dann bei der Eröffnung des nächsten Balkens, um den Indikator zu aktualisieren, bereit, wieder zu ertönen.

Dann wieder ausschalten, bis die Bedingung von 0,0005 wieder erfüllt ist.

Dann wieder einschalten und so weiter......

Der untenstehende Indikator kann bei Auslösung mehrere Alarme pro Balken auslösen.

Siehe Unten.

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

//| Juice.mq4 |

//| Perky_z |

//| http://fxovereasy.atspace.com/index |

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

#property copyright "perky"

#property link "http://fxovereasy.atspace.com/index"

//---- indicator Einstellungen

#property indicator_separate_window

#Eigenschaft indicator_buffers 2

#property indicator_color1 Limonengrün

#property indicator_color2 FireBrick

//---- Indikator-Parameter

extern bool DoAlerts = false;

extern int AlertFromPips = 5;

extern int Periyod=7;

extern double Level=5;

extern bool JuiceLevelsVisible = true;

extern int JuiceStartPips = 5;

extern int JuiceStepPips = 5;

extern int JuiceLevelsNumber = 4;

extern color JuiceLevelColor = Silver;

//---- Indikatorpuffer

double OsMAUpBuffer[];

double OsMADownBuffer[];

double OsMAValue;

double currentJuiceLevel;

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- 2 zusätzliche Puffer werden für die Zählung verwendet.

IndicatorBuffers(2);

//---- Zeichnungseinstellungen

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStil(1,DRAW_HISTOGRAM,STYLE_SOLID,1);

SetIndexDrawBegin(0,Level);

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

//---- Zuordnung von 2 Indikatorpuffern

if(!SetIndexPuffer(0,OsMAUpPuffer) &&

!SetIndexPuffer(1,OsMADownPuffer))

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

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

IndicatorShortName("Juice("+Periyod+", "+Level+")");

//---- Initialisierung abgeschlossen

return(0);

}

int SetLevelLines()

{

string levelLabel;

if(JuiceLevelsVisible)

{

SetLevelStyle(STYLE_DASH,1,JuiceLevelColor);

for(int i=1; i<= JuiceLevelsNumber; i++)

{

currentJuiceLevel = (JuiceStartPips + (i-1)*JuiceStepPips)*Point;

SetLevelValue(i,currentJuiceLevel);

levelLabel = "Level "+i+": "+aktuellesJuiceLevel;

SetIndexLabel(i,levelLabel);

}

}else

{

for(i=1; i<= JuiceLevelsNumber; i++)

{

SetLevelValue(i,0.0);

}

}

}

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

//| Gleitender Durchschnitt des Oszillators |

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

int start()

{

//if ( Period != 15) Alert ("Juice Is Recommended for 15 Min Chart only!!");

int limit,i;

int counted_bars=IndicatorCounted();

double Juice;

bool TurnOnAlert = true;

//---- Prüfung auf mögliche Fehler

if(gezählte_Balken<0) return(-1);

//---- zuletzt gezählte Balken werden neu gezählt

if(gezählte_Balken>0) gezählte_Balken--;

limit=Balken-gezählte_Balken;

Niveau = Niveau*Punkt;

if (Zeitraum()==5 ) Level=Level/2;

SetLevelLines();

//---- Hauptschleife

for(i=0; i<limit; i++)

{

Saft=iStdDev (NULL,0,Periyod,MODE_EMA,0,PRICE_CLOSE,i)-Level;

if(Saft>0){

OsMAUpBuffer=Juice;

OsMADownBuffer=0;

}else if(Saft<0){

OsMADownBuffer=Saft;

OsMAUpBuffer=0;

}else{

OsMAUpBuffer=0;

OsMADownBuffer=0;

}

}

if (DoAlerts)

{

wenn (Juice > AlertFromPips*Point && Period() == 5)

{

wenn (TurnOnAlert)

{

Alert("Saft über ",AlertFromPips*Point," für ", Symbol());

PlaySound("Tick.wav");

TurnOnAlert = false;

}

}

sonst

{

TurnOnAlert = true;

}

}

//---- erledigt

return(0);

}

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

Für Ihre Hilfe wären wir Ihnen sehr dankbar.

Vielen Dank.

Leigh.