Kann mir jemand bei diesem EA helfen?

 
//+------------------------------------------------------------------+
//| |
//| In no event will author be liable for any damages whatsoever. |
//| Use at your own risk. |
//| |
//+------------------- DO NOT REMOVE THIS HEADER --------------------+

#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4

#property link "http://eatbuilder.com/"

extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 0.1;
extern int Slippage = 3;
extern bool UseStopLoss = True;
extern int StopLoss = 15;
extern bool UseTakeProfit = True;
extern int TakeProfit = 10;
extern bool UseTrailingStop = False;
extern int TrailingStop = 30;
extern string Comments = "HLC_v2";

int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;

if (EachTickMode) Current = 0; else Current = 1;

return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;



if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;

//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+

double Var1 = iHigh(NULL, PERIOD_H1, Current + 1);
double Var2 = iLow(NULL, PERIOD_H1, Current + 1);
double Var3 = iClose(NULL, PERIOD_M15, Current + 0);
double Var4 = iOpen(NULL, PERIOD_M15, Current + 0);
double Var5 = iClose(NULL, PERIOD_M15, Current + 0);

double Buy1_1 = iHigh(NULL, PERIOD_H1, Current + 1); //(Buy1_1 < Buy1_2 && Buy2_1 < Buy2_2) Order = SIGNAL_BUY;
double Buy1_2 = iClose(NULL, PERIOD_M15, Current + 0);
double Buy2_1 = iOpen(NULL, PERIOD_M15, Current + 0);
double Buy2_2 = iClose(NULL, PERIOD_M15, Current + 0);

double Sell1_1 = iLow(NULL, PERIOD_H1, Current + 1);
double Sell1_2 = iClose(NULL, PERIOD_M15, Current + 0);
double Sell2_1 = iOpen(NULL, PERIOD_M15, Current + 0);
double Sell2_2 = iClose(NULL, PERIOD_M15, Current + 0);




//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+

//Check position
bool IsTrade = False;

for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+



//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+



//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+

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;
continue;
}
//Trailing stop
if(UseTrailingStop && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}

//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+

if (Buy1_1 < Buy1_2 && Buy2_1 < Buy2_2) Order = SIGNAL_BUY;

if (Sell1_1 > Sell1_2 && Sell2_1 > Sell2_2) Order = SIGNAL_SELL;


//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+

//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (UseStopLoss) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (100 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (UseStopLoss) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (UseTakeProfit) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

if (!EachTickMode) BarCount = Bars;

return(0);
}
//+------------------------------------------------------------------+
 

Ich habe versucht, es live zu stellen, aber es funktioniert nicht.

kann jemand es für mich reparieren?

Ich habe es mit dem Strategietester versucht und es funktioniert.

Vielen Dank im Voraus :)

 

WIR HASSEN EA BUILDER

 
dabbler:

WIR HASSEN EA BUILDER



???
 

EA-Builder erzeugt schlechten Code, den die Person, die EA-Builder verwendet, nicht verstehen und daher nicht korrigieren kann. Und es gibt eine Menge Code und es ist schwer, aus einer Menge schlechten Codes zu lernen.

Versuchen Sie, das Forum nach aktuellen Themen zu durchsuchen, die "EA builder" enthalten.

 
17021978:

Ich habe versucht, es live zu stellen, aber es funktioniert nicht.

kann jemand es für mich reparieren?

Ich habe es mit dem Strategietester versucht und es funktioniert.

Vielen Dank im Voraus :)


Wenn er nicht handelt, müssen Sie im Terminal Journal/Experts nachsehen und die Zeilen darin lesen

Wenn Sie dann immer noch keine Ahnung haben, müssen Sie in Ihrem EA einige Kommentar- oder Druckzeilen einfügen, um zu sehen, was passiert, während Ihr EA mit dem Chart verbunden ist

und wenn das nicht hilft, dann kann es sein, dass Sie dem EA nicht erlaubt haben, zu handeln....

Was gibt es also zu beheben?

Übrigens müssen Sie den SRC-Button verwenden, um die Programmierzeilen in Ihrer Nachricht zu platzieren

und wie dabbler

