Wie programmiert man? - Seite 280

 

Sicherlich können bei realen Konten Probleme auftreten, die im Demo- oder Strategietester nicht auftauchen, aber in der Regel sind sie nicht wiederkehrend und treten selten auf. Von diesem Problem habe ich noch nie gehört oder gesehen.

Anhand Ihrer Erklärung kann ich nicht feststellen, wie viele Handelsgeschäfte geöffnet sind, wenn das Problem auftritt. Wenn der Fehler auftritt, ohne dass Geschäfte geöffnet sind, ist das ein Rätsel. Wenn der Fehler bei etwa 5 offenen Geschäften auftritt, hat das wahrscheinlich etwas mit dem Problem zu tun.

ERR_TRADE_DISABLED 133 Der Handel ist deaktiviert. Alle Handelsversuche müssen abgebrochen werden.

Die Dokumentation für diesen Fehler scheint darauf hinzuweisen, dass etwas mit der Art und Weise, wie der EA den Handel platziert, nicht stimmt. Da aber beide EAs die gleiche OrderSend()-Logik verwenden, frage ich mich, ob es etwas mit der Tatsache zu tun hat, dass Sie 2 EAs laufen haben. Normalerweise führt jedes Konfliktproblem zu einem "Trade Context Busy" (146) und jedes Kontoproblem würde zu einem "Insufficient Funds" (134) Fehler führen. Es wäre einen Versuch wert, nur einen EA gleichzeitig laufen zu lassen und zu sehen, ob das einen Unterschied macht.

 

Avasys

Es mag albern klingen, aber Sie haben den EA doch kompiliert, oder?

Nach der Kompilierung sollte sich eine ex4-Datei im Ordner Experts befinden.

 
michaelB:
Es mag albern klingen, aber Sie haben den EA doch kompiliert, oder? Nach der Kompilierung sollte sich eine ex4-Datei im Ordner "Experts" befinden.

Dies ist, was ich auch wissen muss

Ich habe die mq4-Datei in den Experten-Ordner eingefügt, aber als ich MT4 neu gestartet habe, hat es keine ex4-Datei im Experten-Ordner erstellt,

Ich muss also den Code überprüfen, ob er einen Fehler hat.

 

Wie ändert man die Farbe von IndicatorShortName

Sehr geehrte Damen und Herren!

Wie kann ich im Code meine eigene Farbe für diese Zeile hinzufügen

IndicatorShortName(GetTimeFrameStr() + " MACD ("+FastEma+", "+SlowEma+", "+SignalSMMA+")");

um die Farbe der kleinen Info zu ändern, die ich im separaten Fenster des Indikators in der linken oberen Ecke habe?

Pucio

 

KANN MIR JEMAND SAGEN, WAS MIT DIESEM CODE FALSCH IST?

GIBT ES EINEN FEHLER, DENN ES WIRD KEINE EX4-DATEI ERSTELLT, WENN ICH DIE MQ4-DATEI IN DEN EXPERTENORDNER EINFÜGE

//+------------------------------------------------------------------+

//| simple EA.mq4 |

//| Copyright © 2011, luktom.biz |

//| www.luktom.biz/en |

//+------------------------------------------------------------------+

#property copyright "Copyright © 2011, luktom.biz."

#property link "http://www.luktom.biz"

extern double stopLoss = 300.0;

extern double takeProfit = 500.0;

extern string Begin = "2: 00";

extern string End = "10: 00";

extern double distance = 60;

bool isECN = true;

bool cond = false;

bool cond2 = false;

double low;

double hoch;

extern double lots = 0.1;

int magic = 1232344524285020;

int Schlupf = 1;

string kommentar = "";

int ticket;

int short = 0;

long int = 0;

//+------------------------------------------------------------------+

//| Experten-Initialisierungsfunktion |

//+------------------------------------------------------------------+

int init()

{

//----

//----

(0) return;

}

//+------------------------------------------------------------------+

//| Experten-Deinitialisierungsfunktion |

//+------------------------------------------------------------------+

