Replies

amsman
08 Mar 2019, 00:10

I have the same continuing issue of the platform freezing at critical moments issue.... it was an issue in version 2.0, it was an issue in version 3.0... it appears to be more of an issue in 3.3. Anytime you have 20 or so more positions open, multple Indicators, periods of market volitility or simply.... just leave the platform running for 24 hours or more, Ctrader becomes unstable and either hesitates on every operation or freezes completely requiring a restart.

It's cost me money on live accounts (documented in another thread) to the point I use Ctrader for research and place my live trades in MT4..... it's just too unstable when there is a lot of activity... Its a memory use issue (or something more ominous!) that is the root cause of many, many, many posts in these forums.

There is no support offered in these forums to eleviate the problem.... Other than post me you code and we'll have a look... It's not something that is imagined by the Ctrader users.... It's too common a complaint and has been for many years ( 2012+) now.....

I have read through the beta release notes newly posted and haven't seen this issue covered in any form.... Will Ctrader 3.5 address the memory issue...????


@amsman

amsman
05 Mar 2019, 17:14

RE:

damian8 said:

At the same time I am running a cTrader non-broker instance as well. I am not trading on this instance, just referring to charts. It doesn't reach a fraction of the memory usage. Even roughly accounting for lesser demand:

- 4 charts

- 4 symbols

- all 4 hour timeframe

- all have a few EMAs

- no indicators

 

Makes you wonder what is going on in the background with the Brokers instance???  Even slight volatility on any chart..... and crunch... Ctrader 3.3 STOPS DEAD..........


@amsman

amsman
12 Aug 2018, 08:21 ( Updated at: 21 Dec 2023, 09:20 )

Memory Resources Ctrader 3.0

I'm having the same issues.......

This may give an idea of the resources used while both Metatrader and cTrader are open and idle in Windows 10...... Market is closed.

This is definetly a software issue that Spotware needs to sort......" Not Responding" is a daily recurrance.....I7 / 2TB SSD / 16G DDR3 / 43' 4K Monitor.

No other Software or App I have used locks the system down to this extent. 

 


@amsman

amsman
03 Aug 2018, 15:25

RE:

procumulative@gmail.com said:

anybody else has same problem? dont hesitate to tell us here...

I'm having the same issue..... I run a cBot for 72 hours on a very short TF, so have 1500+ 0.01 micro trades continually opening and closing without issue over this period

So when I hit CLOSE ALL to take a $7800 profit....  takes 30mins to close.........

So by the time it closes all.... $6100 is the final figure, $1700 gone due to stalling platform..

This platform can not handle hi frequency trading what so ever...... i7 Chip 1tb SSD and 16G Ram....... and it stutters around like a 286...........

 


@amsman

amsman
28 Jun 2018, 16:24

Since the update to Ctrader 3.0 I've found that price action has changed dramatically..... It's like I suddenly forgot how to trade..... win rate has dropped from 76% to 21% in a fortnight, Thankfully dropped to micro lot sizes instantly I noticed the change.... so no real damage.. Indicators all of a sudden mean nothing....

MT4 accounts have not changed..... giving Tradeview a spin as of next week..... Anyone else having similar issues since the Ctrader 3.0 upgrade?

Most unfortunate, I really like Ctrader but after reading the posts above and being **forced** to upgrade while the program is still not bullet proof is just too malevolent for my liking.

 


@amsman

amsman
20 May 2018, 05:41

Round numbers indicator

You'll find an Idicator for this purpose here   /algos/indicators/show/263


@amsman

amsman
25 Feb 2018, 23:20

Patrick said: This is a major bug, they will fix asap, you will see!

Douglas said: That is an old issue already...../forum/calgo-support/12392?page=1#7 (Early February 2018)

"Next time you experience this issue, please send troubleshooting information to our QA team. You can do so by pressing Ctrl+Alt+Shift+T and then pressing the "Submit" button. In the description, please paste the link of this discussion."

Best Regards,

Panagiotis

Really..... Spotware is not aware of this ongoing issue.....please

 

 

 

 


@amsman

amsman
25 Feb 2018, 01:50

Ctrader, Calgo has been doing this for the last couple of weekends.........Pepperstone, IC Markets, FXPro......happening across the Ctrader Network...

Second time the question's been asked and no answer from Panagiotis......Maybe they don't want 24/7 retail getting the jump on the week working professionals...... 


@amsman

amsman
13 Jan 2018, 03:33

I have incorporated many cTrader Indicators but "Bound" Indicators (oscillating between fixed values) such as these are not possible with the simple API unfortunately.

A possible workaround is to add an MA Indicator (same method) into the RSI and set the MA to behave as close as possible to the Mom. Indicator.


@amsman

amsman
12 Jan 2018, 08:39

