PanagiotisCharalampous's avatar
PanagiotisCharalampous
30 follower(s) 0 following 1006 subscription(s)
Replies

PanagiotisCharalampous
11 May 2024, 07:01

I checked both cases with tick data and the results are identical

Best  regards,


@PanagiotisCharalampous

PanagiotisCharalampous
11 May 2024, 06:46

RE: RE: RE: RE: OnPositionClosed event firing multiple times

mattbarfoot said: 

PanagiotisCharalampous said: 

mattbarfoot said: 

PanagiotisCharalampous said: 

Hi there,

Can you please share with us the source code of your cBot and provide us with instructions on how to reproduce this problem?

Best regards,

Panagiotis

Hey Panagiotis, I am attempting to log each position that closes in either the OnPositionClosed event or a CloseTrade sub. Multiple cbots with multiple instances will be running. Positions are logged in a csv file. Typically multiple entries are created in the csv which have different instanceIDs but have the same Label, which is set to the InstanceId when opening.

scenario 1 (CloseTrade)

Position Opened: ExecuteMarketOrder(TradeType.Buy, SymbolName, adjustedContracts, InstanceId, null, null); 

Position Closes on x number of bars being reached, which then calls CloseTrade

        private void CloseTrade(Position position)
       {                     
           LogTrade(position);                               
           ClosePosition(position);            
       }

 

scenario 2 (OnPositionClosed event)

Position Opened: 

                ExecuteMarketOrder(TradeType.Sell, SymbolName, adjustedContracts, InstanceId, StopLossPips, TargetPips);
               result.Position.ModifyTrailingStop(true);

 

 private void OnPositionClosed(PositionClosedEventArgs args)
       {
          LogTrade(args.Position);                                              

       }

 

    private void LogTrade(Position _position)
       {
     
           string log = $"{strategyName},{DateTime.Now},{Chart.TimeFrame},{0},{_position.TradeType},{_position.EntryTime}, {DateTime.UtcNow},{_position.Symbol},{_position.Pips},                      {_position.NetProfit},{_position.GrossProfit},{_position.Id},{_position.Label}";
           string Path;
                
           File.AppendAllText(Path,log + Environment.NewLine);

        }

 

Hi there,

If multiple instances are running then the event will be triggered multiple times, once per instance. You should check inside the event handler if the closed position has been created by the specific instance and only then log it.

Best regards,

Panagiotis

Hey Panagiotis, So to confirm, a new instance is created every time a new position opens. So would the code below reference the correct instance:

  ExecuteMarketOrder(TradeType.Sell, SymbolName, adjustedContracts, InstanceId, StopLossPips, TargetPips);
               result.Position.ModifyTrailingStop(true);

 

and close event looks like:

 private void OnPositionClosed(PositionClosedEventArgs args)
       {
          if(instanceID == args.Position.Label)

           LogTrade(args.Position);                                              

       }

 

It looks correct but you should test it


@PanagiotisCharalampous

PanagiotisCharalampous
10 May 2024, 06:18

Hi there,

If the issue persists please send us some troubleshooting info and quote the link to this discussion.

Best Regards,

Panagiotis


 


@PanagiotisCharalampous

PanagiotisCharalampous
10 May 2024, 05:48

Hi there

cTrader Copy results are not guaranteed and may vary compared to those of the strategy provider due to the following reasons:

  • Differences between your positions' entry and closing prices and those of the strategy provider
  • Differences in the size of your positions compared to those of the strategy provider
  • Variations in the commissions you pay to your broker compared to those of the strategy provider
  • The possibility that your broker does not offer the same trading symbols used in the strategy
  • Insufficient margin in your account to copy some of the orders executed in the strategy
  • Differences in the stop out levels, which might cause your account to be stopped out, while the strategy provider continues to trade

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
10 May 2024, 05:46 ( Updated at: 19 Mar 2025, 08:57 )

RE: RE: RE: RE: RE: RE: RE: Issue in "Modifying" Positions/Pending Orders in Ctrader Desktop

sivajimarketwizard said: 

Spotware said: 

sivajimarketwizard said: 

sivajimarketwizard said: 

PanagiotisCharalampous said: 

sivajimarketwizard said: 

PanagiotisCharalampous said: 

Hi there,

Can you share a screenshot demonstrating what you are looking at?

Best regards,

Panagiotis

When attempting to click on "Modify Position," there's no response or display. The same issue occurs when trying to click on "Modify Order" for Pending Orders. Overall, the "Modify" function isn't functioning.

Hi there, 

Make sure the form does not open on an external display that has been disconnected. Try also restarting cTrader and your pc.

Best regards,

Panagiotis

I tried everything you mentioned. I've been facing the issue for 10 days. So, in between, I switched off my laptop many times. I don't think it's a problem with the PC. Also, I reinstalled cTrader. But still facing the same issue. Just don't know how to solve it. Desperately need help brother.

The issue is still not resolved.Kindly have a look at this. 

Hi there,

Can you please record a video demonstrating this happening? Also in the video, please show the Display Settings open showing that there is only one screen used by your computer.

Best regards,

Panagiotis

How can I send the video here related to the problem ? It is not accepting files from my PC and even Google drive link 

Hi there, 

If you have trouble sending a video, please send it to support@ctrader.com

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
10 May 2024, 05:44 ( Updated at: 10 May 2024, 05:45 )

Hi there,

Can you please provide more information about your issue? When does the application close? Can you record a video? What do you mean with preset commands?

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
10 May 2024, 05:41

Hi there,

Unfortunately your question is not clear for me. Can you please rephrase?

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
10 May 2024, 05:38

RE: RE: OnPositionClosed event firing multiple times

mattbarfoot said: 

PanagiotisCharalampous said: 

Hi there,

Can you please share with us the source code of your cBot and provide us with instructions on how to reproduce this problem?

Best regards,

Panagiotis

Hey Panagiotis, I am attempting to log each position that closes in either the OnPositionClosed event or a CloseTrade sub. Multiple cbots with multiple instances will be running. Positions are logged in a csv file. Typically multiple entries are created in the csv which have different instanceIDs but have the same Label, which is set to the InstanceId when opening.

scenario 1 (CloseTrade)

Position Opened: ExecuteMarketOrder(TradeType.Buy, SymbolName, adjustedContracts, InstanceId, null, null); 

Position Closes on x number of bars being reached, which then calls CloseTrade

        private void CloseTrade(Position position)
       {                     
           LogTrade(position);                               
           ClosePosition(position);            
       }

 

scenario 2 (OnPositionClosed event)

Position Opened: 

                ExecuteMarketOrder(TradeType.Sell, SymbolName, adjustedContracts, InstanceId, StopLossPips, TargetPips);
               result.Position.ModifyTrailingStop(true);

 

 private void OnPositionClosed(PositionClosedEventArgs args)
       {
          LogTrade(args.Position);                                              

       }

 

    private void LogTrade(Position _position)
       {
     
           string log = $"{strategyName},{DateTime.Now},{Chart.TimeFrame},{0},{_position.TradeType},{_position.EntryTime}, {DateTime.UtcNow},{_position.Symbol},{_position.Pips},                      {_position.NetProfit},{_position.GrossProfit},{_position.Id},{_position.Label}";
           string Path;
                
           File.AppendAllText(Path,log + Environment.NewLine);

        }

 

Hi there,

If multiple instances are running then the event will be triggered multiple times, once per instance. You should check inside the event handler if the closed position has been created by the specific instance and only then log it.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
10 May 2024, 05:34

RE: RE: Push Notifications stopped on iOS

robert.john.edgar said: 

PanagiotisCharalampous said: 

Hi there,

The issue is under investigation and will be resolved asap.

Best regards,

Panagiotis

Thanks,
Notifications started again about 3 hours ago.

Just FYI but assume you are probably aware, the notifications are currently showing UNKNOWN for the asset type i.e. “SELL position for UNKNOWN of 1.00 closed successfully”

Cheers

Rob

Hi Rob,

Does this happen on all symbols or a specific one? Can you share the broker, the symbol and a screenshot?

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
10 May 2024, 05:33

RE: RE: Active symbol panel

akhilascoder said: 

PanagiotisCharalampous said: 

Hi there,

Active Symbol Panel will be added in a future update of the application.

Best regards,

