论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
  • 1
  • 2
前往
共 33 条
yolailai
注册时间2014-09-04
积极参与奖
[EA]写了个自动风控系统,非常简单,但是非常有效
发表于:2025-05-06 03:21只看该作者
21楼 电梯直达
电梯直达

黑总终于管住手了,哈哈

个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
kkkkeeee
注册时间2016-02-01
白羊座金牛座双子座巨蟹座狮子座处女座天秤座天蝎座射手座摩羯座水瓶座双鱼座
发表于:2025-05-06 03:31只看该作者
22楼

如何部署到了云服务器?

1神无月1
注册时间2014-08-24
积极参与奖白羊座金牛座双子座巨蟹座狮子座处女座天秤座天蝎座射手座摩羯座水瓶座双鱼座
发表于:2025-05-06 04:27只看该作者
23楼
kkkkeeee 发表于 2025-05-06 11: 31

如何部署到了云服务器?

去买个VPS就行了

QLG
注册时间2017-10-29
发表于:2025-05-06 06:10只看该作者
24楼

用DS写是可以的,虽然总是出错,多折腾它几次就可以的。

QLG
注册时间2017-10-29
发表于:2025-05-06 06:11只看该作者
25楼

上次坛子里有人说5块钱一个月的,是哪一款?


黑斯廷
注册时间2010-10-04
楼主发表于:2025-05-06 06:31只看该作者
26楼
QLG 发表于 2025-05-06 14: 11

上次坛子里有人说5块钱一个月的,是哪一款?


市面上最便宜的就是六七十一年,挂EA够用了

1神无月1
注册时间2014-08-24
积极参与奖白羊座金牛座双子座巨蟹座狮子座处女座天秤座天蝎座射手座摩羯座水瓶座双鱼座
发表于:2025-05-06 06:41只看该作者
27楼
QLG 发表于 2025-05-06 14: 11

上次坛子里有人说5块钱一个月的,是哪一款?


看你想要什么配置的云服务器,我买的腾讯云的,你可以搜下官网,上去看看

1神无月1
注册时间2014-08-24
积极参与奖白羊座金牛座双子座巨蟹座狮子座处女座天秤座天蝎座射手座摩羯座水瓶座双鱼座
发表于:2025-05-06 06:43只看该作者
28楼
QLG 发表于 2025-05-06 14: 10

用DS写是可以的,虽然总是出错,多折腾它几次就可以的。

写些简单的没问题,稍微复杂点的不行,还有MT5不行,他会自己编些不存在的语法来糊弄你,比如这种,你让AI写,那就是一坨屎山

https://man.talkfx.co/upload/upload/file/2025/05-06/17465140838521047535755.png

迪迪七六九
注册时间2022-07-03
发表于:2025-05-06 07:31只看该作者
29楼

花啥钱呢,MT5的代码如下:

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

//|                                                   RiskControlEA.mq5 |

//|              交易风险控制系统(MT5 EA)                             |

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

#include <Trade\Trade.mqh>

#include <Trade\PositionInfo.mqh>

#include <Trade\SymbolInfo.mqh>


CTrade trade;


// 输入参数

input string InpTradeSymbol             = "EURUSD";    // 交易品种

input double InpMaxTotalVolume          = 10.0;         // 最大总持仓(手数)

input double InpMaxDailyLossPercent     = 2.0;          // 最大单日亏损比例(%)

input double InpProfitTargetPercent     = 1.0;          // 持仓浮盈目标比例(%)

input bool   InpDisableNewAfterLoss     = true;         // 单日亏损触发后禁止新仓

input bool   InpDisableNewAfterProfit   = false;        // 达到盈利目标后禁止新仓


// 全局变量

datetime g_lastDay        = 0;   // 当日零点时间戳

double   g_startingEquity = 0.0; // 当日开盘时的账户净值

bool     g_tradingDisabled = false; // 是否禁止新开仓


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

//| EA 初始化                                                      |

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

int OnInit()

{

  // 记录初始交易日(零点)和净值

  g_lastDay        = TimeCurrent() - TimeCurrent() % 86400;

  g_startingEquity = AccountInfoDouble(ACCOUNT_EQUITY);

  g_tradingDisabled = false;

  return(INIT_SUCCEEDED);

}


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

//| EA 每个Tick调用                                                  |

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

void OnTick()

