Hilfe bei der Codierung - Seite 554

 

Mntiwana, auf Bar zu verwenden, wenn Sie Null setzen es wird unter Signale auf die noch geöffnet bar(gefährlich für einen EA, IMHO), wenn größer als Null der EA wird immer Signale von geschlossenen Bars zurück von der offenen Bar, so dass, wenn Sie BarToUse = 2, dann Ihre EA wird die Überprüfung 2 Bars zurück.

 

hallo mladen....bitte helfen Sie mir....ı wurde gepostet, aber ı schätze, Sie können nicht sehen...ok...ı haben einen Indikator ...ı brauchen histo version.thank you very much

Dateien:
trend.ex4  9 kb
trend.mq4  2 kb
 
aress:
hallo mladen....bitte helfen Sie mir....ı wurde gepostet, aber ı schätze, Sie können es nicht sehen...ok...ı habe einen Indikator bekommen ...ı brauche histo Version.danke vielmals

aress

Haben Sie den ursprünglichen (nicht dekompilierten) Quellcode des Indikators? Wenn ja, posten Sie bitte die ursprüngliche mq4-Datei, damit sie bearbeitet werden kann

_________________

PS: Sie können auch dies überprüfen https://www.mql5.com/en/forum/174961/page4 Soweit ich sehe, ist das alles

 

Hallo Leute,

Bitte werft einen Blick in meinen Code.

Dieser Indikator ruft einen anderen Indikator mit der icustom-Funktion auf.

Das Problem, das ich habe, ist, dass manchmal, auch wenn die Bedingungen für Signale nicht erfüllt sind,

dieser Indikator immer noch falsche akustische Alarme erzeugt und diese falschen Alarme keine Pfeile anzeigen.

Ich weiß nicht, wo das Problem liegt. Ich habe es versucht (mit meinem begrenzten Wissen), aber ohne Erfolg.

Wie kann ich sicherstellen, dass die Fehlalarme aufhören? Wie kann ich sicherstellen, dass der Warnton nur dann ertönt, wenn ein Pfeil angezeigt wird?

Bitte helfen Sie mir.

Danke!

int start()

{

int counted_bars=IndicatorCounted();

//----

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

int limit=Balken-gezählt_balken;

int j;

for(int i=limit; i>=0; i--)

{

arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE;

j=i;

double var1 = 0;

double var2 = 0;

for (j = i; j <= i + 9; j++) var2 += MathAbs(High[j] - Low[j]);

var1 = var2 / 10.0;

double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,0,i);

double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,Signal,Preis,1,i);

statisch datetime LastAlert;

datetime curbar = Time[0];

if (buyprevious !=EMPTY_VALUE )

{

arr_up=iLow(Symbol(),0,i) - (var1/2);

DrawLine("EntryLine11",iHigh(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !upalert){

Alert (Symbol()," ",Period(), "BUY");

upalert=true;

downalert=false;

LastAlert =curbar;

}

}

else if(sellprevious !=EMPTY_VALUE )

{

arr_dn=iHigh(Symbol(),0,i) + (var1/2);

DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !downalert){

Alert (Symbol()," ",Period(), "SELL");

downalert=true;

upalert=false;

LastAlert = curbar;

}

}

}

 
luffy:
Hallo Leute,

Bitte werfen Sie einen Blick in meinen Code.

Dieser Indikator ruft einen anderen Indikator mit der icustom-Funktion auf.

Das Problem, das ich habe, ist, dass manchmal, auch wenn die Bedingungen für Signale nicht erfüllt sind,

dieser Indikator trotzdem falsche akustische Warnungen erzeugt und diese falschen Warnungen keine Pfeile anzeigen.

Ich weiß nicht, wo das Problem liegt. Ich habe es versucht (mit meinem begrenzten Wissen), aber ohne Erfolg.

Wie kann ich sicherstellen, dass die Fehlalarme aufhören? Wie kann ich sicherstellen, dass der Warnton nur dann ertönt, wenn ein Pfeil angezeigt wird?

Bitte helfen Sie mir.

Danke!

int start()

{

int counted_bars=IndicatorCounted();

//----

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

int limit=Balken-gezählt_balken;

int j;

for(int i=limit; i>=0; i--)

{

arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE;

j=i;

double var1 = 0;

double var2 = 0;

for (j = i; j <= i + 9; j++) var2 += MathAbs(High[j] - Low[j]);

var1 = var2 / 10.0;

double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,0,i);

double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,Signal,Preis,1,i);

statisch datetime LastAlert;

datetime curbar = Time[0];

if (buyprevious !=EMPTY_VALUE )

{

arr_up=iLow(Symbol(),0,i) - (var1/2);

DrawLine("EntryLine11",iHigh(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !upalert){

Alert (Symbol()," ",Period(), "BUY");

upalert=true;

downalert=false;

LastAlert =curbar;

}

}

else if(sellprevious !=EMPTY_VALUE )

{

arr_dn=iHigh(Symbol(),0,i) + (var1/2);

DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);

if ( LastAlert != curbar && !downalert){

Alert (Symbol()," ",Period(), "SELL");

downalert=true;

upalert=false;

LastAlert = curbar;

}

}

}