Panagiotis

Hey! Do you have any updates on this? Can we expect the Active Symbol Panel anytime soon? Without ASP, the user experience is quite bad. 

As an alternate to Mac OS version, I'm currently using the web app but unfortunately web app performance is not that great. (The web page suddenly crashes with a message ‘Aw, Snap!’. ). 

More info on device: I'm using latest version of chrome browser on MacOS latest version, Macbook Pro M3 Pro, 32GB ram.

Hi there,

We do not have an ETA unfortunately.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
10 May 2024, 05:29

RE: RE: RE: RE: Connecting C-trader desktop to mongodb

said.moridi said: 

said: 

These are my errors

 

Hi there,

Make sure you are using the SDK compiler

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 12:55

Hi all,

On the left you see the balance. Inside the main panel you are highlighting the equity.

Best regards,

Panagiotis 


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 12:38

RE: RE: Massive problems with new update. Objects freezing when you try to move by every tick in Live trading

Jaffa said: 

Jaffa said: 

https://c.gmx.net/@329626503937525196/OXeOGb5dS1-zqDWuEu6Ntg

please try again. i´ve uploaded the file in mov and mp4. 

is there a solution to the problem? What can you do to make ctrader usable for trading again?

Hi there,

Unfortunately we still cannot access the video.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 12:34

Hi there,

Can you explain why you think it's 10 pips and not 100?

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 12:33

RE: RE: RE: RE: RE: RE: RE: Problesm with Visual vs non Visual Backtesting

trading1 said: 

PanagiotisCharalampous said: 

trading1 said: 

PanagiotisCharalampous said: 

trading1 said: 

trading1 said: 

PanagiotisCharalampous said: 

Hi there,

If you can share the cBot code, we can have a look. Also make sure you use tick data for your backtesting.

Best regards,

Panagiotis

Here is the Bot Code .

You can find the parameters I used in the pictures above.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Robots
 {

    [Robot(TimeZone = TimeZones.WEuropeStandardTime, AccessRights = AccessRights.None)]
    public class EBOTTRADEIRL: Robot
     {
       
        [Parameter("Risk %", Group = "Risk",DefaultValue = 0.02)]
          public double RiskPCT { get; set; }
        
        [Parameter("ATR MA Type",Group = "ATR")]
        public MovingAverageType ATRMAType { get; set; }
        
        [Parameter("ATR Period", Group = "ATR", DefaultValue = 14)]
            public int ATRPeriod { get; set; }
        
                  
        [Parameter("RSI MA Period", Group = " RSI", DefaultValue = 8)]
            public int RSIPeriod { get; set; }
        [Parameter("RSI Type", Group = " RSI" , DefaultValue = MovingAverageType.Exponential)]
             public MovingAverageType RSIType { get; set; }
             
          [Parameter("RSIMA MA Period", Group = " RSI", DefaultValue = 8)]
            public int RSIMAPeriod { get; set; }
        
        [Parameter("RSIMA Type", Group = " RSI" , DefaultValue = MovingAverageType.Exponential)]
             public MovingAverageType RSIMAType { get; set; }    
             
        [Parameter("SSL Period", Group = " SSL ", DefaultValue = 8)]
            public int SSLPeriod{ get; set; }
         
         
         [Parameter("SSL Type", Group = " SSL" , DefaultValue = MovingAverageType.Exponential)]
             public MovingAverageType SSLMAType { get; set; }
            
        [Parameter("Baseline Period", Group = " Baseline ", DefaultValue = 8)]
            public int BLMAPeriod{ get; set; }
         [Parameter("Baseline MA", Group = " Baseline" , DefaultValue = MovingAverageType.Exponential)]
             public MovingAverageType BLMAType { get; set; }    
            
        
        [Parameter("MACD Long Cycle", Group = " MACD ", DefaultValue = 21)]
            public int MACDLong{ get; set; }
       
        [Parameter("MACD Short Cycle", Group = " MACD ", DefaultValue = 8)]
            public int MACDShort{ get; set; }
        [Parameter("MACD Signal", Group = " MACD ", DefaultValue = 12)]
            public int MACDSignal{ get; set; }
                
        
            
       [Parameter("StopLoss Factor", Group = "Risk", DefaultValue = 1)]
        public double SLM { get; set; }
       [Parameter("TakeProfit Factor", Group = "Risk", DefaultValue = 1)]
        public double TPM { get; set; }
        
      
      //Declare Indicators and name them
       
         private AverageTrueRange atr;
         
         private SSLChannel ssl;
         private MovingAverage rsiMA, bl; 
         private RelativeStrengthIndex rsi;
         private MacdCrossOver macd;
         
         public string botName;
         
       
                      

        protected override void OnStart()
        
        
        
       
        
            {  atr = Indicators.AverageTrueRange(ATRPeriod, MovingAverageType.Exponential);
               ssl = Indicators.GetIndicator<SSLChannel>(SSLPeriod,SSLMAType);
               rsi = Indicators.RelativeStrengthIndex(Bars.ClosePrices, RSIPeriod);
               rsiMA = Indicators.MovingAverage(rsi.Result, RSIMAPeriod, RSIMAType);
               macd = Indicators.MacdCrossOver(MACDLong, MACDShort, MACDSignal);
               bl = Indicators.MovingAverage(Bars.MedianPrices, BLMAPeriod, BLMAType);
            
            }

        protected override void OnBarClosed()
        {
            
            
                       
            var C2 = ssl._sslUp.Last(0) - ssl._sslDown.Last(0);
            var PrefC2 = ssl._sslUp.Last(1)-ssl._sslDown.Last(1);
            var C2U = ssl._sslUp.Last(0);
            var C2D = ssl._sslDown.Last(0);
            
            
                      
            var C6 = rsi.Result.Last(0);
            var PrefC6 = rsi.Result.Last(1);
            
            var C7 = rsiMA.Result.Last(0);
            var C8 = rsiMA.Result.Last(1);

            var BaseLine = bl.Result.Last(0);                           
           
            var Macd = macd.MACD.Last(0);
            var MacdSig = macd.Signal.Last(0);
               
                 
            
            if (C2 > 0  & Symbol.Bid > BaseLine &  C7 > 50  & Macd > MacdSig & Macd > 0 ) 
                  {  Open ( TradeType.Buy, "SSL Buy");        
                      
                   } 
                 
             else if(C2 < 0  & Symbol.Ask < BaseLine & C7 < 50  & Macd < MacdSig & Macd < 0)  
                  {      Open(TradeType.Sell, "SSL Sell");
             
                  
                       
                   }                     
                       
              if (C2 < 0) // & C6 < C7) 
                   {    
                        Close (TradeType.Buy, "SSL Buy");
                   }
                       
               else if (C2 > 0) // & C6 > C7)  
                     {    
                         Close (TradeType.Sell, "SSL Sell");
                         
                     }
    }
           
            // New Function for Opening  trades
                                 
            private void Open(TradeType tradeType, string Label)
                
              { 
                   var ATR = Math.Round(atr.Result.Last(1) / Symbol.PipSize);
                  
                
                       
                    var position = Positions.Find( Label, SymbolName, tradeType);
        
                  if (position == null & Server.Time.Hour > 1 & Server.Time.Hour < 23)
                        
                    {
                        ExecuteMarketOrder (tradeType , SymbolName ,20, Label, SLM * ATR, TPM * ATR );  //TradeAmount/2
                        
                    }
            }
       
         private void Close(TradeType tradeType, string Label)
       
               {
                        foreach (var position in Positions.FindAll(Label, SymbolName, tradeType))
                     
                        ClosePosition(position);
               }
        
       
       
       
        
        
            // Handle cBot stop here
     }
       
    
 }
        
    

 

As per your suggestion , I ran the bot with Tick data and also found that there is no consistency  in the Visual and non visual testing.

The bot now did not show a profit with the Tick data, but it made 2000 trades more with the non visual vs visual testing and it stopped 2 weeks later when the balance ran to zero.

This is a problem which CTrader must address because it leaves a situation where no algo supplier can be be trusted with their bots on any broker platform.

Hi there,

We are still missing the SSL Channel indicator you are using. Can you please share it with us?

Best regards,

Panagiotis

You can find the SSL indicator on the community indicators forum at Spotware. but as you can see from the code I did not use it.

The code does not build without the indicator. Please either provide a link to the actual indicator or provide cBot code that builds without the need of a reference

Apologies I see I used it. You can get the SSL Channel indicator on the CTrader indicators pages.

I need the link please


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 12:30

Hi there,

This sounds like a connection issue. Can you try again?

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 12:29

RE: RE: Connecting C-trader desktop to mongodb

said.moridi said: 

we installed mongodb.driver external library is not support

we have our own data we need to plot those data inside the chart

 

Can you be more specific? Do you get any error messages?


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 06:30

RE: ATP

daveglover040 said: 

Hi PanagiotisCharalampous,

As you can see its not on mine?

 

This is cTrader Web. This feature is not available in cTrader Web.


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 05:38

RE: RE: RE: RE: RE: Problesm with Visual vs non Visual Backtesting

trading1 said: 

PanagiotisCharalampous said: 

trading1 said: 

trading1 said: 

PanagiotisCharalampous said: 

Hi there,

If you can share the cBot code, we can have a look. Also make sure you use tick data for your backtesting.

Best regards,

Panagiotis

Here is the Bot Code .

You can find the parameters I used in the pictures above.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Robots
 {

    [Robot(TimeZone = TimeZones.WEuropeStandardTime, AccessRights = AccessRights.None)]
    public class EBOTTRADEIRL: Robot
     {
       
        [Parameter("Risk %", Group = "Risk",DefaultValue = 0.02)]
          public double RiskPCT { get; set; }
        
        [Parameter("ATR MA Type",Group = "ATR")]
        public MovingAverageType ATRMAType { get; set; }
        
        [Parameter("ATR Period", Group = "ATR", DefaultValue = 14)]
            public int ATRPeriod { get; set; }
        
                  
        [Parameter("RSI MA Period", Group = " RSI", DefaultValue = 8)]
            public int RSIPeriod { get; set; }
        [Parameter("RSI Type", Group = " RSI" , DefaultValue = MovingAverageType.Exponential)]
             public MovingAverageType RSIType { get; set; }
             
          [Parameter("RSIMA MA Period", Group = " RSI", DefaultValue = 8)]
            public int RSIMAPeriod { get; set; }
        
        [Parameter("RSIMA Type", Group = " RSI" , DefaultValue = MovingAverageType.Exponential)]
             public MovingAverageType RSIMAType { get; set; }    
             
        [Parameter("SSL Period", Group = " SSL ", DefaultValue = 8)]
            public int SSLPeriod{ get; set; }
         
         
         [Parameter("SSL Type", Group = " SSL" , DefaultValue = MovingAverageType.Exponential)]
             public MovingAverageType SSLMAType { get; set; }
            
        [Parameter("Baseline Period", Group = " Baseline ", DefaultValue = 8)]
            public int BLMAPeriod{ get; set; }
         [Parameter("Baseline MA", Group = " Baseline" , DefaultValue = MovingAverageType.Exponential)]
             public MovingAverageType BLMAType { get; set; }    
            
        
        [Parameter("MACD Long Cycle", Group = " MACD ", DefaultValue = 21)]
            public int MACDLong{ get; set; }
       
        [Parameter("MACD Short Cycle", Group = " MACD ", DefaultValue = 8)]
            public int MACDShort{ get; set; }
        [Parameter("MACD Signal", Group = " MACD ", DefaultValue = 12)]
            public int MACDSignal{ get; set; }
                
        
            
       [Parameter("StopLoss Factor", Group = "Risk", DefaultValue = 1)]
        public double SLM { get; set; }
       [Parameter("TakeProfit Factor", Group = "Risk", DefaultValue = 1)]
        public double TPM { get; set; }
        
      
      //Declare Indicators and name them
       
         private AverageTrueRange atr;
         
         private SSLChannel ssl;
         private MovingAverage rsiMA, bl; 
         private RelativeStrengthIndex rsi;
         private MacdCrossOver macd;
         
         public string botName;
         
       
                      

        protected override void OnStart()
        
        
        
       
        
            {  atr = Indicators.AverageTrueRange(ATRPeriod, MovingAverageType.Exponential);
               ssl = Indicators.GetIndicator<SSLChannel>(SSLPeriod,SSLMAType);
               rsi = Indicators.RelativeStrengthIndex(Bars.ClosePrices, RSIPeriod);
               rsiMA = Indicators.MovingAverage(rsi.Result, RSIMAPeriod, RSIMAType);
               macd = Indicators.MacdCrossOver(MACDLong, MACDShort, MACDSignal);
               bl = Indicators.MovingAverage(Bars.MedianPrices, BLMAPeriod, BLMAType);
            
            }

        protected override void OnBarClosed()
        {
            
            
                       
            var C2 = ssl._sslUp.Last(0) - ssl._sslDown.Last(0);
            var PrefC2 = ssl._sslUp.Last(1)-ssl._sslDown.Last(1);
            var C2U = ssl._sslUp.Last(0);
            var C2D = ssl._sslDown.Last(0);
            
            
                      
            var C6 = rsi.Result.Last(0);
            var PrefC6 = rsi.Result.Last(1);
            
            var C7 = rsiMA.Result.Last(0);
            var C8 = rsiMA.Result.Last(1);

            var BaseLine = bl.Result.Last(0);                           
           
            var Macd = macd.MACD.Last(0);
            var MacdSig = macd.Signal.Last(0);
               
                 
            
            if (C2 > 0  & Symbol.Bid > BaseLine &  C7 > 50  & Macd > MacdSig & Macd > 0 ) 
                  {  Open ( TradeType.Buy, "SSL Buy");        
                      
                   } 
                 
             else if(C2 < 0  & Symbol.Ask < BaseLine & C7 < 50  & Macd < MacdSig & Macd < 0)  
                  {      Open(TradeType.Sell, "SSL Sell");
             
                  
                       
                   }                     
                       
              if (C2 < 0) // & C6 < C7) 
                   {    
                        Close (TradeType.Buy, "SSL Buy");
                   }
                       
               else if (C2 > 0) // & C6 > C7)  
                     {    
                         Close (TradeType.Sell, "SSL Sell");
                         
                     }
    }
           
            // New Function for Opening  trades
                                 
            private void Open(TradeType tradeType, string Label)
                
              { 
                   var ATR = Math.Round(atr.Result.Last(1) / Symbol.PipSize);
                  
                
                       
                    var position = Positions.Find( Label, SymbolName, tradeType);
        
                  if (position == null & Server.Time.Hour > 1 & Server.Time.Hour < 23)
                        
                    {
                        ExecuteMarketOrder (tradeType , SymbolName ,20, Label, SLM * ATR, TPM * ATR );  //TradeAmount/2
                        
                    }
            }
       
         private void Close(TradeType tradeType, string Label)
       
               {
                        foreach (var position in Positions.FindAll(Label, SymbolName, tradeType))
                     
                        ClosePosition(position);
               }
        
       
       
       
        
        
            // Handle cBot stop here
     }
       
    
 }
        
    

 

