Topics
30 Apr 2015, 12:45
 3856
 6
13 Oct 2014, 14:58
 2337
 1
06 Jul 2013, 10:05
 5283
 15
16 May 2013, 14:37
 3581
 6
26 Jan 2013, 10:30
 3455
 2
25 Jan 2013, 23:38
 7037
 13
14 Jan 2013, 19:36
 3007
 4
30 Dec 2012, 18:34
 7836
 20
24 Dec 2012, 13:31
 6260
 17
14 Dec 2012, 10:42
 3830
 7
14 Dec 2012, 10:31
 2920
 1
09 Dec 2012, 17:59
 6169
 10
Replies

cAlgoFx
24 Oct 2013, 12:08

It's advisable to run tests with different brokers especially if your robot executes on each tick.


@cAlgoFx

cAlgoFx
08 Oct 2013, 18:59

>50 robots and counting

At cAlgofx,we are constantly producing new robots or optimizing our trading strategies.

Free mt4 EA's on the FxPro website will be available on our website,you can request for customizations by sending us a request.

Meanwhile,send us your preferred EA(only free ones on the FxPro website) so we can give it a priority.

Happy Hunting


@cAlgoFx

cAlgoFx
03 Sep 2013, 10:37

RE:

algoforce said:

are you on freelance or elance sites? What is your email address? I have a project for you! email me at - max  @ forexgalaxy.net 

Hello,

Send all requests and inquiries to support@calgofx.com.

regards


@cAlgoFx

cAlgoFx
03 Sep 2013, 10:32

Hello,

Please,do bear this in mind when requesting multi-timeframe robots; that it cannot be back-tested for now till further notice from the developers.

Also,coding time has been increased to five working days(minimum) until we engage more skilled programmers to meet your needs.

Thanks for understanding

Happy hunting


@cAlgoFx

cAlgoFx
08 Aug 2013, 18:24

$1000 to $1000000

The $1000 to $1000000 challenge will return next week after the break due to technical difficulties.

Critics of our trading strategy are welcome.

Happy hunting


@cAlgoFx

cAlgoFx
05 Aug 2013, 23:23 ( Updated at: 21 Dec 2023, 09:20 )

It is possible,never give up.

 


@cAlgoFx

cAlgoFx
26 Jul 2013, 13:07

Hello,

Our systems have been down for close to a week and the technical guy away on holiday.

As we have communicated to you by mail,all client robots currently under development will be completed on time as scheduled.

We are very sorry for the inconvenience.

Kind regards


@cAlgoFx

cAlgoFx
10 Jul 2013, 17:32

New YouTube videos coming up at the close of trading this Friday.Stay tuned!


@cAlgoFx

cAlgoFx
06 Jul 2013, 09:45

News

Hello all,

We will not be updating any of our robots till we release the new Jediscalper which is currently undergoing an

extensive demo and live testing;we want to make sure it handles all market conditions efficiently.

Please bear with us.Meanwhile,you can avail yourself of our free 2 day coding service(our FxPro clients only) or request

this service starting at £70 per robot.

Feel free to contact us anytime.

Happy hunting


@cAlgoFx

cAlgoFx
03 Jul 2013, 12:46

So far the JEDI is having a good week after a tweak following last week's performance.


@cAlgoFx

cAlgoFx
25 Jun 2013, 21:30

Please be advised that JEDI2-H will be sent to clients with funded live accounts only as soon as we enforce a protection to the code.

This robot will be worth a lot of money but you are privileged to get it for free.

Remember you can view a demo of the robot on our YouTube channel or demo test it yourself before Live trading.

Happy hunting


@cAlgoFx

cAlgoFx
25 Jun 2013, 10:45

Challenge update

Trading began yesterday after 8:00AM(gmt) despite ISP problems.

We will not be revealing much in terms of strategy but will publish  weekly trade reports in the videos.

Happy hunting


@cAlgoFx

cAlgoFx
18 Jun 2013, 12:08

RE:
elodie said:

hi
why the download does not work ..?

http://www.calgofx.com/view_page?pid=jedi-scalper-1354962455

Hello,

We currently send updated versions to our FxPro clients.You can contact support@calgofx for more information.

 

Happy hunting


@cAlgoFx

cAlgoFx
17 Jun 2013, 15:36

$1000 to $1000000 Challenge

The JEDI will undertake an audacious task of turning a $1000 investment to $1000000 in a few months.

All the intraday trades will be recorded live daily and played on our YouTube channel - closed positions only will be on Twitter in real time.

Start date is 24/06/2013.Tune in to our YouTube channel,let's see if robots are better traders.

 

Happy Hunting


@cAlgoFx

cAlgoFx
06 Jun 2013, 12:03

RE:
budiali said:

Dear Sirs,

I am very new on cAlgo and I am not have any experience about creating the Robot for automatic trading on cAlgo.

Can cAlgo Robot development help me to create the robot for my strategy ?

Thank you for your attention

 


@cAlgoFx

cAlgoFx
31 May 2013, 13:46

RE:
hichem said:
using cAlgo.API;
using cAlgo.API.Requests;
using System;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;

namespace cAlgo.Robots
{
	[Robot]
	public class SIGLEVEL : Robot
	{
		private Position position;
		[Parameter(DefaultValue = 10000, MinValue = 1000)]
		public int InitialVolume
		{
			get;
			set;
		}
		[Parameter("Trade on bounce", DefaultValue = 0, MinValue = 0, MaxValue = 1)]
		public int Tbounce
		{
			get;
			set;
		}
		[Parameter("Trade on breakout", DefaultValue = 0, MinValue = 0, MaxValue = 1)]
		public int Tbreak
		{
			get;
			set;
		}
		[Parameter("Stop Loss (pips)", DefaultValue = 20, MinValue = 0)]
		public int StopLoss
		{
			get;
			set;
		}
		[Parameter("TakeProfit (pips)", DefaultValue = 20, MinValue = 0)]
		public int TakeProfit
		{
			get;
			set;
		}
		[Parameter("Trailing Stop (pips)", DefaultValue = 20, MinValue = 0)]
		public int TrailingStop
		{
			get;
			set;
		}
		[Parameter("Breakeven (pips)", DefaultValue = 0, MinValue = 0)]
		public int Breakeven
		{
			get;
			set;
		}
		[Parameter("Trigger (pips)", DefaultValue = 5, MinValue = 0)]
		public int Trigger
		{
			get;
			set;
		}
		[Parameter("Start time (Hour)", DefaultValue = 0, MinValue = 0, MaxValue = 24)]
		public int Starttime
		{
			get;
			set;
		}
		[Parameter("Stop time (Hour)", DefaultValue = 24, MinValue = 0, MaxValue = 24)]
		public int Stoptime
		{
			get;
			set;
		}
		[Parameter(DefaultValue = 1, MinValue = 0, MaxValue = 50)]
		public int RiskPct
		{
			get;
			set;
		}
		[Parameter(DefaultValue = 500, MinValue = 100, MaxValue = 500)]
		public int Leverage
		{
			get;
			set;
		}
		[Parameter("Robot Code", DefaultValue = 0, MinValue = 222)]
		public int code
		{
			get;
			set;
		}
		protected override void OnStart()
		{
			string text = "SIG LEVEL";
			string message = "PLEASE UPDATE ME.Contact cAlgoFx";
			double num = 2013.0;
			double num2 = 8.0;
			double num3 = 30.0;
			double num4 = (double)base.Server.Time.Year;
			double num5 = (double)base.Server.Time.Month;
			double num6 = (double)base.Server.Time.Day;
			bool flag = num4 > num || (num4 >= num && num5 > num2) || (num4 >= num && num5 >= num2 && num6 > num3);
			if (flag)
			{
				base.Print(message, new object[0]);
				base.Stop();
			}
			base.ChartObjects.DrawText("SIG LEVEL", text, StaticPosition.BottomLeft, new Colors?(Colors.Lime));
			double num7 = base.MarketSeries.High.Maximum(base.MarketSeries.High.Count);
			double num8 = base.MarketSeries.Low.Minimum(base.MarketSeries.Low.Count);
			double num9 = base.Symbol.PipSize * 100.0;
			double num10 = Math.Floor(num8 / num9) * num9;
			for (double num11 = num10; num11 <= num7 + num9; num11 += num9)
			{
				base.ChartObjects.DrawHorizontalLine("line_" + num11, num11, Colors.Blue, 1.0, LineStyle.Solid);
			}
		}
		protected override void OnBar()
		{
			if (base.Trade.IsExecuting)
			{
				return;
			}
			int num = base.Account.Positions.Count((Position position) => position.Label == this.code.ToString() && position.SymbolCode == base.Symbol.Code);
			int index = base.MarketSeries.Low.Count - 2;
			int index2 = base.MarketSeries.High.Count - 2;
			int index3 = base.MarketSeries.Low.Count - 3;
			int index4 = base.MarketSeries.High.Count - 3;
			int index5 = base.MarketSeries.Close.Count - 3;
			int index6 = base.MarketSeries.Open.Count - 2;
			int index7 = base.MarketSeries.Close.Count - 2;
			double num2 = base.MarketSeries.Open[index6];
			double num3 = base.MarketSeries.Close[index7];
			double num4 = base.MarketSeries.High[index2];
			double num5 = base.MarketSeries.Low[index];
			double arg_114_0 = base.MarketSeries.High[index4];
			double arg_126_0 = base.MarketSeries.Low[index3];
			double arg_139_0 = base.MarketSeries.Close[index5];
			double arg_14A_0 = base.MarketSeries.High.LastValue;
			double arg_15B_0 = base.MarketSeries.Low.LastValue;
			double lastValue = base.MarketSeries.Close.LastValue;
			double arg_17E_0 = base.MarketSeries.Open.LastValue;
			double num6 = (double)base.Server.Time.Hour;
			double a = base.Account.FreeMargin * (double)this.RiskPct / 100.0 / (double)(this.InitialVolume / this.Leverage);
			double num7 = Math.Max(1.0, Math.Min(50.0, Math.Round(a)));
			double num8 = base.Symbol.PipSize * 100.0;
			Math.Floor(lastValue / num8);
			bool flag = num6 >= (double)this.Starttime && num6 < (double)this.Stoptime;
			bool flag2 = (base.Symbol.Digits == 4 && Math.Truncate(num2) > Math.Truncate(num5) && Math.Truncate(num3) > Math.Truncate(num5)) || (base.Symbol.Digits == 5 && Math.Truncate(num2 * 100.0) > Math.Truncate(num5 * 100.0) && Math.Truncate(num3 * 100.0) > Math.Truncate(num5 * 100.0));
			bool flag3 = (base.Symbol.Digits == 4 && Math.Truncate(num2) < Math.Truncate(num4) && Math.Truncate(num3) < Math.Truncate(num4)) || (base.Symbol.Digits == 5 && Math.Truncate(num2 * 100.0) < Math.Truncate(num4 * 100.0) && Math.Truncate(num3 * 100.0) < Math.Truncate(num5 * 100.0));
			bool flag4 = (base.Symbol.Digits == 4 && Math.Truncate(num2) < Math.Truncate(num4) && Math.Truncate(num3) > Math.Truncate(num5)) || (base.Symbol.Digits == 5 && Math.Truncate(num3 * 100.0) > Math.Truncate(num5 * 100.0));
			bool flag5 = (base.Symbol.Digits == 4 && Math.Truncate(num2) > Math.Truncate(num5) && Math.Truncate(num3) < Math.Truncate(num4)) || (base.Symbol.Digits == 5 && Math.Truncate(num3 * 100.0) < Math.Truncate(num5 * 100.0));
			if (num < 1 && flag)
			{
				if ((flag2 && this.Tbounce > 0) || (flag4 && this.Tbreak > 0))
				{
					MarketOrderRequest request = new MarketOrderRequest(TradeType.Buy, (int)((double)this.InitialVolume * num7))
					{
						Label = this.code.ToString(),
						SlippagePips = new int?(1),
						StopLossPips = new int?(this.StopLoss),
						TakeProfitPips = new int?(this.TakeProfit)
					};
					base.Trade.Send(request);
					return;
				}
				if ((flag3 && this.Tbounce > 0) || (flag5 && this.Tbreak > 0))
				{
					MarketOrderRequest request2 = new MarketOrderRequest(TradeType.Sell, (int)((double)this.InitialVolume * num7))
					{
						Label = this.code.ToString(),
						SlippagePips = new int?(1),
						StopLossPips = new int?(this.StopLoss),
						TakeProfitPips = new int?(this.TakeProfit)
					};
					base.Trade.Send(request2);
				}
			}
		}
		protected override void OnTick()
		{
			int num = base.Account.Positions.Count((Position position) => position.Label == this.code.ToString() && position.SymbolCode == base.Symbol.Code);
			if (num < 1)
			{
				return;
			}
			foreach (Position current in base.Account.Positions)
			{
				if (current.Label == this.code.ToString() && current.SymbolCode == base.Symbol.Code)
				{
					if (current.TradeType == TradeType.Sell)
					{
						if (current.Pips >= (double)this.Trigger && this.Breakeven > 0)
						{
							double num2 = current.EntryPrice - (double)this.Breakeven * base.Symbol.PipSize;
							double num3 = num2;
							double? stopLoss = current.StopLoss;
							if (num3 < stopLoss.GetValueOrDefault() && stopLoss.HasValue)
							{
								base.Trade.ModifyPosition(current, new double?(num2), current.TakeProfit);
							}
						}
						if (current.Pips >= (double)this.Trigger && this.Breakeven < 1)
						{
							double num4 = base.Symbol.Ask + (double)this.TrailingStop * base.Symbol.PipSize;
							double num5 = num4;
							double? stopLoss2 = current.StopLoss;
							if (num5 < stopLoss2.GetValueOrDefault() && stopLoss2.HasValue)
							{
								base.Trade.ModifyPosition(current, new double?(num4), current.TakeProfit);
							}
						}
					}
					else
					{
						if (current.Pips >= (double)this.Trigger && this.Breakeven > 0)
						{
							double entryPrice = current.EntryPrice;
							double? stopLoss3 = current.StopLoss;
							double num6 = entryPrice;
							if (stopLoss3.GetValueOrDefault() < num6 && stopLoss3.HasValue)
							{
								base.Trade.ModifyPosition(current, new double?(entryPrice), current.TakeProfit);
							}
						}
						if (current.Pips >= (double)this.Trigger && this.Breakeven < 1)
						{
							double num7 = base.Symbol.Bid - (double)this.TrailingStop * base.Symbol.PipSize;
							double? stopLoss4 = current.StopLoss;
							double num8 = num7;
							if (stopLoss4.GetValueOrDefault() < num8 && stopLoss4.HasValue)
							{
								base.Trade.ModifyPosition(current, new double?(num7), current.TakeProfit);
							}
						}
					}
				}
			}
		}
		protected override void OnPositionOpened(Position openedPosition)
		{
			this.position = openedPosition;
			//openedPosition.SymbolCode == base.Symbol.Code;
			if (this.position.TradeType == TradeType.Sell)
			{
				if (this.position.Pips < 0.0)
				{
					if (this.position.StopLoss.HasValue)
					{
						double? stopLoss = this.position.StopLoss;
						double entryPrice = this.position.EntryPrice;
						double? num = stopLoss.HasValue ? new double?(stopLoss.GetValueOrDefault() - entryPrice) : null;
						double num2 = base.Symbol.PipSize * (double)this.StopLoss;
						if (num.GetValueOrDefault() <= num2 || !num.HasValue)
						{
							return;
						}
					}
					base.Trade.ModifyPosition(this.position, new double?(this.position.EntryPrice + base.Symbol.PipSize * (double)this.StopLoss), this.position.TakeProfit);
					return;
				}
			}
			else
			{
				if (this.position.Pips < 0.0)
				{
					if (this.position.StopLoss.HasValue)
					{
						double entryPrice2 = this.position.EntryPrice;
						double? stopLoss2 = this.position.StopLoss;
						double? num3 = stopLoss2.HasValue ? new double?(entryPrice2 - stopLoss2.GetValueOrDefault()) : null;
						double num4 = base.Symbol.PipSize * (double)this.StopLoss;
						if (num3.GetValueOrDefault() <= num4 || !num3.HasValue)
						{
							return;
						}
					}
					base.Trade.ModifyPosition(this.position, new double?(this.position.EntryPrice - base.Symbol.PipSize * (double)this.StopLoss), this.position.TakeProfit);
				}
			}
		}
		protected override void OnError(Error error)
		{
			base.Print("{0}", new object[]
			{
				error.Code
			});
		}
	}
}

 

