Announcement

Collapse
No announcement yet.

bid - ask e prezzo attuale

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

    bid - ask e prezzo attuale

    Buongiorno

    tramite la funzione iBands

    Code:
    bandalta = iBands(NULL,0,20,2,0,PRICE_LOW,MODE_UPPER,1);  
       bandabassa = iBands(NULL,0,20,2,0,PRICE_HIGH,MODE_LOWER,1);
     mediana = iBands(NULL,0,20,2,0,PRICE_MEDIAN,MODE_UPPER,1);
    ricavo i valori attuali delle bande di bollinger. Adesso non voglio aprire posizioni ma voglio solamente sapere attualmente il prezzo dove si trova. Se all'interno del range alto o basso.
    bid è il prezzo con cui compro e ask quello con cui vendo corretto? La differenza sarebbe lo spread....

    la mia intenzione è qualcosa del genere:

    Code:
    if(prezzo attuale > mediana && prezzo attuale < bandalta) print ("siamo tra le bande alte")
    prezzo attuale sarebbe il mio problema. Come potrei fare?


    #2
    Originally posted by ogladiatore View Post
    bid è il prezzo con cui compro e ask quello con cui vendo corretto? La differenza sarebbe lo spread....
    Il BUY ha il prezzo di apertura sull'Ask

    Il SELL ha il prezzo di apertura sul Bid

    Il Bid è INFERIORE all'Ask : Bid + spread = Ask


    Originally posted by ogladiatore View Post
    prezzo attuale sarebbe il mio problema. Come potrei fare?
    Il prezzo attuale, al sopraggiungere di qualsiasi tick, è Bid o Ask = è indifferente quale dei due, ricordando che Bid + spread = Ask
    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


      #3
      quindi converrebbe analizzare sempre il prezzo ask e quando faccio operazioni di tipo sell ricordarmi di fare ask-spread. Quindi devo aggiornare per ogni tick il valore dello spread attuale affinchè non combini pasticci corretto?
      Altra domanda stupida.... Ma se chiudo una posizione sell uso sempre il bid o ask?

      Comment


        #4
        Code:
        Bid
        ti restituisce il Bid corrente
        Code:
        Ask
        ti restituisce l'Ask corrente

        non c'è bisogno di scrivere Bid + spread per trovare l'Ask
        o di scrivere Ask - spread per trovare il Bid


        Io uso questo pezzo di codice, da cui puoi trarne informazioni utili:

        PHP Code:
              spread MarketInfo(Symbol(),MODE_SPREAD)*Point;   // es. 20.0*0.00001 = 0.00020
              // --------------------------------------------------------
              // OP_BUY
              
        if ( ordineAMercato == OP_BUY )
                {
                 
        openOrderPrice NormalizeDouble(Ask,Digits);   // Il BUY ha il prezzo di apertura sull'Ask
                 
        ticket OrderSend(Symbol(), ordineAMercatolotopenOrderPrice000commentoOrdineMagicNumber0clrGreen);
                }
              
        // OP_SELL
              
        if ( ordineAMercato == OP_SELL )
                {
                 
        openOrderPrice NormalizeDouble(Bid,Digits);   // Il SELL ha il prezzo sul Bid
                
        ticket OrderSend(Symbol(), ordineAMercatolotopenOrderPrice000commentoOrdineMagicNumber0clrRed);
                } 


        IMPORTANTE:
        • il BUY apre il trade sull'Ask ma chiude sul Bid
        • il SELL apre sul Bid ma chiude sull'Ask
        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
          per inciso.... Damiano organizza corsi per imparare metaquote language :88_:
          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
            ok, chiaro! ti ringrazio Chi è Damiano?

            Comment


              #7
              Non conosco il tuo livello di conoscenza dell'MQL4, ma qui ci sono alcuni errori di base.:40.thinking_80_anim

              Correggo il tuo codice (do per scontato che tu abbia già dichiarato le variabili per le bande):
              Code:
              bandalta = iBands(NULL,0,20,2,0,PRICE_MEDIAN,MODE_UPPER,0);  
              bandabassa = iBands(NULL,0,20,2,0,PRICE_MEDIAN,MODE_LOWER,0);
              mediana = iMA(NULL,0,20,0,MODE_SMA,PRICE_MEDIAN,0);
              La prima correzione è il prezzo a cui sono applicate le BB (io ho messo a tutte lo stesso prezzo, PRICE_MEDIAN).
              Puoi applicarle ai prezzi di chiusura (PRICE_CLOSE), apertura (PRICE_OPEN), massimi (PRICE_HIGH), minimi (PRICE_LOW), mediani (PRICE_MEDIAN), tipici (PRICE_TYPICAL) e ponderati (PRICE_WEIGHTED).
              Quando tu applichi le BB sul grafico, puoi scegliere un prezzo a cui applicarle e sarà quello sia per la banda alta che quella bassa che quella mediana.
              Quindi quando vai a prenderne i valori, sarebbe poco preciso utilizzare prezzi diversi a seconda della banda...

              Seconda correzione è l'indice alla fine (io ho messo 0).
              Se tu metti 1, significa candela precedente, non attuale.
              0=attuale, 1=penultima, 2=terzultima, ecc.

              Terza correzione è quella che riguarda la banda centrale.
              La funzione iBands() serve solo per prendere il valore della banda alta o di quella bassa.
              La linea che sta in mezzo alle bande non è altro che una semplice media mobile.
              Per questo al fine di prenderne il valore, bisogna utilizzare la funzione iMA().

              Per scrivere una condizione come vuoi te, io farei qualcosa del genere (prendendo il bid, poiché è quello su cui sono creati i grafici della MT4):
              Code:
              if(Bid > mediana && Bid < bandalta) Print ("Siamo tra le bande alte!");
              Occhio alle maiuscole e minuscole (la funzione Print() ha la prima lettera maiuscola, se la metti minuscola non te la riconosce).
              E occhio anche ai punti e virgola.
              Dopo aver usato la funzione Print() ci va un punto e virgola, altrimenti il compilatore dà errore.:05.wink_80_anim_gif

              Modifica:
              Cavolo, mentre scrivevo il post voi ne avete già scritti 5.:03.bigsmile_80_anim
              Skype: cadddami

              Comment


                #8
                Damiano è il giovanissimo ma preparatissimo cadddami:

                http://www.project-trading.it/index
                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


                  #9
                  ciao caddami, grazie per la risposta
                  Ho riportato uno pseudo codice giusto per capirci qualcosa.
                  La prima correzione mi è chiara adesso... pensavo si potesse scegliere valori differenti
                  La seconda ok... mentre guardavo il grafico facevo ragionamenti su che vantaggio psicologico avevo se facevo lo shift, ma essendo in ea non serve e va bene 0
                  Terza... nulla da eccepire

                  Per la sintassi ci siamo... ho conoscenza base di c, c++, java (livello universitario)

                  Il mio problema principale in tutto questo è capire le funzioni come lavorano e le varie possibilità che la piattaforma mi mette a disposizione. Sto facendo degli esercizi per iniziare a capire passo passo per poi elaborare la mia idea.
                  Risposte come queste sembrano banali per voi ma sono pezzi di puzzle importanti per me Grazie....

                  Comment

                  Working...
                  X