Topics
Replies
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: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
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
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
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
18 Jun 2013, 12:08
RE:
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
31 May 2013, 13:46
RE:
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.
Happy hunting
@cAlgoFx
cAlgoFx
05 May 2013, 20:19
RE: RE: RE:
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
cAlgoFx
24 Oct 2013, 12:08
It's advisable to run tests with different brokers especially if your robot executes on each tick.
@cAlgoFx