Hello,

Your point is?


@cAlgoFx

cAlgoFx
31 May 2013, 12:51 ( Updated at: 21 Dec 2023, 09:20 )

A test version of the Significant Level robot has been released.

You have to enable a trade condition(Bounce / Break as highlighted below) or both by setting them to 1.

 

We will release a later version with our trading strategy.

Please inform us of the features you will like to see in the robot.

calgofx.com


Happy hunting


@cAlgoFx

cAlgoFx
27 May 2013, 14:34

Live trading tweets

Hello,

Live trading with our algorithms will be tweeted in real-time from next week.

You can also view Live trading videos of our high frequency algos on our YouTube channel.

Contact us or visit our webpage for more info.

Happy hunting!

 


@cAlgoFx

cAlgoFx
16 May 2013, 22:03

RE:

Alternatively,you can manually specify your breakout levels in a robot as an input.Am sure it  will work thesame.

Kind regards


@cAlgoFx

cAlgoFx
05 May 2013, 20:19

RE: RE: RE:
RaphBok said:
Scott said:

http://www.scyware.com/ can be used for robots with multiple timeframes 

Thanks for the info guys.

Hello,

Send your full specification to support@calgofx.com or tech@calgofx.com,we have built similar robots for our clients.

regards


@cAlgoFx