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

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

PanagiotisCharalampous
09 May 2024, 05:33

Dear trader,

These issues are under investigation and will be fixed soon.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 05:31

Hi there,

What do you mean when you say it is not supported?

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 05:26

RE: RE: FIX API login response: 58=RET_NO_SUCH_LOGIN

fcvisser said: 

Spotware said: 

Hi there,

The message indicates that the account number you use does not exist. Can you share a screenshot of your cTrader's FIX API form?

Best regards,

Panagiotis

Hi Panagiotis

I've figured out why this is not working. The details from the web-based application for the broker is as per below. This works. However this is different to what I see in the desktop application when I view the details. The desktop details does not work. Do you know why they would show different information?

Kind Regards
Fred

 

Thanks, we will check why this happens


@PanagiotisCharalampous

PanagiotisCharalampous
09 May 2024, 05:23

RE: RE: please, i need help

jacvhh said: 

PanagiotisCharalampous said: 

Hi there,

What kind of help do you need?

Best regards,

Panagiotis

Hi Panagiotis!

The console send me the broker has technical error.

I has 2 advises in the code but i can't to resolve.

I need help.

Thanks.

Hi there,

The console just prints warnings, the code build successfully, you should not have any problems. If you want to resolve the warnings, feel free to share your code so that we can advise further.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
08 May 2024, 12:05

RE: RE: RE: RE: FIX API login response: 58=RET_NO_SUCH_LOGIN

fcvisser said: 

PanagiotisCharalampous said: 

fcvisser said: 

Spotware said: 

Hi there,

The message indicates that the account number you use does not exist. Can you share a screenshot of your cTrader's FIX API form?

Best regards,

Panagiotis

Hi Panagiotos

Thanks for getting back to me. Sure - here you go.

I'll also create another demo account and see if that perhaps work…

Kind Regards

Fred

Hi Fred,

Can you share the complete FIX message you sent including the account number? You seem to be doing something wrong there.

Best regards,

Panagiotis 

Hi - the fix message is generated by the Python example programme provided by cTrader, and is in my first message. I've only removed the username and password, which is configured in the config file. Apologies, but am I missing something?

 

Cheers

Fred

Hi Fred, 

I need to see your exact configuration or the exact message you are sending. As per the response the provided account number is wrong.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
08 May 2024, 11:54

RE: RE: RE: RE: Where is Advanced Protection Settings?

peterjohnbale said: 

Spotware said: 

peterjohnbale said: 

PanagiotisCharalampous said: 

Hi there,

Are you using cTrader Desktop or cTrader for Mac?

Best regards,

Panagiotis1 

Hello - I am using cTrader for Mac. Thanks, Pete

Advanced protection is not available at the moment for cTrader for Mac. It will be added in a future update

Ahh right okay. Do you have any idea when this update may be?

Hi Pete,

Unfortunately we do not have an ETA at the moment.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
08 May 2024, 11:48

Hi there,

The issue is under investigation and will be resolved asap.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
08 May 2024, 11:45

Hi there,

Can you provide specific examples?

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
08 May 2024, 11:41

Hi there,

What kind of help do you need?

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
08 May 2024, 11:38

Hi there, 

We are investigating this issue and it will be resolved asap.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
08 May 2024, 11:32

Hi there

Originally on my ATP move SL to Break even had a tab to enter how many pips past Break even You would like to place it but that tab has disappeared how do I get it back,?

It's still there

 

Using the ATP can it be used as partial TP and carry on running in trade to Actual TP, if so how?

Yes, see the image above. You can set the pips and the partial volume to close.

Best regards,

Panagiotis


@PanagiotisCharalampous

PanagiotisCharalampous
08 May 2024, 11:29

RE: RE: FIX API login response: 58=RET_NO_SUCH_LOGIN

fcvisser said: 

Spotware said: 

Hi there,

The message indicates that the account number you use does not exist. Can you share a screenshot of your cTrader's FIX API form?

Best regards,

Panagiotis

Hi Panagiotos

Thanks for getting back to me. Sure - here you go.

I'll also create another demo account and see if that perhaps work…

Kind Regards

Fred

Hi Fred,

Can you share the complete FIX message you sent including the account number? You seem to be doing something wrong there.

Best regards,

Panagiotis 


@PanagiotisCharalampous