[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 918

 
Wie stelle ich fest, welcher Auftragstyp ein offener Verkaufs- oder Kaufauftrag ist und für welches Los?
 
Maniac:

Hallo zusammen! Mein Expert Advisor hat den folgenden Code (siehe unten). Ich verstehe, dass das Signal zur Eröffnung einer Position aus den Werten von zwei Indizes abgeleitet wird. Wie kann man einen Auftrag auf der Grundlage nur eines Indikators, z. B. CCI, eröffnen? Ich danke Ihnen vielmals.

Anstatt getSignal() aufzurufen, um das Öffnungskriterium zu bestimmen, rufen Sie entweder checkCCI() oder checkMomentum() auf. Diese beiden Funktionen geben die gleichen Signale zurück wie getSignal(), nämlich 0, 1 und -1.

Die Funktion getSignal() vergleicht einfach zwei Werte, die von checkCCI() und checkMomentum() zurückgegeben werden, und wenn sie gleich sind, gibt sie 1 (für Kaufen) oder -1 (für Verkaufen) zurück, oder 0, wenn nichts getan wird...

 
_SS_:
Wie kann man herausfinden, welche Auftragsart Verkauf oder Kauf ist und für welches Los?

Um die Aufträge des Terminals aufzulisten, prüfen Sie die Magie des ausgewählten Auftrags, seinen Typ und sein Los.

Die Magie wird verwendet, um festzustellen, ob der Auftrag zu Ihrem EA gehört oder nicht, und der Typ und das Lot sind die Werte, nach denen Sie suchen.

Wenn Sie den letzten offenen Auftrag suchen, vergleichen Sie seine Öffnungszeit mit der Öffnungszeit der anderen Aufträge, und wenn seine Zeit die längste ist, dann ist er es.

Wenn Sie nach einem Ticket suchen, sollten Sie es über das Ticket auswählen, aber bedenken Sie, dass die Auswahl aus zwei Feldern erfolgt - Markt und geschlossene Aufträge.

Um herauszufinden, ob es sich bei dem Auftrag um einen Marktauftrag handelt, sollten Sie den Zeitpunkt seines Abschlusses überprüfen, und wenn dieser größer als Null ist (und nur dann), dann ist der Auftrag bereits geschlossen, andernfalls handelt es sich um einen Marktauftrag.

 
Wie bekommt man den Magier heraus?
 
forex-k:
Es sollte funktionieren. Lächelt das Smiley-Gesicht?


extern double StopLoss=50.0;
extern double TakeProfit=50.0;
extern double Lots=1;
extern int total;

int start()
{
double Price_1, Price_2, min, max;
RefreshRates();
Price_1=Bid;
Price_2=Ask;

min=iLow(NULL,0,2);
max=iHigh(NULL,0,2);
total=OrdersTotal();
if(total<1)
{

if(Price_1>max)
OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-StopLoss*Point,Ask+TakeProfit*Point, "Meine Order#",16384,0,Green);

if(Price_2<min)
OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+StopLoss*Point,Bid-TakeProfit*Point, "Meine Order#",16384,0,Green);
}
}
return(0);

Ja, es funktioniert, das Smiley-Gesicht lächelt die ganze Zeit, aber es funktioniert nicht, die Positionen lassen sich nicht öffnen.

 
rustein:

Hilfe, EA schließt nicht alle Aufträge bei Erreichen eines Gewinns

Offene und schwebende Aufträge werden mit unterschiedlichen Funktionen geschlossen


void CloseAllOrders()
{
for (int i = 0; i < OrdersTotal(); i++)
{
if (OrderSelect(i, SELECT_BY_POS))
{
if (OrdersTotal() > 1 && OrderSymbol() == Symbol() && AccountProfit() >= AccountBalance()*AllProfit/100)
{
if((OrderType()==OP_BUY)) OrderClose(OrderTicket(), OrderLots(),Bid,0);
if((OrderType()==OP_SELL)) OrderClose(OrderTicket(), OrderLots(),Ask,0);
if((OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT|| OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT))OrderDelete(OrderTicket());
if(UseSound == true)
{
PlaySound(SuccesSound);
}
}
}
}
}
 
forex-k:

offene und schwebende Aufträge werden durch verschiedene Funktionen geschlossen


Danke :)
 

Können Sie mir sagen, wie ich die vom Indikator erstellten Objekte im Fenster löschen kann, wenn der Indikator selbst aus dem Diagramm entfernt wird?

 
Maniac:

Hallo zusammen! Ich habe den folgenden Code in meinem Expert Advisor (siehe unten). So wie ich es verstehe, wird das Signal zur Eröffnung einer Position von den Indikatoren zweier Indizes abgeleitet. Wie können wir die Aufträge auf der Grundlage nur eines Indikators, z. B. des CCI, öffnen lassen? Ich danke Ihnen vielmals.


int getSignal() { 
   int CCI = checkCCI();
   return (CCI);
}
int checkCCI() {
   double CCI = iCCI(NULL, 0, 60, PRICE_TYPICAL, 1);
   Print("CCI: ", CCI);
   if (CCI > 0.0) return (1);
   if (CCI < 0.0) return (-1);
   return (0);
} 
 

Guten Tag an alle. Ich benötige eine Funktion zur Suche nach Höchst- und Tiefstwerten in einer Anzahl von N Balken. Sagen wir hai/low für 55 Takte. Ich habe es irgendwo gesehen, kann es aber nicht finden.

Grund der Beschwerde: