Hilfe bei der Codierung - Seite 111

 

Vielen Dank! Sie sind so gut!

 

Hallo,

Kennt jemand einen Indikator, der nur den Swing Point im Chart darstellt, wie unten beschrieben (wie der in Pipware Dashboard):

Fractal Breakout Strategie

Wie bereits erwähnt, bewegt sich der Preis in Wellen. Die Trendrichtung (aufwärts oder abwärts) wird durch die aufeinanderfolgenden Hochs und Tiefs bestimmt.

Von einem Aufwärtstrend spricht man, wenn diese Wellen höhere Hochs und höhere Tiefs bilden.

Von einem Abwärtstrend spricht man, wenn diese Wellen niedrigere Tiefststände und niedrigere Höchststände aufweisen.

Da es sich bei Fraktalen um Hochs und Tiefs handelt, können sie zur Bestimmung der Trendrichtung verwendet werden.

Betrachten Sie das GU H4-Diagramm (rechts). Vor dem Punkt A ist der Trend aufwärts gerichtet, d. h. das zweite Tieffraktal ist höher als das erste ... das zweite Hochfraktal ist höher als das erste.

Bei Punkt A bildete sich ein neues Tieffraktal, das höher ist als die beiden vorangegangenen Tieffraktale (was den Aufwärtstrend fortsetzt). Die Kerze unmittelbar nach Punkt A bildete ein neues Hochfraktal. Dieses Fraktal ist niedriger als sein vorheriges Hochfraktal und deutet auf eine mögliche Änderung der Trendrichtung hin. Die Kerze unter Punkt B "durchbricht" das Fraktal von Punkt A (grüne Linie). Ein roter Pfeil wird gezeichnet, der anzeigt, dass sich die Trendrichtung nach UNTEN geändert hat.

Pfeile können mit ArrowsOn=true angezeigt werden. Hinweis: Pfeile werden nur gezeichnet, wenn ein fraktaler Bruch die Trendrichtung ändert. Zum Beispiel werden nach Punkt B die unteren Fraktale weiter gebrochen (2 weitere Male).

Nach Punkt B wird der Trend als ABWÄRTS betrachtet, bis ein hohes Fraktal durchbrochen wird. Kurz vor Punkt C wird ein höheres Tieffraktal gebildet. Die Trendrichtung gilt immer noch als ABWÄRTS ... es wurde noch kein Hochfraktal durchbrochen.

Bei Punkt E wird das Hochfraktal von Punkt C durchbrochen. Obwohl es sich nur um einen kleinen Bruch handelt, wird am Punkt D ein grüner Pfeil gezeichnet, der eine Änderung der Trendrichtung anzeigt. Bis zum nächsten Bruch des niedrigen Fraktals wird der Trend nun als aufwärts gerichtet betrachtet.

Vielen Dank für Ihre Hilfe.

Beste Grüße,

Gringoh

 

Danke Mladen, das ist perfekt!!! Wenn ich dem Indikator eine weitere Zeile hinzufügen möchte, wie ändere ich den Code? Danke im Voraus....

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Red

#property indicator_color2 Blue

double UpperBuf[];

double UpperBuf1[];

double UpperBufb[];

double UpperBuf1b[];

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

//| |

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

void init()

{

IndicatorBuffers(4);

SetIndexBuffer(0, UpperBuf1);

SetIndexBuffer(1, UpperBuf1b);

SetIndexBuffer(2, UpperBuf);

SetIndexBuffer(3, UpperBufb);

}

void deinit() {}

void start()

{

int counted = IndicatorCounted();

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

if(counted > 0) counted--;

int limit = Bars - counted;

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

if (Close!=0)

UpperBuf= ((High/Close)-34)*Volume;

else UpperBuf= 0;

for( i = 0; i < limit; i++) UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

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

if (Close!=0)

UpperBufb= ((High/Close)-34)*Volume;

else UpperBufb= 0;

for( i = 0; i < limit; i++) UpperBuf1b= iMAOnArray(UpperBufb,0,33,0,MODE_EMA,i);

}

 
k3rn3l:
Danke Mladen, das ist perfekt!!! Wenn ich dem Indikator eine weitere Zeile hinzufügen möchte, wie ändere ich den Code? Danke im Voraus....

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Red

#property indicator_color2 Blue

double UpperBuf[];

double UpperBuf1[];

double UpperBufb[];

double UpperBuf1b[];

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

//| |

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

void init()

