Prezzo per pip - pagina 5

 

@Gordon

"Cosa intendi per'Esecuzione immediata'? (è implicito che non è la stessa cosa di 'Esecuzione di mercato')..."

MT4 Server sembra riferirsi (lo vedrai nella sua lista manuale di ordini aperti) alla capacità di impostare gli stop nell'ordine aperto come "Instant Execution"; e "Market Execution" quando devono essere impostati a 0 e modificati.

@SDC e 1005philip

"Non sarebbe più semplice usare Symbol() in tutti i riferimenti al simbolo, così anche se il server del broker ha EURUSD inserito come mooncheese non ha importanza, purché anche l'EA sappia che EURUSD si chiama mooncheese?

Quando il nome del simbolo viene cambiato dal broker, questo richiede l'apertura di un nuovo grafico al quale aggiungerai il tuo EA.

CB

 
cloudbreaker:

MT4 Server sembra fare riferimento (lo vedrete nella sua lista manuale di ordini aperti) alla capacità di impostare gli stop nell'ordine aperto come "Instant Execution"; e "Market Execution" quando devono essere impostati a 0 e modificati.

Che io sia dannato, il menu a tendina cambia davvero quando si accede a un conto che accetta solo stop a 0. Non l'avevo mai notato. Grazie.
 
SDC:

Non sarebbe più semplice usare Symbol() in tutti i riferimenti al simbolo, così anche se il server del broker ha EURUSD inserito come mooncheese non ha importanza, purché anche l'EA sappia che EURUSD si chiama mooncheese

Wow, l'argomento è cresciuto fino a 42 post e continua a crescere, è un record...

Se a tutti non dispiace.... riprendo da dove avevo lasciato...

SDC, se non mi sbaglio, Phillip stava esponendo la sua funzione personalizzata per produrre TickValue, in modo indipendente, invece di chiamare semplicemente il MarketInfo predefinito. Naturalmente chiamare MODE_TICKVALUE su Symbol() è la cosa più semplice e logica da fare. Ma a parte dimostrare/comprovare dove/come il TickValue ha ottenuto il suo valore. Potrei sbagliarmi, ma penso che questo abbia il vantaggio di sintetizzare una o più coppie esotiche che un particolare broker potrebbe non offrire. Possiamo permutare tutte le basi/counter che sono disponibili. Non ho un esempio a portata di mano. Ma sono abbastanza sicuro che ciò che i broker hanno da offrire non è una permutazione completa di base/counter disponibili. Sto solo esplorando su ciò che Phillip aveva postato. Potrebbe non essere utile a meno che uno non abbia bisogno di copertura/arbitraggio o qualcosa del genere...

 

cameo Sarei felice di condividere più del codice che ho seduto qui se ci trovi valore. Onestamente ho pensato che fosse solo un percorso banale/di routine che la maggior parte della gente aveva già percorso nel corso delle proprie avventure di codifica, quindi non volevo insultare l'intelligenza di nessuno presumendo che fosse qualcosa di nuovo per la comunità. (inoltre il mio codice non è esattamente quello che considero degno di essere pubblicato nella forma in cui si trova sul mio hard disk, facendo potenzialmente più male che bene nelle mani sbagliate e non voglio davvero che qualcuno perda soldi a causa del mio stile di commento poco brillante, ecc)

Il beneficio (io lo vedo più come "la necessità") di essere in grado di calcolare il tickvalue dai fondamentali non è tanto per l'hedging/arbitraggio (anche se certamente potrebbe essere sfruttato anche lì) ma piuttosto è per qualcosa di molto più semplicistico. Nel mio caso lo trovo necessario per il calcolo dell'equity at risk, il posizionamento degli stoploss, ecc.

(inoltre, nota: il valore di marketinfo per MODE_TICKVALUE è basato rigorosamente sul prezzo di offerta della coppia di valute, non sul prezzo di domanda, come tale il marketinfo tickvalue è in realtà solo tecnicamente corretto per l'uso con calcoli che dipendono dal prezzo di offerta come il valore di takeprofit di una posizione lunga o lo stoploss di una posizione corta ... di nuovo la discrepanza è minore, e naturalmente non fa differenza per coppie di valute in cui la valuta del conto è la contro-valuta come EURUSD e così via)

Il problema con l'uso di marketinfo Tickvalue è che è valido solo per i prezzi di mercato correnti. Tickvalue dipende dal prezzo di mercato per tutte le coppie di valute tranne quelle che hanno la valuta del conto come controvaluta. (il tickvalue di USDJPY è diverso per USDJPY = 99.00 rispetto a 98.00, ecc.)

La ragione per la creazione di coppie "sintetiche" come le chiami tu è che per le coppie di valute incrociate il valore di tick dipende dal prezzo di due coppie di valute. Sia il simbolo che viene scambiato, sia la coppia di valute formata dalla valuta del conto e quella della contro coppia di valute nel simbolo che viene scambiato.

Un esempio. Supponiamo che la denominazione del tuo conto sia USD e che tu voglia scambiare EURGBP. Il valore della posizione EURGBP una volta aperta dipenderà dal prezzo di mercato della EURGBP e dal prezzo di mercato della GBPUSD.

Potresti aprire una posizione lunga sulla EURGP a 0.8500 e potrebbe rimanere a quello stesso prezzo per tutto il giorno, ma il tuo trade sarebbe sommerso se il GBPUSD nel frattempo ha avuto una tendenza al ribasso. (questo è anche il motivo per cui potresti aver letto uno o due miei post precedenti in cui affermavo che l'hedging è necessario, ma poco pratico, quando si fa trading su coppie di valute incrociate se si vuole gestire il rischio)

Nel mio caso mi piace determinare programmaticamente le coppie di valute che fanno da ponte tra la valuta del conto e la coppia di valute incrociate, da qui l'uso della formazione di coppie "sintetiche".

 
1005phillip:

cameo Sarei felice di condividere più del codice che ho seduto qui se si trova valore in esso.

Sì, sarebbe fantastico! Per favore allegalo o mandami un pm se ti va. Grazie Phillip...

Il beneficio (io lo vedo più come "la necessità") di essere in grado di calcolare il tickvalue dai fondamentali non è tanto per l'hedging/arbitraggio (anche se certamente potrebbe essere sfruttato anche lì) ma piuttosto è per qualcosa di molto più semplicistico. Nel mio caso lo trovo necessario per il calcolo dell'equity at risk, il posizionamento degli stoploss, ecc.

(inoltre, nota: il valore di marketinfo per MODE_TICKVALUE è basato rigorosamente sul prezzo di offerta della coppia di valute, non sul prezzo di domanda, come tale il marketinfo tickvalue è in realtà solo tecnicamente corretto per l'uso con calcoli che dipendono dal prezzo di offerta come il valore di takeprofit di una posizione lunga o lo stoploss di una posizione corta ... di nuovo la discrepanza è minore, e naturalmente non fa differenza per coppie di valute in cui la valuta del conto è la contro-valuta come EURUSD e così via)

Questo implica che l'altro lato del commercio cioè short (Ask price) 's informazioni di mercato avrà discrepanza se calcolato in modo indipendente?

Il problema con l'uso di marketinfo Tickvalue è che è valido solo per i prezzi di mercato correnti. Tickvalue dipende dal prezzo di mercato per tutte le coppie di valute tranne quelle che hanno la valuta del conto come controvaluta. (tickvalue di USDJPY è diverso a USDJPY = 99.00 contro 98.00, ecc.)

La ragione per la creazione di coppie "sintetiche" come le chiami tu è che per le coppie di valute incrociate il valore di tick dipende dal prezzo di due coppie di valute. Sia il simbolo che viene scambiato, sia la coppia di valute formata dalla valuta del conto e quella della contro coppia di valute nel simbolo che viene scambiato.

Sì. Questo è chiaramente descritto nel libro di mql4. Da allora ho sempre considerato lecoppie di valute incrociate TickValues' come 'fluttuanti'.

Un esempio. Diciamo che la denominazione del tuo conto è USD e vuoi scambiare la EURGBP. Il valore della posizione EURGBP una volta aperta dipenderà dal prezzo di mercato della EURGBP e dal prezzo di mercato della GBPUSD.

Potresti aprire una posizione lunga sull'EURGP a 0.8500 e potrebbe rimanere a quello stesso prezzo per tutto il giorno, ma il tuo trade sarà sommerso se nel frattempo il GBPUSD ha avuto una tendenza al ribasso. (questo è anche il motivo per cui potresti aver letto uno o due miei post precedenti in cui affermavo che l'hedging è necessario, ma poco pratico, quando si fa trading su coppie di valute incrociate se si mira a gestire il rischio)

Non l'ho mai vista in questo modo! Ho bisogno di riflettere su questo s'more.... :)

Nel mio caso mi piace determinare programmaticamente le coppie di valute che fanno da ponte tra la valuta del conto e la coppia di valute incrociate, da qui l'uso della formazione di coppie "sintetiche".

Una domanda (forse stupida): hai mai incontrato una coppia che non ha USD come base/controcampo ma esiste come cross?


 
gordon:

Purtroppo, la denominazione di MODE_TICKSIZE e MODE_TICKVALUE aggiunge una seconda definizione di Tick (che presumo sia la fonte della confusione...). La definizione di Tick in questo contesto è: un Tick è la più piccola variazione di prezzo possibile per il simbolo in questione:

  • MODE_TICKSIZE - la dimensione di questo cambiamento in termini di prezzo (la documentazione dichiara "Tick size in points", ma questo è ovviamente impreciso).
  • MODE_TICKVALUE - il valore di questo cambiamento nella valuta di deposito del conto (questo è calcolato lato server dal broker).
Commenti:
  1. Un 'Punto' (MODE_POINT) è il più piccolo cambiamento di prezzo possibile sulla dimensione sinistra del punto decimale per il simbolo in questione. Questo NON è lo stesso di MODE_TICKSIZE. Tecnicamente: MODE_TICKSIZE>=MODE_POINT, anche se quasi sempre sono uguali.
  2. Un 'Pip' è una convenzione, qualcosa su cui siamo tutti d'accordo. Non è una proprietà matematica del simbolo o una proprietà del server MT4. Così per esempio - con un broker a 4 cifre per EURUSD un Pip è 1 Punto, ma per un broker a 5 cifre un Pip è 10 Punti...
  3. C'è una buona discussione su come determinare automaticamente la dimensione di un Pip in punti qui -> https://www.mql5.com/en/forum/124692.
  4. MODE_TICKSIZE può variare, anche se è estremamente raro (Point invece è fisso). CB ha un metodo per trattare questi cambiamenti qui -> https://www.mql5.com/en/forum/109552/page3#195878.

Se posso offrire quella che è stata la mia interpretazione fino ad oggi - aggiungendo a ciò che Gordon aveva esposto molto bene sopra.

  • Point : finisce sempre con 1. E' un fattore di conversione del rapporto che abbiamo chiamato 'prezzo'.
  • MODE_TICKSIZE : La più piccola unità di movimento di prezzo in punti.
  • MODE_TICKVALUE : Valore attuale della controvaluta in conversione al suo rapporto di base.
 

cameofx:

Punto: finisce sempre con 1. È un fattore di conversione del rapporto che abbiamo chiamato 'prezzo'.
Aggiungendo una precisazione al "quasi sempre" di Gordon, non riesco a pensare immediatamente a uno strumento forex dove questo non sia vero, ma è raramente vero quando i broker offrono metalli, indici ecc. Per esempio, sul contratto dell'oro di Alpari, TICKSIZE è 0,05 (e Point è 0,01). Per quanto ne so, MarketInfo(Symbol(),MODE_POINT) = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS))
 
cameofx:

Sì, sarebbe fantastico! Per favore allegalo o mandami un pm se ti va. Grazie Phillip...


Incluso nel file rar allegato. Sono sicuro che avrete domande sull'uso, sparate pure.


cameofx:

Questo implica che l'altro lato dello scambio, cioè lo short (prezzo Ask), avrà delle discrepanze se calcolato indipendentemente?



Questo è corretto. Ma l'errore percentuale è semplicemente lo spread in punti diviso per il prezzo di domanda (~0,02%-0,05% a seconda della coppia di valute)... conta solo se vuoi tenere conto fino all'ultimo centesimo.


cameofx:

Non l'ho mai vista in questo modo! Ho bisogno di riflettere su questo s'more.... :)


