STOPLOSS does not set

Created at 11 Sep 2018, 10:38
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!
YE

yenni22w

Joined 11.09.2018

STOPLOSS does not set
11 Sep 2018, 10:38


Hi, this is on golden dragon 2. backtesting runs smooth, but when going to demo , the stop loss does not fill. ... please help

 

// Golden Dragon v2.0
// Released 20th May 2015
// Created by Craig Stone (except for trailing stops code which is drawn from Spotware's sample code)

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


namespace cAlgo.Robots
{
    [Robot(TimeZone = TimeZones.UTC)]
    public class GoldenDragon : Robot
    {
        // Dragon instance number
        [Parameter("Dragon Number", DefaultValue = 1, MinValue = 1)]
        public int DragonNumber { get; set; }

        // Polynomial regression degree
        [Parameter("COG Polynomial Degree", DefaultValue = 3, MinValue = 1, MaxValue = 5)]
        public int cogDegree { get; set; }

        // Number of history bars to use for calculation of primary regression calculation
        [Parameter("1st COG Period", DefaultValue = 110, MinValue = 1)]
        public int cog1Periods { get; set; }

        [Parameter("2nd COG Period", DefaultValue = 250, MinValue = 0)]
        public int cog2Periods { get; set; }

        [Parameter("3rd COG Period", DefaultValue = 465, MinValue = 0)]
        public int cog3Periods { get; set; }

        // Inner polynomial envelope offset, optionally used to set TP level
        [Parameter("1st Channel Deviation", DefaultValue = 1.4, MinValue = 0.1)]
        public double Inner { get; set; }

        // Middle polynomial envelope offset, used to open a position
        [Parameter("2nd Channel Deviation", DefaultValue = 1.8, MinValue = 0.1)]
        public double Middle { get; set; }

        // Outer polynomial envelope offset, optionally used to set SL
        [Parameter("3rd Channel Deviation", DefaultValue = 2.2, MinValue = 0.1)]
        public double Outer { get; set; }

        // Centre of gravity trade filtering
        [Parameter("COG Trade Biasing", DefaultValue = 3, MinValue = 0, MaxValue = 3)]
        public int cogBias { get; set; }

        // Default trade volume
        [Parameter("Trade Volume", DefaultValue = 10, MinValue = 1)]
        public int TradeVolume { get; set; }

        // Maximum slippage
        [Parameter("Slippage (pips)", DefaultValue = 10, MinValue = 0)]
        public int Slippage { get; set; }
        // Catastrophic Stop Loss
        [Parameter("Stop Loss (pips)", DefaultValue = 20, MinValue = 0)]
        public int StopLoss { get; set; }

        // Minimum Profit
        [Parameter("Minimum Profit (pips)", DefaultValue = 50, MinValue = 0)]
        public int MinimumPips { get; set; }

        [Parameter("Trailing Stops", DefaultValue = false)]
        public bool TrailingStops { get; set; }

        [Parameter("Trailing Stop Trigger (pips)", DefaultValue = 500)]
        public int TrailingStopTrigger { get; set; }

        [Parameter("Trailing Stop Distance (pips)", DefaultValue = 500)]
        public int TrailingStopDistance { get; set; }

        // Equity Protection
        [Parameter("Equity Stop Loss (ratio)", DefaultValue = 0.2, MinValue = 0, MaxValue = 1)]
        public double EquityStop { get; set; }

        // Balance Protection
        [Parameter("Balance Stop Loss (ratio)", DefaultValue = 0.2, MinValue = 0, MaxValue = 1)]
        public double BalanceStop { get; set; }

        // Maximum simultaneous long positions
        [Parameter("Long Trades", DefaultValue = 2, MinValue = 0)]
        public int MaxLongTrades { get; set; }

        // Maximum simultaneous short positions
        [Parameter("Short Trades", DefaultValue = 2, MinValue = 0)]
        public int MaxShortTrades { get; set; }

        // Minimum time delay between trades
        [Parameter("Trade Delay (bars)", DefaultValue = 1, MinValue = 1)]
        public int TradeDelay { get; set; }

        // Trade suspension period on loss
        [Parameter("Wait on Loss (bars)", DefaultValue = 0, MinValue = 0)]
        public int WaitOnLoss { get; set; }

        // Enables trade volume doubling when a stop loss is hit
        [Parameter("Martingale Enabled", DefaultValue = false)]
        public bool Martingale { get; set; }

        // Enables Belkhayate entry filtering
        [Parameter("Belkhayate Timing", DefaultValue = false)]
        public bool BelkhayateTimingFilter { get; set; }

        // Enables Hull MA filtering
        [Parameter("Hull Trade Filter", DefaultValue = true)]
        public bool HullFilter { get; set; }

        // Hull MA Indicator Period
        [Parameter("Hull Period", DefaultValue = 3, MinValue = 1)]
        public int HullPeriod { get; set; }

        private int LongPositions = 0, ShortPositions = 0, MaxLong = 0, MaxShort = 0;
        private int BuyVolume = 0, TakeProfit = 0, Count = 0;

        private double bid = 0, ask = 0, spread = 0, pipsize = 0, OpeningBalance = 0;

        private int t1ix, t2ix, t3ix;

        private double t1h3, t1h2, t1h1, t1c0, t1l1, t1l2, t1l3;
        private double t2h3, t2h2, t2h1, t2c0, t2l1, t2l2, t2l3;
        private double t3h3, t3h2, t3h1, t3c0, t3l1, t3l2, t3l3;

        private int MartingaleActive = 0;
        private bool TradeSafe = true, BuySafe = true, SellSafe = true, isTrigerred = false;

        private BelkhayatePRC cog1, cog2, cog3;
        private BelkhayateTiming timing;
        private HMA hull;

        private string DragonID;

        protected override void OnStart()
        {
            DragonID = "Golden Dragon " + DragonNumber + " - " + Symbol.Code;

            Positions.Closed += PositionsOnClosed;

            BuyVolume = TradeVolume;

            OpeningBalance = Account.Balance;

            MaxLong = MaxLongTrades;
            MaxShort = MaxShortTrades;

            cog1 = Indicators.GetIndicator<BelkhayatePRC>(cogDegree, cog1Periods, Inner, Middle, Outer);

            if (cog2Periods > 0)
                cog2 = Indicators.GetIndicator<BelkhayatePRC>(cogDegree, cog2Periods, Inner, Middle, Outer);

            if (cog3Periods > 0)
                cog3 = Indicators.GetIndicator<BelkhayatePRC>(cogDegree, cog3Periods, Inner, Middle, Outer);

            if (BelkhayateTimingFilter)
                timing = Indicators.GetIndicator<BelkhayateTiming>();

            if (HullFilter)
                hull = Indicators.GetIndicator<HMA>(HullPeriod);

            // Identify existing trades from this instance
            foreach (var position in Positions)
            {
                if (position.Label == DragonID)
                    switch (position.TradeType)
                    {
                        case TradeType.Buy:
                            LongPositions++;
                            break;
                        case TradeType.Sell:
                            ShortPositions++;
                            break;
                    }
            }

        }

        protected override void OnBar()
        {
            Count++;

            // COGx1
            t1ix = (int)cog1.ix;
            t1h3 = (double)cog1.sqh3.LastValue;
            t1h2 = (double)cog1.sqh2.LastValue;
            t1h1 = (double)cog1.sqh.LastValue;
            t1c0 = (double)cog1.prc.LastValue;
            t1l1 = (double)cog1.sql.LastValue;
            t1l2 = (double)cog1.sql2.LastValue;
            t1l3 = (double)cog1.sql3.LastValue;

            // COGx2
            if (cog2Periods > 0)
            {
                t2ix = (int)cog2.ix;
                t2h3 = (double)cog2.sqh3.LastValue;
                t2h2 = (double)cog2.sqh2.LastValue;
                t2h1 = (double)cog2.sqh.LastValue;
                t2c0 = (double)cog2.prc.LastValue;
                t2l1 = (double)cog2.sql.LastValue;
                t2l2 = (double)cog2.sql2.LastValue;
                t2l3 = (double)cog2.sql3.LastValue;
            }

            // COGx4
            if (cog3Periods > 0)
            {
                t3ix = (int)cog3.ix;
                t3h3 = (double)cog3.sqh3.LastValue;
                t3h2 = (double)cog3.sqh2.LastValue;
                t3h1 = (double)cog3.sqh.LastValue;
                t3c0 = (double)cog3.prc.LastValue;
                t3l1 = (double)cog3.sql.LastValue;
                t3l2 = (double)cog3.sql2.LastValue;
                t3l3 = (double)cog3.sql3.LastValue;
            }

        }


        protected override void OnTick()
        {
            bid = Symbol.Bid;
            ask = Symbol.Ask;
            spread = Symbol.Spread;
            pipsize = Symbol.PipSize;

            TradeSafe = true;
            BuySafe = true;
            SellSafe = true;

            if (Account.Equity / Account.Balance < EquityStop)
            {
                Print("Equity protection stop triggered. All positions closed.");
                ClosePositions();
                Stop();
            }

            if (Account.Equity < Account.Balance * BalanceStop)
            {
                Print("Account balance protection triggered. All positions closed.");
                ClosePositions();
                Stop();
            }

            if (BelkhayateTimingFilter)
            {
                if (timing.Close.LastValue > timing.BuyLine1.LastValue)
                    BuySafe = false;
                if (timing.Close.LastValue < timing.SellLine1.LastValue)
                    SellSafe = false;
            }

            if (HullFilter)
            {
                if (hull.hma.IsFalling())
                    BuySafe = false;
                if (hull.hma.IsRising())
                    SellSafe = false;
            }

            if (cogBias > 0)
            {
                switch (cogBias)
                {
                    case 1:
                        if (cog1.prc.IsRising())
                            SellSafe = false;
                        if (cog1.prc.IsFalling())
                            BuySafe = false;
                        break;
                    case 2:
                        if (cog2.prc.IsRising())
                            SellSafe = false;
                        if (cog2.prc.IsFalling())
                            BuySafe = false;
                        break;
                    case 3:
                        if (cog3.prc.IsRising())
                            SellSafe = false;
                        if (cog3.prc.IsFalling())
                            BuySafe = false;
                        break;
                }
            }

            if (TrailingStops)
                AdjustTrailingStops();

            if (Count > TradeDelay && LongPositions < MaxLong && BuySafe == true && TradeSafe == true)
            {
                if ((cog2Periods == 0 && cog3Periods == 0 && ask < t1l3) || (cog2Periods > 0 && cog3Periods == 0 && ask < t1l3 && ask < t2l3) || (cog2Periods > 0 && cog3Periods > 0 && ask < t1l3 && ask < t2l3 && ask < t3l3))
                {
                    OpenPosition(TradeType.Buy, BuyVolume * 3);
                }
                else if ((cog2Periods == 0 && cog3Periods == 0 && ask < t1l2) || (cog2Periods > 0 && cog3Periods == 0 && ask < t1l2 && ask < t2l2) || (cog2Periods > 0 && cog3Periods > 0 && ask < t1l2 && ask < t2l2 && ask < t3l2))
                {
                    OpenPosition(TradeType.Buy, BuyVolume * 2);
                }
                else if ((cog2Periods == 0 && cog3Periods == 0 && ask < t1l1) || (cog2Periods > 0 && cog3Periods == 0 && ask < t1l1 && ask < t2l1) || (cog2Periods > 0 && cog3Periods > 0 && ask < t1l1 && ask < t2l1 && ask < t3l1))
                {
                    OpenPosition(TradeType.Buy, BuyVolume * 1);
                }
            }


            if (Count > TradeDelay && ShortPositions < MaxShort && SellSafe == true && TradeSafe == true)
            {
                if ((cog2Periods == 0 && cog3Periods == 0 && bid > t1h3) || (cog2Periods > 0 && cog3Periods == 0 && bid > t1h3 && bid > t2h3) || (cog2Periods > 0 && cog3Periods > 0 && bid > t1h3 && bid > t2h3 && bid > t3h3))
                {
                    OpenPosition(TradeType.Sell, BuyVolume * 3);
                }
                if ((cog2Periods == 0 && cog3Periods == 0 && bid > t1h2) || (cog2Periods > 0 && cog3Periods == 0 && bid > t1h2 && bid > t2h2) || (cog2Periods > 0 && cog3Periods > 0 && bid > t1h2 && bid > t2h2 && bid > t3h2))
                {
                    OpenPosition(TradeType.Sell, BuyVolume * 2);
                }
                if ((cog2Periods == 0 && cog3Periods == 0 && bid > t1h1) || (cog2Periods > 0 && cog3Periods == 0 && bid > t1h1 && bid > t2h1) || (cog2Periods > 0 && cog3Periods > 0 && bid > t1h1 && bid > t2h1 && bid > t3h1))
                {
                    OpenPosition(TradeType.Sell, BuyVolume * 1);
                }
            }

        }

