Prezzo per pip - pagina 9

 
gordon:

La mia definizione perde il suo significato originale quando viene citata fuori dal contesto. Per chiarire - la parola 'prezzo' nella definizione di MODE_TICKSIZE si riferisce alle quotazioni effettive possibili , mentre nella definizione di Point si riferisce a qualsiasi prezzo.

- Gordon, anche la mia definizione non è troppo calda ( Punto = fattore moltiplicatore per il minor prezzo decimale ) e l'analogia esadecimale è così zoppa... Ma potrei avere un vincitore qui...

Logica:
Il broker ha bisogno di stabilire relazioni di prezzo tra le coppie che ruotino intorno a MODE_LOTSIZE che è 100.000 unità di valuta quotata e MODE_TICKVALUE che è 10 unità di valuta quotata. Solo con questa uguale condizione di interrelazione, il prezzo può essere quotato tra di loro. Questo presumo sia la base della costruzione del prezzo del forex.

Punto = MODE_LOTSIZE / Tickvalue in valuta quotata. es:
GBPUSD 0.0001 = 100.000 / 10 USD
USDJPY 0.01 = 100.000 / 1.000 JPY <-- MathRound( MODE_TICKVALUE * ultimo Bid della valuta quotata )
CHFJPY .... ecc. se tu o qualcuno può confermare sarebbe fantastico.

Tutte le scommesse sono annullate se cominciamo a parlare di contratti futures. Per esempio, FXPro ha contratti futures nel formato quasi normale #AAmy dove "my" è un codice di scadenza standard come M0. EUR_JPY_fut suona come uno strano contratto sintetico.

- Ok Jjc... Presumo che i future abbiano anche un prezzo diverso e la costruzione del TICK_VALUE. Quindi questo escluderebbe definitivamente tutti gli strumenti non forex. I prefissi e gli in-between-fix sono considerati meno probabili.

- CB sarei molto interessato a sentire la tua opinione sul calcolo di cui sopra. Grazie per la tua opinione finora.

i migliori saluti
cameo

 
cameofx:

- Gordon, anche la mia definizione non è troppo calda ( Punto = fattore moltiplicatore per il minor prezzo decimale ) e l'analogia esadecimale è così zoppa... Ma potrei avere un vincitore qui...

Logica:
Il broker ha bisogno di stabilire relazioni di prezzo tra le coppie che ruotino intorno a MODE_LOTSIZE che è 100.000 unità di valuta quotata e MODE_TICKVALUE che è 10 unità di valuta quotata. Solo con questa uguale condizione di interrelazione, il prezzo può essere quotato tra di loro. Questo presumo sia la base della costruzione del prezzo del forex.

Punto = MODE_LOTSIZE / Tickvalue in valuta quotata. es:
GBPUSD 0.0001 = 100.000 / 10 USD
USDJPY 0.01 = 100.000 / 1.000 JPY <-- MathRound( MODE_TICKVALUE * ultimo Bid della valuta quotata )
CHFJPY .... ecc. se tu o qualcuno può confermare sarebbe fantastico.

- Ok Jjc... Presumo che i futuri abbiano anche un diverso edificio Price & TICK_VALUE. Quindi questo escluderebbe definitivamente tutti gli strumenti non forex. I prefissi e gli in-between-fix sono considerati meno probabili.

- CB sarei molto interessato a sentire la tua opinione sul calcolo di cui sopra. Grazie per la tua opinione finora.

i migliori saluti
cameo

La logica cambierebbe se Digits = 5 o Digits = 3?
 

Finalmente ho la connessione per postare...

Would the logic change if Digits = 5 or Digits = 3?

No engcomp, la logica non dovrebbe cambiare. Almeno è quello che sto cercando di capire.

Sto cercando di arrivare in fondo a diverse cose, I calchi sono finora : Punto, MODE_TICKVALUE, MODE_TICKSIZE, Prezzo. Potrei finire per presentarli solo sotto una nuova luce, ma se posso sfruttare da lì, allora ne varrebbe la pena.

IMO, MODE_TICKVALUE convertito in valuta quotata è molto importante . Quindi, per amor di discussione, lo chiamerò QUOTE_TICKVALUE. A proposito, l'equazione precedente è al contrario.

Per calcolare se Point è effettivamente : QUOTE_TICKVALUE (TickValue in valuta quotata) / MODE_LOTSIZE, ho questo. (Calc_Point dovrebbe corrispondere a Point)

string Sym = Symbol();
double Calc_Point = QUOTE_TICKVALUE(Sym) / MarketInfo(Sym, MODE_LOTSIZE);
int QUOTE_TICKVALUE(string Sym)
{
   string quoted_currency_name = StringSubstr(Sym,3,3); double TV, QTV = 0.0;
   if (MarketInfo(StringConcatenate("USD", quoted_currency_name), MODE_LOTSIZE)) > 0)
   {
     TV = MarketInfo(Sym, MODE_TICKVALUE);
     QTV = MathRound(TV * MarketInfo(Sym, MODE_BID));
     return(QTV);
   }
   else if ((MarketInfo(StringConcatenate(quoted_currency_name, "USD"), MODE_LOTSIZE)) > 0)
   {
     TV = MarketInfo(Sym, MODE_TICKVALUE);
     QTV = MathRound(TV * MarketInfo(Sym, MODE_BID));
     return(QTV);
   }
}
Nota: per le coppie incrociate che hanno come base la valuta quotata nella loro forma USD (ad esempio EURGBP), quanto sopra dovrà essere leggermente modificato.

Quindi in qualsiasi momento, qualsiasi prezzo dato:

USDJPY, GBPJPY, AUDJPY, XXXJPY............. ha QUOTE_TICKVALUE di --> 1000 [JPY]
EURUSD, AUDUSD, GBPUSD, XXXUSD ........ ha QUOTE_TICKVALUE di --> 10 [USD]
EURCHF, USDCHF, XXXCHF....................... ha QUOTE_TICKVALUE di --> MathPow(10, x) [CHF]

Devo sottolineare che sto 'estraendo' QUOTE_TICKVALUE dal TICK_VALUE fluttuante. Quindi penso che questo significhi che QUOTE_TICKVALUE è predeterminato dal broker e ciò che è più importante è: essi saranno parallelamente coerenti tra ogni valuta che serve come valuta quotata. Quindi, finché MODE_LOTSIZE = 100.000 e QUOTE_TICKVALUE di USD = 10 possiamo essere sicuri che anche gli altri componenti del simbolo che servono come valuta di quotazione saranno coerenti (cioè non si può cambiare 10 USD in 1 USD senza dividere anche gli altri QUOTE_TICKVALUE con 10 - questo credo sia il punto in cui possiamo determinare il mio Valid_Point in generale). Spero che sia chiaro...

Non posso (per la vita di me) avere net & MT4 allo stesso tempo in questi giorni (è complicato ...). Quindi se qualcuno può aiutare o verificare sarebbe fantastico.

cameo

 

Ho trovato quello che mi serve, Valid_Point e anche di più. Una comprensione più approfondita di Point, TickValue, Ticksize, Symbol(), e del prezzo in generale. Grazie a tutti coloro che hanno condiviso le loro intuizioni e commenti da quando LEHayes ha iniziato questo thread.

Cordiali saluti
cameo

 

Amico, guarda tutto il brain storming che ho causato. Spero che sia stato utile. Non ho avuto il tempo di seguire il thread, ma spero di avere la possibilità di rivederlo.

Dopo tutta questa discussione e l'eccellente lavoro, siamo arrivati ad un punto in cui abbiamo una sorta di funzione standard per generare ciò che stavamo cercando? Questa domanda ha lo scopo di portarci a una sintesi.

 

Qualcuno ha esperienza con i suggerimenti di calcolo di cui sopra su metalli o altri simboli che non siano crosscurrencies?

Ho trovato questo argomento in quanto ero interessato al calcolo della variazione di prezzo in valuta del conto di un punto di movimento nel simbolo.

La mia teoria di base era questa:

Prezzo per pip = Dimensione del contratto * Punto

Prezzo per pip nella valuta del conto = Prezzo per pip * Tasso di cross del contatore del conto,

dove

Dimensione del contratto = MarketInfo(Symbol(), MODE_LOTSIZE)

Punto = Punto = MarketInfo(Symbol(), MODE_POINT)

Account Counter Cross rate è il prezzo della contro valuta del simbolo espresso nella valuta del conto (CCCAAA bid rate dove AAA è la valuta del conto e CCC è la contro valuta del simbolo).

Ho controllato quanto sopra con diversi conti demo di broker (icm, insta, fxopen, fxopen ecn) rispetto agli scambi effettivi di 1.0 lotti nella Storia del conto. Ho anche controllato il metodo di calcolo del tickvalue di Cloudbreaker.

Ho trovato quanto segue:

- Il prezzo del movimento di un punto di un simbolo non è facile da calcolare con diversi broker e nel caso dei metalli

- anche la formula tickvalue * point / ticksize di cloudbreaker potrebbe portare a risultati falsi (insta - argento, icm - eurusd, fxopen - argento e oro)

- nel caso di icm - oro, anche Contract size * Point porta ad un cattivo risultato (0.5 invece del reale 5.0, è un errore dei dati del broker?)

Puoi trovare i risultati dettagliati qui:Prezzo per pip.

Quindi la mia conclusione è che non esiste un metodo sicuro al 100% di calcolo del Prezzo per pip.

 
Grazie per aver condiviso questo piccolo programma che hai scritto. Non posso credere che sia stato così facile, mi hai fatto risparmiare un sacco di tempo :-)
engcomp:

In allegato c'è un piccolo script che ho sviluppato che potrebbe rispondere alla tua domanda.

Poiché gli script non hanno parametri "esterni", devi cambiarli nel codice e ricompilare.

Basta caricarlo nella tua cartella experts/scripts, compilarlo e allegarlo a un grafico.

Fammi sapere come va, Helmut

 
Nota commenti su DE30
double  PointValuePerLot(string pair=""){
    /* Value in account currency of a Point of Symbol.
     * In tester I had a sale: open=1.35883 close=1.35736 (0.0147)
     * gain$=97.32/6.62 lots/147 points=$0.10/point or $1.00/pip.
     * IBFX demo/mini       EURUSD TICKVALUE=0.1 MAXLOT=50 LOTSIZE=10,000
     * IBFX demo/standard   EURUSD TICKVALUE=1.0 MAXLOT=50 LOTSIZE=100,000
     *                                  $1.00/point or $10.0/pip.
     *
     * https://forum.mql4.com/33975 CB: MODE_TICKSIZE will usually return the
     * same value as MODE_POINT (or Point for the current symbol), however, an
     * example of where to use MODE_TICKSIZE would be as part of a ratio with
     * MODE_TICKVALUE when performing money management calculations which need
     * to take account of the pair and the account currency. The reason I use
     * this ratio is that although TV and TS may constantly be returned as
     * something like 7.00 and 0.0001 respectively, I've seen this
     * (intermittently) change to 14.00 and 0.0002 respectively (just example
     * tick values to illustrate).
     * https://forum.mql4.com/43064#515262 zzuegg reports for non-currency DE30:
     * MarketInfo(Symbol(),MODE_TICKSIZE) returns 0.5
     * MarketInfo(Symbol(),MODE_DIGITS) return 1
     * Point = 0.1
     * Prices to open must be a multiple of ticksize */
    if (pair == "") pair = Symbol();
    return(  MarketInfo(pair, MODE_TICKVALUE)
           / MarketInfo(pair, MODE_TICKSIZE) ); // Not Point.
}
 
Ho cercato di calcolare la percentuale di rischio sui simboli non forex, ma non sono riuscito a trovare niente che sia anche lontanamente affidabile, dato che la maggior parte dei simboli non forex si comporta in modo molto diverso. Qualcuno ha qualche suggerimento su come calcolare il pipvalue corretto sui simboli non forex al fine di calcolare una corretta percentuale di rischio?
 
In che modo quanto sopra NON funziona correttamente?