static void SetEntryOrders(int bar, double price, PosDirection posDir, double lots)
{
if (lots < 0.005)
return; // This is a manner of cancellation an order.
int ifOrder = 0;
int toPos = 0;
if (posDir == PosDirection.Long)
{
if (openStrPriceType == StrategyPriceType.Open || openStrPriceType == StrategyPriceType.Close)
OrdBuyMarket(bar, ifOrder, toPos, lots, price, OrderSender.Open, OrderOrigin.Strategy, Language.T("Entry Order"));
else if (price > Open[bar])
OrdBuyStop(bar, ifOrder, toPos, lots, price, OrderSender.Open, OrderOrigin.Strategy, Language.T("Entry Order"));
else if (price < Open[bar])
OrdBuyLimit(bar, ifOrder, toPos, lots, price, OrderSender.Open, OrderOrigin.Strategy, Language.T("Entry Order"));
else
OrdBuyMarket(bar, ifOrder, toPos, lots, price, OrderSender.Open, OrderOrigin.Strategy, Language.T("Entry Order"));
}
else
{
if (openStrPriceType == StrategyPriceType.Open || openStrPriceType == StrategyPriceType.Close)
OrdSellMarket(bar, ifOrder, toPos, lots, price, OrderSender.Open, OrderOrigin.Strategy, Language.T("Entry Order"));
else if (price < Open[bar])
OrdSellStop(bar, ifOrder, toPos, lots, price, OrderSender.Open, OrderOrigin.Strategy, Language.T("Entry Order"));
else if (price > Open[bar])
OrdSellLimit(bar, ifOrder, toPos, lots, price, OrderSender.Open, OrderOrigin.Strategy, Language.T("Entry Order"));
else
OrdSellMarket(bar, ifOrder, toPos, lots, price, OrderSender.Open, OrderOrigin.Strategy, Language.T("Entry Order"));
}
return;
}