        private void OpenPosition(TradeType tradetype, int quantity)
        {
            // check that the tube is ready
            if (t1ix > cog1Periods)
            {

                switch (tradetype)
                {
                    case TradeType.Buy:
                        if (cog3Periods > 0)
                            TakeProfit = (int)((t3c0 - ask) / pipsize);
                        else if (cog2Periods > 0)
                            TakeProfit = (int)((t2c0 - ask) / pipsize);
                        else
                            TakeProfit = (int)((t1c0 - ask) / pipsize);
                        LongPositions++;
                        Print("Opened LONG position {0} of {1}", LongPositions, MaxLong);
                        break;
                    case TradeType.Sell:
                        if (cog3Periods > 0)
                            TakeProfit = (int)((bid - t3c0) / pipsize);
                        else if (cog2Periods > 0)
                            TakeProfit = (int)((bid - t2c0) / pipsize);
                        else
                            TakeProfit = (int)((bid - t1c0) / pipsize);
                        ShortPositions++;
                        Print("Opened SHORT position {0} of {1}", ShortPositions, MaxShort);
                        break;
                }

                if (MartingaleActive > 0)
                    TakeProfit = (int)(StopLoss / 2);

                ExecuteMarketOrder(tradetype, Symbol, quantity, DragonID, StopLoss, TakeProfit, Slippage, DragonID);

                Count = 0;
            }
            Print("Period {0}, Long {1} of {2}, Short {3} of {4}", t1ix, LongPositions, MaxLong, ShortPositions, MaxShort);
        }

        protected override void OnPositionOpened(Position openedPosition)
        {
            switch (openedPosition.TradeType)
            {
                case TradeType.Buy:
                    LongPositions++;
                    break;
                case TradeType.Sell:
                    ShortPositions++;
                    break;
            }
        }


        private void ClosePositions()
        {
            foreach (var position in Positions)
            {
                if (position.Label == DragonID && position.GrossProfit < -10)
                    ClosePosition(position);
            }
        }


        private void PositionsOnClosed(PositionClosedEventArgs args)
        {
            var position = args.Position;
            switch (position.TradeType)
            {
                case TradeType.Buy:
                    LongPositions--;
                    Print("Closed LONG position. {0} of {1} remain open.", LongPositions, MaxLong);
                    break;
                case TradeType.Sell:
                    ShortPositions--;
                    Print("Closed SHORT position. {0} of {1} remain open.", ShortPositions, MaxShort);
                    break;
            }


            if (position.GrossProfit < 0)
            {

                if (WaitOnLoss > 0)
                    Count = -WaitOnLoss;

                if (Martingale)
                {
                    MartingaleActive++;
                    BuyVolume = BuyVolume * 2;
                }

            }
            else if (MartingaleActive > 0)
            {

                MartingaleActive--;
                BuyVolume = (int)(BuyVolume / 2);

            }
            Print("Period {0}, Long {1} of {2}, Short {3} of {4}", t1ix, LongPositions, MaxLong, ShortPositions, MaxShort);
        }

        private void AdjustTrailingStops()
        {
            foreach (var position in Positions)
            {
                if (position.Label == DragonID)
                {
                    if (position.TradeType == TradeType.Buy)
                    {
                        double distance = Symbol.Bid - position.EntryPrice;

                        if (distance >= TrailingStopTrigger * Symbol.PipSize)
                        {
                            if (!isTrigerred)
                            {
                                isTrigerred = true;
                                Print("Trailing stop loss triggered on position {0}", position.Id);
                            }

                            double newStopLossPrice = Math.Round(Symbol.Bid - TrailingStopDistance * Symbol.PipSize, Symbol.Digits);

                            if (position.StopLoss == null || newStopLossPrice > position.StopLoss)
                            {
                                ModifyPosition(position, newStopLossPrice, position.TakeProfit);
                            }
                        }
                    }
                    else
                    {
                        double distance = position.EntryPrice - Symbol.Ask;

                        if (distance >= TrailingStopTrigger * Symbol.PipSize)
                        {
                            if (!isTrigerred)
                            {
                                isTrigerred = true;
                                Print("Trailing stop loss triggered on position {0}", position.Id);
                            }

                            double newStopLossPrice = Math.Round(Symbol.Ask + TrailingStopDistance * Symbol.PipSize, Symbol.Digits);

                            if (position.StopLoss == null || newStopLossPrice < position.StopLoss)
                            {
                                ModifyPosition(position, newStopLossPrice, position.TakeProfit);
                            }
                        }
                    }

                }
            }
        }

