根据您提供的没有未来函数的代码,可以尝试编写以下类似的MT5中的EA交易代码:

#property strict

input int    Lots               = 0.01;   // 手数
input double StopLossPercentage = 0.02;   // 止损百分比
input double TakeProfitPercentage = 0.03; // 止盈百分比

int OnInit()
{
    if (!SymbolInfoDouble(Symbol(), SYMBOL_MARGIN_INITIAL)) {
        Print("Symbol not found");
        return INIT_FAILED;
    }
    
    return INIT_SUCCEEDED;
}

void OnDeinit(const int reason)
{
    // 清理代码
}

void OnTick()
{
    double diff = iMA(NULL, 12, 0, MODE_EMA, PRICE_CLOSE, 0) - iMA(NULL, 26, 0, MODE_EMA, PRICE_CLOSE, 0);
    double dea = iMA(NULL, 9, 0, MODE_EMA, diff, 0);
    double macd = 2 * (diff - dea / 2);
    
    double ah = iHighest(NULL, 0, MODE_HIGH, 13 * 1, 0);
    double al = iLowest(NULL, 0, MODE_LOW, 13 * 0.3, 0);
    
    double trendLine = iMA(NULL, 34, 0, MODE_EMA, macd, 0);
    
    double k = iMA(NULL, 2, 0, MODE_SMA, macd, 0);
    double d = iMA(NULL, 2, 0, MODE_SMA, k, 0);
    double j = iMA(NULL, 2, 0, MODE_SMA, d, 0);
    
    double previousMacd = iMACD(NULL, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 1);
    
    if (macd > 0 && previousMacd < macd) {
        // 开多头仓位
        double stopLoss = Ask - (Ask * StopLossPercentage);
        double takeProfit = Ask + (Ask * TakeProfitPercentage);
        int ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 0, stopLoss, takeProfit, "MACD EA", 0, 0, Green);
        
        if (ticket > 0) {
            Print("Buy order sent successfully: ", ticket);
        } else {
            Print("Failed to send buy order: ", GetLastError());
        }
    } else if (macd < 0 && previousMacd > macd) {
        // 开空头仓位
        double stopLoss = Bid + (Bid * StopLossPercentage);
        double takeProfit = Bid - (Bid * TakeProfitPercentage);
        int ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 0, stopLoss, takeProfit, "MACD EA", 0, 0, Red);
        
        if (ticket > 0) {
            Print("Sell order sent successfully: ", ticket);
        } else {
            Print("Failed to send sell order: ", GetLastError());
        }
    }
}

这段代码使用了MACD指标来进行交易决策,并根据当前的MACD值和前一个MACD值的比较来判断是否开仓。当MACD从负值上升到正值时,开多头仓位;当MACD从正值下降到负值时,开空头仓位。止损和止盈水平根据输入的百分比计算。

请注意,这只是一个简单的示例代码,仅供参考。在实际使用中,您可能需要根据自己的交易策略和需求进行适当的修改和调整。同时,使用任何交易系统都存在风险,建议在实际交易之前进行充分的测试和风险评估

根据以下MT5中的EA交易代码如下:+------------------------------------------------------------------+ MACDSimpleReshetovbarabashkakvns editionmq5 Copyright © 2006 Yury

原文地址: http://www.cveoy.top/t/topic/iov7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录