Skip to content

RoundingMode

enum cAlgo.API

DesktopCLICloud

The rounding mode for normalizing trade volume.

Definition

public enum RoundingMode

Namespace: cAlgo.API · Group: Symbols

Examples

Example 1

var riskAmount = Account.Balance * 0.01;
var volume = riskAmount / (20 * Symbol.PipValue);
var normalizedVolume = Symbol.NormalizeVolumeInUnits(volume, RoundingMode.Down);
Print("Raw volume {0}, normalized volume {1}", volume, normalizedVolume);
riskAmount = api.Account.Balance * 0.01
volume = riskAmount / (20 * api.Symbol.PipValue)
normalizedVolume = api.Symbol.NormalizeVolumeInUnits(volume, RoundingMode.Down)
api.Print(f"Raw volume {volume}, normalized volume {normalizedVolume}")

Example 2

using cAlgo.API;

namespace cAlgo
{
    // This sample shows how to normalize volume based on different rounding modes
    public partial class NormalizingVolumeSample : Indicator
    {
        protected override void Initialize()
        {
            var volumeInUnits = Symbol.QuantityToVolumeInUnits(VolumeInLots);
            Print(Symbol.NormalizeVolumeInUnits(volumeInUnits, RoundingMode));
        }

        public override void Calculate(int index)
        {
        }
    }
}
class NormalizingVolumeSample():
    def initialize(self):
        volumeInUnits = api.Symbol.QuantityToVolumeInUnits(api.VolumeInLots)
        api.Print(api.Symbol.NormalizeVolumeInUnits(volumeInUnits, api.RoundingMode))
{
  "AccessRights": "None",
  "TimeZone": "UTC",
  "IsOverlay": true,
  "Parameters": [
    {
      "Name": "VolumeInLots",
      "DisplayName": "Volume (Lots)",
      "Type": "Double",
      "DefaultValue": 0.01
    },
    {
      "Name": "RoundingMode",
      "DisplayName": "Rounding Mode",
      "Type": "Enum",
      "EnumTypeFullName": "cAlgo.API.RoundingMode",
      "DefaultValue": "ToNearest"
    }
  ]
}

Values

Name Value Description
ToNearest 0 Round value to the nearest tradable volume.
Down 1 Round value down to tradable volume.
Up 2 Round value up to tradable volume.

See also