Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Qualcuno ha del codice pronto per calcolare il numero di cifre significative per un volume?
Qualcosa come SymbolInfoInteger(_Symbol, SYMBOL_DIGITS), ma solo per il volume.
Per esempio, per il caso SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP) = "1.0" - la risposta sarebbe "0", per "0.1" - "1", per "0.01" - "2" ecc.
Permettetemi di chiarire una sfumatura. Per un passo di volume come "0.1", "0.01", "0.001" ho.
Il codice dovrebbe funzionare per i seguenti casi: "0.2", "0.11", 0.023" ecc.
Non esiste un codice specificoper il volume. C'è per qualsiasi cosa.
La sceneggiatura è da controllare nel rimorchio.Uno script da controllare nel trailer.
Vuoi dire che..., e ho pensato che avrei dovuto controllare il lotto ammissibile prima di fare un ordine.
;)
Non so davvero cosa voglia. Vedremo cosa dice, sto solo esercitando la mia telepatia. ;)
Qualcuno ha del codice pronto per calcolare il numero di cifre significative per un volume?
Qualcosa come SymbolInfoInteger(_Symbol, SYMBOL_DIGITS), ma solo per il volume.
Per esempio, per il caso SymbolInfoDouble( _Symbol, SYMBOL_VOLUME_STEP) = "1.0" - la risposta sarebbe "0", per "0.1" - "1", per "0.01" - "2" ecc.
Permettetemi di chiarire una sfumatura. Per un passo di volume come "0.1", "0.01", "0.001" ho.
Il codice dovrebbe funzionare per i seguenti casi: "0.2", "0.11", 0.023" ecc.
Specificamente per i volumi può essere semplice:
sergeev
MetaDriver
Valmars
Una domanda ben formulata è metà della risposta. :) Scusa, sono già andato a letto, non sono riuscito a descrivere accuratamente il compito. Proverò di nuovo.
Sto parlando di passare un volume normalizzato a un ordine commerciale.
È quello che facciamo con il prezzo:
Normalizzazione dei prezzi - penso che sia chiaro a tutti.
Ai miei tempi (da MT4), ho letto da qualche parte negli articoli di MT che sarebbe auspicabile normalizzare anche il volume.
Attuazione №2.In realtà, ho scritto la funzioneGetVolumeDigits(string Symbol) per trovare il più piccolo valore possibile di volume secondo le condizioni del broker. Ci sono almeno due implementazioni (il risultato è lo stesso):
Attuazione #1.
Entrambi funzionano perfettamente per le varianti con passo min = 1,0, 0,1, 0,01, 0,001, ecc. Cioè, se il passo minimo è 1,0, la funzione restituirà 0; se il passo è 0,1, la funzione restituirà 1, ecc.
E se il passo minimo è 1,1, o 0,11, o 0,011, per esempio? Questo algoritmo mostrerà erroneamente la cifra meno significativa.
Naturalmente, si può affermare che non ci sono questi casi nella pratica. Voglio solo considerare tale possibilità ipotetica nel mio Expert Advisor. Ho pensato che forse qualcuno potrebbe condividere la sua esperienza in materia...
Si tratta di inviare il volume normalizzato all'ordine di compravendita.
Voglio solo considerare questa possibilità ipotetica nel nostro Expert Advisor.
di quale strumento "ipotetico" stiamo parlando?
1. La variante di MetaDriver è adatta a voi. CountSignedDigits mostrerà il numero di caratteri in qualsiasi lotto.
2. Conoscendo il numero di cifre si può fare la normalizzazione:
sergeev
Grazie per la funzione di convalida del lotto. Sto usando una costruzione/raccordo di assegni simile.
La mia domanda è focalizzata sulla ricerca del posto più giovane nel lotto, per normalizzarlo.
In particolare, MetaDriver ha dato la sua costruzione per "tutto". :) Tuttavia, non è senza difetti (o il mio compilatore è difettoso). Di seguito il codice e il risultato dell'esecuzione:
Risultato:
L'opzione successiva (la funzione CountSignedDigits è la stessa):
Risultato:
Modificata la seguente linea in OnStart:
Risultato:
O sto facendo qualcosa di sbagliato (per favore correggete), o MetaDriver ha fatto un errore in teoria (quando ha progettato l'algoritmo).
La mia domanda è incentrata sulla determinazione del luogo più basso del lotto per normalizzarlo.
Anche se quando si invia una richiesta di compravendita, il lotto variabile diventerà spazzatura (nella seconda posizione decimale), sarà rifiutato dal terminale stesso.
Almeno, non ho avuto alcun problema durante diversi anni di utilizzo di questo design.
E se vuoi riassicurare, puoi normalizzarlo all'ottavo decimale (con riserva) - se dopo la normalizzazione "corretta" appare la spazzatura, sarà molto più lontano.