Normally you can open the RSI Indicator, then open the Momentum Osc., select the Source, change it from close to the RSI and both indicators will appear as above.

They are both "Bound" Indicators (both oscillate between fixed values) so I don't think its possible with these two...but I could be wrong...


@amsman

amsman
21 Oct 2017, 03:21

Works perfectly, appreciate the prompt reply again Panagiotis. Your help on these forums is adding value to the platform.


@amsman

amsman
20 Oct 2017, 14:44

RE:

Panagiotis Charalampous said:

Hi amsman,

The reason you cannot build your indicator is that you define _parabolic twice and you do not use the correct type in your indicator declaration. See a corrected version below

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

namespace cAlgo
{
    [Indicator(IsOverlay = true, TimeZone = TimeZones.EAustraliaStandardTime, AccessRights = AccessRights.None)]
    public class ParabolicSAR : Indicator
    {
        [Parameter("Min AF", DefaultValue = 0.02, MinValue = 0)]
        public double minaf { get; set; }

        [Parameter("Max AF", DefaultValue = 0.2, MinValue = 0)]
        public double maxaf { get; set; }

        [Output("PSAR", PlotType = PlotType.Points, Color = Colors.White, Thickness = 3)]
        public API.Indicators.ParabolicSAR _parabolic { get; set; }

        protected override void Initialize()
        {
            _parabolic = Indicators.ParabolicSAR(minaf, maxaf);
        }
        public override void Calculate(int index)
        {
            double parabolic = _parabolic.Result[index];
        }
    }
}

Best Regards,

Panagiotis

