[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 475

 
Wird es nicht mehr als einen Kaufauftrag zur gleichen Zeit geben?
 
dkfl.zrjdktdbx:
Ich danke Ihnen!!!

Hier ist der erste Link - und dann der Rest, IMHO.
 
Ivn:

Bitte erläutern Sie

Im analytischen Teil wird ein fest definierter Zeitrahmen verwendet. Oder Zeitrahmen
 
OK, ich habe eine Idee, vielleicht ist es ein bisschen geil...
 int BUY;
 for( i=OrdersTotal();i>0;i--){OrderSelect(i-1,SELECT_BY_POS );if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==????){
if(OrderType( )==OP_BUY){BUY++;}}} 
   if ( BUY> stsBUY) {//Alert ("NashlY BUY " );
   for ( i=OrdersTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS );
if( OrderMagicNumber( )==???? &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUYSTOP) {    
 OrderDelete(OrderTicket( ) ); 
  stsBUY=BUY;  Alert ("OrderDelete-OP_BUYSTOP",  GetLastError( ) );      }

if( OrderMagicNumber( )==???? &&OrderSymbol()==Symbol()&&OrderType( ) ==OP_BUYLIMIT) {    
 OrderDelete(OrderTicket( ) ); 
  stsBUY=BUY;  Alert ("OrderDelete-OP_BUYSTOP",  GetLastError( ) );      }


}}
Nee, das ist nicht ganz richtig. Es sieht so aus, als ob bei der Erkennung eines Kaufauftrags alle schwebenden Aufträge entfernt werden... Alle Kaufaufträge. stsBUY sollte vor dem Start festgelegt werden. Ich habe nicht auf Fehler geprüft.
 
Vinin:

Im analytischen Teil wird ein fest definierter Zeitrahmen verwendet. Oder Zeitrahmen

Könnten Sie bitte den "Fisch" für das Parsing weglassen? Wenn Sie irgendwelche Anmerkungen haben, wäre ich Ihnen dankbar.
 
dkfl.zrjdktdbx:
OK, ich habe eine Idee, vielleicht ist es ein bisschen geil... Nee, das ist nicht ganz richtig. Es sieht so aus, als ob, wenn ein Kaufauftrag erkannt wird, alle schwebenden Aufträge entfernt werden... Alle Kaufaufträge. stsBUY sollte vor dem Start festgelegt werden. Ich habe nicht auf Fehler geprüft.


Wir würden einen korrekteren Code benötigen. Keine Fehler

Und die Logik ist schlecht.

 
Ivn:

Könnten Sie bitte das "fish" für die Parse weglassen? Wenn Sie irgendwelche Kommentare haben, wäre ich Ihnen dankbar.

Du solltest wenigstens ein bisschen im Lehrbuch lesen, damit du nicht fragen musst, wie viel "zwei mal zwei" ist.

 
FelixFX:

Du solltest wenigstens ein bisschen im Lehrbuch lesen, damit du nicht fragen musst, wie viel "zwei mal zwei" ist.


Ich bestreite nicht, dass dies ein wichtiger Punkt ist, aber wenn ich ihn verstanden hätte, würde ich nicht fragen, oder?

D.h. in dem Algorithmus, in dem die Zeitrahmen in den Indikatoren angegeben sind, wird dies deutlich gemacht.

Oder?

dann erklären Sie mir Folgendes: ....

Expert Advisor - Überschreiten der Stochastik, Einstieg in einen Handel.

Hier ist der Algorithmus

