![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Problem mit der Schließposition
......
double cena=0;
static int isCrossed = 0;
isCrossed = Gekreuzt (k,d);
if(OrderSelect(ticket, SELECT_BY_POS))
{
c=OrderOpenPrice();
return(0);
}
if (isCrossed>0)
{
cena=((c-Ask)*10000);
return(0);
}
total = OrdersTotal();
if(gesamt < 1)
{
if(isCrossed == 1)
{
ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 1000, cena,
cena , "EMA_CROSS", 12345, 0, Green);
}
....
if(isCrossed == 2)
{
ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 1000, cena,
cena, "EMA_CROSS", 12345, 0, Red);
......
Im Allgemeinen schließt der EA die Position, wenn die EMAs gekreuzt werden und öffnet gleichzeitig eine andere Position.
die Positionen werden geöffnet, aber sie wollen nicht geschlossen werden ;/
bitte helfen
Ist es möglich, eine Position zu schließen und eine neue zum gleichen Zeitpunkt zu eröffnen?
(...)
if(OrdersTotal()!=0) {
(...)
OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Green ); }
if(OrdersTotal()==0) {
OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask - SL * Point, Ask + TP * Point, NULL, Magic, 0, Green); }
(...)
In diesem Codebeispiel wird die Short-Position beim ersten Tick geschlossen, aber die Long-Position wird nicht sofort eröffnet. Es dauert einen weiteren Tick, um die Long-Position zu öffnen.
Vielen Dank im Voraus :-)
Ja, das ist möglich. Fügen Sie einfach die Funktion RefreshRates() zwischen die Operatoren ein.
...... bitte helfen
Sieht so aus: Ich bin Pietra. Wie lautet mein zweiter Name?
Es ist unmöglich, Ihnen ohne den gesamten Code zu helfen. Entschuldigung.
Brauche Hilfe bei der Kodierung
Kann mir jemand bei der MT4-Codierung helfen, um die maximalen und minimalen Eröffnungskurse für EA zu kennen? Es gibt einige Eröffnungen durch einen EA.
Ich habe den folgenden Code gefunden, aber er ist für die Ermittlung der ersten/letzten Transaktionseröffnung.
double GetLastBuyPrice(int Magic)
{
int total=OrdersTotal()-1;
for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))
{
return(OrderOpenPrice());
}
}
return(10000);
}
Wie kann ich den höchsten/niedrigsten Eröffnungspreis einer Transaktion ermitteln?
Code
Kann mir jemand bei der MT4-Codierung helfen, um die maximalen und minimalen Eröffnungskurse für EA zu kennen? Es gibt einige Eröffnungen durch einen EA.
Ich habe einen ähnlichen Code gefunden, aber er ist für das Erkennen der ersten/letzten Transaktionsöffnung.
Double opens[1000] = {0};
double maxopen = 0 ;
double minopen = 1000000 ;
// double GetLastBuyPrice(int Magic)
{
int total=OrdersTotal()-1;
for (int cnt = gesamt ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && (OrderType()==OP_BUY))
{
opens[cnt] = OrderOpenPrice() ;
}
}
for ( cnt = 0 ; cnt <= total ; cnt ++ )
{
if ( opens[cnt] > maxopen ) maxopen = opens[cnt] ;
if ( opens[cnt] < minopen ) minopen = opens[cnt] ;
}
}
Wie kodiert man, um die höchste/niedrigste Transaktionsöffnung zu ermitteln?hi,
ändern Sie den Code wie oben,
es ist keine Prozedur zum Aufrufen von anderen ...,
fügen Sie sie an der gewünschten Stelle in Ihren EA-Code ein.
OTR
Benötige Hilfe bei der Erstellung eines Codes zum Öffnen von mehr als einer Bestellung
Es ist mir nicht gelungen, einen Code hinzuzufügen, um eine zweite Order zu eröffnen.
Ich versuche, 2 Aufträge auf der Grundlage desselben Signals mit unterschiedlichen TP-Levels zu eröffnen.
Unten ist mein Code für die Eröffnung der ersten Order:
Für jede Hilfe bin ich dankbar.
if(SlowSell<0 && FastSell<0 && PrevFastSell==0)
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SellStop order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der SellStop-Order : ",GetLastError());
return(0);
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SellStop order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der SellStop-Order : ",GetLastError());
return(0);
}
Hallo
Ich brauche etwas einfache Codierung Hilfe,
1) Absicherung eines Handels bei einer bestimmten Anzahl von Pips
2) Dann deaktiviert/suspendiert alle weiteren Handel..........
Sicherstellen, dass es nicht wieder absichern, wie ich manuell den abgesicherten Handel schließen.
Es ist mir nicht gelungen, Code zum Öffnen einer zweiten Bestellung hinzuzufügen.
Ich versuche, 2 Aufträge auf der Grundlage desselben Signals mit unterschiedlichen TP-Levels zu eröffnen.
unten ist mein Code für die Eröffnung des ersten Auftrags:
Für jede Hilfe bin ich dankbar.
if(SlowSell<0 && FastSell<0 && PrevFastSell==0)
{
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,Bid-TakeProfit*Point, "MA_Angle_Trader",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SellStop order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der SellStop-Order : ",GetLastError());
return(0);
ticket=OrderSend(Symbol(),OP_SELL,LotSize,Bid,Slipage,Bid+StopLoss*Point,0, "MA_Angle_Trader",MagicNumber,0,Red);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SellStop order opened : ",OrderOpenPrice());
}
else Print("Fehler beim Öffnen der SellStop-Order : ",GetLastError());
return(0);
}Ersetzen der ersten
return(0);
durch
RefreshRates();