Wie setze ich den TP auf weniger als 5 Pips? - Seite 3

 
Ich habe die Korrektur für Verkaufs- oder Kaufaufträge vorgenommen, ich handele nur mit Eurusd, so dass es kein Problem mit den Symbolen gibt. Ich benutze keine EA's, so dass alle Aufträge manuell platziert werden! Das Problem ist, wie zu unterscheiden, um die Aufträge zu schließen, die ich für Scalping zu den langfristigen Aufträge haben
 
extern double CloseforBuy=1.4;
extern double CloseforSell=1.3;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()


{
if(OrderType()==OP_BUY)
{
if(Bid>CloseforBuy)
{
for(int a=OrdersTotal()-1;a>=0;a--)
if(OrderSelect(a,SELECT_BY_POS, MODE_TRADES) )
//if(OrderSymbol()==Symbol())
OrderClose(OrderTicket(),OrderLots( ),OrderClosePrice(),1000,White);
//----

}}
if(OrderType()==OP_SELL)
{
if(Ask<CloseforSell)
{
for(int b=OrdersTotal()-1;b>=0;b--)
if(OrderSelect(b,SELECT_BY_POS, MODE_TRADES) )
//if(OrderSymbol()==Symbol())
OrderClose(OrderTicket(),OrderLots( ),OrderClosePrice(),1000,White);
//----
}}

return(0);
}
 

Sie können dies nicht tun...

if(OrderType()==OP_BUY)

. . . bis nach der Funktion OrderSelect() . . . lesen Sie die Dokumentation für OrderType(), dort steht : "Hinweis: Die Bestellung muss mit der FunktionOrderSelect()ausgewählt werden ."

Versuchen Sie...

if(Bid>CloseforBuy)
   {
   for(int a=OrdersTotal()-1;a>=0;a--)
      if( OrderSelect(a,SELECT_BY_POS, MODE_TRADES) && 
      OrderType()==OP_BUY &&
      OrderSymbol()==Symbol() )
         if( !OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 1000, White) )
            Print("OrderClose failed, error: ", GetLastError());

   }
 
deVries:

Sie können tp auf 25 Pips setzen und den Handel dann bei 5 Pips schließen.

Ja, aber wenn sich die Kurse plötzlich um mehr als 5 Pips ändern, können Sie den Auftrag nicht mehr rechtzeitig schließen. Das ist ein Teil des Risikos.

Mit freundlichen Grüßen und viel Erfolg beim Trading!!!

 
RaptorUK:

Sie können dies nicht tun...

. . . bis nach Ihrer OrderSelect() . . . lesen Sie die Dokumentation für OrderType() , dort steht : "Hinweis: Die Bestellung muss mit der FunktionOrderSelect() ausgewählt werden ."

Versuchen Sie . . .

Vielen Dank für Ihre Hilfe, ich habe die Korrektur vorgenommen! Super!!!

Haben Sie einen Vorschlag, einen der Käufe/Verkäufe zu filtern und zu schließen und nicht alle Aufträge. So wird es möglich sein, zu scalpen und die langfristigen Aufträge zu behalten!

Vielen Dank für Ihre Hilfe!!!

 
ats:

Vielen Dank für Ihre Hilfe, ich habe die Korrektur vorgenommen! Super!!!

Haben Sie irgendwelche Vorschläge, um einen der Käufe/Verkäufe zu filtrieren und zu schließen und nicht alle Aufträge. So wird es möglich sein, Scalp und halten die langfristigen Aufträge!

Wahrscheinlich, aber das hängt von Ihrer Strategie ab. . welchen Auftrag wollen Sie schließen und welche wollen Sie laufen lassen, wenn Sie das festgelegt haben, sollte es einfach genug sein, es zu codieren.
 

Es ist einfach zu bestimmen, welchen Auftrag Sie schließen wollen. Das ist der Auftrag für Scalping! Sagen wir die letzte Order!

 

Die Grundidee ist folgende: 1. Sie haben offene langfristige Positionen und wollen scalpen

2. Sie setzen eine Pending Order

3. Sie schalten den EA ein

4. Der EA schließt nur DIESEN Auftrag

5. Sie schalten den EA aus

 
ats:

Es ist einfach zu bestimmen, welchen Auftrag Sie schließen wollen. Das ist der Auftrag für Scalping! Sagen wir die letzte Order!

Die zuletzt platzierte Order sollte die größte Positionsnummer haben ... Sie können dies mit OrderOpenTime() überprüfen
 
RaptorUK:
Die zuletzt erteilte Bestellung sollte die größte Positionsnummer haben ... Sie können dies mit OrderOpenTime() überprüfen.

Gute Idee! Daran habe ich nicht gedacht
Grund der Beschwerde: