[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 449

 
artmedia70:

1. Trova il frattale più vicino alla barra zero e memorizza il suo tempo e il livello di prezzo nelle variabili int e double

2. Ad ogni tick, cerca il frattale più vicino alla barra zero. Se il suo tempo non è uguale al tempo frattale, che è stato trovato nel passo 1, allora...

2.1 Controlla il suo livello di prezzo.

2.1.1 Se è sotto il livello frattale in p1, allora ... un'azione

2.1.2 Se è superiore al livello frattale in p1, .... un'altra azione

2.2 Scrivi il tempo di questo frattale e il suo livello nelle variabili del passo 1(int e double)

3. Ritorno al punto 2


Non è così nel mio codice?
 
DOCTORS:

Non è così nel mio codice?
Non lo è.
 
artmedia70:
non è così


Sono d'accordo che questa non è una condizione frattale, ma sul fatto del resto?

1. Determino dal contatore che questo è il primo frattale (z=0), assegno la variabile all'estremo della condizione (frattale) (f1= iLow(Null,0,3)).

2. Nell'altro caso (quando z=1, quindi non è il primo "frattale", lo confrontiamo con il precedente (f1 > iLow(NULL,0,3) )

2.1. se il valore del precedente è più grande, assegno un nuovo valore alla variabile (f1= iLow(NULL,0,3) e imposto il contatore a zero (z=0)

2.1 Se il valore precedente è inferiore a quello nuovo (f1 < iLow(NULL,0,3) ) chiudo la posizione.

Non è così?

 
DOCTORS:


Sono d'accordo che questa non è una condizione frattale, ma sul fatto del resto?

1. Determino dal contatore che questo è il primo frattale (z=0), assegno la variabile all'estremo della condizione (frattale) (f1= iLow(Null,0,3)).

2. Nell'altro caso (quando z=1, quindi non è il primo "frattale", lo confrontiamo con il precedente (f1 > iLow(NULL,0,3) )

2.1. se il valore del precedente è più grande, assegno un nuovo valore alla variabile (f1= iLow(NULL,0,3) e imposto il contatore a zero (z=0)

2.1 Se il valore precedente è inferiore a quello nuovo (f1 < iLow(NULL,0,3) ) chiudo la posizione.

Non è così?

Dov'è il confronto temporale tra il primo e il secondo frattale?
 
artmedia70:
Dov'è il confronto temporale del primo e del secondo frattale?


Per quale motivo? Certo che posso, ma nel mio caso, trovare un "frattale" è definito da una condizione (basso-mi 5 barre)? E non dal tempo ...

Di nuovo, il contatore "z" è il blocco stesso, in modo che la definizione di "frattale" nel mio caso non si trasformi in un loop.

 

Aiuto, per favore. Voglio aprire una posizione di chiusura quando viene raggiunto il livello di stoploss e mantenerla se il prezzo continua a muoversi in direzione sfavorevole. Il problema è che voglio aprire molti ordini invece di uno.

Ecco la condizione:

if (OrderType == OP_SELL && LRMA > OrderOpenPrice() + StopLoss*Point) 
 {
  OrderSend(NULL, OP_BUY, Lot, Ask, 2, 0, 0, 0, 111, 0, Green);
 }

Il contatore non funziona per qualche motivo. Ho provato di tutto.

 
Ciao, controllo lo storico prima di aprire un ordine (funzione isLossLastPos di Kim), ma non sempre si apre in tempo, cioè prima si apre l'ordine e poi dopo qualche tick la funzione funziona, ma l'ordine è già aperto.
 
chuvee:

Aiuto, per favore. Voglio aprire una posizione di chiusura quando viene raggiunto il livello di stoploss e mantenerla se il prezzo continua a muoversi in direzione sfavorevole. Il problema è che voglio aprire molti ordini invece di uno.

Ecco la condizione:

Il contatore non funziona per qualche motivo. Ho provato di tutto.

Fate un controllo prima di aprire una serratura: se non c'è una posizione di blocco, allora apritela.
 
T-G:
Ciao, controllo lo storico prima di aprire un ordine (funzione isLossLastPos di Kim), ma a volte succede che non si apre in tempo, cioè l'ordine si apre prima e poi dopo qualche tick la funzione ha effetto, ma l'ordine è già aperto. Come posso risolvere il problema?

La funzione controlla l'ultima posizione chiusa, non qualsiasi posizione nella storia. Se l'ultima posizione chiusa è perdente, allora questa funzione restituirà true, altrimenti restituirà false

Quindi controlla se vuoi aprire una posizione nel caso in cui l'ultima posizione abbia chiuso in perdita:

   if (isLossLastPos(Symbol(), OP_BUY, Magic)) {
      // Код открытия позиции, если последняя закрытая позиция Buy с магиком Magic убыточна
      }

o

   if (!isLossLastPos(Symbol(), OP_SELL, Magic)) {
      // Код открытия позиции, если последняя закрытая позиция Sell с магиком Magic закрыта с прибылью или в ноль
      }

Qualcosa come questo ... se la memoria non mi inganna.

 
artmedia70:

La funzione controlla l'ultima posizione chiusa, non qualsiasi posizione nella storia. Se l'ultima posizione chiusa è perdente, allora questa funzione restituirà true, altrimenti restituirà false

Quindi controlla se vuoi aprire una posizione nel caso in cui l'ultima posizione abbia chiuso in perdita:

o

Qualcosa come questo ... se la memoria non mi inganna

La funzione non ha il tempo di mostrarlo: l'ordine si apre per primo, passano un paio di tick e solo allora la funzione mostra l'ultima perdita ma l'ordine si è già aperto.

Se il movimento è molto forte, su una candela si possono aprire 8 ordini

Motivazione: