1评论

0收藏

这是我的设想 概念 运用于30分钟以上 四小时以下

avatar 臭宝很深情 | 80 人阅读 | 1 人评论 | 2025-09-01

//+------------------------------------------------------------------+

//|                                                  SAR_EA.mq4      |
//|                        Copyright 2023, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

// 输入参数
input int      STEP = 2;          // SAR步长
input int      MVALUE = 20;       // SAR最大值
input int      N = 4;             // SAR周期
input double   LotSize = 0.1;     // 交易手数

// 全局变量
double STEP1, MVALUE1;
double sarValue;
int lastSignal = 0;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
    STEP1 = STEP / 100.0;
    MVALUE1 = MVALUE / 100.0;
    return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
    // 计算SAR值
    sarValue = iSAR(NULL, 0, STEP1, MVALUE1, 0);
   
    // 计算其他指标
    CalculateIndicators();
   
    // 交易逻辑
    TradingLogic();
}

//+------------------------------------------------------------------+
//| 计算指标函数                                                      |
//+------------------------------------------------------------------+
void CalculateIndicators()
{
    // 这里需要实现所有指标计算逻辑
    // 包括V1, V2, V3, V5, MA1, MA2等
    // 由于代码较长,需要逐步实现每个指标
}

//+------------------------------------------------------------------+
//| 交易逻辑函数                                                      |
//+------------------------------------------------------------------+
void TradingLogic()
{
    // 买入信号 (MIM1-MIM5条件)
    if(CheckBuySignal() && lastSignal != 1)
    {
        CloseAllSells();
        OpenBuy();
        lastSignal = 1;
    }
    // 卖出信号 (KKKL等条件)
    else if(CheckSellSignal() && lastSignal != -1)
    {
        CloseAllBuys();
        OpenSell();
        lastSignal = -1;
    }
}

//+------------------------------------------------------------------+
//| 检查买入信号函数                                                   |
//+------------------------------------------------------------------+
bool CheckBuySignal()
{
    // 实现所有买入条件判断
    // MIM1 OR MIM2 OR MIM3 OR MIM4 OR MIM5
    return false; // 暂时返回false
}

//+------------------------------------------------------------------+
//| 检查卖出信号函数                                                   |
//+------------------------------------------------------------------+
bool CheckSellSignal()
{
    // 实现所有卖出条件判断
    // KKKL OR KKG12 OR CROSS(40,KKG9)
    return false; // 暂时返回false
}

//+------------------------------------------------------------------+
//| 开买入单函数                                                      |
//+------------------------------------------------------------------+
void OpenBuy()
{
    OrderSend(Symbol(), OP_BUY, LotSize, Ask, 3, 0, 0, "SAR Buy", 0, 0, Green);
}

//+------------------------------------------------------------------+
//| 开卖出单函数                                                      |
//+------------------------------------------------------------------+
void OpenSell()
{
    OrderSend(Symbol(), OP_SELL, LotSize, Bid, 3, 0, 0, "SAR Sell", 0, 0, Red);
}

//+------------------------------------------------------------------+
//| 关闭所有买入单函数                                                 |
//+------------------------------------------------------------------+
void CloseAllBuys()
{
    for(int i = OrdersTotal()-1; i >= 0; i--)
    {
        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
            if(OrderSymbol() == Symbol() && OrderType() == OP_BUY)
            {
                OrderClose(OrderTicket(), OrderLots(), Bid, 3, White);
            }
        }
    }
}

//+------------------------------------------------------------------+
//| 关闭所有卖出单函数                                                 |
//+------------------------------------------------------------------+
void CloseAllSells()
{
    for(int i = OrdersTotal()-1; i >= 0; i--)
    {
        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
            if(OrderSymbol() == Symbol() && OrderType() == OP_SELL)
            {
                OrderClose(OrderTicket(), OrderLots(), Ask, 3, White);
            }
        }
    }
}
""
还没有人打赏,支持一下

评论|共 1 个

WA263222

发表于 昨天 22:43 | 显示全部楼层

你这个差些东西,补齐了赢利很厉害

您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则