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
Danke mntiwana und malden. aber warum muss ich erneut kaufen? Können Sie diese Indikatoren in Nachrichten senden
Schicken Sie die ursprüngliche E-Mail mit dem Link, den Sie beim Kauf des Indikators erhalten haben, an support@forex-tsd.com, und wenn alles korrekt ist, erhalten Sie eine aktualisierte Version.
Okay mlanden. aber der Indikator vor nmc sieht interessanter aus als nach nmc . Ist es nur mein Gefühl?
Okay mlanden. aber der Indikator vor nmc sieht interessanter aus als nach nmc . Ist das nur mein Gefühl?
Die Ergebnisse der "nmc"-Version sind gegenüber der "pre-nmc"-Version überhaupt nicht verändert. "nmc" steht für "new metatrader compatible".
Alles Gute
Warum?
Mladen,
Bitte können Sie mir den Grund nennen, warum dieser Ea nicht funktioniert.
//----------------------- EA-PARAMETER
externer String
Expert_Name = "---------- Pending Order EA v1",
Expert_Name2 = "---------- Für aktuellen Kurs EntryLevel = 0 setzen";
extern double
EntryLevel = 1.8600,
Abstand = 100,
StopLoss = 50,
TakeProfit = 50,
TrailingStop = 50;
externer String
Order_Setting = "---------- Order-Einstellung";
extern int
NumberOfTries = 5,
Schlupf = 5,
MagischeZahl = 1234;
extern string
MM_Parameter = "---------- Geldverwaltung";
extern double
Lots =0,01;
extern bool
MM = false, //Geldmanagement verwenden oder nicht
AccountIsMicro = true; //Mikro-Konto verwenden oder nicht
extern int
Risiko = 0; //10%
extern string
Testing_Parameters= "---------- Back Test Parameter";
extern bool
Show_Settings = true;
//----------------------- GLOBALE VARIABLE
statische int
TimeFrame = 0;
string
TicketKommentar = "PendingOrderEA v2",
LastTrade;
bool
TradeAllow = true,
EntryAllow = true;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//----------------------- GENERIERT MAGISCHE NUMMER UND TICKET-KOMMENTAR
//----------------------- QUELLE: PENGIE
MagischeZahl = subGenerateMagicNumber(MagischeZahl, Symbol(), Punkt());
TicketComment = StringConcatenate(TicketComment, "-", Symbol(), "-", Period());
//----------------------- EA-EINSTELLUNG IM DIAGRAMM ANZEIGEN
//----------------------- QUELLE: CODERSGURU
if(Show_Settings) subPrintDetails();
else Comment("");
return(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
//----------------------- VERHINDERT EINE ERNEUTE ZÄHLUNG, WENN DER BENUTZER DEN ZEITRAHMEN ÄNDERT
//----------------------- QUELLE: CODERSGURU
TimeFrame=Period();
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
double
// BuyLevel,
SellLevel;
int
cnt,
ticket,
total;
//----------------------- KAUF- und VERKAUFSPREIS festlegen
if(EntryLevel==0) EntryLevel = Bid;
// BuyLevel = EntryLevel + Entfernung*Punkt;
SellLevel = EntryLevel - Entfernung*Punkt;
// if((BuyLevel-Ask)<10*Point || (Bid-SellLevel)<10*Point)
// {
// Comment("Ungültiger Einstiegskurs oder Abstand");
// return(0);
// }
//----------------------- LOTS ANPASSEN, WENN GELDMANAGEMENT VERWENDET WIRD
if(MM) Lots = subLotSize();
//----------------------- ENTRY
//----------------------- GESAMTAUFTRAG AUF BASIS VON MAGICNUMBER UND SYMBOL
total = subTotalTrade();
//----------------------- SETZT DIE ORDER NUR 1 MAL
if(TradeAllow)
{
//----------------------- IF NO TRADE
if(total<1 && EntryAllow)
{
ticket = OrderSend(Symbol(),OP_SELLSTOP,Lots,SellLevel,Slippage,SellLevel+StopLoss*Point,SellLevel-TakeProfit*Point,TicketComment,MagicNumber,0,Red);
// Ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyLevel,Slippage,BuyLevel-StopLoss*Point,BuyLevel+TakeProfit*Point,TicketComment,MagicNumber,0,Green);
EntryAllow = false;
return(0);
}
if(gesamt==1)
{
subDeleteOrder();
TradeAllow = false;
}
}
//----------------------- TRAILING-STOP-ABSCHNITT
if(TrailingStop>0 && subTotalTrade()>0){
total = OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
subTrailingStop(OrderType());
return(0);
}
}
}
return(0);
}
//----------------------- END PROGRAM
//+------------------------------------------------------------------+
//| FUNKTIONSDEFINITIONEN
//+------------------------------------------------------------------+
//----------------------- GELDVERWALTUNGSFUNKTION
//----------------------- QUELLE: CODERSGURU
double subLotSize()
{
double lotMM = MathCeil(AccountFreeMargin() * Risk / 1000) / 100;
if(AccountIsMicro==false) //normales Konto
{
if(lotMM < 0.1) lotMM = Lots;
if((lotMM > 0.5) && (lotMM < 1)) lotMM = 0.5;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
if(lotMM > 100) lotMM = 100;
}
else //micro account
{
if(lotMM < 0,01) lotMM = Lots;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
wenn(lotMM > 100) lotMM = 100;
}
return(lotMM);
}
//----------------------- ANZAHL DER AUFTRÄGE AUF BASIS DES SYMBOLS UND DER MAGICNUMBER-FUNKTION
int subTotalTrade()
{
int
cnt,
gesamt = 0;
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber) total++;
}
return(total);
}
//----------------------- FUNKTION BESTELLUNG LÖSCHEN
void subDeleteOrder()
{
int
cnt,
total = 0;
total = OrdersTotal();
for(cnt=summe-1;cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(BestellSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
switch(OrderType())
{
// Fall OP_BUYLIMIT :
// case OP_BUYSTOP :
Fall OP_SELLLIMIT:
case OP_SELLSTOP :
OrderDelete(OrderTicket());
}
}
}
}
//----------------------- TRAILING STOP FUNCTION
//----------------------- QUELLE: CODERSGURU
//----------------------- MODIFIED : FIREDAVE
void subTrailingStop(int Typ)
{
if(Type==OP_BUY) // Kaufposition wird eröffnet
{
if(Bid-OrderOpenPrice()>Point*TrailingStop &&
OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
if(Type==OP_SELL) // Verkaufsposition wird eröffnet
{
if(OrderOpenPrice()-Ask>Point*TrailingStop)
{
if(OrderStopLoss()>Ask+Point*TrailingStop || OrderStopLoss()==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
//----------------------- GENERIERT MAGISCHE ZAHL AUF BASIS VON SYMBOL UND ZEITRAHMENFUNKTION
//----------------------- QUELLE: PENGIE
//----------------------- MODIFIED : FIREDAVE
int subGenerateMagicNumber(int MagicNumber, string symbol, int timeFrame)
{
int isymbol = 0;
if (symbol == "EURUSD") isymbol = 1;
else if (symbol == "GBPUSD") isymbol = 2;
sonst if (Symbol == "USDJPY") isymbol = 3;
sonst wenn (Symbol == "AUDCAD") isymbol = 4;
sonst wenn (Symbol == "AUDUSD") isymbol = 5;
sonst wenn (Symbol == "USDCAD") isymbol = 6;
sonst wenn (Symbol == "EURGBP") isymbol = 7;
sonst wenn (Symbol == "EURJPY") isymbol = 8;
sonst wenn (Symbol == "EURCHF") isymbol = 9;
sonst wenn (Symbol == "EURAUD") isymbol = 10;
sonst wenn (Symbol == "EURCAD") isymbol = 11;
sonst wenn (Symbol == "GBPUSD") isymbol = 12;
sonst wenn (Symbol == "GBPJPY") isymbol = 13;
sonst wenn (Symbol == "GBPCHF") isymbol = 14;
sonst wenn (Symbol == "GBPAUD") isymbol = 15;
sonst wenn (Symbol == "GBPCAD") isymbol = 16;
sonst isymbol = 17;
if(isymbol<10) MagicNumber = MagicNumber * 10;
return (StrToInteger(StringConcatenate(MagicNumber, isymbol, timeFrame)));
}
//----------------------- KOMMENTAR DRUCKEN FUNKTION
//----------------------- QUELLE: CODERSGURU
void subPrintDetails()
{
string sKommentar = "";
string sp = "----------------------------------------\n";
string NL = "\n";
sComment = sp;
sComment = sComment + "TakeProfit=" + DoubleToStr(TakeProfit,0) + " | ";
sComment = sComment + "TrailingStop=" + DoubleToStr(TrailingStop,0) + " | ";
sComment = sComment + "StopLoss=" + DoubleToStr(StopLoss,0) + NL;
sKommentar = sKommentar + sp;
sComment = sComment + "Lots=" + DoubleToStr(Lots,2) + " | ";
sKommentar = sKommentar + "MM=" + subBoolToStr(MM) + " | ";
sKommentar = sKommentar + "Risiko=" + DoubleToStr(Risiko,0) + "%" + NL;
sKommentar = sKommentar + sp;
Kommentar(sKommentar);
}
//----------------------- BOOLEN VARIABLE ZU STRING FUNKTION
//----------------------- QUELLE: CODERSGURU
string subBoolToStr ( bool wert)
{
if(value) return ("True");
else return ("False");
}
//----------------------- FUNKTION BEENDEN
Vielen Dank im Voraus.
Jo
mladen,
hoffen, dass Sie gut. die unten hat zwei Fehler beim Kompilieren. bitte helfen
mladen, ich hoffe, es geht Ihnen gut. die unten hat zwei Fehler beim Kompilieren. helfen Sie bitte
candyman752
Probieren Sie es jetzt aus: rstochalert-4tf_1.mq4
Liebste MLADEN,
(bei meinen Fragen geht es immer mehr um Reparaturhilfe als um Codierungshilfe)
ich habe eine Bitte zu verstehen.....siehe 2 Bilder, die ich hinzugefügt habe, das erste ist mit 1 Fehler und 2 Warnungen in Bezug auf Zeile 70 und 72....wie Sie im 2. Bild sehen können, habe ich ersetzt und 1 Fehler und 1 Warnung entfernt......meine Frage ist...ist es richtig, dies so zu tun....und zweite Frage über die 2. Warnung, die noch in Zeile 80 ist...wenn es so belassen wird, kein Problem in der Funktion?
Grüße
mntiwana
Liebste MLADEN,
(meine Fragen sind immer über die Reparatur Hilfe mehr als Codierung Hilfe)
Ich habe eine Bitte zu verstehen.....Siehe 2 Bilder, die ich hinzugefügt habe, das erste ist mit 1 Fehler und 2 Warnungen in Bezug auf Zeile 70 und 72....wie Sie im zweiten Bild sehen können, habe ich ersetzt und 1 Fehler und 1 Warnung entfernt......Meine Frage ist...ist es richtig, dies so zu tun....und zweite Frage über die zweite Warnung, die noch in Zeile 80 ist...wenn es so belassen wird, kein Problem in der Funktion?
Grüße
mntiwanamntiwana
Auf diese Weise ist alles in Ordnung. Sie haben die Änderungen in Ordnung gebracht.
mntiwana auf diese Weise ist alles in Ordnung. Sie haben die Änderungen OK
also vielen Dank großer Chef für die Ermutigung eines neugierigen Studenten.
Mit freundlichen Grüßen
Mladen,
Bitte können Sie mir den Grund nennen, warum diese ea nicht funktioniert.
//----------------------- EA-PARAMETER
externer String
Expert_Name = "---------- Pending Order EA v1",
Expert_Name2 = "---------- Für aktuellen Kurs EntryLevel = 0 setzen";
extern double
EntryLevel = 1.8600,
Abstand = 100,
StopLoss = 50,
TakeProfit = 50,
TrailingStop = 50;
externer String
Order_Setting = "---------- Order-Einstellung";
extern int
NumberOfTries = 5,
Schlupf = 5,
MagischeZahl = 1234;
extern string
MM_Parameter = "---------- Geldverwaltung";
extern double
Lots =0,01;
extern bool
MM = false, //Geldmanagement verwenden oder nicht
AccountIsMicro = true; //Mikro-Konto verwenden oder nicht
extern int
Risiko = 0; //10%
extern string
Testing_Parameters= "---------- Back Test Parameter";
extern bool
Show_Settings = true;
//----------------------- GLOBALE VARIABLE
statische int
TimeFrame = 0;
string
TicketKommentar = "PendingOrderEA v2",
LastTrade;
bool
TradeAllow = true,
EntryAllow = true;
//+------------------------------------------------------------------+
//| Experten-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//----------------------- GENERIERT MAGISCHE NUMMER UND TICKET-KOMMENTAR
//----------------------- QUELLE: PENGIE
MagischeZahl = subGenerateMagicNumber(MagischeZahl, Symbol(), Punkt());
TicketComment = StringConcatenate(TicketComment, "-", Symbol(), "-", Period());
//----------------------- EA-EINSTELLUNG IM DIAGRAMM ANZEIGEN
//----------------------- QUELLE: CODERSGURU
if(Show_Settings) subPrintDetails();
else Comment("");
return(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
//+------------------------------------------------------------------+
int deinit()
{
//----------------------- VERHINDERT EINE ERNEUTE ZÄHLUNG, WENN DER BENUTZER DEN ZEITRAHMEN ÄNDERT
//----------------------- QUELLE: CODERSGURU
TimeFrame=Period();
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
double
// BuyLevel,
SellLevel;
int
cnt,
ticket,
total;
//----------------------- KAUF- und VERKAUFSPREIS festlegen
if(EntryLevel==0) EntryLevel = Bid;
// BuyLevel = EntryLevel + Entfernung*Punkt;
SellLevel = EntryLevel - Entfernung*Punkt;
// if((BuyLevel-Ask)<10*Point || (Bid-SellLevel)<10*Point)
// {
// Comment("Ungültiger Einstiegskurs oder Abstand");
// return(0);
// }
//----------------------- LOTS ANPASSEN, WENN GELDMANAGEMENT VERWENDET WIRD
if(MM) Lots = subLotSize();
//----------------------- ENTRY
//----------------------- GESAMTAUFTRAG AUF BASIS VON MAGICNUMBER UND SYMBOL
total = subTotalTrade();
//----------------------- SETZT DIE ORDER NUR 1 MAL
if(TradeAllow)
{
//----------------------- IF NO TRADE
if(total<1 && EntryAllow)
{
ticket = OrderSend(Symbol(),OP_SELLSTOP,Lots,SellLevel,Slippage,SellLevel+StopLoss*Point,SellLevel-TakeProfit*Point,TicketComment,MagicNumber,0,Red);
// Ticket = OrderSend(Symbol(),OP_BUYSTOP,Lots,BuyLevel,Slippage,BuyLevel-StopLoss*Point,BuyLevel+TakeProfit*Point,TicketComment,MagicNumber,0,Green);
EntryAllow = false;
return(0);
}
if(gesamt==1)
{
subDeleteOrder();
TradeAllow = false;
}
}
//----------------------- TRAILING-STOP-ABSCHNITT
if(TrailingStop>0 && subTotalTrade()>0){
total = OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
subTrailingStop(OrderType());
return(0);
}
}
}
return(0);
}
//----------------------- END PROGRAM
//+------------------------------------------------------------------+
//| FUNKTIONSDEFINITIONEN
//+------------------------------------------------------------------+
//----------------------- GELDVERWALTUNGSFUNKTION
//----------------------- QUELLE: CODERSGURU
double subLotSize()
{
double lotMM = MathCeil(AccountFreeMargin() * Risk / 1000) / 100;
if(AccountIsMicro==false) //normales Konto
{
if(lotMM < 0.1) lotMM = Lots;
if((lotMM > 0.5) && (lotMM < 1)) lotMM = 0.5;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
if(lotMM > 100) lotMM = 100;
}
else //micro account
{
if(lotMM < 0,01) lotMM = Lots;
if(lotMM > 1.0) lotMM = MathCeil(lotMM);
wenn(lotMM > 100) lotMM = 100;
}
return(lotMM);
}
//----------------------- ANZAHL DER AUFTRÄGE AUF BASIS DES SYMBOLS UND DER MAGICNUMBER-FUNKTION
int subTotalTrade()
{
int
cnt,
gesamt = 0;
for(cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber) total++;
}
return(total);
}
//----------------------- FUNKTION BESTELLUNG LÖSCHEN
void subDeleteOrder()
{
int
cnt,
total = 0;
total = OrdersTotal();
for(cnt=summe-1;cnt>=0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(BestellSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber)
{
switch(OrderType())
{
// Fall OP_BUYLIMIT :
// case OP_BUYSTOP :
Fall OP_SELLLIMIT:
case OP_SELLSTOP :
OrderDelete(OrderTicket());
}
}
}
}
//----------------------- TRAILING STOP FUNCTION
//----------------------- QUELLE: CODERSGURU
//----------------------- MODIFIED : FIREDAVE
void subTrailingStop(int Typ)
{
if(Type==OP_BUY) // Kaufposition wird eröffnet
{
if(Bid-OrderOpenPrice()>Point*TrailingStop &&
OrderStopLoss()<Bid-Point*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
return(0);
}
}
if(Type==OP_SELL) // Verkaufsposition wird eröffnet
{
if(OrderOpenPrice()-Ask>Point*TrailingStop)
{
if(OrderStopLoss()>Ask+Point*TrailingStop || OrderStopLoss()==0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
//----------------------- GENERIERT MAGISCHE ZAHL AUF BASIS VON SYMBOL UND ZEITRAHMENFUNKTION
//----------------------- QUELLE: PENGIE
//----------------------- MODIFIED : FIREDAVE
int subGenerateMagicNumber(int MagicNumber, string symbol, int timeFrame)
{
int isymbol = 0;
if (symbol == "EURUSD") isymbol = 1;
else if (symbol == "GBPUSD") isymbol = 2;
sonst if (Symbol == "USDJPY") isymbol = 3;
sonst wenn (Symbol == "AUDCAD") isymbol = 4;
sonst wenn (Symbol == "AUDUSD") isymbol = 5;
sonst wenn (Symbol == "USDCAD") isymbol = 6;
sonst wenn (Symbol == "EURGBP") isymbol = 7;
sonst wenn (Symbol == "EURJPY") isymbol = 8;
sonst wenn (Symbol == "EURCHF") isymbol = 9;
sonst wenn (Symbol == "EURAUD") isymbol = 10;
sonst wenn (Symbol == "EURCAD") isymbol = 11;
sonst wenn (Symbol == "GBPUSD") isymbol = 12;
sonst wenn (Symbol == "GBPJPY") isymbol = 13;
sonst wenn (Symbol == "GBPCHF") isymbol = 14;
sonst wenn (Symbol == "GBPAUD") isymbol = 15;
sonst wenn (Symbol == "GBPCAD") isymbol = 16;
sonst isymbol = 17;
if(isymbol<10) MagicNumber = MagicNumber * 10;
return (StrToInteger(StringConcatenate(MagicNumber, isymbol, timeFrame)));
}
//----------------------- KOMMENTAR DRUCKEN FUNKTION
//----------------------- QUELLE: CODERSGURU
void subPrintDetails()
{
string sKommentar = "";
string sp = "----------------------------------------\n";
string NL = "\n";
sComment = sp;
sComment = sComment + "TakeProfit=" + DoubleToStr(TakeProfit,0) + " | ";
sComment = sComment + "TrailingStop=" + DoubleToStr(TrailingStop,0) + " | ";
sComment = sComment + "StopLoss=" + DoubleToStr(StopLoss,0) + NL;
sKommentar = sKommentar + sp;
sComment = sComment + "Lots=" + DoubleToStr(Lots,2) + " | ";
sKommentar = sKommentar + "MM=" + subBoolToStr(MM) + " | ";
sKommentar = sKommentar + "Risiko=" + DoubleToStr(Risiko,0) + "%" + NL;
sKommentar = sKommentar + sp;
Kommentar(sKommentar);
}
//----------------------- BOOLEN VARIABLE ZU STRING FUNKTION
//----------------------- QUELLE: CODERSGURU
string subBoolToStr ( bool wert)
{
if(value) return ("True");
else return ("False");
}
//----------------------- FUNKTION BEENDEN
Vielen Dank im Voraus.
JoJo,
Können Sie bitte die mq4-Datei anhängen? Es ist sehr schwierig, es auf diese Weise zu testen.