Risposta

È possibile raggiungere il pareggio, attivare lo stop loss o uscire da un'operazione dopo...

9 risposte

Soglia

Cliente, bbp_partecipante, comunità, 723 risposte.

Visita il profilo

10 anni fa #112105

È possibile raggiungere il pareggio/attivare lo stop loss/uscire da un'operazione dopo 24 ore (barre)?
La mia strategia è una strategia a barre giornaliere.
Voglio raggiungere il pareggio dopo esattamente 24 ore o uscire se l'operazione non è vincente dopo esattamente 24 ore.
Vedo che c'è un'opzione "BarsSinceOrderOpen" ma questa opzione ha un timeframe. È possibile aggiungerla? O ci sono altre possibilità?

0

stearno

Cliente, bbp_partecipante, comunità, 379 risposte.

Visita il profilo

10 anni fa #124337

È questo che state cercando?

 

-Stearno

0

Mark Fric

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

10 anni fa #124363

è possibile farlo creando una regola apposita.

 

Qualcosa come:

 

IF(BarsSinceOrderOpen >= 1) // negoziazione più vecchia di un giorno

e OpenPL() > 0

ALLORA 

spostare SL in BE

 

 

e un'altra regola per chiudere l'operazione:

 

 

IF(BarsSinceOrderOpen >= 1) // negoziazione più vecchia di un giorno

e OpenPL() < 0

ALLORA 

ChiudiPosizione

Marchio
Architetto StrategyQuant

0

Soglia

Cliente, bbp_partecipante, comunità, 723 risposte.

Visita il profilo

10 anni fa #124383

Non avete letto bene la domanda o forse non sono stato chiaro. Le mie scuse.
BarsSinceOrderOpen>=1 è esattamente quello che ho detto che non funziona perché non ha un'opzione di timeframe. E se l'ordine fosse stato inserito alle 23:00 di ieri? In questo caso il pareggio avviene dopo solo 1 ora. BarsSinceOrderOpen non significa 24 ore. Significa semplicemente una nuova barra. Potrebbe essere 1 ora 2 ore 3 ore 4 ore 5 ore....
Sto cercando di raggiungere il pareggio dopo esattamente 24 ore (o 24 barre H1) per la strategia D1.
Ho bisogno di fare:

 

BarsSinceOrderOpen(Timeframe: PERIOD_H1) > 24

Ma non c'è l'opzione del calendario.

 

 

La mia strategia è una strategia a barre giornaliere.
Voglio raggiungere il pareggio dopo esattamente 24 ore o uscire se l'operazione non è vincente dopo esattamente 24 ore.
Vedo che c'è un'opzione "BarsSinceOrderOpen" ma questa opzione non ha *l'opzione timeframe*. È possibile aggiungerla? O ci sono altre possibilità?

0

Mark Fric

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

9 anni fa #124435

ok, ho capito. Purtroppo non è facile da risolvere al momento, senza aggiungere l'opzione timeframe a Barre dall'apertura dell'ordine.

 

Ma è possibile farlo utilizzando una funzione personalizzata. Aggiungete le seguenti funzioni nel file EA Wizard/code/CustomFunctions.mq4:

 

int sqGetBarsSinceEntryH1(int orderMagicNumber) {
   per (int cc = OrdersTotal() - 1; cc >= 0; cc-) {
      se (OrderSelect(cc, SELECT_BY_POS) ) {
 
         if((orderMagicNumber == 0 || OrderMagicNumber() == orderMagicNumber) && OrderSymbol() == Symbol()) {
            return (sqGetBarsFromOrderOpenH1());
         }
      }
   }
 
   ritorno(-1);
}
 
int sqGetBarsFromOrderOpenH1() {
   datetime opTime = OrderOpenTime();
   int barsTOCheck = 30;
   int numberOfBars = 0;
   
   for(int i=0; i<=barsTOCheck; i++) {
      if(opTime < iTime(NULL, PERIOD_H1,i)) {
         numberOfBars++;
      }
   }
 
   return(numberOfBars);
}

 

e poi in EA Wizard nella tua condizione puoi chiamare la funzione personalizzata: sqGetBarsSinceEntryH1(il tuo numero magico) >= 24

Marchio
Architetto StrategyQuant

0

Soglia

Cliente, bbp_partecipante, comunità, 723 risposte.

Visita il profilo

9 anni fa #124471

Fantastico! C'è un modo per applicare questo all'attivazione di TS?

 

Ora so come comportarmi con BE.

Questo è il mio tentativo di applicarlo all'Attivazione TS.

 

Attivazione TS (variabile) = TSAktivate

 

0

Soglia

Cliente, bbp_partecipante, comunità, 723 risposte.

Visita il profilo

9 anni fa #124479

L'EA non si carica con successo dopo aver modificato il file CustomFunctions.mq4.
Lo caricherò. Forse il mio editing non era corretto.
Ho copiato e incollato tutto il codice che mi hai fornito e l'ho aggiunto alla fine del file.

 

Ecco anche il mio lavoro:

0

JTamas

Abbonato, bbp_partecipante, comunità, 26 risposte.

Visita il profilo

9 anni fa #124484

Proverei questo:

 

1. creare una variabile: "opentime".

2. Regola1#: SE l'ordine aperto in questo minuto è vero ALLORA assegnare la variabile opentime = ora(0 barre fa)

3. Regola 2# SE barre dall'apertura dell'ordine = 1 e Timecurrent = GetTime(opentime, 0, 0)

ALLORA

qualunque

 

Poiché si desidera chiudere dopo 24 ore, significa che la chiusura avverrà alla stessa ora in cui è stata aperta, solo un giorno dopo.

0

Soglia

Cliente, bbp_partecipante, comunità, 723 risposte.

Visita il profilo

9 anni fa #124492

Un approccio molto semplice, mi piace.
L'ho provato, ma non funziona.

0

Mark Fric

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

9 anni fa #124520

Ciao,

 

non funziona ancora? Puoi allegare qui la tua strategia?

Ho controllato il file CustomFunctions che hai allegato, ma non ho visto le mie funzioni aggiunte, ed è stato compilato correttamente.

Marchio
Architetto StrategyQuant

0

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