Setting EntriesPerDirection correctly in order to allow the desired maximum position, and having in mind that Z is an integer:
if (Position.MarketPosition == MarketPosition.Flat)
{
if(z>0 )
{
EnterLong(z*100000);
}
if(z<0 )
{
EnterShort(-z*100000);
}
}
if (Position.MarketPosition == MarketPosition.Long)
{
if(z>0 )
{
if(z*100000>Position.Quantity )
{
EnterLong(z*100000-Position.Quantity);
}
if(z*100000<Position.Quantity )
{
ExitLong(Position.Quantity-z*100000);
}
}
if(z<0 )
{
EnterShort(-z*100000);
}
}
if (Position.MarketPosition == MarketPosition.Short)
{
if(z>0 )
{
EnterLong(z*100000);
}
if(z<0 )
{
if(-z*100000>Position.Quantity )
{
EnterShort(-z*100000-Position.Quantity);
}
if(-z*100000<Position.Quantity )
{
ExitShort(Position.Quantity+z*100000);
}
}
}
I' have not put it to work yet, but soon

Comment