Position Pips Counter free

by summer in category Other at 19/10/2020
Description
  • 保有ポジションのPips数をチャート内に表示します
  • ()内は金額ですが設定で非表示にできます
  • 合計収益(手数料込)が負のときはピンク、正のときは水色になります

 

  • Shows the pips of the position in the chart.
  • () is the price, but you can hide it in the settings.
  • When the total netprofit are negative, they are pink, and when they are positive, they are light blue.

 

Notification Publishing copyrighted material is strictly prohibited. If you believe there is copyrighted material in this section you may use the Copyright Infringement Notification form to submit a claim.
Formula / Source Code
Language: C#
Trading Platform: cAlgocTrader
using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;
using cAlgo.Indicators;
using System.Collections.Generic;

namespace cAlgo
{
    [Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class PositionPipsCounter : Indicator
    {
        [Parameter("金額表示", DefaultValue = true)]
        public bool priceSwitch { get; set; }


        [Parameter("位置を上に移動", DefaultValue = false)]
        public bool upperPosition { get; set; }

        List<ChartStaticText> positionTextList = new List<ChartStaticText>();

        private int moveDistance;


        protected override void Initialize()
        {
            if (upperPosition == true)
            {
                moveDistance = 4;
            }
            else
            {
                moveDistance = 2;
            }

            TimeSpan timeSpan = new TimeSpan(0, 0, 0, 0, 1);
            Timer.Start(timeSpan);
        }

        protected override void OnTimer()
        {
            double totalPips = 0;
            double totalNetprofit = 0;
            string text;

            int positionCount = 0;


            //ポジションの数
            foreach (var position in Positions)
            {
                if (position.SymbolName.Equals(Chart.SymbolName))
                {
                    positionCount++;
                }
            }

            foreach (var positionText in positionTextList)
            {
                Chart.RemoveObject(positionText.Name);
            }

            foreach (var position in Positions)
            {
                if (position.SymbolName.Equals(Chart.SymbolName))
                {
                    text = position.Pips.ToString("F1");
                    if (priceSwitch)
                    {
                        text += " (" + String.Format("{0:#,0}", position.NetProfit) + ") ";
                    }

                    for (int i = 0; i < positionCount + moveDistance; i++)
                    {
                        text += "\n";
                    }

                    totalPips += position.Pips;
                    totalNetprofit += position.NetProfit;

                    var PipsCountText = Chart.DrawStaticText("Pips Counter" + positionCount.ToString(), text, VerticalAlignment.Bottom, HorizontalAlignment.Left, Color.White);
                    positionTextList.Add(PipsCountText);

                    if (position.NetProfit < 0)
                    {
                        PipsCountText.Color = Color.Pink;
                    }
                    else if (position.NetProfit > 0)
                    {
                        PipsCountText.Color = Color.Aqua;
                    }

                    positionCount--;
                }

            }

            text = "---\n total : ";
            text += totalPips.ToString("F1");
            if (priceSwitch)
            {
                text += " (" + String.Format("{0:#,0}", totalNetprofit) + ") ";

            }

            for (int i = 0; i < moveDistance - 1; i++)
            {
                text += "\n";
            }

            var totalText = Chart.DrawStaticText("Pips Counter Total", text, VerticalAlignment.Bottom, HorizontalAlignment.Left, Color.White);

            if (totalNetprofit < 0)
            {
                totalText.Color = Color.Pink;
            }
            else if (totalNetprofit > 0)
            {
                totalText.Color = Color.Aqua;
            }
        }

        public override void Calculate(int index)
        {


        }
    }
}
Comments

ctid1934331 - October 27, 2020 @ 09:33

Simple and effective.
Thank you!

5