sagen, ich hasse EA Builder Sie lernen nicht die Grundlagen der Programmierung, die Sie haben müssen.... Nehmen Sie sich etwas Zeit und studieren Sie die Grundlagen

 
Ok, danke Dabbler und deVries!
 

  1. Da es hier keine Sklaven gibt, gibt es nur zwei Möglichkeiten: lernen zu programmieren oder jemanden zu bezahlen. Wir werden es nicht FÜR Sie programmieren. Wir sind bereit, Ihnen zu HILFEN. Wir werden nicht 230 Zeilen Code debuggen.
  2. EA Builder macht schlechten Code, der beim Schließen mehrerer Aufträge zählt.
  3. EA builder macht schlechten Code Bars ist unzuverlässig (max Bars auf dem Chart) Volumen ist unzuverlässig (Miss Ticks) Immer Zeit verwenden
  4. EA builder macht schlechten Code Nicht Anpassung für 4/5 stellige Broker
  5. EA-Builder macht schlechten Code nicht Anpassung für ECN-Broker.
  6. "Ich habe versucht, ihn live zu schalten, aber er handelt nicht..." Was steht in der Log-Datei?
 
WHRoeder:

  1. Da es hier keine Sklaven gibt, gibt es nur zwei Möglichkeiten: lernen zu programmieren oder jemanden zu bezahlen. Wir werden es nicht FÜR Sie programmieren. Wir sind bereit, Ihnen zu HILFEN. Wir werden nicht 230 Zeilen Code debuggen.
  2. EA-Builder macht schlechten Code, der beim Schließen von mehreren Aufträgen gezählt wird.
  3. EA builder macht schlechten Code Bars ist unzuverlässig (max Bars auf dem Chart) Volumen ist unzuverlässig (Miss Ticks) Immer Zeit verwenden
  4. EA builder macht schlechten Code Nicht Anpassung für 4/5 stellige Broker
  5. EA builder macht schlechten Code, der sich nicht für ECN-Broker anpasst.
  6. "Ich habe versucht, ihn live zu schalten, aber er handelt nicht..." Was steht in der Log-Datei?


Die Logdatei zeigt nichts an... nichts im Journal.

in der Regel können wir sehen, Fehler aus dem Journal, aber dies ein seine keine.

Danke für die Antwort WHRoeder

 
WHRoeder:

  1. EA builder macht schlechten Code Bars ist unzuverlässig (max Bars auf dem Chart) Volumen ist unzuverlässig (Miss Ticks) Immer Zeit verwenden

Der Chart kann also nicht größer werden als die in der Option angegebene Chartgröße - sollte man meinen. Also habe ich einen kleinen EA geschrieben, um zu beweisen , wie nutzlos die Verwendung von Bars ist.

int barCount=-1;

int init(){
   barCount = Bars;
   Print("Starting number of bars is " + barCount );
}

int start(){
   if( barCount != Bars ){
       barCount  = Bars;
       Print("Bar count is now " + barCount);
   }

   return(0);
}

Funktioniert auf dem Testgerät erwartungsgemäß gut. Ich nahm an , dass es in einem Demo- oder Live-Konto kläglich scheitern würde. Meine Chartgröße ist auf 100.000 eingestellt und es waren mehr Balken im Chart als das. Also änderte ich die maximale Anzahl der Balken im Chart auf 10.000 und startete das Programm neu. Schon der erste Tick, den der EA ausführt, gibt mir eine fast richtige Antwort: 10.005. Aber auf einem M1-Chart aktualisiert er sich ständig, wie man es erwarten würde, wenn das Chart-Limit völlig ignoriert würde. Es ist möglich, dass das Chart-Limit nur gilt, wenn Sie das Programm starten.

Am Ende habe ich bewiesen, dass ich nicht weiß, was Bars wirklich tun soll :-(

 
17021978:

Ich habe versucht, es live zu stellen, aber es funktioniert nicht.

kann jemand es für mich reparieren?

Ich habe es mit dem Strategietester versucht und es funktioniert.

Vielen Dank im Voraus :)

Lieber 17021978 - das ist alt,

Lesen Sie den gesamten Thread über EA builder https://www.mql5.com/en/forum/139608

:(

Grund der Beschwerde: