Skip to content

Rounding error on 32-bit makes Order.size float instead of integer #954

Open
@IMYin

Description

@IMYin

Discussed in #953

Originally posted by IMYin March 31, 2023
My trading target is futures, with a minimum trading size of 1 lot and a minimum unit of 300 per lot. When I trigger a certain signal, I only want to reduce my position instead of closing it completely. However, the parameter in the close function is a proportion value. So, if I hold a position of 7 lots and my size is 2100, the parameter set for self.position.close(portion=6/7), which is not wrong. But the result is that my position is 301, which is incorrect and causes a chain reaction of position errors later on.

image
The sample shown in the picture is incorrect.

The correct one should look like the following.
image

So I am wondering if it is possible to adjust the setting of the portion parameter?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions