Topics
08 Dec 2023, 16:21
 486
 0
05 Jan 2023, 08:04
 683
 3
23 May 2021, 13:59
 1547
 9
27 Sep 2020, 13:26
 1234
 3
Replies

ctid2032775
29 May 2021, 11:34

RE: RE: RE:

amusleh said:

ctid2032775 said:

amusleh said:

Hi,

You should use a valid redirect URI, its clearly mentioned on WPF demo readme file.

The redirect URI on your application is for API playground, you can't use that, instead use something like: https://ctrader.com/

Hi,

many thanks for your hint - now the application starts as expected...

But, there is (at least) one issue - the chart area remains empty (even if it is possible to select different time frames)!

BR,
Christian

Hi,

Can you tell me on which broker trading account you tested the demo?

Spotware and RoboForex


@ctid2032775

ctid2032775
28 May 2021, 17:05

RE:

amusleh said:

Hi,

You should use a valid redirect URI, its clearly mentioned on WPF demo readme file.

The redirect URI on your application is for API playground, you can't use that, instead use something like: https://ctrader.com/

Hi,

many thanks for your hint - now the application starts as expected...

But, there is (at least) one issue - the chart area remains empty (even if it is possible to select different time frames)!

BR,
Christian


@ctid2032775

ctid2032775
20 Apr 2021, 09:14

RE:

PanagiotisCharalampous said:

Hi ctid2032775,

I am not sure what do you expect to happen or what do you mean by "primitive" functionality. It is one million instructions that need to be executed and the result stored in memory and logged in a file. I would expect some load on the computer.

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

sorry for the hard wording ;-) but I didn't expect a simple loop with just a print command to generate such a high CPU load (the memory consumption is logical)...

Could you reproduce the freezing of the frontend?
Is this a "normal" behavior and needs to be prohibited by the cBot functionality (e. g. reducing the number of logged information or regularly deleting the log)?
If yes - is there a way to realize a "rolling" log (i. e. deleting "older" messages when the size of the log exceeds a certain amount of text)?

Many thanks for your support and best regards,
Christian


@ctid2032775

ctid2032775
19 Apr 2021, 20:55

RE:

PanagiotisCharalampous said:

Hi ctid2032775,

Can you share your cBot code? We will need it to investigate further.

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

it doesn't seem to be related to the trading algorithm - I was able to reproduce it even with a very simple OnStart function:

protected override void OnStart()
{
    for (int i = 0; i < 100; i++)
    {
        for (int j = 0; j < 100; j++)
        {
            for (int k = 0; k < 100; k++)
            {
                Print("Cascaded loop: i = {0} - j = {1} - k = {2}", i, j, k);
            }
        }
    }
}

Right now I could see the same behavior in the latest Public Beta 4.0...

In addition to that it's confusing that even such a "primitive" functionality produces high CPU load - in my case it was more than 30% on a virtual machine with 6 (virtual) processors (host CPU is i5-10600K) and 8 GB memory.

Many thanks and regards,
Christian


@ctid2032775

ctid2032775
28 Dec 2020, 11:12

RE:

Spotware said:

Hi Christian,

cTrader Deskop 4.0 will come out soon but .Net Core 5.0 migration will not be a part of this release. We plan to release the migration later next year.

 Best Regards,

Panagiotis 

Join us on Telegram  

Thanks for the update!


@ctid2032775

ctid2032775
28 Dec 2020, 10:51

RE:

PanagiotisCharalampous said:

Hi JeanPaul,

Thanks for taking the time to provide us all this useful feedback and thanks for your nice words. I will just comment one of your points which is 

It looks like Spotware style is to do small but steady steps.

Not really but we have not added new features in cTrader Automate for some time because we are heavily working on this

although using an outdated version of .NET,

We are migrating the entire codebase to .Net Core 5, so we halted all the rest of the development. When we finish with this, you should expect much more frequent updates and features for cTrader Automate.

 Best Regards,

Panagiotis 

Join us on Telegram  

Hi Panagiotis,

is there a roadmap available with the release date of cTrader 4.0?

The reason for my question is that I am working on a cBot that uses an ML library that's not available for .Net Core. Right now I am working on the latest features - after this is finished I will migrate the cBot to ML.Net (available for .Net Core)...

But, to keep the cBot working I have to migrate to ML.Net BEFORE the (automatic?) update to cTrader 4.0 is installed!

Many thanks and best regards,
Christian


@ctid2032775

ctid2032775
14 Dec 2020, 14:56

RE:

PanagiotisCharalampous said:

Hi ctid2032775,

Please try again now. Seems something went wrong in the upload process.

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

it's working now!

Many thanks and regards,
Christian


@ctid2032775

ctid2032775
11 Dec 2020, 09:56

RE:

PanagiotisCharalampous said:

Hi ctid2032775,

Can you please get the latest version of proto files and try again?

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

unfortunately I have the same issues as mentioned in the original post with the latest proto files!

BR,
Christian


@ctid2032775

ctid2032775
30 Nov 2020, 11:59

Any ideas?


@ctid2032775

ctid2032775
23 Nov 2020, 08:00

RE:

enrico.rossi.7 said:

I've noted it happens from last update ... hope it is a bug and Spotware patch it ASAP.. allow backtesting and optimization only when market are open it is a big limitation 

Not only backtesting and optimization is a problem - for me I cannot even start a cBot when markets are closed and some were "killed" during last weekend!

So, when I want to run a cBot 24/7 or want to start it on Sunday it's currently not possible!


@ctid2032775

ctid2032775
22 Nov 2020, 14:27

Hi,

the same happens here with RoboForex demo account:

  • Some of my cBots running on a Minix Neo are still running, others were "killed" and cannot be started anymore
  • In backtesting I cannot even see the chart (is empty)
  • Optimization is not working, as well

I guessed that it's because of closed markets (weekend). But backtesting was always possible even on Saturday and Sunday...

Hope that this starts working as soon as possible!

BR,
Christian


@ctid2032775

ctid2032775
26 Oct 2020, 11:08

RE:

PanagiotisCharalampous said:

Hi Christian,

It is not clear to me what is the problem here. Can you provide steps to reproduce this behavior? 

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

thanks for your reply - I guess it was something in my code. Because after changing the logic even I cannot reproduce the issue...

BR,
Christian


@ctid2032775

ctid2032775
22 Oct 2020, 09:35

RE:

prosteel1 said:

Hi,

   I've only just found that Visual Studio has a Machine Learning implimentation called ML.Net 

 

It looks like it might allow machine learning to be used in cTrader but I don't see many posts about it. 

Does it work or not?

It seems like the first step is to write a .csv file from Ctrader, then train a model in Visual Studio, then use that model in a cBot.

Any further info or thoughts would be appreciated.

Regards

Hi,

I'm using machine learning in one of my cBots for training a model (C4.5 decision tree), identifying the accuracy (TP, FP, TN, FN) and making predictions before opening a position.

It's working fine but I'm using the Accord.NET framework instead of ML.NET. With this library everything can be done directly in a cBot without writing a csv file and develop an additional "stand alone" application for the machine learning part!

There are a lot of documents and code examples available and the modules are really well explained. You can find all information under Accord.Net Framework.

BR,
Christian


@ctid2032775

ctid2032775
29 Sep 2020, 09:00 ( Updated at: 21 Dec 2023, 09:22 )

RE: RE: RE:

afhacker said:

ctid2032775 said:

PanagiotisCharalampous said:

Hi Christian,

The procedure explains how to compile C# files. this is what I use as well and works fine.

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

when I try this I get the following error:

Translation:

The system cannot find the mentioned file.

Can you please provide me with exactly the version you are using to compile .proto into .cs!

Thanks and best regards,
Christian

You can compile the Open API proto files with the latest version of Protobuf, you can use my library which is based on latest version of Protobuf: 

 

