Risultati da 1 a 17 di 17

Discussione: acquisto di un prodotto raggiunto un certo valore



  1. #1
    L'avatar di grosso999
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Pordenone
    Messaggi
    22
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    0

    acquisto di un prodotto raggiunto un certo valore

    Ciao a tutti, mi trovo alle prese con un certo problema e vi chiedo se potete aiutarmi.
    Io ho due colonne, nella prima ho il prezzo giornaliero di un certo prodotto mentre nella seconda ho un "indice di prezzo" del prodotto giorno per giorno.
    Io vorrei calcolare il profitto che otterrei comprando il prodotto quando l’indice del prezzo raggiunge un certo valore (es.-80) e vendendo quando questo indice raggiunge, per la prima volta dopo l'acquisto, un altro valore (es.-20).
    Ovviamente questo calcolato dovrebbe essere eseguito ogni volta che la condizione si manifesta nel corso del tempo.
    Vi posto un esempio così magari è più chiaro (prezzi elencati dal più recente al più vecchio):

    cella prezzo indice prezzo
    A2 14.55 -28
    A3 14.66 -23
    A4 14.86 -13
    A5 14.66 -30
    A6 14.55 -41
    A7 14.45 -46
    A8 14.8 -36
    A9 14.45 -51
    A10 14.38 -54
    A11 14.63 -51
    A12 14.41 -58
    A13 14.34 -61
    A14 13.49 -86

    quello che mi servirebbe è che venga effettuato un acquisto in A14 e una vendita in A4 e calcolato il profitto percentuale, quindi che mi sia eseguito il seguente calcolo (14.86-13.49)/13.49.
    Spero di essere stato chiaro, grazie.

  2. #2
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1652
    Versione Office
    2010 PC
    Likes ricevuti
    889
    Likes dati
    183
    Ciao
    se ho ben capito
    esempio:
    se in E1 metti -20
    in F1 metti -80
    o qualunque valore ti serve, la formula diventa:
    =INDICE(A2:A14;CONFRONTA(MIN(ASS(E1-(B2:B14)));ASS(E1-(B2:B14));0))/INDICE(A2:A14;CONFRONTA(MIN(ASS(F1-(B2:B14)));ASS(F1-(B2:B14));0))-1

    è matriciale, da confermare con CTRL+MAIUSCOLO+INVIO
    inoltre stai attento a digitare correttamente i numeri nella celle (la virgola invece che il punto)

  3. #3
    L'avatar di grosso999
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Pordenone
    Messaggi
    22
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    0
    Grazie della risposta.
    Premetto che sono alle prime armi con excel e non posso dire di aver compreso appieno la formula scritta, i valori che mi ritorna non sono quelli che “vorrei”.
    In pratica quello che mi aspetto è che, se nella colonna A ho il prezzo, nella colonna B l’indice prezzo, in E il valore -20 e in F il valore -80 e infine nella colonna G il risultato della formula, mi dovrebbe comparire nella cella G14 il valore 0.1015 (che corrisponde al 10% ed è dato da (14.86-13.49)/13.49) mentre in tutte le altre celle della colonna G il valore 0.
    L’idea è che nella riga 14 si manifesta il segnale di acquisto e quindi in quella data compro mentre nella riga 4 si manifesta il segnale di vendita e quindi in quella data vendo; vorrei quindi che il risultato dell’operazione mi compaia nella data di acquisto

  4. #4
    L'avatar di Pitagora
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Milano
    Età
    54
    Messaggi
    779
    Versione Office
    WIN , 2013 2016
    Likes ricevuti
    318
    Likes dati
    1
    Buon giorno

    grosso999

    Puoi utilizzare come segnale di vendita e acquisto la seguente formula

    G2=SE(B2<=-80;"compra";SE(B2>=-20;"vendi";0)) trascina in basso
    Window 8.1 Excel 2013/2016

  5. #5
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1652
    Versione Office
    2010 PC
    Likes ricevuti
    889
    Likes dati
    183
    ciao
    la differenza di risultato è dovuta al fatto che la formula estre i valori più vicini a -20 (-23) ed a -80 (-86) .
    Da quello che ora intuisco, a te servono quelli più vicini ma che siano maggiori di -20 (-13) e minori di -80 (-86), a questo punto la formula diventa:
    =INDICE(A2:A14;CONFRONTA(MIN(ASS(E1-(SE(B2:B14>=E1;B2:B14))));ASS(E1-(B2:B14));0))/INDICE(A2:A14;CONFRONTA(MIN(ASS(F1-(SE(B2:B14<=F1;B2:B14))));ASS(F1-(B2:B14));0))-1


    NB
    l'operazione che chiedi si può semplificare con : 14,86/13,49-1

    Per la segnalazione dei punti di vendita ed acquisto , puoi usare la formula suggerita da Pitagora ma potresti avere più punti di vendita e acquisto, in base all'andamento degli indici.

  6. #6
    L'avatar di grosso999
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Pordenone
    Messaggi
    22
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    0
    Grazie a entrambi per le risposte.
    Ninai, riguardo alla tua ultima formula ha un problema, non tiene conto dell'ordine cronologico.
    Mi spiego meglio, ipotizzando di avere questi dati:
    15.39 -85.5856
    15.54 -72.0721
    15.55 -75.9615
    15.73 -58.6538
    15.57 -74.0385
    15.93 -39.4231
    16.21 -12.5
    16.13 -20.1923
    16.01 -23.6559
    16.15 -8.60215
    15.78 -48.3871
    15.94 -31.1828
    15.96 -29.0323

    nella prima riga che ha come valori 15.39 e -85.5856 mi segnala come risultato 0.05328, che suppongo che sia stato calcolato come (16.21/15.39)-1.
    Ora, considerando che i valori sono elencati dal più recente al meno recente, è come se quando l’indice di prezzo vale -85 (supponiamo oggi) io comprassi a 15.39 e quando l’indice di prezzo vale -12 (6 giorni fa) io vendessi a 16.21, cosa impossibile in quanto se compro qualcosa oggi non posso venderla nel passato. E' possibile risolvere questo problema?

  7. #7
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3207
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Ciao grosso999
    ho l'impressione che la tua richiesta sta "in piedi" su una sola gamba.
    Mi spiego. Se ho capito bene, tu vorresti un segnale d'acquisto o di vendita a seconda del valore di un indice. Ma, scusa, se hai qualcosa dentro e vuoi vendere quando "te lo dice l'indice" devi mettere a raffronto il prezzo odierno col prezzo d'acquisto non con l'indice dei vari giorni, per vedere se ci guadagni o ci perdi. Se vuoi comprare a cosa ti serve l'indice dei giorni passati: non puoi certo comprare ieri quello che oggi ha un altro prezzo.
    Non capisco.
    Ciao,
    Mario

  8. #8
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1652
    Versione Office
    2010 PC
    Likes ricevuti
    889
    Likes dati
    183
    ed in questo caso cosa doveva succedere????
    compravo oggi ed aspettavo in futuro per vendere???
    compravo prima di sei giorni fa ma con prezzo maggiore (superiore -80) ???

    non ho contezza di tutta la problematica sarebbe il caso che tu allegassi un file con dati e situazioni rappresentative con risultati attesi.

  9. #9
    L'avatar di grosso999
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Pordenone
    Messaggi
    22
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    0
    Cerco di spiegare meglio il problema.
    La colonna prezzo corrisponde al prezzo giornaliero di un’azione di borsa.
    Io devo verificare che risultato produce l’applicazione di una strategia di acquisto/vendita basata su un certo indice (la colonna “indice prezzo”); di conseguenza lo scopo di questo indice è solo quello di dirmi quando comprare e quando vendere.
    Tale strategia consiste nell’acquistare un’azione quando l’indice di prezzo assume per la prima volta un valore <-80 e venderla quando tale indice assume per la prima volta un valore > -20.
    A me interessa sapere quante volte e quale risultato avrebbe prodotto l’applicazione di questa strategia se l’avessi utilizzata in passato.
    Per risultato intendo il profitto/perdita: (prezzo vendita/prezzo acquisto)-1.
    Allego un file che spero possa chiarire meglio cosa vorrei

  10. #10
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3207
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Nel file che hai allegato indica in K1 il limite inferiore (-20) e in K2 il limite superiore (-80).
    Quindi in un modulo standard di VB copia/incolla il codice seguente
    Codice: 
    Option Explicit
    Sub CompraVendi()
    Dim lim1 As Double, lim2 As Double, rg As Long, i As Long, j As Long
    Dim ind1 As Double, ind2 As Double, pr1 As Double, pr2 As Double
        lim1 = Range("K1").Value: lim2 = Range("K2").Value
        rg = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
        Range("G2:H" & rg).ClearContents
        For i = rg To 2 Step -1
            ind2 = Cells(i, 3).Value
            If ind2 < lim2 Then
                Cells(i, 7) = "compro"
                pr1 = Cells(i, 2).Value
                For j = i - 1 To 1 Step -1
                    ind1 = Cells(j, 3).Value
                    If ind1 > lim1 Then
                        Cells(j, 7) = "vendo"
                        pr2 = Cells(j, 2).Value
                        Cells(i, 8) = pr2 / pr1 - 1
                        i = j: Exit For
                    End If
                Next j
            End If
        Next i
    End Sub
    Nelle colonne G ed H vedrai i risultati.
    allego il tuo file (guarda Foglio3)http://www.filedropper.com/problemaexcel
    Fammi sapere. Ciao,
    Mario

  11. #11
    L'avatar di grosso999
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Pordenone
    Messaggi
    22
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    0
    Ciao, scusate se rispondo solo ora, ma ho avuto un guasto al computer.
    E troppo chiedere di riavere quest'ultimo file dato che sul link non è più presente?
    Altre cosa, volendo inserire quel codice in excel come faccio? Tenete presente che sono alle prime armi

  12. #12
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3207
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Ciao Grosso
    leggo solo ora il tuo post. Eccoti l'allegato (guarda il Foglio3)



    Ciao,
    Mario
    Ultima modifica fatta da:Gerardo Zuccalà; 31/10/15 alle 17:28 Motivo: Modificato allegato

  13. #13
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1652
    Versione Office
    2010 PC
    Likes ricevuti
    889
    Likes dati
    183
    Ciao
    una soluzione alternativa con formule:
    la premessa è che i dati vengano ordinati con data crescente, dopo di che:
    in D2:
    =SE(E(CONTA.SE($D$1:D1;"compra")=CONTA.SE($D$1:D1;"vendi");C2<=-80);"compra";SE(E(CONTA.SE($D$1:D1;"compra")<>CONTA.SE($D$1:D1;"vendi");C2>=-20);"vendi";""))
    in E2:
    =SE(D2="vendi";B2/INDIRETTO("B"&CERCA(2;1/($D$1:D1="compra");RIF.RIGA($D$1:D1)))-1;"")

    e le trascini in basso.
    I risultati sembrano combaciare.
    Si potrà fare sicuramente con le date decrescenti (come nel file originale) ma al momento mi è venuta così.



    allego mio file lavoro foglio "ninai"
    https://www.dropbox.com/s/d0xf4iex1x...inai.xlsx?dl=0

  14. #14
    L'avatar di grosso999
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Pordenone
    Messaggi
    22
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    0
    Grazie dei vostri file, entrambi fanno quello che cercavo, l'unico problema è che le mie conoscenze in excel rispetto alle vostre sono alquanto modeste per usare un eufemismo, in particolare visual basic finora non lo avevo mai visto.
    Per questo motivo, visto anche che mi piacerebbe inserire la soluzione in un foglio excel con altre formule, sempre se non chiedo troppo, è possibile realizzare una soluzione come quella di ninai solo con le date decrescenti?

  15. #15
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1652
    Versione Office
    2010 PC
    Likes ricevuti
    889
    Likes dati
    183
    ciao
    sono di fretta, non ho potuto testarle:
    in D2:
    =SE(E(CONTA.SE($D3:D$189;"compra")<>CONTA.SE($D3:D$189;"vendi");C2>=-20);"vendi";SE(E(CONTA.SE($D3:D$189;"compra")=CONTA.SE($D3:D$189;"vendi");C2<=-80);"compra";""))
    in E2:
    =SE(D2="compra";INDIRETTO("b"&CERCA(2;1/($D$1:D1="vendi");RIF.RIGA($E$1:E1)))/B2-1;"")

  16. #16
    L'avatar di ninai
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Barcellona P.G.
    Età
    55
    Messaggi
    1652
    Versione Office
    2010 PC
    Likes ricevuti
    889
    Likes dati
    183
    sembra funzionare, fai sapere.

    ho modificato leggermente la formula, in caso il titolo sia acquistato ed in attesa di vendita;
    parametrato le due soglie di acquisto e vendita;
    sommato le varie rendite percentuali.


    allego file
    https://www.dropbox.com/s/4x9sar1puw...ente.xlsx?dl=0

  17. #17
    L'avatar di grosso999
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Pordenone
    Messaggi
    22
    Versione Office
    Excel 2007
    Likes ricevuti
    0
    Likes dati
    0
    Perfetto, funziona, grazie mille!

Discussioni Simili

  1. [Risolto] Ottenere il primo valore "vero" di una matrice somma prodotto
    Di Maurantz nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 08/02/17, 23:51
  2. Ripetere celle un certo numero di volte
    Di saturn87 nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 05/09/16, 14:56
  3. Può diventare rosso un valore se supera un certo range?
    Di Catwoman nel forum Domande sui Grafici di Excel
    Risposte: 44
    Ultimo Messaggio: 13/08/16, 01:35
  4. data piu' antecedente tra quelle associate a un certo valore e entro un anno
    Di Serena nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 28/12/15, 18:07
  5. Assegna un valore dato il valore un valore maggiore di 0 di altra cella
    Di Fabio71 nel forum Domande su Excel in generale
    Risposte: 20
    Ultimo Messaggio: 27/12/15, 21:23

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •