2评论

0收藏

请教大神,均价盈利300点启动均价保本点数50点,怎么写

avatar colin.hong | 379 人阅读 | 2 人评论 | 2024-06-16

extern int    均价保本启动点数=300;
extern int    均价保本点数=50;   
===========================================
   if(是否开启均价止损==true)
        {
         on_off=false;
         move_sl();
         for(i=0; i<OrdersTotal(); i++)
           {
            if(OrderSelect(i,SELECT_BY_POS))
              {
               if(OrderSymbol()==Symbol() && OrderMagicNumber()==识别码3)
                 {
                  if(OrderType()==OP_BUY)
                    {
                     if(OrderStopLoss()==0 && 最后的多单价格>Ask-均价止损点数*Point)
                       {
                        double slp=Ask-均价止损点数*Point;
                        if(!OrderModify(OrderTicket(),OrderOpenPrice(),slp,OrderTakeProfit(),0))
                           Print(" 修改多均价止损");
                       }
                     if(NormalizeDouble(OrderTakeProfit()-btpp,8)!=0)
                       {
                        if(!OrderModify(OrderTicket(),OrderOpenPrice(),bslpp,btpp,0))
                           Print(" 修改多均价止盈成功");
                       }
                     if(OrderStopLoss()<最后的多单价格 && (Ask-多第一单开单价格>均价保本点数*Point) && 均价保本点数>0 && (OrderTakeProfit()-(均价止盈点数-均价保本启动点数)*Point)<Ask)
                       {
                        slp=多第一单开单价格+均价保本点数*Point;      


                        if(!OrderModify(OrderTicket(),OrderOpenPrice(),slp,OrderTakeProfit(),0))
                           Print(" 修改多均价保本止损成功");
                       }
                    }


                  if(OrderType()==OP_SELL)
                    {

                     if(OrderStopLoss()==0 && 最后的空单价格<Bid+均价止损点数*Point)
                       {
                        slp=Bid+均价止损点数*Point;
                        if(!OrderModify(OrderTicket(),OrderOpenPrice(),slp,OrderTakeProfit(),0))
                           Print(" 修改空均价止损成功");

                       }
                     if(NormalizeDouble(OrderTakeProfit()-stpp,8)!=0)
                       {
                        if(!OrderModify(OrderTicket(),OrderOpenPrice(),sslpp,stpp,0))
                           Print(" 修改空均价止盈成功");
                       }
                     if(OrderStopLoss()> 最后的空单价格 && 空第一单开单价格-Bid>均价保本点数*Point && 均价保本点数>0 && (OrderTakeProfit()+(均价止盈点数-均价保本启动点数)*Point)>Bid)
                       {
                        slp=空第一单开单价格-均价保本点数*Point;

                        if(!OrderModify(OrderTicket(),OrderOpenPrice(),slp,OrderTakeProfit(),0))
                           Print(" 修改空均价保本止损成功");

                       }

                    }
                 }
              }
           }
        }

""
还没有人打赏,支持一下

评论|共 2 个

gupeng2008100

发表于 2024-6-24 11:09:00 来自手机 | 显示全部楼层

问ai他就写出来了

colin.hong

发表于 2024-6-29 17:27:27 | 显示全部楼层

// 假设您使用的交易平台支持MQL4或MQL5语言

// 初始化函数
int OnInit() {
    // 设置均价盈利目标和保本点数
    double profit_target = 300.0; // 均价盈利目标
    double stop_loss = 50.0; // 启动均价保本点数
   
    // 创建订单
    if (OrderSend(NULL, OP_BUY, 1, Ask, 1, NULL, NULL, profit_target, stop_loss) > 0) {
        return INIT_SUCCEEDED;
    } else {
        return INIT_FAILED;
    }
}

// 图表事件处理函数
void OnChartEvent(int event_type, const void* event_data) {
    // 检查是否达到均价盈利目标
    if (event_type == EVENT_PRICE && event_data != NULL) {
        double current_price = *(double*)event_data;
        double profit = current_price - Ask; // 计算当前盈利
        
        if (profit >= profit_target) {
            // 达到均价盈利目标,启动保本点策略
            if (OrderSend(NULL, OP_CLOSE, 1, Ask, 1, NULL, NULL, profit_target, stop_loss) > 0) {
                Print("已达到均价盈利目标,启动保本点策略。");
            } else {
                Print("未能启动保本点策略,请检查订单状态。");
            }
        }
    }
}

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

EA之家评论守则