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

 
Roger:
Non preoccupatevi, ne restituisce quanti ne servono, dovete solo volerlo vedere.

infatti)))

Print("ma red = ",MA_M_0); // 4 segni (1.4533)

Print("ma red = ",DoubleToStr(MA_M_0,5)); // 5 cifre (1.45332)

Mi scuso, forse era una domanda stupida)

Ma perché?

 
Molto tempo fa, quando MT4 non esisteva ancora e il trading automatizzato era agli inizi, lo standard per i prezzi era di 4 cifre decimali. Ecco perché non si sono preoccupati di farlo.
 
capito... Quindi questo è il problema con "Print", pensavo fosse una variabile)))
 
DhP:
Un altro modo semplice per evitare questi problemi:
Cosa c'è originariamente nel prevtime?
 

Supponiamo che ci siaun ordine Buy-Stop aperto che è abbastanza lontano dal prezzo corrente. Dobbiamo cambiare leggermente il suo prezzo aperto.

- Esiste una distanza minima per un nuovo punto di apertura dello stesso ordine, relativa al valore corrente di OrderOpenPrice() al di sotto della quale non è possibile impostare un nuovo prezzo di apertura?

Grazie!

 
chief2000:

Supponiamo che ci sia un ordine Buy-Stop aperto che è abbastanza lontano dal prezzo corrente. Dobbiamo cambiare leggermente il suo prezzo aperto.

- Esiste una distanza minima per un nuovo punto di apertura dello stesso ordine, relativa al valore corrente di OrderOpenPrice() al di sotto della quale non è possibile impostare un nuovo prezzo aperto?

Grazie!

StopLevel - a questa distanza e più vicino al prezzo, l'ordine non può essere impostato.

FreezeLevel - se un ordine è già in atto e il prezzo è a questa distanza o più vicino ad essa, non è possibile cancellare o modificare l'ordine (se la vostra società di intermediazione lo usa)

 
artmedia70:

StopLevel - a questa distanza e più vicino al prezzo, non puoi piazzare un ordine.

FreezeLevel - se un ordine è già stato piazzato e il prezzo si è spostato a questa distanza o più vicino, non possiamo cancellarlo o modificarlo (se la vostra società di brokeraggio lo usa).

Non è esattamente quello che stavo chiedendo. Quello che volevo dire è che ho un ordine Buy-STOP e voglio spostare il suo OrderOpenPrice() della minima distanza possibile (e questo prezzo è abbastanza lontano da Ask).

- Per esempio, posso spostare OrderOpenPrice() di 1 pip? Cioè

Новый_OrderOpenPrice = OrderOpenPrice() + Point

Lo chiedo perché ho visto degli errori strani, ma ho aumentato la distanza e gli errori sono scomparsi.

(Potrei scrivere un codice separato e controllarlo, ma non mi ha ancora interessato)

 

Quando si confrontano due variabili di tipo double, a volte si ottiene un risultato errato. Questo probabilmente perché una delle variabili può essere leggermente più grande o più piccola dell'altra (ad esempio di 10 cifre). Usare la funzione NormalizeDouble non aiuta nella maggior parte dei casi. Alcune persone consigliano di sottrarre una variabile da un'altra, ma in tal caso, come costruire più correttamente un'espressione if(a>=b), sottraendo una variabile da un'altra? O forse c'è qualche altro modo?

 
Elenn:

Quando si confrontano due variabili di tipo double, a volte si ottiene un risultato errato. Questo probabilmente perché una delle variabili può essere leggermente più grande o più piccola dell'altra (ad esempio di 10 cifre). Usare la funzione NormalizeDouble non aiuta nella maggior parte dei casi. Alcune persone consigliano di sottrarre una variabile da un'altra, ma in tal caso, come costruire più correttamente un'espressione if(a>=b), sottraendo una variabile da un'altra? O forse c'è qualche altro modo?

Avete davvero bisogno di una precisione così elevata? - Al decimo di una cifra.

Se vuoi confrontare usando la sottrazione, puoi confrontare con 0:

se((a-b)>0) { // ===>>> a>b

Oppure puoi moltiplicare per 1 000 000 e poi confrontare :)

 
chief2000:

Avete davvero bisogno di tanta precisione? - Fino alla decima cifra.

Se vuoi confrontare usando la sottrazione, puoi confrontare con 0:

se((a-b)>0) { // ===>>> a>b

Oppure puoi moltiplicare per 1.000.000 e poi confrontare :)

Uso sempre un certo +/-epsilon=Point*0.01 quando confronto i prezzi.

Moltiplicare per 1.000.000 non servirà a nulla, credetemi.