Come posso impostare il TP a meno di 5 pip? - pagina 3

 
Ho fatto la correzione per gli ordini di vendita o di acquisto, faccio trading solo con eurusd quindi non ci sono problemi con i simboli. Non uso EA's quindi tutti gli ordini sono piazzati manualmente! Il problema è come differenziare la chiusura degli ordini che ho per lo scalping dagli ordini a lungo termine
 
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);
}
 

Non puoi fare questo . . .

if(OrderType()==OP_BUY)

. . . fino a dopo la tua OrderSelect() . . . leggi la documentazione per OrderType(), dice "Nota: l'ordine deve essere selezionato dalla funzioneOrderSelect() ".

Prova . . .

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:

puoi impostare il tp a 25 pips e chiudere il trade a 5 pips

Sì, ma se improvvisamente i prezzi cambiano più di 5 pips, non sarai in grado di chiudere l'ordine in tempo. Fa parte dei rischi.

Cordiali saluti e buon trading!!!

 
RaptorUK:

Non puoi fare questo . . .

. . . fino a dopo la tua OrderSelect() . . . leggi la documentazione per OrderType() , dice "Nota: l'ordine deve essere selezionato dalla funzioneOrderSelect() ".

Prova . . .

Grazie mille per il vostro aiuto ho fatto la correzione! Grande!!!

Avete qualche proposta per filtrare e chiudere uno degli acquisti/vendite e non tutti gli ordini. Così sarà possibile fare lo scalping e mantenere gli ordini a lungo termine!

Grazie per il vostro aiuto!!!

 
ats:

Grazie mille per il tuo aiuto ho fatto la correzione! Grande!!!

Avete qualche proposta per filtrare e chiudere uno degli acquisti/vendite e non tutti gli ordini. Così sarà possibile fare lo scalping e mantenere gli ordini a lungo termine!

Probabilmente, ma questo è determinato dalla tua strategia. . quale ordine vuoi chiudere e quale vuoi lasciare in esecuzione, quando l'hai determinato dovrebbe essere abbastanza semplice codificarlo.
 

Determinare quale ordine si vuole chiudere è facile. Questo è l'ordine per lo scalping! Diciamo l'ultimo ordine!

 

L'idea di base è: 1. Hai delle posizioni aperte a lungo termine e vuoi fare uno scalping

2. imposti un ordine pendente

3. Si accende l'EA

4. L'EA chiude solo QUESTO ordine

5. Spegni l'EA

 
ats:

Determinare quale ordine si vuole chiudere è facile. Questo è l'ordine per lo scalping! Diciamo l'ultimo ordine!

L'ultimo ordine piazzato dovrebbe avere il numero di posizione dell'ordine più grande. . . si può controllare con OrderOpenTime()
 
RaptorUK:
L'ultimo ordine piazzato dovrebbe avere il numero di posizione dell'ordine più grande. . . puoi controllare due volte con OrderOpenTime()

Buona idea! Non ci avevo pensato
Motivazione: