Announcement

Collapse
No announcement yet.

Valore di 1 PIP nella valuta del conto ed in Euro

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Valore di 1 PIP nella valuta del conto ed in Euro

    ciao,

    vi allego uno script utile per avere immediatamente conoscenza sul cross considerato di:

    Pip, Point, Tick Size, Tick Value, Spread, Stops level

    ed il valore di 1 pip nella valuta del conto, ed anche in €uro se il conto non è in euro.


    Quando lo si esegue basta scrivere l'esposizione in lotti di un trade di cui volete conoscere il valore economico di 1 pip.

    k5KYkx.png



    Lo script stampa a video (e nella scheda Consiglieri/Experts) le seguenti informazioni:

    k5KYkx.png




    Un Point , MarketInfo(Symbol(), MODE_POINT) , è la variazione minima teorica di prezzo di una coppia di valute
    quindi è
    - 1 pip per broker a 2 o 4 cifre decimali,
    cioè 0.01 o 0.0001 di variazione minima teorica del rapporto tra le due valute del cross considerato
    - 1 decimo di pip per broker a 3 o 5 cifre decimali
    cioè 0.001 o 0.00001


    Ad ogni tick, il server del broker propone una nuova quotazione di una coppia di valute.
    La variazione minima teorica tra due quotazioni successive è il Point,
    ma la variazione minima reale che il broker permette è individuata dal Tick Size , MarketInfo(Symbol(),MODE_TICKSIZE).

    Mentre il Point è sempre fisso,
    il Tick Size può variare durante l'orario di contrattazioni ed è uguale al Point o ad un suo multiplo.


    Ad esempio per l’ORO, XAU/USD, 1 Point = 0.01, ma potremmo avere un Tick Size = 0.05,
    cioè il broker permette una teorica minima variazione di 1 Point,
    ma può fissare in alcuni orari un Tick Size non inferiore a 0.05, cioè 5 Point,
    quindi in questo caso il più piccolo movimento di mercato, realmente contrattato dal broker sull’ORO, è il Tick Size e non il Point.


    pointticksize.gif


    Attached Files
    La vita non è un giro di prova, cogli l’attimo..
    Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

    #2
    Grazie umberto!

    Molto utile.

    Comment


      #3
      ciao Umberto, grazie per lo script che e' molto utile.
      personalmente lo userei in forma di Indicatore in modo da non doverlo ricaricare sempre.
      altra cosa: e' possibile implementarlo in mode che restituisca il valore di 1Pip/Lotto anche sugli altri strumenti tipo comodities, indici e altro?
      grazie

      Comment


        #4
        la ragione per cui non lo implemento come indicatore è che scrive sul grafico e siccome una volta che sai qual è il valore in pip di una coppia di valute, quanto viene scritto non cambia nel corso del tempo.

        Quello che invece faccio in ogni mio EA è scrivere sempre nei commenti in alto, il codice (preso dallo script) che stampa il valore di un pip, lo spread, lo stoplevel, il giorno e ora dell'orario del server del broker, ecc. tutta una serie di informazioni che mi possono servire durante l'esecuzione dell'EA.

        Se invece occupo lo spazio con lo script come indicatore, non posso inserire indicatori che stampano testo nel grafico, perché lo spazio è occupato dai commenti di uno o di un altro indicatore.



        La vita non è un giro di prova, cogli l’attimo..
        Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

        Comment


          #5
          Originally posted by b4xr View Post
          e' possibile implementarlo in mode che restituisca il valore di 1Pip/Lotto anche sugli altri strumenti tipo comodities, indici e altro
          implementare lo script su strumenti CFD non coppie di valute invece, non è immediato come con le coppie di valute del forex, ogni strumento finanziario segue una sua logica, diversa dalle regole catturabili dalle funzioni di metaquote language per il forex: non hanno una valuta base (EUR per EURUSD) ed una valuta QUOTATA (USD per EURUSD) quindi ogni altro strumento finanziario va elaborato in maniera diversa uno dall'altro.
          La vita non è un giro di prova, cogli l’attimo..
          Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

          Comment


            #6
            ...infatti ho riscontrato questo "problema" sui CFD che mi ha portato via un po' di tempo.
            grazie per le risposte

            Comment


              #7
              Grazie mille Umberto! Utilissimo davvero!!

              Comment


                #8
                Ciao Umberto.... stavo curiosando tra codici di indicatori perchè ho intenzione, tempo permettendo, di fare un'indicatore di equity/balance ecc che mi calcoli in tempo reale tutti gli indici che hai esposto nella tua discussione sulla valutazione dei risultati di un'EA..... e mi sono inbattuto in questa funzione (carina...lol):
                PHP Code:
                double LotSize(string symboldatetime tbar)
                {
                 
                double size,close1,close2;
                 
                string BQ,currency=AccountCurrency();
                 switch ((int)
                MarketInfo(symbol,MODE_PROFITCALCMODE))
                 {
                  case 
                0:
                  {
                   
                int sbar=iBarShift(symbol,0,tbar);
                   
                size=MarketInfo(symbol,MODE_LOTSIZE);
                   if (
                StringSubstr(symbol,3,3)=="USD") break;
                   if (
                StringSubstr(symbol,0,3)=="USD")
                   {
                    
                close1=iClose(symbol,0,sbar);
                    if (
                close1>0size=size/close1;
                   }
                   else
                   {
                    
                BQ=StringSubstr(symbol,0,3)+"USD";
                    if (
                iClose(BQ,0,0)==0BQ="USD"+StringSubstr(symbol,0,3);
                    if (
                iClose(BQ,0,0)==0) break;
                    
                int BQbar=iBarShift(BQ,0,tbar);
                    
                close1=iClose(symbol,0,sbar);
                    
                close2=iClose(BQ,0,BQbar);
                    if (
                close1>&& close2>0)
                    {
                     if (
                StringSubstr(BQ,0,3)=="USD"size=size/close2/close1;
                     else 
                size=size*close2/close1;
                    }
                   }
                  } break;
                  case 
                1size=MarketInfo(symbol,MODE_LOTSIZE); break;
                  case 
                2size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
                 }
                 if (
                currency!="USD")
                 {
                  
                BQ=currency+"USD";
                  if (
                iClose(BQ,0,0)==0)
                  {
                   
                BQ="USD"+currency;
                   
                close1=iClose(BQ,0,iBarShift(BQ,0,tbar));
                   if (
                close1>0size*=close1;
                  }
                  else
                  {
                   
                close1=iClose(BQ,0,iBarShift(BQ,0,tbar));
                   if (
                close1>0size/=close1;
                  }
                 }
                 return(
                size);

                .... dove nel "case 1 e case2" calcola il MarketInfo(symbol,MODE_PROFITCALCMODE)....
                ....non conosco gli strumanti su citati.... ma vedi se funge..... lol lol lol
                ilgrigio
                Last edited by ilgrigio; 04-10-2015, 11:18.

                Comment


                  #9
                  Originally posted by ilgrigio View Post
                  MarketInfo(symbol,MODE_PROFITCALCMODE))
                  Grazie ilgrigio :101.joy_80_anim_gif

                  non la conoscevo questa proprietà di MarketInfo

                  leggo dalla reference
                  MODE_PROFITCALCMODE : Profit calculation mode. 0 - Forex; 1 - CFD; 2 - Futures

                  in effetti quindi si può riuscire a distinguere in maniera automatica se si tratta di simbolo relativo al Forex o al Cfd :51.yes_80_anim_gif:
                  La vita non è un giro di prova, cogli l’attimo..
                  Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                  Comment


                    #10
                    Si Umberto.... l'ho scoperto anch'io da poco.... la funzione in questione è utile perchè ci restituisce il valore del lotsize ad una specifica barra nel passato e quindi necessaria a ricostruire la curva della equity....!!! e fondamento per la programmazione di un indicatore....
                    ho solo un dubbio riguardo il margine necessario.....
                    ti spiego meglio.... io ho un'EA multivaluta e volevo distinguere i vari margini "impiegati" per ciascuna valuta..... come posso fare???

                    Comment


                      #11
                      il margine dipende da quanti lotti compri per ciascuna valuta, quando sai ad esempio che per tutti i trade aperti su EURUSD hai 1 lotto in esposizione
                      mentre per GBPJPY hai 2 lotti in esposizione
                      mentre per il CFD GOLD hai 3 lotti
                      ti calcoli per ciascuna esposizione il valore economico dell'esposizione
                      poi sommi tutto e sai di quanto sei esposto rispetto all'unico conto con cui sei a mercato.

                      C'è già una funzione in metaquote language che ti dice il margine disponibile in tempo reale, ma naturalmente lo fa su tutte i trade aperti, quindi senza distinzione che siano aperti da uno o più EA e da attività di trading manuale.
                      La vita non è un giro di prova, cogli l’attimo..
                      Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                      Comment


                        #12
                        Si Umberto ..... ma sono ancora confuso.... quale e come usando questi.... per MarketInfo?
                        MODE_MARGINCALCMODE 28 Margin calculation mode. 0 - Forex; 1 - CFD; 2 - Futures; 3 - CFD for indexes.
                        MODE_MARGININIT 29 Initial margin requirements for 1 lot.
                        MODE_MARGINMAINTENANCE 30 Margin to maintain open positions calculated for 1 lot.
                        MODE_MARGINHEDGED 31 Hedged margin calculated for 1 lot.
                        MODE_MARGINREQUIRED 32 Free margin required to open 1 lot for buying.

                        Comment


                          #13
                          purtroppo non mi sono mai preoccupato del margine, quindi non ho mai scritto del codice a riguardo,
                          bisogna perderci un po' tempo, con tentativi ed errori, o anche leggendo il codice scritto da altri per velocizzare il tutto
                          La vita non è un giro di prova, cogli l’attimo..
                          Realizzazione per Metatrader4 di trading system, indicatori, pattern grafici, Ottimizzazioni IS-OOS su Forex e CFD, Analisi di Portafoglio .

                          Comment


                            #14
                            OK... basta solo provare... lol lol .....
                            ma speravo che tu l'avessi già incontrato come problema....
                            io usavo banalmente questo.... AccountInfoDouble(ACCOUNT_MARGIN).... ma mi restituisce il totale del margine!!!!
                            ora proverò a fare quello che mi hai suggerito usando uno di quelli postati... per ogni valuta e se il totale mi da quello che ho scritto il gioco è fatto.... lol lol
                            ciao
                            ilgrigio

                            Comment


                              #15
                              Ciao, visto che si parla dei valori di pips ecc, spero di non uscire fuori tema. Io in un indicatore, vado a calcolare i valori del pip sia del cross sul quale vado a lanciare l'indicatore, che su un altrocross che specifico come input.
                              il codice che utilizzo per il calcolo é:
                              Code:
                              double pipVal = (MarketInfo(Symbol(), MODE_TICKVALUE)/(MarketInfo(Symbol(), MODE_TICKSIZE)/MarketInfo(Symbol(), MODE_POINT)))*MathPow(10, Digits%2)*Lotti;
                              double pipVal2 = (MarketInfo(Cross, MODE_TICKVALUE)/(MarketInfo(Cross, MODE_TICKSIZE)/MarketInfo(Cross, MODE_POINT)))*MathPow(10, digitsCross%2)*Lotti;
                              Il problema che risconto è:
                              -se lancio l'indicatore sul grafico, funziona tutto bene, però appena chiudo mt4, e riapro,mi scompare l'indicatore e mi escono degli errori che sono:
                              -- ....zero divide in...
                              Code:
                              double lot=(Lotti*pipVal)/pipVal2;
                              Il problema che non mi riesce a calcolare il valore del pip dell'altro cross..qualche suggerimento? Grazie

                              Comment

                              Working...
                              X