论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
  • 1
  • 2
前往
共 32 条
查看:519回复:31
黑斯廷
注册时间2010-10-04
[EA]写了个自动风控系统,非常简单,但是非常有效
楼主发表于:2025-05-05 05:06只看该作者倒序浏览
1楼 电梯直达
电梯直达

老交易员一看就懂。


这个系统我部署到了云服务器上面,云服务器的密码和我账户的密码都只有我老婆知道,目前已经稳定运行了一年了,对我非常非常有效,用处极大。


不让上传EA附件,代码分享给大家


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


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

//|                                                      RiskEA.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 string   SymbolFilter = "EURUSD";          // 允许交易的品种

input double   MaxTotalVolume = 10;             // 最大总持仓手数

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


// 全局变量

datetime LastCheckTime;

datetime CurrentDayStart;

bool AllowTrading = true;


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

//| 初始化函数                                                       |

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

int OnInit()

{

  CurrentDayStart = GetDayStart(TimeCurrent());

  LastCheckTime = TimeCurrent();

  return(INIT_SUCCEEDED);

}


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

//| 主函数                                                           |

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

void OnTick()

{

  // 每分钟检查一次交易日切换

  if(TimeCurrent() >= LastCheckTime + 60)

  {

     datetime newDayStart = GetDayStart(TimeCurrent());

     if(newDayStart != CurrentDayStart)

     {

        CurrentDayStart = newDayStart;

        AllowTrading = true; // 新交易日重置交易权限

     }

     LastCheckTime = TimeCurrent();

  }


  // 风控检查1:交易品种过滤

  CheckSymbolFilter();


  // 风控检查2:最大持仓限制

  CheckMaxVolume();


  // 风控检查3:最大亏损限制

  if(!CheckDailyLoss())

  {

     CloseAllOrders();

     AllowTrading = false;

  }


  // 如果禁止交易则关闭所有订单

  if(!AllowTrading)

  {

     CloseAllOrders();

  }

}


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

//| 交易品种过滤检查                                                 |

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

void CheckSymbolFilter()

{

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

  {

     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

     {

        if(OrderSymbol() != SymbolFilter)

        {

           CloseOrder(OrderTicket());

        }

     }

  }

}


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

//| 最大持仓检查                                                     |

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

void CheckMaxVolume()

{

  double totalVolume = 0;

 

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

  {

     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

     {

        totalVolume += OrderLots();

     }

  }

 

  if(totalVolume > MaxTotalVolume)

  {

     CloseAllOrders();

  }

}


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

//| 单日亏损检查                                                     |

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

bool CheckDailyLoss()

{

  if(!AllowTrading) return false;

 

  double dailyProfit = 0;

  datetime dayStart = GetDayStart(TimeCurrent());

  datetime dayEnd = dayStart + 86400;


  // 计算历史订单盈亏

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

  {

     if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))

     {

        if(OrderCloseTime() >= dayStart && OrderCloseTime() < dayEnd)

        {

           dailyProfit += OrderProfit() + OrderSwap() + OrderCommission();

        }

     }

  }


  // 计算当前持仓浮动盈亏

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

  {

     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

     {

        dailyProfit += OrderProfit() + OrderSwap() + OrderCommission();

     }

  }


  // 计算亏损比例

  double equity = AccountEquity();

  double lossPercent = (-dailyProfit) / equity * 100;

 

  return (lossPercent < MaxDailyLossPercent);

}


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

//| 获取当日开始时间                                                 |

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

datetime GetDayStart(datetime time)

{

  MqlDateTime mdt;

  TimeToStruct(time, mdt);

  mdt.hour = 0;

  mdt.min = 0;

  mdt.sec = 0;

  return StructToTime(mdt);

}


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

//| 关闭指定订单                                                     |

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

void CloseOrder(int ticket)

{

  if(OrderSelect(ticket, SELECT_BY_TICKET))

  {

     if(OrderType() == OP_BUY)

        OrderClose(ticket, OrderLots(), Bid, 3);

     else if(OrderType() == OP_SELL)

        OrderClose(ticket, OrderLots(), Ask, 3);

     else

        OrderDelete(ticket);

  }

}


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

//| 关闭所有订单                                                     |

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

void CloseAllOrders()

{

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

  {

     if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

     {

        CloseOrder(OrderTicket());

     }

  }

}

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



TK29帖子1楼右侧xm竖版广告90-240
个性签名

韬客社区www.talkfx.co

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告
春雷响万物苏
注册时间2018-10-21
发表于:2025-05-05 05:11只看该作者
2楼

黑总这时在对抗人性啊!

黑斯廷
注册时间2010-10-04
楼主发表于:2025-05-05 05:15只看该作者
3楼
春雷响万物苏 发表于 2025-05-05 13: 11

黑总这时在对抗人性啊!

老交易员都懂,哈哈哈

黑斯廷
注册时间2010-10-04
楼主发表于:2025-05-05 05:20只看该作者
4楼

我其实早就有外部力量帮助风控的想法,但之前让活人来帮助风控一直效果不佳,总有被突破的办法,后来在抖音上刷到一个人在卖风控系统,卖3980,我就研究了一下,他就是用一个风控EA运行到云服务器上面,人为无法干预,确实非常有效,但是我感觉完全不值3980,我就自己做了一个,也是用AI写的,非常简单https://man.talkfx.co/upload/upload/file/2025/05-05/17464223578151256315017.jpg

