[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 744
Diese Bestellung wird noch in einem Stapel geöffnet.
So setze ich die Variablen in meinem Ekspert
externint TakeProfit=18;
externint StopLoss=18;
externdouble Lot=0.01;
externint StartTime=0;
int Today=0;
int h=10;
int h1=26;
int mag=777;
bool b=0,s=0, //соответственно бай или селл
bs=0,// если закрытие по стоплоссу ордера бай
ss=0,// если закрытие по стоплоссу ордера sell
bt=0,
st=0;// то же по ТПdouble bl=0,sl=0; // лоты соответсвенно для бай и селл//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start()
{
if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаемif(!IsTradeAllowed()) return(0); // пропустим тик если терминал занятint total = OrdersTotal();
if(total == 0)
{NewOrder(OP_BUY,Lot);
NewOrder(OP_SELL,Lot);
NewOrder(OP_BUYLIMIT,Lot);
NewOrder(OP_SELLLIMIT,Lot);
NewOrder(OP_BUYSTOP,Lot);
NewOrder(OP_SELLSTOP,Lot);
Today=TimeDay(TimeCurrent());}
{
for(int cnt=OrdersHistoryTotal();cnt>0;cnt--)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_HISTORY);
{if(OrderMagicNumber()== mag &&
OrderSymbol()==Symbol())
{ if (OrderType() == OP_BUY ) {b=1; if (OrderClosePrice()==OrderTakeProfit()) bt=1;
if (OrderClosePrice()==OrderStopLoss()) bs=1; bl=OrderLots()*100; break;}
if (OrderType() == OP_SELL) {s=1; if (OrderClosePrice()==OrderTakeProfit()) st=1;
if (OrderClosePrice()==OrderStopLoss()) ss=1; sl=OrderLots()*100; break;}
}
}
}
}//endif(bs==1||bl==1)
{
NewOrder1(OP_BUYLIMIT,Lot);
Today=TimeDay(TimeCurrent());}
und hier ist die Auftragseröffnung
int NewOrder1(int Cmd,double Lot)
{double TP=0; //тейкпрофитdouble SL=0; //стоплоссdouble PR=0; //Ценаdouble LT=0; //Лотwhile(!IsTradeAllowed()) Sleep(100);
if(Cmd==OP_BUYLIMIT)
{PR=Ask-Point*h;
if(TakeProfit>0) TP=PR+TakeProfit*Point;
if(StopLoss>0) SL=PR-StopLoss*Point;
if(Lot>0) LT=3*Lot;}
int tic1=OrderSend(Symbol(),Cmd,LT,PR,3,SL,TP,0,mag,0,CLR_NONE);
//-----------if(tic1<0) Print(GetLastError());
if(tic1>0){
b=0;s=0; //соответственно бай или селл
bs=0;// если закрытие по стоплоссу ордера бай
ss=0;// если закрытие по стоплоссу ордера sell
bt=0;
st=0;// то же по ТП
bl=0;sl=0; // лоты соответсвенно для бай и селл
}
//-----------return(tic1);}
Bitte geben Sie mir den Code der Funktion, die einen Stopp einmal auf Break-Even-Niveau setzen wird, wenn der Gewinn zum Beispiel 20 Pips sein wird.
Vielen Dank im Voraus für die Antwort:)
Diese und viele andere nützliche Funktionen finden Sie auf der Website http://www.kimiv.ru von Igor Kim . Und die, die Sie brauchen, heißt MovingInWL(), wenn ich mich nicht irre.
Boris, es ist sogar noch einfacher als das. Sie lassen diese Zeile fallen:
Ganz am Anfang des Codes (separat, nicht in einer Funktion). An den Stellen, an denen die Funktion OrderSend(...) aufgerufen wird, schließen Sie sie einfach in eine zusätzliche Umarmung des if-Operators ein
Bevor die nächste Bestellung geöffnet wird, prüft der Betreiber, ob es in der aktuellen Bar Angebote gibt oder nicht. Wenn dies der Fall ist, wurde der aktuelle Balken in der Variablen new gespeichert, und wenn der aktuelle Balken mit dem gespeicherten Balken übereinstimmt, wird keine Position geöffnet. Wenn die Bar also neu ist und ihre Öffnungszeit nicht mit den Daten der Variablen new übereinstimmt, wird das Geschäft geöffnet und die Variable new erhält einen neuen Wert.
Ich kenne die Architektur Ihres EA nicht genau, aber diese Methode sollte in den meisten Fällen funktionieren.
Ich kann mir keine bessere Vorgehensweise vorstellen.
Es gibt einen Indikator mit einer Reihe von Arrays. Der zweite Indikator muss mit diesen Arrays arbeiten. Zur Berechnung und Ausgabe des Ergebnisses in einer eigenen Tabelle.
Am einfachsten wäre es, diesen Indikator aufzurufen, aber das ist anscheinend nicht möglich.
Hallo, könnten Sie mir bitte sagen, wie man Protokolle in MT4 anzeigen?
Sie müssen nicht 15 Nachrichten mit nur einem Inhalt veröffentlichen. Und wenn Sie das tun, ist es wünschenswert, dass Sie hinter sich aufräumen. Warten Sie nicht auf die Onkel.
Diese Bestellung wird noch in einem Stapel geöffnet.
So setze ich die Variablen in meinem Ekspert
und hier ist die Auftragseröffnung
Ich verstehe überhaupt nicht, wie sich das anfühlt... Die Klammern passen nicht zueinander, es fehlt eine schließende Klammer... Ich weiß nicht, was hier los ist. Bereinigen Sie Ihren Code... Es ist schwierig, damit umzugehen, und es gibt keine Möglichkeit, es zu kompilieren und auszuführen - wir arbeiten an unseren eigenen Codes...
Diese Bestellung wird noch in einem Stapel geöffnet.
So setze ich die Variablen in meinem Ekspert
und hier ist die Auftragseröffnung
Bitte geben Sie mir den Code der Funktion, die einen Stopp einmal auf Break-Even-Niveau setzen wird, wenn der Gewinn zum Beispiel 20 Pips sein wird.
Vielen Dank im Voraus für die Antwort:)
Boris, es ist sogar noch einfacher als das. Sie lassen diese Zeile fallen:
Ganz am Anfang des Codes (separat, nicht in einer Funktion).
An den Stellen, an denen die Funktion OrderSend(...) aufgerufen wird, schließen Sie sie einfach in eine zusätzliche Umarmung des if-Operators ein
Bevor die nächste Bestellung geöffnet wird, prüft der Betreiber, ob es in der aktuellen Bar Angebote gibt oder nicht. Wenn dies der Fall ist, wurde der aktuelle Balken in der Variablen new gespeichert, und wenn der aktuelle Balken mit dem gespeicherten Balken übereinstimmt, wird keine Position geöffnet. Wenn die Bar also neu ist und ihre Öffnungszeit nicht mit den Daten der Variablen new übereinstimmt, wird das Geschäft geöffnet und die Variable new erhält einen neuen Wert.
Ich kenne die Architektur Ihres EA nicht genau, aber diese Methode sollte in den meisten Fällen funktionieren.
Ich danke Ihnen vielmals! Es passt perfekt!
Ich kann mir keine bessere Vorgehensweise vorstellen.
Es gibt einen Indikator mit einer Reihe von Arrays. Der zweite Indikator muss mit diesen Arrays arbeiten. Zur Berechnung und Ausgabe des Ergebnisses in einer eigenen Tabelle.
Am einfachsten wäre es, diesen Indikator aufzurufen, aber das ist anscheinend nicht möglich.
Wie kommt man zu anderen Arrays?
Ich weiß es nicht.
Hallo, könnten Sie mir bitte sagen, wie man Protokolle in MT4 anzeigen?
Sie müssen nicht 15 Nachrichten mit nur einem Inhalt veröffentlichen. Und wenn Sie das tun, ist es wünschenswert, dass Sie hinter sich aufräumen. Warten Sie nicht auf die Onkel.
Sie haben es wohl wirklich nötig... :) Oder die Maus steckt fest...
Es ist nicht die Maus, die feststeckt. Es ist Ungeduld. Ich habe 20 Minuten gebraucht, um am Ende 15 Beiträge zu löschen.
Es ist nicht die Maus, die feststeckt.
Diese Bestellung wird noch in einem Stapel geöffnet.
So setze ich die Variablen in meinem Ekspert
und hier ist die Auftragseröffnung
Es ist nicht die Maus, die feststeckt. Es ist Ungeduld. Ich habe 20 Minuten gebraucht, um am Ende 15 Beiträge zu löschen.