int deinit ()

{

//----

Drucken (countOrders (magic, OP_BUY));

//----

(0) zurück;

}

//+------------------------------------------------------------------+

//| Expertenstartfunktion |

//+------------------------------------------------------------------+

int start()

{

Drucken (KontoWährung ());

//----

if (isGoodTime (Begin, End))

{

short = 0;

lang = 0;

if (! cond)

{

low = Bid;

hoch = Ask;

}

cond = true;

wenn (Bid < low) low = Bid;

wenn (Ask > high) high = Ask;

}

wenn ((hoch-niedrig) * 1000 > Abstand)

{

cond2 = wahr;

}

if (! isGoodTime (Begin, End))

{

cond = false;

}

if (! isGoodTime (Begin, End) & & cond2)

{

if (countOrders (magic, OP_SELL) == 0)

{

if (Bid " = (CRL-0.0005) & & short == 0)

{

kurz + +;

if (isECN == false)

{

OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Ask-takeProfit * Point, takeProfit), comment, magic);

}

if (isECN)

{

ticket = OrderSend (Symbol (), OP_SELL, lots, Bid, slippage, 0,0, comment, magic);

OrderSelect (Ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Ask + stopLoss * Point, stopLoss), sltpValue (Bid-takeProfit * Point, takeProfit), 0);

}

}

}

if (countOrders (magic, OP_BUY) == 0)

{

wenn ((Ask-high) > = 0,005 & & long = = 0)

{

long + +;

if (isECN == false)

{

OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, sltpValue (Ask-stopLoss * Point, stopLoss), sltpValue (Bid + takeProfit * Point, takeProfit), comment, magic);

}

if (isECN)

{

ticket = OrderSend (Symbol (), OP_BUY, lots, Ask, slippage, 0,0, comment, magic);

OrderSelect (Ticket, SELECT_BY_TICKET);

OrderModify (ticket, OrderOpenPrice (), sltpValue (Bid-stopLoss * Point, stopLoss), sltpValue (Ask + takeProfit * Point, takeProfit), 0);

}

}

}

}

//----

(0) zurück;

}

//+------------------------------------------------------------------+

bool isGoodTime (string, string, Begin, End) {

if (TimeCurrent () > Localtime (Begin) & & TimeCurrent < Localtime () (End)) {

return (true);

}

return (false);

}

int countOrders (int, int oMagic oType) {

int count = 0;

for (int i = 0; i < OrdersTotal (); i ++) {

if (OrderSelect (i, SELECT_BY_POS)) {

if (OrderMagicNumber () == oMagic) {

if (OrderSymbol () = the = Symbol ()) {

if (OrderType () == oType || oType < 0) {

count ++;

}

}

}

}

}

return (count);

}

double sltpValue (double, int w1 w2)

{

wenn (w2 = = 0)

return (0);

return (NormalizeDouble (w1, Digits));

}

 
Avasys:
KANN MIR JEMAND SAGEN, WAS MIT DIESEM CODE FALSCH IST?

GIBT ES IRGENDEINEN FEHLER, WEIL ES KEINE EX4-DATEI ERSTELLT, WENN ICH DIE MQ4-DATEI IN DEN EXPERTENORDNER EINFÜGE.

Können Sie uns sagen, woher Sie diese ea haben?

Es sieht so aus, als ob die Ea durcheinander ist. Zum Beispiel in Zeile 129, wo Sie die Definition der Funktion isGoodTime haben, sehen wir:

bool isGoodTime (string, string, Begin, End)

Es sollte lauten:

bool isGoodTime (string Begin, string End)

Es gibt viele solcher Fehler in ea. Es sieht so aus, als ob der Code unvollständig ist oder durch eine Codeänderung wie diese geschützt ist und das macht diese Quelle unbrauchbar.

 
Kalenzo:
Können Sie uns sagen, woher Sie diese Ea haben?

Es sieht so aus, als ob die ea durcheinander ist. Zum Beispiel in Zeile 129, wo die Funktion isGoodTime definiert ist, sehen wir:

bool isGoodTime (string, string, Begin, End)

Es sollte lauten:

bool isGoodTime (string Begin, string End)

Es gibt viele Fehler wie diese in ea. Sieht aus wie der Code unvollständig ist, oder durch Code-Änderung wie diese geschützt und dies macht diese Quelle nutzlos.

[lang=pl]Ich bin ein Autor. Ich füge eine mq4-Datei für Avasys bei. Ich weiß nicht, wer die Funktion isGoodTime im Code ändert. In meinem Terminal funktioniert es. Avasys warum sind Sie so nervös?

Wenn Sie ein Problem haben, wenden Sie sich einfach an mich, anstatt im Forum darüber zu reden[/lang].

Dateien:
 
g.pociejewski:
[lang=pl]Ich bin ein Autor. Ich anhängen mq4 Datei für Avasys. Ich weiß nicht, wer in der Code-Funktion isGoodTime ändern. In meinem Terminal funktioniert es. Avasys warum sind Sie so nervös? Wenn Sie ein Problem haben, wenden Sie sich einfach an mich, anstatt im Forum darüber zu reden[/lang]

Ich bin nicht nervös, ich konnte nicht finden Sie auf dem Forum

diese EA funktioniert gut, aber macht mehrere Trades pro Tag wieder. Also meine Sorgen war es, EA zu fragen, nur einen Handel pro Tag zu machen

 
CodeMeister:
Sicherlich können in realen Konten Probleme auftreten, die in der Demoversion oder im Strategietester nicht auftauchen, aber in der Regel sind sie nicht wiederkehrend und treten selten auf. Von diesem Problem habe ich noch nie gehört oder gesehen.

Anhand Ihrer Erklärung kann ich nicht feststellen, wie viele Trades geöffnet sind, wenn das Problem auftritt. Wenn der Fehler auftritt, ohne dass ein Handel geöffnet ist, ist das ein Rätsel. Wenn der Fehler bei etwa 5 geöffneten Geschäften auftritt, hat das wahrscheinlich etwas mit dem Problem zu tun.

ERR_TRADE_DISABLED 133 Der Handel ist deaktiviert. Alle Handelsversuche müssen abgebrochen werden.

Die Dokumentation für diesen Fehler scheint darauf hinzuweisen, dass etwas mit der Art und Weise, wie der EA den Handel platziert, nicht stimmt. Da aber beide EAs die gleiche OrderSend()-Logik verwenden, frage ich mich, ob es etwas mit der Tatsache zu tun hat, dass Sie 2 EAs laufen haben. Normalerweise führt jedes Konfliktproblem zu einem "Trade Context Busy" (146) und jedes Kontoproblem würde zu einem "Insufficient Funds" (134) Fehler führen. Es wäre einen Versuch wert, nur einen EA gleichzeitig laufen zu lassen und zu sehen, ob das einen Unterschied macht.

Der EA, bei dem das Problem auftritt, öffnet immer nur einen Handel auf einmal. Zum Zeitpunkt des Auftretens der Fehler waren keine anderen Trades geöffnet. Ich werde versuchen, nur einen EA auszuführen und sehen, ob das hilft. Vielen Dank für den Ratschlag.

 

Wie man ein MT4-Label liest

Hallo zusammen,

Ich habe einen Indikator modifiziert und ein OBJ_LABEL-Objekt mit Werten erstellt, so dass mein EA die Werte im OBJ_LABEL abrufen kann. Diese Werte sind Preispunkte und ich kann keinen anderen Puffer im Indikator erstellen, um sie zu halten, also habe ich sie einfach in diesen Etiketten platziert. Scheint eine gute Lösung zu sein, ABER, ich kann nicht herausfinden, wie man ein Label in MT4 in meinem EA LESEN kann! Ich verwende die Funktion GETOBJECT, aber sie gibt nur bestimmte Eigenschaften zurück und der Textwert eines Labels oder Textobjekts gehört nicht dazu!!!

Kann mir hier jemand helfen?

Danke!