Money Break Even

Money Break Even è un semplice ma potente tool per aumentare il controllo sulla gestione delle operazioni.

Versione : 1.0.7 ( 21.08.2020 )

 

(2 recensioni dei clienti)

Gratis

Descrizione

Con Money Break Even potrai proteggere i tuoi profitti

questo cBot viene utilizzato per proteggere i profitti in caso di volatilità erratica oppure per strategie che prevedono un money management ben definito.

Il funzionamento è molto semplice ma geniale, prende come riferimento il Net Profit ( profitto al netto delle spese ) quando raggiunge un ammontare o target prestabilito si attiva e impedisce che il profitto possa scendere oltre un target preimpostato ad esempio un punto di pareggio.

La logica può essere sia positiva che negativa, sia globale che locale, vuol dire che posso applicare una logica positiva se sto guadagnando e una negativa se sto perdendo, per il cross sul quale è stato avviato oppure per tutti i cross.

Un esempio pratico

potrebbe essere applicato a una delle circostanze che si presenta molto spesso ovvero quando dopo essere stati in profitto per un lasso di tempo importante il mercato torna indietro bruciando i profitti, quindi per mettere al sicuro i trades potremmo inserirne uno con un targert di attivazione di €10 e un punto di break even a €1, le operazioni sarebbero protette e quindi chiuse solo se prima il Net Profit raggiunge il target di attivazione, stessa cosa ma al contrario se in logica negativa.

Scaricalo subito, approfittane è free.

Source

GitHub : https://github.com/cTrader-Guru/Money-Break-Even

/*  CTRADER GURU --> Indicator Template 1.0.6

    Homepage    : https://ctrader.guru/
    Telegram    : https://t.me/ctraderguru
    Twitter     : https://twitter.com/cTraderGURU/
    Facebook    : https://www.facebook.com/ctrader.guru/
    YouTube     : https://www.youtube.com/channel/UCKkgbw09Fifj65W5t5lHeCQ
    GitHub      : https://github.com/ctrader-guru

*/

using System;
using cAlgo.API;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;


