Topics
17 May 2022, 11:22
 936
 3
14 Dec 2020, 13:38
 1542
 3
Replies

ClickAlgo
19 Apr 2016, 06:47

This post has been removed by moderator due to a violation of the EULA. Broker discussions are prohibited in cTDN.


@ClickAlgo

ClickAlgo
18 Apr 2016, 17:53

I am developing on Windows 10, using Visual Studio Community 2015, update 2 in C#.  The VSIX installer reports that it is unable to install on the Visual Studio product I am using so I cannot edit using Visual Studio from within cAlgo.


Take a look at the url below, also what you are asking should be possible if you get the design correct.

http://www.clickalgo.com/blog/post/visual-studio-ctrader-programming.aspx

 


@ClickAlgo

ClickAlgo
24 Mar 2016, 14:34

TextBox Issue: I agree, this is an annoying feature, it should only update when the user has entered a carriage return or the text box has lost focus.


@ClickAlgo

ClickAlgo
23 Mar 2016, 07:19 ( Updated at: 21 Dec 2023, 09:20 )

Hi,

Have you tried opening your main project solution and then adding the other projects to the solution manually, save this solution and next time you open it you will have everything. If you look at the image below you have a cBot and I added an existing indicator project to it.

 


@ClickAlgo

ClickAlgo
23 Mar 2016, 07:08

sorry about that, the link has been updated, can you try again please.


@ClickAlgo

ClickAlgo
14 Mar 2016, 16:33

RE:

Paul_Hayes said:

Hi Stech,

I would use TFS or GIT with Visual Studio for Source Integrity (version control) , they are both free for small teams and amazing tools. One simple feature is that if you make a mistake you can roll-back to the last time you checked in the code.

You can use drop-box for weekly backups.

Regards,

Paul.

I forgot to say that when you check-in your code it is all safe on a Microsoft Cloud Server.


@ClickAlgo

ClickAlgo
14 Mar 2016, 16:32

Hi Stech,

I would use TFS or GIT with Visual Studio for Source Integrity (version control) , they are both free for small teams and amazing tools. One simple feature is that if you make a mistake you can roll-back to the last time you checked in the code.

You can use drop-box for weekly backups.

Regards,

Paul.


@ClickAlgo

ClickAlgo
07 Mar 2016, 06:19

Thank you for your time and effort in sharing this. :-)


@ClickAlgo

ClickAlgo
12 Feb 2016, 09:42

Hi,

I will not give you the solution, but instead give you some hints so you can learn and solve it yourself.

The conditions will always be true as soon as HasCrossedAbove is true, what you need is to implement a trigger that gets set and then reset when the conditions are false. So the first time the condition is true the trigger is activated, if it is activated do not play sound, when it is reset it becomes deactivated. There are many other ways to solve this.

Look up software engineering design patterns for this kind of scenario, this pattern happens time and time again, almost all simple to complex logic has a design pattern.

https://www.redweb.com/agency/blog/2014/january/design-patterns-part-one-brief-introduction


@ClickAlgo

ClickAlgo
31 Jan 2016, 17:31

One other thing is that I would add clean up code to disconnect from the database, kill any session objects etc, even though the .NET framework uses a garbage collector to do all this, it is still good housekeeping to make you clean up after the party.


@ClickAlgo

ClickAlgo
31 Jan 2016, 17:25

Hello my friend,

declare this as a private variable in the class

System.Timers.Timer OneMinuteTimer = new System.Timers.Timer();

 protected override void OnStop()
{
     OneMinuteTimer.Enabled = false;
}

Now you can use the private variable in the scope of the class to stop it, even the OnStop event class of cAlgo, you are correct this will stop the timer and it is not threaded. There could be a possibility that when you stop the robot the instance is still in memory. The robot instance should really unload from memory when you stop the instance in cAlgo. If you feel that this is not the case I would provide Spotware with example code, log files etc, so they may investigate.

I also sent you a Skype message, contact me if you need help.

Paul.

 


@ClickAlgo

ClickAlgo
29 Jan 2016, 12:31

Congratulations on your strategy.


@ClickAlgo

ClickAlgo
21 Jan 2016, 22:52

Its easy to do, just setup an account with TFS and from within Visual Studio add your solution to source control and it will automatically connect to your account, do not forget to map your working directory to Sources Robots for algos.

You can have individual cBot projects in TFS or if your cBot project references other projects, they will all be part of the solution.

This line was removed by moderator.

 


@ClickAlgo

ClickAlgo
17 Jan 2016, 15:46

Hi Danny,

Take a look at this:

/api/reference/positions/closed


@ClickAlgo

ClickAlgo
30 Dec 2015, 11:44

ok, i see your problem now. :-)


@ClickAlgo

ClickAlgo
30 Dec 2015, 08:41

Hello Simon,

Just write a utility program that opens the CSV file and converts it to the format required for cTrader, unfortunately back testing will only accept 1m bars of data and not Tick data, you could try a small sample of tick data and see what happens.

Look at using the LINQ2CSV Library to read/write CSV files, its very simple to use.

It needs to be in the following format for cTrader import.

CSV file format

  • Date
  • Time
  • Open Price
  • High Price
  • Low Price
  • Close Price
  • Volume

Example:

2003.06.18,16:01,1.11423,1.11428,1.11332,1.11374,19
2003.06.18,16:02,1.11364,1.11436,1.11361,1.11405,7
2003.06.18,16:03,1.11402,1.11455,1.11400,1.11440,5
2003.06.18,16:04,1.11446,1.11461,1.11401,1.11447,14


@ClickAlgo

ClickAlgo
28 Dec 2015, 22:56

Hello Spotware,

I would like this answer too, I need to capture the event when a pending order is rejected while it is getting filled which could be hours after it has been placed.

It looks like the OnError event method captures errors that occur with Positions, could this method get called when a pending order is rejected for any reason? If not does anybody know of a way to get the TradeResult of a rejected pending order.

protected override void OnError(Error error)
{
    var result = error.TradeResult;
    Print(result);
}

Many Thanks.


@ClickAlgo

ClickAlgo
24 Dec 2015, 12:26

oh, i see, sorry about that.


@ClickAlgo