Thanks for the prompt reply Panagiotis, Code is now building but still not displaying the PSAR Indicator on the Chart (Indicator(IsOverlay = false changed to true)


@amsman

amsman
20 Oct 2017, 07:50

RE:

Error CS0102: The type 'cAlgo.ParabolicSAR' already contains a definition for '_parabolic'

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

namespace cAlgo
{
    [Indicator(IsOverlay = false, TimeZone = TimeZones.EAustraliaStandardTime, AccessRights = AccessRights.None)]
    public class ParabolicSAR : Indicator
    {
        [Parameter("Min AF", DefaultValue = 0.02, MinValue = 0)]
        public double minaf { get; set; }

        [Parameter("Max AF", DefaultValue = 0.2, MinValue = 0)]
        public double maxaf { get; set; }
        
        private ParabolicSAR _parabolic;
        
        [Output("PSAR", PlotType = PlotType.Points, Color = Colors.White, Thickness = 3)]
        public IndicatorDataSeries _parabolic { get; set; }
      
        protected override void Initialize()
        {
            _parabolic = Indicators.ParabolicSAR(minaf, maxaf);          
        }
        public override void Calculate(int index)
        {
            double parabolic = _parabolic.Result[index];
         }
    }
}

I believe Spotware don't want to share their "built in" cTrader Indicators so I coded simple versions of the RSI, CCI which all work fine but I cannot get the PSAR Indicator to build...probably something simple. Can someone please sort for me?

PS: I am coding them so I can build a range of standalone (with more functionality) indicators, If anyone wants the code for the other base Indicators, speak up and I will post them in the Indicator thread/forum. Cheers

 


@amsman

amsman
16 Oct 2017, 06:49

Could be a positive SWAP fee during the trade, I see this often.


@amsman

amsman
25 Aug 2017, 16:29

Ditto...


@amsman

amsman
25 Aug 2017, 11:27

Have the same problem, Autochartist hasn't updated feed since 22nd August. Broker is IC Markets (Aust.)


@amsman

amsman
06 Aug 2017, 06:25

RE:

amsman said:

Hi Gurjeetsaini, what’s happening during your back testing is Drawdown. Your cBot is opening positions (trades) which are not being closed by either a Take Profit (TP) or Stop loss (SL).

I don't see any losing trades in your Chart. The "retracement" logic you are using works perfectly if you are trading with the trend but will blow your account if the trend changes direction. Especially on a small $1000 account. (we run a similar logic cBot) 

With back testing, you have to add a SL (say ~2 x TP) so you can see all the unclosed losing trades (negative equity). It will also show you that when using a SL a cBot will be defeated by market algorithms 99% of the time, proving how manipulated price action really is.

4 ways to improve Robot performance is (1!) use minimal quantity lots ie: 0.01 / 0.05 which you are doing, (2!) use a larger SL, (3!) improve trade entry/exit confirmation logic in your cBot or…. Most dangerous (Risk) of all use “smart hedge” logic within the cBot which will hold equity and improve margin.

 

Opp's... didn't read before posting........ Hi Gurjeetsaini, what’s happening during your back testing is negative equity (not Drawdown) you are running out of equity during the back test.


@amsman

amsman
06 Aug 2017, 05:51

Hi Gurjeetsaini, what’s happening during your back testing is Drawdown. Your cBot is opening positions (trades) which are not being closed by either a Take Profit (TP) or Stop loss (SL).

I don't see any losing trades in your Chart. The "retracement" logic you are using works perfectly if you are trading with the trend but will blow your account if the trend changes direction. Especially on a small $1000 account. (we run a similar logic cBot) 

With back testing, you have to add a SL (say ~2 x TP) so you can see all the unclosed losing trades (negative equity). It will also show you that when using a SL a cBot will be defeated by market algorithms 99% of the time, proving how manipulated price action really is.

4 ways to improve Robot performance is (1!) use minimal quantity lots ie: 0.01 / 0.05 which you are doing, (2!) use a larger SL, (3!) improve trade entry/exit confirmation logic in your cBot or…. Most dangerous (Risk) of all use “smart hedge” logic within the cBot which will hold equity and improve margin.

 


@amsman

amsman
01 Jul 2017, 07:17

Moving Average Strategies

Moving Average Strategies in theory should be profitable, but with spread and the price algorithms in FX they tend to be the fastest account reducing agent known to man. No matter which MAType or Period Values you use, at the point of crossover the fast MA will bounce up and down over the slow MA giving off numerous false signals which with spread, will result in numerous losing trades before price happily meanders off in a particular direction. We have coded a few Strategy “protections” for MA Crosses but we are constantly refining the logic all the time… 2 steps forward, one step back…. It’s mind numbing.

You have to add second or third (even fourth!) trade confirmation logic so price action does not continually defeat the strategy at the MA crossover point. Either a trade delay mechanism so that the position isn’t opened until the Fast MA has cleared the Slow MA (measured in pips or closed candles) or a second even slower MA that triggers the trade once it has also crossed in the direction of the trend. One indicator (of a great many tested) we use for confirmation is the CCI indicator (-100 / +100) for confirmation, so that the MA Cross will not trigger a trade until the CCI value has crossed above the -100 (-170) for a Buy or passes down through the +100 for a sell. That just covers the crossover points, you also have to have the included logic for when price action pulls back during a trend, generally all the way to the slow MA and tries to shake you out mid trade……. That’s even harder to program for…


@amsman

amsman
01 Jul 2017, 05:08

Code with SL and TP added.

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

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

        //parameters

        [Parameter("MA Type")]
        public MovingAverageType MAType { get; set; }

        [Parameter()]
        public DataSeries SourceSeries { get; set; }

        [Parameter("Slow Periods", DefaultValue = 10)]
        public int SlowPeriods { get; set; }

        [Parameter("Fast Periods", DefaultValue = 26)]
        public int FastPeriods { get; set; }

        [Parameter("Quantity (Lots)", DefaultValue = 0.01, MinValue = 0.01, Step = 0.01)]
        public double Quantity { get; set; }

        [Parameter("TakeProfitPips", DefaultValue = 5, MinValue = 0)]
        public int TP { get; set; }

        [Parameter("StopLossPips", DefaultValue = 5, MinValue = 0)]
        public int SL { get; set; }

        private MovingAverage slowMa;

        private MovingAverage fastMa;

        private const string label = "Sample Trend cBot";

        protected override void OnStart()
        {
            fastMa = Indicators.MovingAverage(SourceSeries, FastPeriods, MAType);
            slowMa = Indicators.MovingAverage(SourceSeries, SlowPeriods, MAType);
        }
        protected override void OnTick()
        {
            //declaring variables during ticks
            var longPosition = Positions.Find(label, Symbol, TradeType.Buy);
            var shortPosition = Positions.Find(label, Symbol, TradeType.Sell);
            var currentSlowMa = slowMa.Result.Last(0);
            var currentFastMa = fastMa.Result.Last(0);
            var previousSlowMa = slowMa.Result.Last(1);
            var previousFastMa = fastMa.Result.Last(1);

            if (previousSlowMa > previousFastMa && currentSlowMa <= currentFastMa && longPosition == null)
            {
                if (shortPosition != null)
                    ClosePosition(shortPosition);
                ExecuteMarketOrder(TradeType.Buy, Symbol, VolumeInUnits, label, SL, TP);
            }
            else if (previousSlowMa < previousFastMa && currentSlowMa >= currentFastMa && shortPosition == null)
            {
                if (longPosition != null)
                    ClosePosition(longPosition);
                ExecuteMarketOrder(TradeType.Sell, Symbol, VolumeInUnits, label, SL, TP);
            }
        }

        private long VolumeInUnits
        {
            get { return Symbol.QuantityToVolume(Quantity); }
        }
    }
}

 

// I had to change the Robot name to MovingAverageStrategy for the code to build correctly.


@amsman