namespace cAlgo
{
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class MoneyBreakEven : Robot
    {

        #region Enums
        
        public enum MyColors
        {

            AliceBlue,
            AntiqueWhite,
            Aqua,
            Aquamarine,
            Azure,
            Beige,
            Bisque,
            Black,
            BlanchedAlmond,
            Blue,
            BlueViolet,
            Brown,
            BurlyWood,
            CadetBlue,
            Chartreuse,
            Chocolate,
            Coral,
            CornflowerBlue,
            Cornsilk,
            Crimson,
            Cyan,
            DarkBlue,
            DarkCyan,
            DarkGoldenrod,
            DarkGray,
            DarkGreen,
            DarkKhaki,
            DarkMagenta,
            DarkOliveGreen,
            DarkOrange,
            DarkOrchid,
            DarkRed,
            DarkSalmon,
            DarkSeaGreen,
            DarkSlateBlue,
            DarkSlateGray,
            DarkTurquoise,
            DarkViolet,
            DeepPink,
            DeepSkyBlue,
            DimGray,
            DodgerBlue,
            Firebrick,
            FloralWhite,
            ForestGreen,
            Fuchsia,
            Gainsboro,
            GhostWhite,
            Gold,
            Goldenrod,
            Gray,
            Green,
            GreenYellow,
            Honeydew,
            HotPink,
            IndianRed,
            Indigo,
            Ivory,
            Khaki,
            Lavender,
            LavenderBlush,
            LawnGreen,
            LemonChiffon,
            LightBlue,
            LightCoral,
            LightCyan,
            LightGoldenrodYellow,
            LightGray,
            LightGreen,
            LightPink,
            LightSalmon,
            LightSeaGreen,
            LightSkyBlue,
            LightSlateGray,
            LightSteelBlue,
            LightYellow,
            Lime,
            LimeGreen,
            Linen,
            Magenta,
            Maroon,
            MediumAquamarine,
            MediumBlue,
            MediumOrchid,
            MediumPurple,
            MediumSeaGreen,
            MediumSlateBlue,
            MediumSpringGreen,
            MediumTurquoise,
            MediumVioletRed,
            MidnightBlue,
            MintCream,
            MistyRose,
            Moccasin,
            NavajoWhite,
            Navy,
            OldLace,
            Olive,
            OliveDrab,
            Orange,
            OrangeRed,
            Orchid,
            PaleGoldenrod,
            PaleGreen,
            PaleTurquoise,
            PaleVioletRed,
            PapayaWhip,
            PeachPuff,
            Peru,
            Pink,
            Plum,
            PowderBlue,
            Purple,
            Red,
            RosyBrown,
            RoyalBlue,
            SaddleBrown,
            Salmon,
            SandyBrown,
            SeaGreen,
            SeaShell,
            Sienna,
            Silver,
            SkyBlue,
            SlateBlue,
            SlateGray,
            Snow,
            SpringGreen,
            SteelBlue,
            Tan,
            Teal,
            Thistle,
            Tomato,
            Transparent,
            Turquoise,
            Violet,
            Wheat,
            White,
            WhiteSmoke,
            Yellow,
            YellowGreen

        }

        #endregion

        #region Identity

        /// <summary>
        /// Nome del prodotto, identificativo, da modificare con il nome della propria creazione 
        /// </summary>
        public const string NAME = "Money Break Even";

        /// <summary>
        /// La versione del prodotto, progressivo, utilie per controllare gli aggiornamenti se viene reso disponibile sul sito ctrader.guru
        /// </summary>
        public const string VERSION = "1.0.7";

        #endregion

        #region Params

        [Parameter(NAME + " " + VERSION, Group = "Identity", DefaultValue = "https://ctrader.guru/product/money-break-even/")]
        public string ProductInfo { get; set; }

        [Parameter("Net Profit Activation", Group = "Params", DefaultValue = 10.0)]
        public double BEfrom { get; set; }

        [Parameter("Net Profit Target", Group = "Params", DefaultValue = 3.0)]
        public double BE { get; set; }

        [Parameter("All Cross ?", Group = "Options", DefaultValue = false)]
        public bool GlobalTarget { get; set; }

        [Parameter("Auto Stop ?", Group = "Options", DefaultValue = true)]
        public bool AutoStop { get; set; }

        [Parameter("Remove Pending Orders ?", Group = "Options", DefaultValue = true)]
        public bool RemovePO { get; set; }

        [Parameter("Color Positive Logic", Group = "Styles", DefaultValue = MyColors.DodgerBlue)]
        public MyColors Boxcolorpositive { get; set; }

        [Parameter("Color Negative Logic", Group = "Styles", DefaultValue = MyColors.Orange)]
        public MyColors Boxcolornegative { get; set; }

        [Parameter("Color Activated", Group = "Styles", DefaultValue = MyColors.DarkViolet)]
        public MyColors Boxcoloractive { get; set; }

        /// <summary>
        /// Opzione per la posizione del box info in verticale
        /// </summary>
        [Parameter("Vertical Position", Group = "Styles", DefaultValue = VerticalAlignment.Top)]
        public VerticalAlignment VAlign { get; set; }

        /// <summary>
        /// Opzione per la posizione del box info in orizontale
        /// </summary>
        [Parameter("Horizontal Position", Group = "Styles", DefaultValue = HorizontalAlignment.Left)]
        public HorizontalAlignment HAlign { get; set; }


        #endregion

        #region Property

        private bool Activated;

        #endregion

        #region cBot Events

        protected override void OnStart()
        {

            // --> Stampo nei log la versione corrente
            Print("{0} : {1}", NAME, VERSION);
            
            Activated = false;

            OnTick();

        }

        protected override void OnTick()
        {

            _monitoring();

        }

        #endregion

        #region Private Methods

        void _monitoring()
        {

            // --> Raccolgo tutte le operazioni su questo simbolo
            int nPositions = 0;

            double ttnp = 0.0;

            // --> Potrei avere trades con totale a zero, meglio contarli a parte
            int tttrades = 0;

            foreach (var Position in Positions)
            {

                if (!GlobalTarget && Position.SymbolName != SymbolName)
                    continue;

                ttnp += Position.NetProfit;
                nPositions++;
                tttrades++;

            }

            // --> Se non ci sono trade da monitorare deattivo e basta
            if (tttrades < 1)
                Activated = false;

            // --> Se selezionato e se non ci sono trade, fermo il cBot
            if (AutoStop && nPositions < 1)
                Stop();

            // --> Valorizzo l'attivazione se raggiunto
            if (!Activated && ((BEfrom > BE && ttnp >= BEfrom) || (BEfrom < BE && ttnp <= BEfrom)))
                Activated = true;

            // --> Stampo a video alcune informazioni
            string scope = (GlobalTarget) ? "all cross" : "the current cross";
            string logica = (BEfrom > BE) ? "positive" : "negative";
            string direction = (BEfrom > BE) ? "less" : "greater";
            string netpt = String.Format("{0:0.00}", ttnp);

            string phrase = (Activated) ? string.Format("Activated, I will close all trades for\r\n{0} if net profit is {1} or equal {2}", scope, direction, BE) : string.Format("Relax, I'm monitoring {0} for\r\n{1} logic and waiting net profit reaches {2}", scope, logica, BEfrom);

            string[] items = 
            {

                "MONEY BREAK EVEN\r\n",
                phrase,
                "\r\nNET PROFIT\r\n{0}"

            };
            string info = string.Join("\r\n", items);

            info = string.Format(info, netpt);

            MyColors mycolor = (BEfrom > BE) ? Boxcolorpositive : Boxcolornegative;

            if (Activated)
                mycolor = Boxcoloractive;

            Chart.DrawStaticText("BoxMBE", info, VAlign,HAlign, Color.FromName(mycolor.ToString("G")));

            // --> Se attivato e se sono la soglia di BE chiudo tutto
            if ( ( Activated && ( (BEfrom > BE && ttnp <= BE) || (BEfrom < BE && ttnp >= BE) ) ) || ( BEfrom == BE && ( (BE >= 0 && ttnp >= BE) || (BE < 0 && ttnp <= BE) ) ) )
            {

                // --> Chiudo tutti i trade

                foreach (var Position in Positions)
                {

                    if (!GlobalTarget && Position.SymbolName != SymbolName)
                        continue;

                    ClosePositionAsync(Position);

                }

                // --> Chiudo tutti gli ordini pendenti se richiesto
                if (RemovePO)
                {

                    foreach (var order in PendingOrders)
                    {

                        if (!GlobalTarget && order.SymbolName != SymbolName)
                            continue;

                        CancelPendingOrderAsync(order);

                    }

                }

                // --> Resetto il flag
                Activated = false;

            }

        }

        #endregion

    }

}

2 recensioni per Money Break Even

  1. cTrader Guru

    Consigliato dallo staff come indispensabile !

    cTrader Guru
  2. sanguedolce.antonio

    indispensabile

    sanguedolce.antonio
Aggiungi una recensione