个性签名

韬客社区www.talkfx.co

找耐心
注册时间2024-04-18
发表于:2025-05-05 05:21只看该作者
5楼

黑总有mt5版的不

黑斯廷
注册时间2010-10-04
楼主发表于:2025-05-05 05:22只看该作者
6楼

MT5我没用过,你直接复制这段话“你是一个顶级的MT5程序员,帮我写一个MT5 EA交易系统,这是一个风控系统,主要作用是自动风控。我需要设置的参数有:交易品种,最大总持仓,最大单日亏损比例。1、交易品种:选择某种交易品种后,交易任何其他的品种,系统自动平仓。2、最大总持仓,设定一个最大总持仓的值,超过这个值的订单全部自动平仓。3、最大单日亏损比例,设定一个最大单日亏损比例,单日亏损超过一个比例(包含浮动亏损),任何新下的订单全部自动平仓,下一个交易日才能继续交易。

给AI,让AI帮你生成代码。



wuweiwubuwei
注册时间2015-12-07
发表于:2025-05-05 05:24只看该作者
7楼

黑总这风控做的一流,就是赚钱了是不是都是老婆的了,emoji-image

个性签名

培养耐心,及时止损,固化操作,先从按月不亏开始。

找耐心
注册时间2024-04-18
发表于:2025-05-05 05:25只看该作者
8楼
黑斯廷 发表于 2025-05-05 13: 22

MT5我没用过,你直接复制这段话“你是一个顶级的MT5程序员,帮我写一个MT5 EA交易系统,这是一个风控系统,主要作用是自动风控。我需要设置的参数有:交易品种,最大总持仓,最大单日亏损比例。1、交易品种:选择某种交易品种后,交易任何其他的品种,系统自动平仓。2、最大总持仓,设定一个最大总持仓的值,超过这个值的订单全部自动平仓。3、最大单日亏损比例,设定一个最大单日亏损比例,单日亏损超过一个比例(包含浮动亏损),任何新下的订单全部自动平仓,下一个交易日才能继续交易。

给AI,让AI帮你生成代码。



好的谢谢。

前段时间用过ds和豆包写过,每次都有错误。

个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
砸锅卖跌来炒金
注册时间2015-10-01
白羊座金牛座双子座巨蟹座狮子座处女座天秤座天蝎座射手座摩羯座水瓶座双鱼座
发表于:2025-05-05 05:26只看该作者
9楼

好东西

个性签名

韬客社区www.talkfx.co

广告
论坛谏言--外汇交易不应是你投资的全部,交易外汇也不应是你生活的全部
黑斯廷
注册时间2010-10-04
楼主发表于:2025-05-05 05:26只看该作者
10楼
找耐心 发表于 2025-05-05 13: 25

好的谢谢。

前段时间用过ds和豆包写过,每次都有错误。

实在不行去淘宝找人帮你写,这玩意很简单,顶多收你200

天生我材必有用
注册时间2014-11-08
发表于:2025-05-05 05:31只看该作者
11楼

感谢分享!

宝儿哈尼
注册时间2016-11-24
发表于:2025-05-05 05:35只看该作者
12楼

牛逼啊老哥这你都会

以梦为马
注册时间2015-01-23
发表于:2025-05-05 05:36只看该作者
13楼

为啥找风控,难道你控制不了止损?该指数不止损吗?单日亏10%还是挺多的啊

三石参投机
注册时间2012-04-14
天秤座
发表于:2025-05-05 07:18来自移动端只看该作者
14楼

AI确实是个好东西,训练下外汇智能体,以后让智能体下单

互赢
注册时间2016-02-19
1神无月1
注册时间2014-08-24
积极参与奖白羊座金牛座双子座巨蟹座狮子座处女座天秤座天蝎座射手座摩羯座水瓶座双鱼座
发表于:2025-05-05 17:37只看该作者
16楼

像这种简单的ea,找我最多200

个性签名

韬客社区www.talkfx.co

1神无月1
注册时间2014-08-24
积极参与奖白羊座金牛座双子座巨蟹座狮子座处女座天秤座天蝎座射手座摩羯座水瓶座双鱼座
发表于:2025-05-05 17:40只看该作者
17楼
三石参投机 发表于 2025-05-05 15: 18

AI确实是个好东西,训练下外汇智能体,以后让智能体下单

用多了你就会发现现阶段的AI还只是人工智障,你没发现最近AI都没啥热度了嘛

geoer
注册时间2018-10-10
发表于:2025-05-06 01:43只看该作者
19楼

可以辅助一下,如果无法控制自身情绪,已经能够做到的,就显得多余了。

黑斯廷
注册时间2010-10-04
楼主发表于:2025-05-06 02:56只看该作者
20楼
geoer 发表于 2025-05-06 09: 43

可以辅助一下,如果无法控制自身情绪,已经能够做到的,就显得多余了。

我最长连续盈利15个月,当时我也以为自己完全能掌控了,结果第16个月的某一天还是上头了

个性签名

韬客社区www.talkfx.co

  • 1
  • 2
前往
共 32 条

本站免责声明:

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

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

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

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

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

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