Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Dema-Variable falsch gesetzt
Ich bin nicht in der Lage, den Abschnitt "DEMA-Variablen" und seine Syntaxen richtig zu setzen. Die Codes DEMA1, DEMA2 und DEMA3 sind korrekt.
Bitte helfen Sie bei der Korrektur des DEMA-Variablen-Abschnitts.
wenn (TradeOrAlert) {
if (DEMA1)>(DEMA2) {CLOSESHORT(Symbol()) ;}
wenn (DEMA1)<(DEMA2) {CLOSELONG(Symbol()) ;}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {BUY(Symbol(), B_Symbol_LS_0, B_Symbol_TP_0, B_Symbol_SL_0, B_Symbol_TS_0, "if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))";}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {SELL(Symbol(), S_Symbol_LS_0, S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0, "if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))";}
CheckTrailingStop(Symbol(), 0, MagicNumberLong, B_Symbol_TS_0);
CheckTrailingStop(Symbol(), 1, MagischeZahlKurz, S_Symbol_TS_0);
} sonst {
if (DEMA1)>(DEMA2) {MyAlert("if (DEMA1)>(DEMA2)", "CLOSESHORT(Symbol(),0.1,100,15,17)", Symbol());}
if (DEMA1)<(DEMA2) {MyAlert("if (DEMA1)<(DEMA2)", "CLOSELONG(Symbol(),0.1,100,15,17)", Symbol());}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {MyAlert("if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))", "BUY(Symbol(),0.1,100,15,17)", Symbol());}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {MyAlert("if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))", "SELL(Symbol(),0.1,100,15,17)", Symbol());}
}
g_bars_276 = Bars;
return (0);
}
//----DEMA VARIABLES----Nicht richtig gesetzt, Hilfe benötigt-----
int init() {
double DEMA1 = (iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,4,0,MODE_EMA,iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0),0));
return(DEMA1);
}
int start() {
double DEMA2 = (iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,6,0,MODE_EMA,iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0),0));
return(DEMA2);
}
int start() {
double DEMA3 = (iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,12,0,MODE_EMA,iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0),0));
return(DEMA3);
}
//
Dema-Variable nicht korrekt gesetzt
Ich stehe vor dem Problem, die Syntaxen im Abschnitt "DEMA VARIABLES" des untenstehenden Codes richtig zu setzen.
Sagen Sie mir auch, was ich nach dem Abschnitt "#include" in Bezug auf Dema-Variablen einfügen soll.
Ich erhalte die Fehler
'DEMA1' - Variable nicht definiert.
DEMA2' - Variable nicht definiert.
DEMA3' - Variable nicht definiert.
Bitte helfen Sie mir.
if (TradeOrAlert) {
if (DEMA1)>(DEMA2) {CLOSESHORT(Symbol()) ;}
if (DEMA1)<(DEMA2) {CLOSELONG(Symbol()) ;}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {BUY(Symbol(), B_Symbol_LS_0, B_Symbol_TP_0, B_Symbol_SL_0, B_Symbol_TS_0, "if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))";}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {SELL(Symbol(), S_Symbol_LS_0, S_Symbol_TP_0, S_Symbol_SL_0, S_Symbol_TS_0, "if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))";}
CheckTrailingStop(Symbol(), 0, MagicNumberLong, B_Symbol_TS_0);
CheckTrailingStop(Symbol(), 1, MagischeZahlKurz, S_Symbol_TS_0);
} sonst {
if (DEMA1)>(DEMA2) {MyAlert("if (DEMA1)>(DEMA2)", "CLOSESHORT(Symbol(),0.1,100,15,17)", Symbol());}
if (DEMA1)<(DEMA2) {MyAlert("if (DEMA1)<(DEMA2)", "CLOSELONG(Symbol(),0.1,100,15,17)", Symbol());}
if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3)) {MyAlert("if ((DEMA1)>(DEMA2)) && ((DEMA2)>(DEMA3))", "BUY(Symbol(),0.1,100,15,17)", Symbol());}
if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3)) {MyAlert("if ((DEMA1)<(DEMA2)) && ((DEMA2)<(DEMA3))", "SELL(Symbol(),0.1,100,15,17)", Symbol());}
}
g_bars_276 = Bars;
return (0);
}
//----DEMA VARIABLES----Nicht richtig gesetzt, Hilfe benötigt-----
int start() {
double DEMA1 = (iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,4,0,MODE_EMA,iMA(NULL,NULL,4,0,MODE_EMA,PRICE_CLOSE,0),0));
return(DEMA1);
}
int start() {
double DEMA2 = (iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,6,0,MODE_EMA,iMA(NULL,NULL,6,0,MODE_EMA,PRICE_CLOSE,0),0));
return(DEMA2);
}
int start() {
double DEMA3 = (iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0))*2 - (iMA(NULL,NULL,12,0,MODE_EMA,iMA(NULL,NULL,12,0,MODE_EMA,PRICE_CLOSE,0),0));
return(DEMA3);
}
//
MA+Stoch Alert...bitte
Können Sie mir helfen, einen Indikator zu erstellen: MA+Stoch mit Alert
stoch(5,3,3);MA(8);MA(15);MA(30)....
Alarm, wenn MA(8)>MA(15)>MA(30) und %K über %D, aber unter dem Niveau 50 kreuzen
Warnung, wenn MA(8)<MA(15)<MA(30) und %D über %K, aber mehr als Level 50 kreuzen
Ich danke Ihnen vielmals
mein Englisch ist Fremdsprache
sympathetically!
Können Sie mir helfen, einen Indikator zu erstellen: MA+stoch mit Alarm
stoch(5,3,3);MA(8);MA(15);MA(30)....
Alarm, wenn MA(8)>MA(15)>MA(30) und %K über %D, aber weniger als Level 50 kreuzen
Warnung, wenn MA(8)<MA(15)<MA(30) und %D über %K, aber mehr als Level 50 kreuzen
Ich danke Ihnen vielmals
mein Englisch ist eine Fremdsprache
sympathisch!Hi,
Codeschnipsel aus einem meiner Indis, du musst es an deine Bedürfnisse anpassen:
extern bool AlertON=false;
extern bool EmailON=true;
extern bool SoundON=false;
extern bool VoiceON=false;
extern bool SMSON=false;
extern string ExtSoundFileName = "";//externe Sounddateien erforderlich, dann löschen
FastMA = fastMAnow;
SlowMA = slowMAnow;
if ((fastMAnow >= slowMAnow) && (fastMAprevious < slowMAprevious))
{
if (i == 1 && flagval1==0)
{
flagval1=1;
flagval2=0;
if (AlertON==true) Alert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON==true) SendMail("2754 BUY-ALP EUR", "BUY Signal bei Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+""+TimeHour(CurTime())+":"+ZeitMinute(CurTime())+" Symbol="+Symbol()+" Periode="+Periode());
if (SMSON==true) SendMail("2754 BUY-ALP EUR", "BUY Signal bei Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+""+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Periode="+Periode());
if (SoundON==true) PlaySound(ExtSoundFileName);//Peep etc
if (VoiceON==true) PlaySound(ExtSoundFileName);// eigene Sprach-WAV
}
CrossUp = Low - Range*0.5;
}
else if ((fastMAnow slowMAprevious))
{
wenn (i == 1 && flagval2==0)
{
flagval2=1;
flagval1=0;
if (AlertON==true) Alert("SELL Signal bei Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON==true) SendMail("2754 SELL-ALP EUR", "SELL Signal bei Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+""+TimeHour(CurTime())+":"+ZeitMinute(CurTime())+" Symbol="+Symbol()+" Zeitraum="+Periode());
if (SMSON==true) SendMail("2754 SELL-ALP EUR", "SELL Signal bei Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+""+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Periode="+Periode());
if (SoundON==true) PlaySound(ExtSoundFileName);//Peeeps etc
if (VoiceON==true) PlaySound(ExtSoundFileName);// eigene Sprach-WAV
}
CrossDown = Hoch + Bereich*0.5;
}
}
return(0);
}
MA+Stoch Alert...bitte
Hallo!
Codeschnipsel aus einer meiner Indis, Sie müssen ihn an Ihre Bedürfnisse anpassen:
extern bool AlertON=false;
extern bool EmailON=true;
extern bool SoundON=false;
extern bool VoiceON=false;
extern bool SMSON=false;
extern string ExtSoundFileName = "";//externe Sounddateien erforderlich, dann löschen
FastMA = fastMAnow;
SlowMA = slowMAnow;
if ((fastMAnow >= slowMAnow) && (fastMAprevious < slowMAprevious))
{
if (i == 1 && flagval1==0)
{
flagval1=1;
flagval2=0;
if (AlertON==true) Alert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON==true) SendMail("2754 BUY-ALP EUR", "BUY Signal bei Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+""+TimeHour(CurTime())+":"+ZeitMinute(CurTime())+" Symbol="+Symbol()+" Zeitraum="+Periode());
if (SMSON==true) SendMail("2754 BUY-ALP EUR", "BUY Signal bei Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+""+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Periode="+Periode());
if (SoundON==true) PlaySound(ExtSoundFileName);//Peep etc
if (VoiceON==true) PlaySound(ExtSoundFileName);// eigene Sprach-WAV
}
CrossUp = Low - Range*0.5;
}
else if ((fastMAnow slowMAprevious))
{
wenn (i == 1 && flagval2==0)
{
flagval2=1;
flagval1=0;
if (AlertON==true) Alert("SELL Signal bei Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
if (EmailON==true) SendMail("2754 SELL-ALP EUR", "SELL Signal bei Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+""+TimeHour(CurTime())+":"+ZeitMinute(CurTime())+" Symbol="+Symbol()+" Zeitraum="+Periode());
if (SMSON==true) SendMail("2754 SELL-ALP EUR", "SELL Signal bei Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+""+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Periode="+Periode());
if (SoundON==true) PlaySound(ExtSoundFileName);//Peeeps etc
if (VoiceON==true) PlaySound(ExtSoundFileName);// eigene Sprach-WAV
}
CrossDown = Hoch + Bereich*0.5;
}
}
return(0);
}Vielen Dank...ixbone
Ich schreibe Code sehr schlecht...Also, ich kann Ihren Code nicht verstehen....Sie können mir helfen, Indikator(.mq4) zu bauen, um zu verwenden
wenn ja, danke ich Ihnen sehr
Ich wünsche Ihnen einen guten Arbeitstag!
Wie überprüfe ich, ob das Hoch des aktuellen Balkens 2 Pips über dem Hoch des vorherigen Balkens liegt?
Sorry, falscher Ort für diese Frage.
Bitte löschen Sie diesen Admin.
Danke!
Teilweiser Abschluss einer Bestellung
Hallo,
ich versuche, einen EA zu programmieren, der auf zwei Ebenen Gewinne mitnimmt. Dazu möchte ich den ursprünglichen Auftrag so aufteilen, dass "x" Lots am ersten Gewinnziel und die restlichen Lots am zweiten Gewinnziel abgezogen werden. Zu diesem Zweck verwende ich zwei OrderClose()-Funktionen.
Die erste OrderClose()-Funktion funktioniert einwandfrei, aber sie scheint auch den bestehenden Auftrag zu schließen und ein neues Ticket für die verbleibenden Lots zu erzeugen.
Könnte mir jemand einen Tipp geben, wie ich dieses "neue" Ticket bzw. diesen "neuen" Auftrag behandeln soll, damit er von der zweiten CloseOrder()-Funktion verarbeitet werden kann?
Vielen Dank
Jim
Hallo,
Ich versuche, einen EA zu programmieren, der auf zwei Ebenen Gewinne mitnimmt. Dazu möchte ich den ursprünglichen Auftrag so aufteilen, dass "x" Lots am ersten Gewinnziel und die restlichen Lots am zweiten Gewinnziel abgezogen werden. Zu diesem Zweck verwende ich zwei OrderClose()-Funktionen.
Die erste OrderClose()-Funktion funktioniert einwandfrei, aber sie scheint auch den bestehenden Auftrag zu schließen und ein neues Ticket für die verbleibenden Lots zu erzeugen.
Könnte mir jemand einen Tipp geben, wie ich dieses "neue" Ticket bzw. diesen "neuen" Auftrag behandeln soll, damit er von der zweiten CloseOrder()-Funktion verarbeitet werden kann?
Vielen Dank
JimNur eine Idee. Sie können versuchen, zwei Trades anstelle von einem zu verwenden, wenn eine teilweise Schließung mit Gewinn schwieriger zu erreichen ist. Und diese Trades nach ihrer Open Time zu verwalten.
Hallo,
Ich versuche, einen EA zu programmieren, der auf zwei Ebenen Gewinne mitnimmt. Dazu möchte ich den ursprünglichen Auftrag so aufteilen, dass "x" Lots am ersten Gewinnziel und die restlichen Lots am zweiten Gewinnziel abgezogen werden. Zu diesem Zweck verwende ich zwei OrderClose()-Funktionen.
Die erste OrderClose()-Funktion funktioniert einwandfrei, aber sie scheint auch den bestehenden Auftrag zu schließen und ein neues Ticket für die verbleibenden Lots zu erzeugen.
Könnte mir jemand einen Tipp geben, wie ich dieses "neue" Ticket bzw. diesen "neuen" Auftrag behandeln soll, damit er von der zweiten CloseOrder()-Funktion verarbeitet werden kann?
Vielen Dank
JimDie Leute haben unterschiedliche Referenzen, ich mag die Verwendung von Partial Close, weil es weniger Trades gibt, die der Broker bearbeiten muss.
Jedes Mal, wenn ein teilweiser Abschluss stattfindet, wird der Broker die verbleibende Order als neue Order betrachten und ein neues Ticket zuweisen. Aber es ist nicht wirklich wichtig, solange Ihr nächster Schritt die Methode für die Identifizierung von Trades nicht durch Auftragsticket basiert, kann es auf Auftragspartien basieren, oder Sie können eine Variable zuweisen, um EA zu zeigen, wann es in der Phase ist.
Partial Close ist ein bisschen schwierig zu handhaben, wenn die folgende Situation vorliegt:
1. Ihre Aufträge können aufgrund von MM unterschiedliche Losgrößen haben.
2. Sie haben mehrere Aufträge zur gleichen Zeit mit unterschiedlichen Lotgrößen.
Wenn Ihr EA die oben genannten Situationen aufweist und Sie keine Erfahrung in der Programmierung haben, denke ich, dass Sie den Ansatz der Mehrfachaufträge verwenden können.
Schnelle Lösung für ein einfaches Problem. Danke *Du : )
Ich möchte gerne die folgenden Variablen zurückgeben:
1. Der Eröffnungskurs des ersten Balkens des letzten aufgezeichneten Montags (Hour Bar).
2. Den Schlusskurs des letzten aufgezeichneten Mittwochs (Hour Bar).
Weiß jemand, wie man das macht? Ich habe versucht, die Variablen zu erhalten, wie sie mit :
//-------------------------------------------------------
if (currentday == 1 && currenttime == 0)
{
MondayOpenPrice = iOpen(Symbol(),PERIOD_H1,0);
}
//--------------------------------------------------------
Das Problem mit dem oben genannten ist, dass ich meinen Metatrader nicht immer die ganze Woche laufen lassen kann, um diese Variablen zu erhalten.
Also brauche ich den EA, um in der Geschichte für den ersten aufgezeichneten offenen Preis an einem Montag usw. zurück zu schauen.
Ich danke Ihnen vielmals für Ihre Zeit.