As per your suggestion , I ran the bot with Tick data and also found that there is no consistency  in the Visual and non visual testing.

The bot now did not show a profit with the Tick data, but it made 2000 trades more with the non visual vs visual testing and it stopped 2 weeks later when the balance ran to zero.

This is a problem which CTrader must address because it leaves a situation where no algo supplier can be be trusted with their bots on any broker platform.

Hi there,

We are still missing the SSL Channel indicator you are using. Can you please share it with us?

Best regards,

Panagiotis

You can find the SSL indicator on the community indicators forum at Spotware. but as you can see from the code I did not use it.

The code does not build without the indicator. Please either provide a link to the actual indicator or provide cBot code that builds without the need of a reference


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 05:35

RE: RE: Historic Data

triwer60 said: 

admin said: 

For the time being, the backtesting feature supports a year of historical data. More data is likely to be included in the future but it is difficult to say up to which date, though. Could you let us know why it is important to you to have such large range of data for backtesting? Thank you in advance.

This message is from 2013. I wonder if this problem with the historical data continues to this day. I mean if I would like more historical data for conjugate indicators or pairs in Forex, how could I access them?

Hi there,

Historical data is provided by brokers. If you need more data, please contact your broker.

Best regards,

Panagiotis


@PanagiotisCharalampous