luffy

Können Sie bitte auch den aufgerufenen Indikator posten, damit er getestet werden kann?

 
mrtools:
Mntiwana, auf Bar zu verwenden, wenn Sie setzen Null wird es unter Signale auf der noch geöffneten bar(gefährlich für einen EA, IMHO), wenn größer als Null der EA wird immer Signale aus geschlossenen Bars zurück von der offenen Bar, so dass, wenn Sie BarToUse = 2, dann Ihre EA wird die Überprüfung 2 Bars zurück.

Sehr geehrte MLADEN und MRTOOLS,

vielen Dank für die freundliche Hilfe, es tut mir leid, dass ich so viel von Ihrer Zeit in Anspruch nehme und so viel frage ....... .......so im Falle dieses EA, was ist besser und geeignet, welche Bar sollte hinzugefügt werden.....i möchte, wenn die langsame MA-Linie vollständig von der schnellen MA-Linie gekreuzt wird (so oder so) ......... auf der zweiten nächsten Bar, sollte der Handel ausgeführt werden, können wir so codieren, dass nach der Kreuzung, wie viele Bars später der Handel ausgeführt werden könnte, zum Beispiel nach der Kreuzung auf der ersten Bar, nach der Kreuzung auf der zweiten oder dritten Bar?

Grüße

Dateien:
7.png  35 kb
8.png  38 kb
 

Hier sind die Indikatoren.

Danke.

Dateien:
 
mrtools:
Mntiwana, auf Bar zu verwenden, wenn Sie setzen Null wird es unter Signale auf der noch geöffnet bar(gefährlich für einen EA, IMHO), wenn größer als Null der EA wird immer Signale von geschlossenen Bars zurück von der offenen Bar, so dass, wenn Sie BarToUse = 2, dann Ihre EA wird die Überprüfung 2 Bars zurück.

Liebe MRTOOLS,

meinten Sie .... bar zu verwenden = 2 ...... 2 bar nach der Kreuzung...nicht 2 N Bars, wenn Sie schreiben Bars BACK, ich verwirrt, mein Fehler....bitte korrigieren Sie mich. danke.

Grüße

 
mntiwana:
Liebe MRTOOLS,

Meinten Sie .... bar zu verwenden = 2 ...... 2 bar nach der Kreuzung...nicht 2 N Bars, wenn Sie schreiben Bars BACK, ich verwirrt, mein Fehler....bitte korrigieren Sie mich. danke.

mit freundlichen Grüßen

mntiwana

Nein, aber wenn die zu verwendenden Balken == 2 sind, dann wird die Kreuzung 2 Balken nach dem aktuellen Balken geprüft - es wird nicht die Kreuzung beim aktuellen Balken geprüft. Also, mit einer Verzögerung von 2 Bars

 
mladen:
mntiwana Nein, aber wenn bars to use == 2, dann wird die Kreuzung 2 Bars vom aktuellen Bar geprüft - es wird nicht die Kreuzung beim aktuellen Bar geprüft. Also, mit einer Verzögerung von 2 Bars

Liebster MLADEN,

danke Chef, also in diesem Fall könnte der Code so aussehen? bitte korrigieren Sie mich,

mit freundlichen Grüßen

===================================================================

Original "einfacher MA cross EA" Code

//

#define _doNothing 0

#define _doBuy 1

#define _doSell 2

int start()

{

int doWhat = _doNothing;

double diffc = iMA(NULL,0,Ma1Period,0,Ma1Method,Ma1Price,BarToUse) -iMA(NULL,0,Ma2Period,0,Ma2Method,Ma2Price,BarToUse);

double diffp = iMA(NULL,0,Ma1Period,0,Ma1Method,Ma1Price,BarToUse+1)-iMA(NULL,0,Ma2Period,0,Ma2Method,Ma2Price,BarToUse+1);

wenn ((diffc*diffp)<0)

wenn (diffc>0)

doWas = _doBuy;

sonst doWhat = _doSell;

if (doWhat==_doNothing) return(0);

//

================================================

auf diese Weise abgeändert

#define _doNothing 0

#define _doBuy 1

#define _doSell 2

int start()

{

int doWhat = _doNothing;

double diffc = iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma1Period,Ma1Price,2,0 ,0,BarToUse)

-iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma2Period,Ma2Price,2,0 ,0,BarToUse);

double diffp = iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma1Period,Ma1Price,2,0 ,0,BarToUse==2)

-iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma2Period,Ma2Price,2,0 ,0,BarToUse==2);

wenn ((diffc*diffp)<0)

wenn (diffc>0)

doWhat = _doBuy;

sonst doWhat = _doSell;

if (doWhat==_doNothing) return(0);

//

=====================================

Dateien:
9.png  108 kb