Ho incluso un file excel nel file rar allegato nella speranza di aiutarvi a riflettere.

cameofx:

Una domanda (forse stupida): hai mai incontrato una coppia che non ha USD come base/controparte ma esiste come croce?



Come la tua domanda è attualmente scritta la risposta facile è sì - ogni cross senza USD soddisfa il tuo criterio. Ma penso che tu volessi fare una domanda diversa - cioè ho incontrato un broker che offre una coppia di valute incrociate e allo stesso tempo non offre la coppia di valute richiesta che contiene la contro valuta della coppia incrociata e la valuta di denominazione del conto?

La risposta a questa domanda è no, e per una buona ragione, perché un broker semplicemente non può. La ragione per cui un broker non può farlo è perché sono vincolati dalle stesse connessioni di prezzo fondamentali delle equazioni qui dettagliate... in altre parole hanno bisogno di accedere alle stesse informazioni di prezzo per calcolare e riportare le valutazioni della tua posizione cross-currency.

Per esempio, diciamo che hai un conto denominato in euro e compri 1 lotto di GBPUSD. La contro valuta in GBPUSD è l'USD. Quindi per calcolare il tuo profitto/perdita sulla tua posizione GBPUSD il tuo broker (e tu) devi anche conoscere il prezzo della EURUSD. (l'EUR è la valuta del tuo conto, il USD è la contro valuta del cross-pair in cui hai aperto una posizione)

Se il broker non ha EURUSD come coppia offerta, il terminale MT4 non può calcolare il profitto/perdita fluttuante della tua posizione su base tick-by-tick. Quindi non troverete mai un broker che vi offre la possibilità di negoziare una coppia incrociata (relativa alla denominazione del vostro conto) senza offrire anche la coppia di valute primaria che contiene la valuta del vostro conto.
 
jjc:
Aggiungendo una precisazione al "quasi sempre" di Gordon, non riesco a pensare immediatamente a uno strumento forex dove questo non sia vero, ma è raramente vero quando i broker offrono metalli, indici ecc. Per esempio, sul contratto dell'oro di Alpari, TICKSIZE è 0,05 (e Point è 0,01). Per quanto ne so, MarketInfo(Symbol(),MODE_POINT) = MathPow(10, -MarketInfo(Symbol(), MODE_DIGITS))
Sono d'accordo su entrambi. Non ho mai visto un caso in cui MODE_POINT e MODE_DIGITS non abbiano confermato questa formula.
 
cameofx:
Point : Finisce sempre con 1.
"Un 'Punto' (MODE_POINT) è la più piccola variazione di prezzo possibile", quindi ovviamente deve terminare con un 1.
MODE_TICKSIZE : La più piccola unità di movimento del prezzo in punti.

Come ho detto prima, anche se la documentazione dichiara "Tick size in punti", questo è ovviamente impreciso. È anche in termini di prezzo.

MODE_TICKVALUE : Valore attuale della contro valuta in conversione al suo rapporto di base.

Questa definizione non è chiara... (forse l'inglese non è la tua lingua madre?).