专家顾问未开仓交易

问题描述 投票:2回答:1

我试图在mql4中创建一个EA,该EA根据给定的条件打开和关闭交易头寸,但是在条件匹配后它并未打开交易,EA Works直到显示买入和卖出信号,然后什么都没有发生,任何人都可以帮忙吗?

void CloseBuyPosition()
{
    for (int i = OrdersTotal() - 1; i >= 0; i--)
    {
        OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
        string Cp = OrderSymbol();

        if (_Symbol == Cp)

            if (OrderType() == OP_BUY)
            {

                OrderClose(OrderTicket(), OrderLots(), Bid, 3, NULL);

            }
    }
}
void CloseSellPosition()
{
    for (int i = OrdersTotal() - 1; i >= 0; i--)
    {
        OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
        string Cp = OrderSymbol();

        if (_Symbol == Cp)

            if (OrderType() == OP_SELL)
            {

                OrderClose(OrderTicket(), OrderLots(), Ask, 3, NULL);

            }
    }

}
void OnTick()
{

    string signal = "";
    double Sar = iSAR(_Symbol, _Period, 0.02, 0.2, 0);

    if (Sar < Low[1] && Open[1] < Close[1])
    {
        signal = "buy";
    }

    if (Sar > High[1] && Open[1] > Close[1])
    {
        signal = "sell";
    }

    if (signal == "buy" && OrdersTotal() == 0)

        OrderSend(_Symbol, OP_BUY, 0.01, Ask, 3, 20, 100, NULL, 0, 0, Green);

    if (signal == "sell" && OrdersTotal() == 0)

        OrderSend(_Symbol, OP_SELL, 0.01, Bid, 3, 20, 100, NULL, 0, 0, Red);

    Comment("The Signal is :", signal);

    if (Open[1] > Close[1] && OrdersTotal() > 0)

        CloseBuyPosition();

    if (Open[1] < Close[1] && OrdersTotal() > 0)

        CloseSellPosition();
}
mql4 algorithmic-trading metatrader4 forex
1个回答
0
投票

Q

© www.soinside.com 2019 - 2024. All rights reserved.