{

IndicatorBuffers(4);

SetIndexBuffer(0, UpperBuf1);

SetIndexBuffer(1, UpperBuf1b);

SetIndexBuffer(2, UpperBuf);

SetIndexBuffer(3, UpperBufb);

}

void deinit() {}

void start()

{

int counted = IndicatorCounted();

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

if(counted > 0) counted--;

int limit = Bars - counted;

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

if (Close!=0)

UpperBuf= ((High/Close)-34)*Volume;

else UpperBuf= 0;

for( i = 0; i < limit; i++) UpperBuf1= iMAOnArray(UpperBuf,0,33,0,MODE_EMA,i);

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

if (Close!=0)

UpperBufb= ((High/Close)-34)*Volume;

else UpperBufb= 0;

for( i = 0; i < limit; i++) UpperBuf1b= iMAOnArray(UpperBufb,0,33,0,MODE_EMA,i);

}

k3rn3l

Sie haben es bereits getan (es gibt 2 Zeilen auf dem Indikator). Wenn Sie eine weitere Zeile benötigen (um 3 zu haben), machen Sie einfach dasselbe wie bei der zweiten Zeile.

 

Liebe Coder,

ich fand diesen METASTOCK-Indikator sehr gut, können Sie ihn bitte für mt4 erstellen?

x:=Input("Consecutive Lower Closes - Entry",

0,21,5);

y:=Input("Aufeinanderfolgende höhere Schlusskurse - Ausstieg",

0,21,5);

delay:=Input("Einstiegs- und Ausstiegsverzögerung",0,5,0);

plot:=Input("Signale: [1]Clean, [2]All",

1,2,2);

In:=Summe(C<Ref(C,-1),x)=x;

Out:=Summe(C>Ref(C,-1),y)=y;

Init:=Summe(In+Out>-1)=1;

InInit:=Summe(In)=1;

flag:=BarsSince(Init OR In)

<BarsSince(Init OR Out)+InInit;

Signale:=(InInit AND Alert(InInit=0,2)

OR flag AND Alert(flag=0,2))

-(flag=0 AND Alert(flag,2));

0;Ref(If(plot=1,signals,In-Out),-delay)

 
debashis:
Liebe Programmierer,

ich fand diesen METASTOCK-Indikator sehr gut, können Sie ihn bitte für mt4 erstellen?

x:=Input("Consecutive Lower Closes - Entry",

0,21,5);

y:=Input("Aufeinanderfolgende höhere Schlusskurse - Ausstieg",

0,21,5);

delay:=Input("Einstiegs- und Ausstiegsverzögerung",0,5,0);

plot:=Input("Signale: [1]Clean, [2]All",

1,2,2);

In:=Summe(C<Ref(C,-1),x)=x;

Out:=Sum(C>Ref(C,-1),y)=y;

Init:=Summe(In+Out>-1)=1;

InInit:=Summe(In)=1;

flag:=BarsSince(Init OR In)

<BarsSince(Init OR Out)+InInit;

Signale:=(InInit AND Alert(InInit=0,2)

OR flag AND Alert(flag=0,2))

-(flag=0 AND Alert(flag,2));

0;Ref(If(plot=1,signals,In-Out),-delay)

debashis

Wie lautet der Name dieses Indikators?

 

guru

Es heißt "Grundmuster-System". http://www.metastocktools.com/MetaStock/Pattern01.txt

 

Hallo malden, ich danke Ihnen für die Hilfe mit dem ASCTrend. Ich frage mich, ob Sie mir helfen könnte, eine ea für diesen Indikator. es gibt einen anderen Indikator namens MaonMa. (Ich werde sie anhängen) Mein Gedanke ist, wenn der ASCTrend Pfeile nach oben UND die Bar ist über der gelben Linie (60 MA), setzen Sie einen langen Handel, Stop-Loss wird die vorherige niedrigste, ebenso, wenn der ASCTrend Pfeile nach unten UND die Bar ist unter der gelben Linie (60 MA), setzen Sie einen kurzen Handel, Stop-Loss wiil werden die vorherigen höchsten. Danke!

 

Hallo Mladen,

ich brauche wieder deine Hilfe. ich habe den folgenden Code für einen pfeilbasierten Indikator gesetzt. aber sein PC friert ein. wenn es ein Zurückbleiben verhindern würde, kannst du den Code noch einmal schreiben, indem du die ursprünglichen rsi, cci und cmo Codes im Indikator ohne icustom Funktion verwendest.

#Eigenschaft indicator_chart_window

#Eigenschaft indicator_buffers 2

#property indicator_color1 Crimson

#property indicator_color2 RoyalBlue

