BTCUSD Bitcoin with API
BTCUSD Bitcoin with API
14 Sep 2017, 14:53
Hi Spotware,
I am attempting to submit an order through the API with the ExecuteMarketOrder method, an error is occurring which is coming from your compiled code.
Crashed in OnTick with DivideByZeroException: Attempted to divide by zero.
ExecuteMarketOrder (TradeType.Buy, Symbol, 2, String.Empty, null, null);
Please, can you help me out here.
Paul Hayes
Sales & Marketing
Email: contact@clickalgo.com
Phone: (44) 203 289 6573
Website: https://clickalgo.com
Replies
ClickAlgo
14 Sep 2017, 15:14
ok, after creating a basic cBot and attempting to execute the code it worked ok, the exception is occurring on the ExecuteMarketOrder line of code in the main cBot project, so I apologise it is not in your assemblies where the problem lies. Looks like the debugging is throwing a wobbly. I should have done the basic test first before posting, sorry about that. :-)
@ClickAlgo
ClickAlgo
14 Sep 2017, 15:23
Hello Again,
Actually, there is a bug, I was correct, it only happens when you attempt a backtest, the sample code is below:
using System; using System.Linq; using cAlgo.API; using cAlgo.API.Indicators; using cAlgo.API.Internals; using cAlgo.Indicators; namespace cAlgo { [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)] public class NewcBot : Robot { [Parameter(DefaultValue = 0.0)] public double Parameter { get; set; } protected override void OnStart() { TradeResult result = ExecuteMarketOrder(TradeType.Buy, Symbol, 2, String.Empty, null, null); } protected override void OnTick() { // Put your core logic here } protected override void OnStop() { // Put your deinitialization logic here } } }
@ClickAlgo
ClickAlgo
21 Sep 2017, 17:00
( Updated at: 21 Dec 2023, 09:20 )
Hi,
Another issue that could be related is that the live spread was 1500 pips, but your maximum in the backtest settings is only 30.
@ClickAlgo
PanagiotisCharalampous
21 Sep 2017, 17:12
Hi Paul,
Thanks for spotting this. We will change this to accept more pips.
Best Regards,
Panagiotis
@PanagiotisCharalampous
nohejl027@gmail.com
07 Dec 2017, 18:26
( Updated at: 21 Dec 2023, 09:20 )
RE:
Paul_Hayes said:
Hi Spotware,
I am attempting to submit an order through the API with the ExecuteMarketOrder method, an error is occurring which is coming from your compiled code.
Crashed in OnTick with DivideByZeroException: Attempted to divide by zero.
ExecuteMarketOrder (TradeType.Buy, Symbol, 2, String.Empty, null, null);
Please, can you help me out here.
Paul Hayes
Sales & Marketing
Email: contact@clickalgo.com
Phone: (44) 203 289 6573
Website: https://clickalgo.com
I am getting the same error. Is there any news about this issue?
@nohejl027@gmail.com
ap11
08 Dec 2017, 10:00
( Updated at: 21 Dec 2023, 09:20 )
RE: RE:
Hi,
The problem is that cAlgo does not support decimal volumes. All volumes in cAlgo API has type long. It causes following issues with BTCUSD:
- You can't open positions or create pending orders with decimal part via cAlgo APIs
- You won't get correct value for existing Position, PendingOrder or HistoricalTrade if volume has decimal part
- Backtesting for this symbols is not working as Symbol.VolumeStep is equal to 0 after casting from double to long. That's why you get DivideByZeroException
We are fixing this issues. But this fixes will be in the next release of cTrader.
nohejl027@gmail.com said:
Paul_Hayes said:
Hi Spotware,
I am attempting to submit an order through the API with the ExecuteMarketOrder method, an error is occurring which is coming from your compiled code.
Crashed in OnTick with DivideByZeroException: Attempted to divide by zero.
ExecuteMarketOrder (TradeType.Buy, Symbol, 2, String.Empty, null, null);
Please, can you help me out here.
Paul Hayes
Sales & Marketing
Email: contact@clickalgo.com
Phone: (44) 203 289 6573
Website: https://clickalgo.comI am getting the same error. Is there any news about this issue?
@ap11
Spotware
14 Sep 2017, 15:02
Hi Paul,
Thanks for reporting this. Could you please share a cBot that reproduces this issue, as well as the broker on which this happens?
Best Regards,
cTrader Team
@Spotware