Replies

Leonardo.Ciaccio
18 Jan 2024, 14:34

I have already given you the solution; I have written you a complete and working indicator.


@Leonardo.Ciaccio

Leonardo.Ciaccio
18 Jan 2024, 10:50

It is not clear what you want to achieve, but I would make a distinction between indicators and cbot, indicators do not have OnBar() event, let's try this approach with an indicator:

 

using System;
using cAlgo.API;
using cAlgo.API.Internals;

namespace cAlgo
{

    [Indicator(AccessRights = AccessRights.None)]
    public class SPAlerts : Indicator
    {

        Bars BarsDaily;
        double AlertPips;
        int lastIndex;

        protected override void Initialize()
        {

            BarsDaily = MarketData.GetBars(TimeFrame.Daily);
            AlertPips = 0.5;
            lastIndex = -1;

        }

        public override void Calculate(int index)
        {

            // cbot have OnBar event indicators no
            if (index != lastIndex)
            {

                lastIndex = index;
                OnBar(index);

            }

        }

        private void StandardPivotAlerts(int index)
        {
            // If it is not the last bar I will not display any alert    
            if (!IsLastBar) return;

            var barsDailyIndex = BarsDaily.OpenTimes.GetIndexByTime(Bars.OpenTimes[index]);
            // Calculate pivot points for the current day
            double HighValue = BarsDaily.HighPrices[barsDailyIndex];
            double LowValue = BarsDaily.LowPrices[barsDailyIndex];
            double CloseValue = BarsDaily.ClosePrices[barsDailyIndex];

            double PPValue = (HighValue + LowValue + CloseValue) / 3;
            double S1Value = (PPValue * 2) - HighValue;
            double S2Value = PPValue - (HighValue - LowValue);
            double S3Value = LowValue - 2 * (HighValue - PPValue);
            double R1Value = (PPValue * 2) - LowValue;
            double R2Value = PPValue + (HighValue - LowValue);
            double R3Value = HighValue + 2 * (PPValue - LowValue);

            var currentprice = Bars.ClosePrices[index - 1];
            var PPPips = Math.Abs((currentprice - PPValue) / Symbol.PipSize);
            var S1Pips = Math.Abs((currentprice - S1Value) / Symbol.PipSize);
            var S2Pips = Math.Abs((currentprice - S2Value) / Symbol.PipSize);
            var S3Pips = Math.Abs((currentprice - S3Value) / Symbol.PipSize);
            var R1Pips = Math.Abs((currentprice - R1Value) / Symbol.PipSize);
            var R2Pips = Math.Abs((currentprice - R2Value) / Symbol.PipSize);
            var R3Pips = Math.Abs((currentprice - R3Value) / Symbol.PipSize);
            if (S1Pips <= AlertPips && currentprice > S1Value)
            {
                Notify("Price Is Close to S1");
            }
            if (S2Pips <= AlertPips && currentprice > S2Value)
            {
                Notify("Price Is Close to S2");
            }
            if (S3Pips <= AlertPips && currentprice > S3Value)
            {
                Notify("Price Is Close to S3");
            }
            if (R1Pips <= AlertPips && currentprice < R1Value)
            {
                Notify("Price Is Close to R1");
            }
            if (R2Pips <= AlertPips && currentprice < R2Value)
            {
                Notify("Price Is Close to R2");
            }
            if (R3Pips <= AlertPips && currentprice < R3Value)
            {
                Notify("Price Is Close to R3");
            }

        }

        private void OnBar(int index)
        {
            // Remember, you may be on a different timeframe than daily, such as 5 minutes
            // so you have to manage it
            StandardPivotAlerts(index);

        }

        private void Notify(string message)
        {

            // TODO

        }

    }

}

@Leonardo.Ciaccio

Leonardo.Ciaccio
13 Jan 2024, 14:27

Fixed the issue: my nick name had a space "Leonardo Ciaccio" changed to "Leonardo.Ciaccio" so fixed


@Leonardo.Ciaccio

Leonardo.Ciaccio
04 Apr 2018, 08:18

Grazie Lorenzo,

sono certo che questa conversazione aiuterà molte persone ad approfondire l'argomento, spero che altre figure competenti partecipino a questo scambio di pensieri.

Vorrei prendere il discorso da un punto di vista diverso, inizierei con una precisazione, cMirror che fa capo a spotware.com non è un broker, loro sviluppano software, questi software vengono utilizzati dai broker al suo interno si trovano parecchi segnali provenienti da utenti con broker diversi.

Aggiungo che i segnali sono totalmente anonimi, questo è un altro punto importante, il cliente non ha possibilità di sapere chi è il fornitore di segnali, non a caso.
Non esiste un riferimento oggettivo al fornitore del segnale, chi offre il segnale non può decidere a quale continente offrire il servizio (inviterei la spotware ad offrire la possibilità di poter scegliere), chiudo con 2 domande, perché la CONSOB non oscura tramite ISP questi servizi ? visto che per un sito che offre link a film piratati viene chiuso in 2 giorni.
Perché in rete non si trovano sentenze definitive in merito ?

Grazie Lorenzo per l'enorme contributo che offri a questo topic, rinnovo l'invito a chiunque fosse in possesso di specifiche informazioni di condividerle con noi tutti.


@Leonardo.Ciaccio

Leonardo.Ciaccio
03 Apr 2018, 17:02 ( Updated at: 21 Dec 2023, 09:20 )

Hi lezdoria,

grazie per la tua risposta, l'interpretazione è proprio qui dove ho evidenziato il testo, non sono io a prestare il servizio ma è cMirror, io offro il segnale a cMirror poi cosa ne fa non mi interessa, non mi viene vietato di offrire i miei segnali ad una azienda che non risiede in Italia.

Thanks for your response, the interpretation is right here where I highlighted the text, I don't provide the service but it's cMirror, I offer the signal to cMirror then what do you do I don't care, I don't get banned from offering my signals at a company that does not reside in Italy. (google translator)


@Leonardo.Ciaccio

Leonardo.Ciaccio
20 Mar 2018, 10:37

thanks


@Leonardo.Ciaccio

Leonardo.Ciaccio
14 Mar 2018, 14:16

Thanks


@Leonardo.Ciaccio