        protected void Message(int level, string message)
        {
            Print("[{0}] {1}", level, message);
        }


        protected override void OnStop()
        {
            Print("Dragon Sleeping");
        }

    }
}

 


@yenni22w
Replies

yenni22w
11 Sep 2018, 10:45

journal

2018.09.07 13:11:54.546 | cTrader started
2018.09.07 16:47:51.413 | cTrader started
2018.09.10 06:20:00.444 | Request to Sell 0.20 Lot(s) XAUUSD (Price: 1193.35, SL: 50, TP: 132, MR: 10) is sent to server
2018.09.10 06:20:00.803 | → Request to Sell 0.20 Lot(s) XAUUSD (Price: 1193.35, SL: 50, TP: 132, MR: 10) is ACCEPTED, order OID18310904 created (10/09/2018 06:20:00.587 UTC+0)
2018.09.10 06:20:01.178 | → Order OID18310904 is FILLED at 1193.43, position PID10771986 (10/09/2018 06:20:00.826 UTC+0)
2018.09.10 06:20:01.413 | Request to Sell 0.10 Lot(s) XAUUSD (Price: 1193.43, SL: 50, TP: 132, MR: 10) is sent to server
2018.09.10 06:20:01.632 | → Request to Sell 0.10 Lot(s) XAUUSD (Price: 1193.43, SL: 50, TP: 132, MR: 10) is ACCEPTED, order OID18310906 created (10/09/2018 06:20:01.523 UTC+0)
2018.09.10 06:20:01.897 | → Order OID18310906 is FILLED at 1193.43, position PID10771987 (10/09/2018 06:20:01.782 UTC+0)
2018.09.10 06:20:05.335 | → Order OID18310907 is FILLED at 1194, position PID10771987 closed (10/09/2018 06:20:05.153 UTC+0)
2018.09.10 06:20:05.413 | → Order OID18310905 is FILLED at 1194.02, position PID10771986 closed (10/09/2018 06:20:05.189 UTC+0)
2018.09.10 12:24:00.478 | Request to Sell 0.10 Lot(s) XAUUSD (Price: 1192.86, SL: 50, TP: 91, MR: 10) is sent to server
2018.09.10 12:24:00.681 | → Request to Sell 0.10 Lot(s) XAUUSD (Price: 1192.86, SL: 50, TP: 91, MR: 10) is ACCEPTED, order OID18313538 created (10/09/2018 12:24:00.579 UTC+0)
2018.09.10 12:24:00.947 | → Order OID18313538 is FILLED at 1192.86, position PID10772702 (10/09/2018 12:24:00.846 UTC+0)
2018.09.10 12:24:11.619 | → Order OID18313541 is FILLED at 1193.36, position PID10772702 closed (10/09/2018 12:24:11.495 UTC+0)
2018.09.10 12:36:00.260 | Request to Sell 0.60 Lot(s) XAUUSD (Price: 1193.73, SL: 50, TP: 25, MR: 10) is sent to server
2018.09.10 12:36:00.463 | → Request to Sell 0.60 Lot(s) XAUUSD (Price: 1193.73, SL: 50, TP: 25, MR: 10) is ACCEPTED, order OID18313592 created (10/09/2018 12:36:00.365 UTC+0)
2018.09.10 12:36:00.682 | → Order OID18313592 is FILLED at 1193.75, position PID10772733 (10/09/2018 12:36:00.586 UTC+0)
2018.09.10 12:36:00.729 | Request to Sell 0.40 Lot(s) XAUUSD (Price: 1193.75, SL: 50, TP: 25, MR: 10) is sent to server
2018.09.10 12:36:00.932 | → Request to Sell 0.40 Lot(s) XAUUSD (Price: 1193.75, SL: 50, TP: 25, MR: 10) is ACCEPTED, order OID18313594 created (10/09/2018 12:36:00.833 UTC+0)
2018.09.10 12:36:01.182 | → Order OID18313594 is FILLED at 1193.76, position PID10772734 (10/09/2018 12:36:01.061 UTC+0)
2018.09.10 12:36:01.229 | Request to Sell 0.20 Lot(s) XAUUSD (Price: 1193.76, SL: 50, TP: 25, MR: 10) is sent to server
2018.09.10 12:36:01.432 | → Request to Sell 0.20 Lot(s) XAUUSD (Price: 1193.76, SL: 50, TP: 25, MR: 10) is ACCEPTED, order OID18313596 created (10/09/2018 12:36:01.323 UTC+0)
2018.09.10 12:36:01.667 | → Order OID18313596 is FILLED at 1193.74, position PID10772735 (10/09/2018 12:36:01.560 UTC+0)
2018.09.10 12:36:54.012 | Request to amend position PID10772733 (SL: 1193.74) is sent to server
2018.09.10 12:36:54.231 | → Order OID18313595 is FILLED at 1193.49, position PID10772734 closed (10/09/2018 12:36:54.110 UTC+0)
2018.09.10 12:36:54.262 | → Order OID18313593 is FILLED at 1193.49, position PID10772733 closed (10/09/2018 12:36:54.116 UTC+0)
2018.09.10 12:36:54.309 | → Order OID18313597 is FILLED at 1193.49, position PID10772735 closed (10/09/2018 12:36:54.151 UTC+0)
2018.09.10 12:36:54.450 | → Request to amend position PID10772733 (SL: 1193.74) is REJECTED with error "POSITION_NOT_FOUND"
2018.09.10 12:54:00.348 | Request to Sell 0.30 Lot(s) XAUUSD (Price: 1195.11, SL: 50, TP: 301, MR: 10) is sent to server
2018.09.10 12:54:00.536 | → Request to Sell 0.30 Lot(s) XAUUSD (Price: 1195.11, SL: 50, TP: 301, MR: 10) is ACCEPTED, order OID18313721 created (10/09/2018 12:54:00.449 UTC+0)
2018.09.10 12:54:00.801 | → Order OID18313721 is FILLED at 1195.10, position PID10772782 (10/09/2018 12:54:00.713 UTC+0)
2018.09.10 12:54:00.864 | Request to Sell 0.20 Lot(s) XAUUSD (Price: 1195.10, SL: 50, TP: 301, MR: 10) is sent to server
2018.09.10 12:54:01.082 | → Request to Sell 0.20 Lot(s) XAUUSD (Price: 1195.10, SL: 50, TP: 301, MR: 10) is ACCEPTED, order OID18313723 created (10/09/2018 12:54:00.993 UTC+0)
2018.09.10 12:54:01.317 | → Order OID18313723 is FILLED at 1195.18, position PID10772783 (10/09/2018 12:54:01.214 UTC+0)
2018.09.10 12:54:01.379 | Request to Sell 0.10 Lot(s) XAUUSD (Price: 1195.18, SL: 50, TP: 301, MR: 10) is sent to server
2018.09.10 12:54:01.629 | → Request to Sell 0.10 Lot(s) XAUUSD (Price: 1195.18, SL: 50, TP: 301, MR: 10) is ACCEPTED, order OID18313725 created (10/09/2018 12:54:01.541 UTC+0)
2018.09.10 12:54:01.848 | → Order OID18313725 is FILLED at 1195.10, position PID10772784 (10/09/2018 12:54:01.752 UTC+0)
2018.09.10 12:54:04.879 | → Order OID18313722 is FILLED at 1195.75, position PID10772782 closed (10/09/2018 12:54:04.693 UTC+0)
2018.09.10 12:54:04.926 | → Order OID18313726 is FILLED at 1195.75, position PID10772784 closed (10/09/2018 12:54:04.719 UTC+0)
2018.09.10 12:54:05.067 | → Order OID18313724 is FILLED at 1195.77, position PID10772783 closed (10/09/2018 12:54:04.956 UTC+0)
2018.09.10 13:02:00.863 | Request to Sell 2.40 Lot(s) XAUUSD (Price: 1197.04, SL: 50, TP: 25, MR: 10) is sent to server
2018.09.10 13:02:01.066 | → Request to Sell 2.40 Lot(s) XAUUSD (Price: 1197.04, SL: 50, TP: 25, MR: 10) is ACCEPTED, order OID18314431 created (10/09/2018 13:02:00.963 UTC+0)
2018.09.10 13:02:01.081 | → Order OID18314431 is REJECTED with error "NOT_ENOUGH_MONEY"
2018.09.10 13:02:01.081 | Request to Sell 1.60 Lot(s) XAUUSD (Price: 1197.04, SL: 50, TP: 25, MR: 10) is sent to server
2018.09.10 13:02:01.316 | → Request to Sell 1.60 Lot(s) XAUUSD (Price: 1197.04, SL: 50, TP: 25, MR: 10) is ACCEPTED, order OID18314432 created (10/09/2018 13:02:01.218 UTC+0)
2018.09.10 13:02:01.581 | → Order OID18314432 is FILLED at 1197.04, position PID10772883 (10/09/2018 13:02:01.478 UTC+0)
2018.09.10 13:02:01.628 | Request to Sell 0.80 Lot(s) XAUUSD (Price: 1197.04, SL: 50, TP: 25, MR: 10) is sent to server
2018.09.10 13:02:01.878 | → Request to Sell 0.80 Lot(s) XAUUSD (Price: 1197.04, SL: 50, TP: 25, MR: 10) is ACCEPTED, order OID18314434 created (10/09/2018 13:02:01.793 UTC+0)
2018.09.10 13:02:01.878 | → Order OID18314434 is REJECTED with error "NOT_ENOUGH_MONEY"
2018.09.10 13:03:53.738 | Request to amend position PID10772883 (SL: 1197.03) is sent to server
2018.09.10 13:03:53.941 | → Request to amend position PID10772883 (SL: 1197.03) is REJECTED with error "TRADING_BAD_STOPS"
2018.09.10 13:03:54.019 | → Order OID18314433 is FILLED at 1196.78, position PID10772883 closed (10/09/2018 13:03:53.911 UTC+0)
2018.09.11 05:42:00.706 | Request to Sell 0.40 Lot(s) XAUUSD (Price: 1194.78, SL: 20, TP: 119, MR: 5) is sent to server
2018.09.11 05:42:00.893 | → Request to Sell 0.40 Lot(s) XAUUSD (Price: 1194.78, SL: 20, TP: 119, MR: 5) is ACCEPTED, order OID18321928 created (11/09/2018 05:42:00.800 UTC+0)
2018.09.11 05:42:01.143 | → Order OID18321928 is FILLED at 1194.77, position PID10775801 (11/09/2018 05:42:01.019 UTC+0)
2018.09.11 05:42:02.159 | Request to Sell 0.20 Lot(s) XAUUSD (Price: 1194.77, SL: 20, TP: 119, MR: 5) is sent to server
2018.09.11 05:42:02.378 | → Request to Sell 0.20 Lot(s) XAUUSD (Price: 1194.77, SL: 20, TP: 119, MR: 5) is ACCEPTED, order OID18321937 created (11/09/2018 05:42:02.276 UTC+0)
2018.09.11 05:42:02.596 | → Order OID18321937 is FILLED at 1194.78, position PID10775807 (11/09/2018 05:42:02.483 UTC+0)
2018.09.11 07:11:16.591 | Request to close position PID10775801 is sent to server
2018.09.11 07:11:16.857 | → Request to close position PID10775801 is ACCEPTED, order OID18324231 created (11/09/2018 07:11:16.749 UTC+0)
2018.09.11 07:11:17.482 | → Order OID18324231 is FILLED at 1196.33, position PID10775801 closed (11/09/2018 07:11:17.044 UTC+0)
2018.09.11 07:11:22.826 | Request to close position PID10775807 is sent to server
2018.09.11 07:11:23.044 | → Request to close position PID10775807 is ACCEPTED, order OID18324232 created (11/09/2018 07:11:22.934 UTC+0)
2018.09.11 07:11:23.607 | → Order OID18324232 is FILLED at 1196.29, position PID10775807 closed (11/09/2018 07:11:23.194 UTC+0)

 


@yenni22w