//---- Eingabeparameter

extern int barsToProcess=100;

//---- Puffer

double ExtMapBuffer1[];

double ExtMapBuffer2[];

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- Indikatoren

SetIndexStyle(0,DRAW_ARROW);

SetIndexPfeil(0,233);

SetIndexPuffer(0,ExtMapPuffer1);

SetIndexEmptyValue(0,0.0);

SetIndexStyle(1,DRAW_ARROW);

SetIndexPfeil(1,234);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexEmptyValue(1,0.0);

//----

return(0);

}

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

//| Benutzerdefinierte Funktion zur Deinitialisierung des Indikators |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Benutzerdefinierte Indikator-Iterationsfunktion |

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

int start()

{

int counted_bars=IndicatorCounted(),

Grenze;

if(gezählte_Balken>0)

gezählte_Balken--;

limit=Balken-gezählt_Balken;

if(limit>BalkenzuVerarbeiten)

limit=Balken-zu-Verarbeiten;

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

{

double rsi=iCustom(NULL,0, "rsi",barsToProcess,0,i);

double cci=iCustom(NULL,0, "cci",barsToProcess,0,i);

double cmo=iCustom(NULL,0, "cmo",barsToProcess,0,i);

if(rsi>60.0 && cci>150.0&&cmo>30.0)

ExtMapBuffer1=High+5*Point;

sonst

ExtMapBuffer1=0,0;

if(rsi<10,0 && cci<-150,0&&cmo<-30,0)

ExtMapBuffer2=Low-5*Point;

sonst

ExtMapBuffer2=0,0;

}

return(0);

}

 
anonimm:
Hallo Mladen,

Ich brauche Ihre Hilfe wieder. Ich habe den folgenden Code für einen Pfeil basierten Indikator. aber seine Einfrieren PC. wenn es verhindern würde, lagging, können Sie den Code wieder mit den ursprünglichen rsi, cci und cmo-Codes in der Indikator ohne icustom Funktion schreiben.

#Eigenschaft indicator_chart_window

#Eigenschaft indicator_buffers 2

#property indicator_color1 Crimson

#property indicator_color2 RoyalBlue

//---- Eingabeparameter

extern int barsToProcess=100;

//---- Puffer

double ExtMapBuffer1[];

double ExtMapBuffer2[];

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- Indikatoren

SetIndexStyle(0,DRAW_ARROW);

SetIndexPfeil(0,233);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexEmptyValue(0,0.0);

SetIndexStyle(1,DRAW_ARROW);

SetIndexPfeil(1,234);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexEmptyValue(1,0.0);

//----

return(0);

}

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

//| Benutzerdefinierte Funktion zur Deinitialisierung des Indikators |

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

int deinit()

{

//----

//----

return(0);

}

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

//| Benutzerdefinierte Indikator-Iterationsfunktion |

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

int start()

{

int counted_bars=IndicatorCounted(),

Grenze;

if(gezählte_Balken>0)

gezählte_Balken--;

limit=Balken-gezählt_Balken;

if(limit>BalkenzuVerarbeiten)

limit=Balken-zu-Verarbeiten;

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

{

double rsi=iCustom(NULL,0, "rsi",barsToProcess,0,i);

double cci=iCustom(NULL,0, "cci",barsToProcess,0,i);

double cmo=iCustom(NULL,0, "cmo",barsToProcess,0,i);

if(rsi>60.0 && cci>150.0&&cmo>30.0)

ExtMapBuffer1=High+5*Point;

sonst

ExtMapBuffer1=0,0;

if(rsi<10,0 && cci<-150,0&&cmo<-30,0)

ExtMapBuffer2=Low-5*Point;

sonst

ExtMapBuffer2=0,0;

}

return(0);

}

Anstatt iCustom() für rsi und cci zu benutzen, verwenden Sie die eingebauten Funktionen.

Erforderliche Parameter für RSI :

iCCI( [TD]string symbol, int timeframe, int period, int applied_price, int shift)
double iRSI([/TD]string symbol, int timeframe, int period, int applied_price, int shift)[/TD]

[/TR]

[/TABLE]

Benötigte Parameter für CCI :

[TABLE="class: docvar"]

[TR]

[TD]double

Und für CMO ist der erste Parameter LastBarOnly und der zweite CMO_Range, so dass der Aufruf von iCustom() etwa so aussehen sollte:

iCustom(NULL,0, "cmo",false,CMORange,0,i);

wobei CMORange ein Parameter sein sollte

Grund der Beschwerde: