PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe beim Debuggen meines EA Ich finde, die Lösung ist zu einfach.



CarlttGC512
06:45,
Nachfolgend finden Sie eine Kopie des EA-Codes. Immer wenn ich es an ein Chart anhebe, steht es einfach da, öffnet oder schließt keine Trades. Es ist für den Live-Handel ohne manuelle Bestätigung eingestellt.

Irgendwelche Gedanken?








#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#Eigentum urheberrechtlich
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern doppelte Lots = 5,0;
extern int Slippage = 0;
extern bool StopLossMode = False;
extern int StopLoss = 0;
extern bool TakeProfitMode = False;
extern int TakeProfit = 0;
extern bool TrailingStopMode = False;
extern int TrailingStop = 0;
int BarCount;
int aktuell;
bool TickCheck = False;
// ------------------------------------------- -------------------
//| Experteninitialisierungsfunktion |
// ------------------------------------------- -------------------
int init () {
BarCount = Bars;
if (EachTickMode) Current = 0; sonst Strom = 1;
return (0);
}
// ------------------------------------------- -------------------
//| Experten-Deinitialisierungsfunktion |
// ------------------------------------------- -------------------
int deinit () {
return (0);
}
// ------------------------------------------- -------------------
//| Expertenstartfunktion |
// ------------------------------------------- -------------------
int start () {
int Order = SIGNAL_NONE;
int Total, Ticket;
doppeltes StopLossLevel, TakeProfitLevel;

if (EachTickMode Bars! = BarCount) TickCheck = False;
Gesamt = OrdersTotal ();
Auftrag = SIGNAL_NONE;
// ------------------------------------------- -------------------
//| Variabler Anfang |
// ------------------------------------------- -------------------
double Var1 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, Current 0);
double Var2 = iMACD (NULL, 0, 8, 17, 9, PRICE CLOSE, MODE_MAIN, Current 0);
double Var3 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, uell 1)
double Var4 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_MAIN, Current 1);
double Buy1_1 = Var1 lt; Var2;
double Buy2_1 = Var3 gt; Var4;
double Sell1_1 = Var1 gt; Var2;
double Sell2_1 = Var3 lt; Var4;
double CloseBuy1_1 = Var1 gt; Var2;
double CloseBuy2_1 = Var3 lt; Var4;
double CloseSell1_1 = Var1 lt; Var2;
double CloseSell2_1 = Var3 gt; Var4;

// ------------------------------------------- -------------------
//| Variables Ende |
// ------------------------------------------- -------------------
//Position prüfen
bool IsTrade = False;
für (int i = 0; i lt; Total; i ) {
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderType () lt; = OP_SELL OrderSymbol () == Symbol ()) {
IsTrade = True;
if (OrderType () == OP_BUY) {
//Schließen
// ------------------------------------------- -------------------
//| Signal Anfang (Kauf beenden) |
// ------------------------------------------- -------------------
if (False False) Order = SIGNAL_CLOSEBUY;

// ------------------------------------------- -------------------
//| Signalende (Kauf beenden) |
// ------------------------------------------- -------------------
if (Order == SIGNAL_CLOSEBUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount))))
OrderClose (OrderTicket (), OrderLots (), Gebot, Slippage, MediumSeaGreen);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Angebot, Digits) Close Buy);
if (! EachTickMode) BarCount = Bars;
IsTrade = False;
fortsetzen;
}
//Schleppstopp
if (TrailingStopMode TrailingStop gt; 0) {
if (Gebot - OrderOpenPrice () gt; Punkt * TrailingStop) {
if (OrderStopLoss () lt; Gebot - Punkt * TrailingStop) {
OrderModify (OrderTicket (), OrderOpenPrice (), Gebot - Punkt * TrailingStop, OrderTakeProfit (), 0, MediumSeaGreen);
if (! EachTickMode) BarCount = Bars;
fortsetzen;
}
}
}
} else {
//Schließen
// ------------------------------------------- -------------------
//| Signal Anfang (Verkauf beenden) |
// ------------------------------------------- -------------------
if (False False) Order = SIGNAL_CLOSESELL;

// ------------------------------------------- -------------------
//| Signalende (Verkauf beenden) |
// ------------------------------------------- -------------------
if (Order == SIGNAL_CLOSESELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
OrderClose (OrderTicket (), OrderLots (), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Close Sell);
if (! EachTickMode) BarCount = Bars;
IsTrade = False;
fortsetzen;
}
//Schleppstopp
if (TrailingStopMode TrailingStop gt; 0) {
if ((OrderOpenPrice () - Ask) gt; (Point * TrailingStop)) {
if ((OrderStopLoss () gt; (Ask Point * TrailingStop)) || (OrderStopLoss () == 0)) {
OrderModify (OrderTicket (), OrderOpenPrice (), Ask Point * TrailingStop, OrderTakeProfit (), 0, DarkOrange);
if (! EachTickMode) BarCount = Bars;
fortsetzen;
}
}
}
}
}
}
// ------------------------------------------- -------------------
//| Signal Anfang (Eingabe) |
// ------------------------------------------- -------------------
if (False False) Order = SIGNAL_BUY;
if (False False) Order = SIGNAL_SELL;

// ------------------------------------------- -------------------
//| Signalende |
// ------------------------------------------- -------------------
//Kaufen
if (Order == SIGNAL_BUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
if (! IsTrade) {
//Überprüfen Sie den freien Rand
if (AccountFreeMargin () lt; (1)) {
Drucken (Wir haben kein Geld. Free Margin =, AccountFreeMargin ());
return (0);
}
if (StopLossMode) StopLossLevel = Ask - StopLoss * Punkt; else StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Ask TakeProfit * Punkt; else TakeProfitLevel = 0.0;
Ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, Buy (# MagicNumber ), MagicNumber, 0, DodgerBlue);
if (Ticket gt; 0) {
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Drucken (Kaufauftrag geöffnet:, OrderOpenPrice ());
SetIndexStyle (3, DRAW_ARROW, LEER, 2, Grün);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Open Buy);
} else {
Print (Fehler beim Öffnen der BUY-Reihenfolge:, GetLastError ());
}
}
if (EachTickMode) TickCheck = True;
if (! EachTickMode) BarCount = Bars;
return (0);
}
}
//Verkaufen
if (Order == SIGNAL_SELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
if (! IsTrade) {
//Überprüfen Sie den freien Rand
if (AccountFreeMargin () lt; (1)) {
Drucken (Wir haben kein Geld. Free Margin =, AccountFreeMargin ());
return (0);
}
if (StopLossMode) StopLossLevel = Gebot StopLoss * Punkt; else StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Gebot - TakeProfit * Punkt; else TakeProfitLevel = 0.0;
Ticket = OrderSend (Symbol (), OP_SELL, Lots, Gebot, Slippage, StopLossLevel, TakeProfitLevel, Sell (# MagicNumber ), MagicNumber, 0, DeepPink);
if (Ticket gt; 0) {
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print (SELL Bestellung geöffnet:, OrderOpenPrice ());
SetIndexStyle (3, DRAW_ARROW, LEER, 2, Rot);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Geld, Digits) Verkauf verkaufen);
} else {
Print (Fehler beim Öffnen der SELL-Bestellung:, GetLastError ());
}
}
if (EachTickMode) TickCheck = True;
if (! EachTickMode) BarCount = Bars;
return (0);
}
}
if (! EachTickMode) BarCount = Bars;
return (0);
}
// ------------------------------------------- -------------------


#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4
#Eigentum urheberrechtlich
extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern doppelte Lots = 5,0;
extern int Slippage = 0;
extern bool StopLossMode = False;
extern int StopLoss = 0;
extern bool TakeProfitMode = False;
extern int TakeProfit = 0;
extern bool TrailingStopMode = False;
extern int TrailingStop = 0;
int BarCount;
int aktuell;
bool TickCheck = False;
// ------------------------------------------- -------------------
//| Experteninitialisierungsfunktion |
// ------------------------------------------- -------------------
int init () {
BarCount = Bars;
if (EachTickMode) Current = 0; sonst Strom = 1;
return (0);
}
// ------------------------------------------- -------------------
//| Experten-Deinitialisierungsfunktion |
// ------------------------------------------- -------------------
int deinit () {
return (0);
}
// ------------------------------------------- -------------------
//| Expertenstartfunktion |
// ------------------------------------------- -------------------
int start () {
int Order = SIGNAL_NONE;
int Total, Ticket;
doppeltes StopLossLevel, TakeProfitLevel;

if (EachTickMode Bars! = BarCount) TickCheck = False;
Gesamt = OrdersTotal ();
Auftrag = SIGNAL_NONE;
// ------------------------------------------- -------------------
//| Variabler Anfang |
// ------------------------------------------- -------------------
double Var1 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, Current 0);
double Var2 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_MAIN, Current 0);
double Var3 = iMACD (NULL, 0, 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, uell 1)
double Var4 = iMACD (NULL, 0, 8, 17, 9, PRICE CLOSE, MODE_MAIN, Current 1);
double Buy1_1 = Var1 lt; Var2;
double Buy2_1 = Var3 gt; Var4;
double Sell1_1 = Var1 gt; Var2;
double Sell2_1 = Var3 lt; Var4;
double CloseBuy1_1 = Var1 gt; Var2;
double CloseBuy2_1 = Var3 lt; Var4;
double CloseSell1_1 = Var1 lt; Var2;
double CloseSell2_1 = Var3 gt; Var4;

// ------------------------------------------- -------------------
//| Variables Ende |
// ------------------------------------------- -------------------
//Position prüfen
bool IsTrade = False;
für (int i = 0; i lt; Total; i ) {
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderType () lt; = OP_SELL OrderSymbol () == Symbol ()) {
IsTrade = True;
if (OrderType () == OP_BUY) {
//Schließen
// ------------------------------------------- -------------------
//| Signal Anfang (Kauf beenden) |
// ------------------------------------------- -------------------
if (False False) Order = SIGNAL_CLOSEBUY;

// ------------------------------------------- -------------------
//| Signalende (Kauf beenden) |
// ------------------------------------------- -------------------
if (Order == SIGNAL_CLOSEBUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount))))
OrderClose (OrderTicket (), OrderLots (), Gebot, Slippage, MediumSeaGreen);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Angebot, Digits) Close Buy);
if (! EachTickMode) BarCount = Bars;
IsTrade = False;
fortsetzen;
}
//Schleppstopp
if (TrailingStopMode TrailingStop gt; 0) {
if (Gebot - OrderOpenPrice () gt; Punkt * TrailingStop) {
if (OrderStopLoss () lt; Gebot - Punkt * TrailingStop) {
OrderModify (OrderTicket (), OrderOpenPrice (), Gebot - Punkt * TrailingStop, OrderTakeProfit (), 0, MediumSeaGreen);
if (! EachTickMode) BarCount = Bars;
fortsetzen;
}
}
}
} else {
//Schließen
// ------------------------------------------- -------------------
//| Signal Anfang (Verkauf beenden) |
// ------------------------------------------- -------------------
if (False False) Order = SIGNAL_CLOSESELL;

// ------------------------------------------- -------------------
//| Signalende (Verkauf beenden) |
// ------------------------------------------- -------------------
if (Order == SIGNAL_CLOSESELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
OrderClose (OrderTicket (), OrderLots (), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Close Sell);
if (! EachTickMode) BarCount = Bars;
IsTrade = False;
fortsetzen;
}
//Schleppstopp
if (TrailingStopMode TrailingStop gt; 0) {
if ((OrderOpenPrice () - Ask) gt; (Point * TrailingStop)) {
if ((OrderStopLoss () gt; (Ask Point * TrailingStop)) || (OrderStopLoss () == 0)) {
OrderModify (OrderTicket (), OrderOpenPrice (), Ask Point * TrailingStop, OrderTakeProfit (), 0, DarkOrange);
if (! EachTickMode) BarCount = Bars;
fortsetzen;
}
}
}
}
}
}
// ------------------------------------------- -------------------
//| Signal Anfang (Eingabe) |
// ------------------------------------------- -------------------
if (False False) Order = SIGNAL_BUY;
if (False False) Order = SIGNAL_SELL;

// ------------------------------------------- -------------------
//| Signalende |
// ------------------------------------------- -------------------
//Kaufen
if (Order == SIGNAL_BUY ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))))
if (! IsTrade) {
//Überprüfen Sie den freien Rand
if (AccountFreeMargin () lt; (1)) {
Drucken (Wir haben kein Geld. Free Margin =, AccountFreeMargin ());
return (0);
}
if (StopLossMode) StopLossLevel = Ask - StopLoss * Punkt; else StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Ask TakeProfit * Punkt; else TakeProfitLevel = 0.0;
Ticket = OrderSend (Symbol (), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, Buy (# MagicNumber ), MagicNumber, 0, DodgerBlue);
if (Ticket gt; 0) {
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Drucken (Kaufauftrag geöffnet:, OrderOpenPrice ());
SetIndexStyle (3, DRAW_ARROW, LEER, 2, Grün);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Ask, Digits) Open Buy);
} else {
Print (Fehler beim Öffnen der BUY-Bestellung:, GetLastError ());
}
}
if (EachTickMode) TickCheck = True;
if (! EachTickMode) BarCount = Bars;
return (0);
}
}
//Verkaufen
if (Order == SIGNAL_SELL ((EachTickMode! TickCheck) || (! EachTickMode (Bars! = BarCount)))
if (! IsTrade) {
//Überprüfen Sie den freien Rand
if (AccountFreeMargin () lt; (1)) {
Drucken (Wir haben kein Geld. Free Margin =, AccountFreeMargin ());
return (0);
}
if (StopLossMode) StopLossLevel = Gebot StopLoss * Punkt; else StopLossLevel = 0,0;
if (TakeProfitMode) TakeProfitLevel = Gebot - TakeProfit * Punkt; else TakeProfitLevel = 0.0;
Ticket = OrderSend (Symbol (), OP_SELL, Lots, Gebot, Slippage, StopLossLevel, TakeProfitLevel, Sell (# MagicNumber ), MagicNumber, 0, DeepPink);
if (Ticket gt; 0) {
if (OrderSelect (Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print (SELL Bestellung geöffnet:, OrderOpenPrice ());
SetIndexStyle (3, DRAW_ARROW, LEER, 2, Rot);
if (SignalMail) SendMail ([Signal Alert], [ Symbol () ] DoubleToStr (Geld, Digits) Verkauf verkaufen);
} else {
Print (Fehler beim Öffnen der SELL-Bestellung:, GetLastError ());
}
}
if (EachTickMode) TickCheck = True;
if (! EachTickMode) BarCount = Bars;
return (0);
}
}
if (! EachTickMode) BarCount = Bars;
return (0);
}
// ------------------------------------------- -------------------

richuhauntin
10:15,
Was möchten Sie mit der if (False False) -Klausel sagen? Ich habe das bisher noch nicht gesehen.