int start()
{
RefreshRates(); // Daten aktualisieren
Symb=Symbol();

x1=x;
y1=y;

x=iStochastic( NULL,0,5,3,3,MODE_SMA,1,0,0); // stochastischer Hauptlinienwert auf dem 0-Bar
y=iStochastic( NULL,0,5,3,3,MODE_SMA,1,1,0); // stochastischer Signallinienwert auf dem 0-Bar
Alert ("stochastische Hauptlinie",x);
Alert ("stochastisches Signal",y);

//---- Schnittpunkt vonSignal- und Hauptlinie
if (y < x && y1> x1) // Check up pass
{
f=1 // Flagge oben
}
//--------------------------------------------------------------------
if (y > x && y1< x1) // Durchgang nach unten prüfen
{
f=2; // Flagge unten
}
//---- Schnittpunkt der Hauptlinie mit Linie 20 nach unten prüfen
if (f==1 && x1<20&& x1<20 && x>= 20)
{ if (Ticket > 0) // wenn es eine Order gibt, diese entfernen
OrderClose(Ticket,Lts,Bid,10);
SL=Bid - StopLoss*Point; // Berechnung von SL open
TP=Bid + TakeProfit*Point; // Berechnung des TP open.
Alert("Attempting to open Buy. Waiting for reply...");
OrderSelect(Ticket, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(Ticket, SELECT_BY_TICKET))
{

Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,3,SL,TP);//open Buy
}

if (Ticket > 0) // Es hat funktioniert :)
{
Alert ("Opened Buy order ",Ticket);
return;
f=0; // reset flag
}

}
//---- check crossing of main line from top to bottom of line 80
if (f==2 &&& x1>80 && x<= 80)
{ if (Ticket > 0)
OrderClose(Ticket,Lts,Ask, 10); // wenn es eine Order gibt, entfernen
SL=Ask + StopLoss*Point; // Berechnung von SL
TP=Ask - TakeProfit*Point; // Berechnung des TP open.
Alert("Attempting to open Sell. Waiting for reply...");
OrderSelect(Ticket, SELECT_BY_TICKET);
if(OrderCloseTime()>0 || !OrderSelect(Ticket, SELECT_BY_TICKET))
{
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,3,SL,TP);//Open Buy
}
if (Ticket > 0) // Es hat funktioniert :)
{
Alert ("Sell order opened ",Ticket);
return;
f=0; // zeroize flag
}

}


return(0);
}

wird der Expert Advisor Aufträge innerhalb einer halben Stunde öffnen und schließen, d.h. um 9.04 Uhr öffnen, um 9.05 Uhr schließen, um 9.06 Uhr wieder öffnen, um 9.07 Uhr schließen usw., und zwar in derselben Richtung.

Wie kommt es dazu?

Herzliche Grüße.

 
sss2019:
Und wenn zwei BUYLIMIT- und BUYSTOP-Aufträge offen sind, muss ich den BUYSTOP bei Auslösung des BUYLIMIT löschen und umgekehrt. Können Sie mir sagen, wie diese Bedingung erfüllt werden kann?

Eigentlich müsste die Logik in etwa so lauten:

1. Wenn es zwei schwebende Aufträge und keine Positionen gibt, dann merken Sie sich die Ticks dieser schwebenden Aufträge in den Variablen.

2. Wenn es einen schwebenden SellStop und keinen schwebenden BuyStop gibt, wird bei einer Buy-Position das Ticket der zuletzt eröffneten Buy-Position mit dem erinnerten BuyStop-Ticket verglichen.

Wenn sie gleich sind, bedeutet dies, dass der ByStop in einen Marktkauf umgewandelt wurde --> wenn es einen ausstehenden SellStop gibt, löschen Sie ihn. 3.

Wenn ein ausstehender BuyStop und kein ausstehender SellStop vorhanden ist, wird bei einer Verkaufsposition das Ticket der zuletzt eröffneten Verkaufsposition mit dem gespeicherten SellStop-Ticket verglichen.

Wenn sie gleich sind, wird der SellStop in einen Market Sell umgewandelt --> wenn ein BuyStop anhängig ist, löschen Sie ihn.

Ungefähr das gleiche... Dies ist nur eine grobe Logik. Es braucht Funktionen.

 
Nun, es tut mir leid, das war nur ein kurzer... Ja, mein Fehler, es ist falsch herum. Ich sollte, ich sollte die Geschichte durchgehen, den letzten Auftrag finden und... и... Nein... Ich weiß es nicht genau...
Grund der Beschwerde: