Topics
Replies

jbogocz
29 May 2023, 21:32

Problem Solved

The problem was solved by unchecking the box labeled: "Download historical data for additional symbols to accurately convert profits to account currency" (backtesting settings)


@jbogocz

jbogocz
29 May 2023, 16:06 ( Updated at: 21 Dec 2023, 09:23 )

GPU is not utilized either:


@jbogocz

jbogocz
29 May 2023, 15:18

I'm looking for some fresh perspectives on this topic. Any ideas?


@jbogocz

jbogocz
19 May 2023, 00:03 ( Updated at: 21 Dec 2023, 09:23 )

RE:

Thank you for prompt reply.

1) I am using "Optimization"

2) When Optimization Slide is set to 100% either no CPU and no GPU is utilized (and I didnt set laptop to utilize GPU)

3) The only one difference between 4.7.9 vs previous version i.e. 4.1 is the "efficiency mode" which cannot be disabled.

4) It apply to any bot, for example here I put performance results for "Sample RSI cBot"

using cAlgo.API;
using cAlgo.API.Indicators;

namespace cAlgo
{
    [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.FullAccess)]
    public class SampleRSIcBot : Robot
    {
        [Parameter("Quantity (Lots)", Group = "Volume", DefaultValue = 1, MinValue = 0.01, Step = 0.01)]
        public double Quantity { get; set; }

        [Parameter("Source", Group = "RSI")]
        public DataSeries Source { get; set; }

        [Parameter("Periods", Group = "RSI", DefaultValue = 14)]
        public int Periods { get; set; }

        private RelativeStrengthIndex rsi;

        protected override void OnStart()
        {
            rsi = Indicators.RelativeStrengthIndex(Source, Periods);
        }

        protected override void OnTick()
        {
            if (rsi.Result.LastValue < 30)
            {
                Close(TradeType.Sell);
                Open(TradeType.Buy);
            }
            else if (rsi.Result.LastValue > 70)
            {
                Close(TradeType.Buy);
                Open(TradeType.Sell);
            }
        }

        private void Close(TradeType tradeType)
        {
            foreach (var position in Positions.FindAll("SampleRSI", SymbolName, tradeType))
                ClosePosition(position);
        }

        private void Open(TradeType tradeType)
        {
            var position = Positions.Find("SampleRSI", SymbolName, tradeType);
            var volumeInUnits = Symbol.QuantityToVolumeInUnits(Quantity);

            if (position == null)
                ExecuteMarketOrder(tradeType, SymbolName, volumeInUnits, "SampleRSI");
        }
    }
}

cTrader 4.7.9 Pefromance:

ctrader 4.7.9

cTrader 4.1 Pefromance (same Bot, same hardware, same system):

 


@jbogocz