Risposta

Modifica di uno stop di acquisto/vendita

6 risposte

huangwh88

Customer, bbp_participant, community, 113 replies.

Visita il profilo

7 anni fa #116411

Salve, 

 

Supponiamo di avere un buy stop al massimo degli ultimi 10 periodi. Se l'ordine non viene attivato dopo l'ultimo periodo, come posso modificare il buy stop per tenere conto della variazione della finestra di lookback di 10 periodi?

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

7 anni fa #141822

Salve,

 

per modificare un ordine di stop è necessario annullarlo utilizzando la funzione "chiudi posizione" e quindi riaprire un nuovo ordine

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Visita il profilo

7 anni fa #141834

Salve,

 

per modificare un ordine di stop è necessario annullarlo utilizzando la funzione "chiudi posizione" e quindi riaprire un nuovo ordine

Ciao Tomas,

 

Ogni volta che lo stop all'acquisto di highest(10) non viene attivato, voglio regolare il prezzo di entrata in modo che il massimo più alto venga aggiornato. Ho provato a fare così:

 

IF: 

l'ordine pendente esiste(1000) è Vero

 

ALLORA:

 

posizione di chiusura, numero magico 1000

Inserire all'arresto, massimo(10), numero magico 1000

 

C'è un errore perché ci sono 2 ordini con il numero magico 1000. Anche la regola che ha creato il buy stop originale utilizza il numero magico 1000. Ho bisogno di un numero magico diverso ogni volta che modifico un buy stop, anche se gli ordini sono in realtà gli stessi?

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

7 anni fa #141849

Salve,

 

Ok, dobbiamo utilizzare una funzione per modificare il prezzo dell'ordine. Farò un esempio per questo e lo allegherò

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

7 anni fa #141870

È possibile aggiungere questa funzione nel file EA Wizard CustomFunctions.mq4 collocato nel codice Wizard. 

void modifyPendingOrder(int orderMagicNumber, double newPO) {
   bool found = false;
   
   for (int cc = OrdersTotal() - 1; cc >= 0; cc--) {
      if (!OrderSelect(cc, SELECT_BY_POS) ) continue;

      if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) {
         trovato = vero;

         Verbose("Spostamento dell'ordine con numero magico: ", orderMagicNumber,", ticket: ", OrderTicket(), ", nuovo PO: ", newPO);
         tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0);
      }
   }

   if(!found) {
      Verbose("Spostamento PO - ordine con numero magico: ", orderMagicNumber, " non è stato trovato");
   }

}

Quindi il prezzo dell'ordine può essere modificato come mostrato nell'esempio allegato

0

huangwh88

Customer, bbp_participant, community, 113 replies.

Visita il profilo

7 anni fa #141966

È possibile aggiungere questa funzione nel file EA Wizard CustomFunctions.mq4 collocato nel codice Wizard. 

void modifyPendingOrder(int orderMagicNumber, double newPO) {
   bool found = false;
   
   for (int cc = OrdersTotal() - 1; cc >= 0; cc--) {
      if (!OrderSelect(cc, SELECT_BY_POS) ) continue;

      if(OrderMagicNumber() == orderMagicNumber && OrderSymbol() == Symbol()) {
         trovato = vero;

         Verbose("Spostamento dell'ordine con numero magico: ", orderMagicNumber,", ticket: ", OrderTicket(), ", nuovo PO: ", newPO);
         tmpRet = OrderModify(OrderTicket(), newPO, 0, 0, 0);
      }
   }

   if(!found) {
      Verbose("Spostamento PO - ordine con numero magico: ", orderMagicNumber, " non è stato trovato");
   }

}

Quindi il prezzo dell'ordine può essere modificato come mostrato nell'esempio allegato

 

Ciao Tomas, grazie per il tuo meraviglioso aiuto.

 

Desidero aggiungere una condizione IF che deve essere soddisfatta prima che l'ordine pendente possa essere spostato secondo il codice precedente. Se questa condizione non è soddisfatta, l'ordine pendente viene cancellato. Esiste un modo per aggiungere l'eliminazione dell'ordine senza creare un'altra regola IF/THEN?

0

tomas262

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

7 anni fa #141990

Salve,

 

Sì, è possibile aggiungere ulteriori condizioni nella scheda di modifica e creare un'altra scheda per eliminare l'ordine pendente (utilizzando la funzione "Chiudi posizione" per eliminarlo).

0

Stai visualizzando 6 risposte - da 1 a 6 (di 6 totali)