Announcement

Collapse
No announcement yet.

bid - ask e prezzo attuale

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

  • ogladiatore
    replied
    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....

    Leave a comment:


  • umbertosm
    replied
    Damiano è il giovanissimo ma preparatissimo cadddami:

    http://www.project-trading.it/index

    Leave a comment:


  • cadddami
    replied
    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

    Leave a comment:


  • ogladiatore
    replied
    ok, chiaro! ti ringrazio Chi è Damiano?

    Leave a comment:


  • umbertosm
    replied
    per inciso.... Damiano organizza corsi per imparare metaquote language :88_:

    Leave a comment:


  • umbertosm
    replied
    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

    Leave a comment:


  • ogladiatore
    replied
    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?

    Leave a comment:


  • umbertosm
    replied
    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

    Leave a comment:


  • ogladiatore
    started a topic bid - ask e prezzo attuale

    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?

Working...
X