Volume with different brokers
Volume with different brokers
06 Apr 2018, 19:07
Dear Panagiotis,
I opened recently an account with one more broker, Kawase.
The line of code, which was working perfectly with FxPro
"
...
protected void ManageRisk()
{
equity = Account.Equity;
var AmountRisked = equity * risk;
var normCostOfRange = range * (1 + BreakoutOffset / 100) / Symbol.PipSize * Symbol.PipValue;
Print("normCostofRange = ", normCostOfRange);
var Quantity = AmountRisked / normCostOfRange;
volume = Symbol.NormalizeVolume(Quantity, RoundingMode.ToNearest);
Print("This is the volume checked = {0}, Quantity = {1}, PipSize = {2}, PipDigits = {3}", volume, Quantity, Symbol.PipSize, PipDigits);
SL = Math.Round(range * (1 + BreakoutOffset / 100) / Symbol.PipSize, PipDigits, MidpointRounding.AwayFromZero);
TP = Math.Round(range * (1 + TPOffset / 100) / Symbol.PipSize, PipDigits, MidpointRounding.AwayFromZero);
Print("AmountRisked = {0}, Quantity = {1}, normCostOfRange = {2}", AmountRisked, Quantity, normCostOfRange);
}
...
"
with this broker has given me differnt result
"
06/04/2018 18:57:06.001 | cBot "New Yourk Range v.3" was started successfully for SWITZERLAND 20, m15.
06/04/2018 18:57:06.126 | Instance NYR v.3 SWITZERLAND 20 1.0%
06/04/2018 18:57:06.141 | The Range Filter: Start the Trade = True
06/04/2018 18:57:06.188 | Stop Loss= 34.05, Take Profit = 61.2, symbol.Digitis = 2, Symbol.PipSize 1, PipDigits = 2
06/04/2018 18:57:06.204 | last trade: The were no trades on this pair
06/04/2018 18:57:12.282 | check 1
06/04/2018 18:57:12.282 | This is the volume checked = 0, normAmount = 1015.31180354502, PipSize = 1, PipDigits = 2
06/04/2018 18:57:12.282 | AmountRisked = 974.9227
06/04/2018 18:57:12.282 | check 2
06/04/2018 18:57:12.297 | Placing Stop Order to Buy 0 SWITZERLAND 20 (Price: 8711.00, SL: 35.7, TP: 61.2)
06/04/2018 18:57:12.422 | → Placing Stop Order to Buy 0 SWITZERLAND 20 (Price: 8711.00, SL: 35.7, TP: 61.2) FAILED with error "BadVolume"
"
Please, advise
Regards,
Sasha
Replies
alexander.n.fedorov
07 Apr 2018, 14:49
Volume with different brokers
there is another thing:
this is the piece of code:
"
...
protected override void OnStart()
{
Print("Broker name =: {0}, SymbolCode =: {1}, MinVolume =: {2},", Account.BrokerName.ToString(), Symbol.Code, Symbol.VolumeMin.ToString());
...
"
and this is the printout for two different symbols:
"
...
07/04/2018 14:39:37.704 | Broker name =: Kawase, SymbolCode =: EURUSD, MinVolume =: 1000,
...
"
"
...
07/04/2018 14:42:58.157 | Broker name =: Kawase, SymbolCode =: SWITZERLAND 20, MinVolume =: 0,
...
"
with a differen broke the result is:
"
07/04/2018 14:45:18.795 | Broker name =: FxPro, SymbolCode =: #Swiss20, MinVolume =: 1,
"
"
07/04/2018 14:46:45.958 | Broker name =: FxPro, SymbolCode =: EURUSD, MinVolume =: 1000,
"
@alexander.n.fedorov
PanagiotisCharalampous
10 Apr 2018, 10:45
( Updated at: 21 Dec 2023, 09:20 )
Hi Sasha,
Each broker can configure different min and max volumes for each symbol. See below the relevant information for the two brokers you mentioned
FxPro
Kawase
The issue here is that cAlgo cannot handle fractional volumes, therefore in the case of Kawase it rounds it down to 0. This will be resolved with cTrader 3.0.
Best Regards,
Panagiotis
@PanagiotisCharalampous
alexander.n.fedorov
06 Apr 2018, 19:12
Pangiotis,
to be more correct the printout is this:
"
06/04/2018 19:09:24.677 | cBot "New Yourk Range v.3" was started successfully for SWITZERLAND 20, m15.
06/04/2018 19:09:24.802 | Instance NYR v.3 SWITZERLAND 20 1.0%
06/04/2018 19:09:24.833 | The Range Filter: Start the Trade = True
06/04/2018 19:09:24.896 | Stop Loss= 34.05, Take Profit = 61.2, symbol.Digitis = 2, Symbol.PipSize 1, PipDigits = 2
06/04/2018 19:09:24.911 | last trade: The were no trades on this pair
06/04/2018 19:09:25.005 | check 1
06/04/2018 19:09:25.005 | normCostofRange = 37.1665937909926
06/04/2018 19:09:25.005 | This is the volume checked = 0, Quantity = 26.2592021611765, PipSize = 1, PipDigits = 2
06/04/2018 19:09:25.005 | AmountRisked = 975.9651, Quantity = 26.2592021611765, normCostOfRange = 37.1665937909926
06/04/2018 19:09:25.005 | check 2
06/04/2018 19:09:25.021 | Placing Stop Order to Buy 0 SWITZERLAND 20 (Price: 8711.00, SL: 35.7, TP: 61.2)
06/04/2018 19:09:25.146 | → Placing Stop Order to Buy 0 SWITZERLAND 20 (Price: 8711.00, SL: 35.7, TP: 61.2) FAILED with error "BadVolume"
"
The first printout did was after commented command to print normCostofRange
Regards,
Sasha
@alexander.n.fedorov