{

  // 日切检查:服务器时间零点对比

  datetime todayMid = TimeCurrent() - TimeCurrent() % 86400;

  if(todayMid != g_lastDay)

  {

     g_lastDay        = todayMid;

     g_startingEquity = AccountInfoDouble(ACCOUNT_EQUITY);

     g_tradingDisabled = false;

  }


  // 风控流程

  CloseDifferentSymbols();     // 非指定品种平仓

  CheckMaxTotalVolume();       // 超过总持仓量平仓

  CheckDailyLoss();            // 单日亏损超限平仓并禁新仓(可选)

  CheckProfitTarget();         // 持仓浮盈达到目标自动平仓(可选)


  // 禁止新开仓时直接返回

  if(g_tradingDisabled)

     return;


  // TODO: 添加具体交易逻辑(开仓条件)

}


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

//| 平仓所有非指定品种的持仓                                       |

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

void CloseDifferentSymbols()

{

  for(int i = PositionsTotal() - 1; i >= 0; --i)

  {

     ulong ticket = PositionGetTicket(i);

     if(ticket == 0) continue;

     if(!PositionSelectByTicket(ticket)) continue;

     if(PositionGetString(POSITION_SYMBOL) != InpTradeSymbol)

        trade.PositionClose(ticket);

  }

}


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

//| 检查并平仓:当总持仓量超过设定值                             |

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

void CheckMaxTotalVolume()

{

  double totalVolume = 0.0;

  for(int i = 0; i < PositionsTotal(); ++i)

  {

     ulong ticket = PositionGetTicket(i);

     if(ticket == 0) continue;

     if(!PositionSelectByTicket(ticket)) continue;

     totalVolume += PositionGetDouble(POSITION_VOLUME);

  }

  if(totalVolume > InpMaxTotalVolume)

     CloseAllPositions();

}


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

//| 检查并平仓:当单日亏损比例超过设定值                           |

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

void CheckDailyLoss()

{

  double currentEquity = AccountInfoDouble(ACCOUNT_EQUITY);

  double lossPercent = (g_startingEquity - currentEquity) / g_startingEquity * 100.0;

  if(lossPercent >= InpMaxDailyLossPercent)

  {

     CloseAllPositions();

     if(InpDisableNewAfterLoss)

        g_tradingDisabled = true;

  }

}


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

//| 检查并平仓:当持仓浮盈达到目标比例                             |

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

void CheckProfitTarget()

{

  for(int i = PositionsTotal() - 1; i >= 0; --i)

  {

     ulong ticket = PositionGetTicket(i);

     if(ticket == 0) continue;

     if(!PositionSelectByTicket(ticket)) continue;

     // 仅处理指定品种

     if(PositionGetString(POSITION_SYMBOL) != InpTradeSymbol) continue;


     // 获取开仓价和当前价

     double openPrice    = PositionGetDouble(POSITION_PRICE_OPEN);

     double currentPrice = PositionGetDouble(POSITION_PRICE_CURRENT);

     long   type         = PositionGetInteger(POSITION_TYPE);


     // 计算盈亏百分比

     double profitPct = ((type == POSITION_TYPE_BUY)

                          ? (currentPrice - openPrice)

                          : (openPrice - currentPrice))

                        / openPrice * 100.0;


     // 达到盈利目标时平仓

     if(profitPct >= InpProfitTargetPercent)

     {

        if(!trade.PositionClose(ticket))

           PrintFormat("[Error] 平仓失败,Ticket=%I64u, ProfitPct=%.2f%%, Error=%d", ticket, profitPct, GetLastError());

        // 触发后可选是否禁仓

        if(InpDisableNewAfterProfit)

           g_tradingDisabled = true;

     }

  }

}


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

//| 平仓所有持仓                                                   |

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

void CloseAllPositions()

{

  for(int i = PositionsTotal() - 1; i >= 0; --i)

  {

     ulong ticket = PositionGetTicket(i);

     if(ticket == 0) continue;

     trade.PositionClose(ticket);

  }

}


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

QLG
注册时间2017-10-29
发表于:2025-05-06 08:40只看该作者
30楼

看来MT5还得另外学一下

哆啦A梦
注册时间2014-01-12
波之炼金术师
注册时间2016-08-27
发表于:2025-05-07 12:09只看该作者
32楼

黑总这个太座+ea(vps)模式牛逼,终将走出上头怪圈,走向辉煌!

大桐树
注册时间2012-01-31
  • 1
  • 2
前往
共 33 条

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]