Hi,

many thanks for your suggestion but it seems that your message classes do not include the latest changes for cServer 7 (e. g. "IncludeArchivedSymbols")...

Btw, as mentioned in my reply to Panagiotis it was my mistake and it's working now!

Best regards,
Christian


@ctid2032775

ctid2032775
29 Sep 2020, 08:55

RE:

PanagiotisCharalampous said:

Hi Christian,

You do not seem to follow the instructions in the documentation. Here is the generator and here is the command

ProtoGen.exe protofile.proto -output_directory=C:\output_folder --include_imports

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

sorry for the inconvenience, it was my mistake - I guess I used the instructions on Google Developer site for protoc v3.

Now it's working!

Many thanks and best regards,
Christian


@ctid2032775

ctid2032775
28 Sep 2020, 19:58

RE:

PanagiotisCharalampous said:

Hi Christian,

The procedure explains how to compile C# files. this is what I use as well and works fine.

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

when I try this I get the following error:

Translation:

The system cannot find the mentioned file.

Can you please provide me with exactly the version you are using to compile .proto into .cs!

Thanks and best regards,
Christian


@ctid2032775

ctid2032775
28 Sep 2020, 08:42

RE:

PanagiotisCharalampous said:

Hi Christian,

You can find instructions on how to compile the .proto files here.

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

thanks for your reply - I already tried to use the linked version to compile the .proto files into C# classes...

But, this version only supports C++, Java and Python. And the Google Developer Site says that only protoc3 supports C#...

BR,
Christian


@ctid2032775

ctid2032775
08 Sep 2020, 13:02

RE:

PanagiotisCharalampous said:

Hi Christian,

You should create your own structures that will host the information and have fields that your determine the type of the tick. Then just merge all information in one list and sort it by timestamp.

Best Regards,

Panagiotis 

Join us on Telegram

Thanks again!


@ctid2032775

ctid2032775
08 Sep 2020, 12:45

RE:

PanagiotisCharalampous said:

Hi Christian,

You can't so if you need to distinguish them, it would be better to request them separately.

Best Regards,

Panagiotis 

Join us on Telegram

Hi Panagiotis,

thanks for your reply even if this is a little bit inconvinient as (tick) spots are mostly containing both (ASK, BID)...

As sometimes either ASK or BID and sometimes both values are present at the same timestamp it will be quite laborious to join it - do you have an idea how this could be done in an easy way?

Thanks and regards,
Christian


@ctid2032775

ctid2032775
08 Sep 2020, 10:19

RE:

PanagiotisCharalampous said:

Hi MZen,

1) You can add two types to the message. In C# it would look like this

            var _msg = ProtoOAGetTickDataReq.CreateBuilder();
            _msg.SetCtidTraderAccountId(accountId);
            _msg.SetSymbolId(symbolId);
            _msg.SetType(ProtoOAQuoteType.ASK);
            _msg.SetType(ProtoOAQuoteType.BID);
            _msg.SetFromTimestamp(from);
            _msg.SetToTimestamp(to);

2) ProtoOAGetTickDataRes has a hasMore field. If this is set to true, it means more messages are following. There is nothing you need to do, just read the next messages until hasMore becomes false.

Best Regards,

Panagiotis 

Join us on Telegram

 

Hi Panagiotis,

maybe I'm just to silly to finally get it but for me this is still not 100% clear...

In my application I send a request for tick data for a specific time frame and with both types (ASK, BID) as mentioned above. The received response contains a list of ticks:

Tick: 118063 EURUSD
Timestamp: 1599549334585
Tick: -1 EURUSD
Timestamp: -3807
Tick: -1 EURUSD
Timestamp: -234
Tick: -1 EURUSD
Timestamp: -543

This means 1st tick is at the given timestamp with value is 1.18063 (118063 / 100000) for EURUSD, right?

But how is it possible to get the information if this is the ASK price or the BID price?

Many thanks and regards,
Christian


@ctid2032775