Topics
Replies
PanagiotisCharalampous
30 Jul 2019, 16:57
Hi therealnakedtrader,
Then you can consider this
using System;
using System.Collections.Generic;
using System.Linq;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;
namespace cAlgo.Robots
{
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class NewcBot : Robot
{
Dictionary<Position, double> _positions;
protected override void OnStart()
{
_positions = new Dictionary<Position, double>();
Positions.Opened += Positions_Opened;
foreach (var position in Positions)
_positions.Add(position, 0);
}
private void Positions_Opened(PositionOpenedEventArgs obj)
{
_positions.Add(obj.Position, 0);
}
protected override void OnTick()
{
foreach (var position in Positions)
{
_positions[position] = Math.Max(_positions[position], position.Pips);
}
}
protected override void OnStop()
{
// Put your deinitialization logic here
}
}
}
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 16:34
Hi therealnakedtrader,
Try the example below
using System;
using System.Linq;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;
namespace cAlgo.Robots
{
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class NewcBot : Robot
{
double _maxPips;
protected override void OnStart()
{
// Put your initialization logic here
}
protected override void OnTick()
{
if (Positions.Count > 0)
{
_maxPips = Math.Max(_maxPips, Positions.Max(x => x.Pips));
}
Print("Max Pips: " + _maxPips);
}
protected override void OnStop()
{
// Put your deinitialization logic here
}
}
}
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 15:18
Hi ancdriver239,
It will be shown as AUD.
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 15:14
Hi Hugo,
Change the line below
_ema = Indicators.ExponentialMovingAverage(MarketSeries.Close, 14);
to
_ema = Indicators.ExponentialMovingAverage(MarketSeries.Close, 3);
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 11:40
Hi Symposium,
Did you check the logs? Are the orders executed?
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 10:44
Hi Symposium,
I just tried it and worked fine.
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 10:16
Hi FireMyst,
As usual, please post this in the Suggestions section :)
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 10:13
Hi nguyenbaocuong,
It is not possible to use a two step authentication email account to send notifications using cTrader. You could create a separate email address for this purpose.
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 10:02
Hi Symposium,
Can you please explain what do you mean it doesn;t work? What do you expect it to do, what does it do instead and how can we reproduce the behavior?
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 09:37
Hi Aiki1000,
Thanks for posting in our forum. If you need the last value of a DataSeries, use LastValue. If you need any value before the last value, use Last(x) with x counting backwards e.g. if you need the bar before the last value, use Last(1).
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 09:30
( Updated at: 21 Dec 2023, 09:21 )
Hi nguyenbaocuong,
Go to Settings > Email and set up the necessary information. See below

Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 09:18
Hi ancdriver239,
Thanks for posting in our forum. No there isn't. The concept behind cTrader Copy is that you invest in the strategy as a whole and not in individual positions.
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
30 Jul 2019, 09:16
Hi Hugo,
See an example below
using System;
using cAlgo.API;
using cAlgo.API.Internals;
using cAlgo.API.Indicators;
using cAlgo.Indicators;
namespace cAlgo
{
[Indicator(IsOverlay = true, TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class NewIndicator : Indicator
{
[Parameter(DefaultValue = 1)]
public int Offset { get; set; }
[Output("Main")]
public IndicatorDataSeries Result { get; set; }
ExponentialMovingAverage _ema;
protected override void Initialize()
{
_ema = Indicators.ExponentialMovingAverage(MarketSeries.Close, 14);
}
public override void Calculate(int index)
{
// Calculate value at specified index
Result[index + Offset] = _ema.Result[index];
}
}
}
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
29 Jul 2019, 16:46
Hi useretinv,
See an example below
using System;
using System.Linq;
using cAlgo.API;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;
using cAlgo.Indicators;
namespace cAlgo.Robots
{
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class NewcBot : Robot
{
[Parameter(DefaultValue = 0.0)]
public double Parameter { get; set; }
protected override void OnStart()
{
// Put your initialization logic here
}
protected override void OnTick()
{
foreach (var position in Positions)
{
if (position.NetProfit > 0 && position.SymbolName == Symbol.Name)
position.Close();
}
}
protected override void OnStop()
{
// Put your deinitialization logic here
}
}
}
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
29 Jul 2019, 11:45
Hi furko.zoltan1989,
Thanks for posting in our forum. Just push the stop button and the cBot will stop.
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
29 Jul 2019, 11:19
Hi FireMyst,
It will override all locally saved settings not only bot instances.
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
29 Jul 2019, 10:34
Hi Vitaly,
This is caused because you use a number of periods for which backtesting doesn't have data loaded at the moment.
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
29 Jul 2019, 09:39
Hi FireMyst,
Go to C:\Users\User\AppData\Roaming\Broker cTrader\Settings and copy the settings file. It should copy your cBot instances to the computer.
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
29 Jul 2019, 09:36
Hi Ben,
Yes we did. The team will consider this suggestion for a future update.
Best Regards,
Panagiotis
@PanagiotisCharalampous
PanagiotisCharalampous
31 Jul 2019, 09:09
Hi leighc1,
Thanks for posting in our forum. In cTrader Desktop you can detach a chart and maximize by clicking on the "Detach Chart" button on the chart tab. I am not sure what steps you follow in point 2. Can you be more specific? A short video would help understand what you are doing.
Best Regards,
Panagiotis
@PanagiotisCharalampous