Why did I take profit or stop loss?

Created at 13 Aug 2019, 07:15
How’s your experience with the cTrader Platform?
Your feedback is crucial to cTrader's development. Please take a few seconds to share your opinion and help us improve your trading experience. Thanks!
NG

nguyenbinhan1571985

Joined 13.08.2019

Why did I take profit or stop loss?
13 Aug 2019, 07:15


this is picture.

I don't understand. You help me about that code. and send a order to a mail.

 

My Code:

using System;
using System.Linq;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;

namespace cAlgo.Robots
{
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
    public class CT_PlaceStopOrderLearn : Robot
    {
        #region User Supplied Parameters

        [Parameter("Volume", DefaultValue = 10000)]
        public int Volume { get; set; }

        [Parameter("Sop Loss (pips)", DefaultValue = 100)]
        public int StopLossPips { get; set; }

        [Parameter("Take Profit (pips)", DefaultValue = 30)]
        public int TakeProfitPips { get; set; }

        #endregion


        #region cTrader Events


        protected override void OnStart()
        {

        }

        protected override void OnTick()
        {
            // Put your core logic here
        }

        protected override void OnBar()
        {



            // Define Bars:

            //Define (last FORMING bar) OHLC - think of this as bar 0.
            double currOpen = MarketSeries.Open.LastValue;
            double currHigh = MarketSeries.High.LastValue;
            double currLow = MarketSeries.Low.LastValue;
            double currClose = MarketSeries.Close.LastValue;

            // Define Bar (last closed bar) OHLC
            double Open1 = MarketSeries.Open.Last(1);
            double High1 = MarketSeries.High.Last(1);
            double Low1 = MarketSeries.Low.Last(1);
            double Close1 = MarketSeries.Close.Last(1);

            // Define (1 Bars before last closed bar) bar OHLC
            double Open2 = MarketSeries.Open.Last(2);
            double High2 = MarketSeries.High.Last(2);
            double Low2 = MarketSeries.Low.Last(2);
            double Close2 = MarketSeries.Close.Last(2);

            // Define (2 Bars before last closed) bar OHLC
            double Open3 = MarketSeries.Open.Last(3);
            double High3 = MarketSeries.High.Last(3);
            double Low3 = MarketSeries.Low.Last(3);
            double Close3 = MarketSeries.Close.Last(3);

            // Define (3 Bars before last closed) bar OHLC
            double Open4 = MarketSeries.Open.Last(4);
            double High4 = MarketSeries.High.Last(4);
            double Low4 = MarketSeries.Low.Last(4);
            double Close4 = MarketSeries.Close.Last(4);


            if (Close2 > Open2 && Close1 > Open1)
            {

                PlaceLimitOrder(TradeType.Buy, Symbol, Volume, MarketSeries.Low.Last(1), "b", StopLossPips, TakeProfitPips);
                Print("The buylimit is: ", MarketSeries.High.Last(1));
            }
            else if (Close2 < Open2 && Close1 < Open1)
            {
                PlaceLimitOrder(TradeType.Sell, Symbol, Volume, MarketSeries.High.Last(1), "s2", StopLossPips, TakeProfitPips);
                Print("The selllimit is : ", MarketSeries.High.Last(1));
            }


        }

        protected override void OnStop()
        {
            // Put your deinitialization logic here
        }
        #endregion



    }

}


@nguyenbinhan1571985