EA和自动交易 - 页 8

请帮忙修改一下移动止盈,或者请用MQ5帮忙写一个移动止盈的函数 需求如下: 初设止损点为 500 毫点,初设止盈点为 600 毫点,第一个止盈点为 700 毫点,第二个止盈点为 800 毫点, 第二个止盈点为 900 毫点. 1 .当行情盈利大于或等于初设止盈点 600 毫点,且小于第一个止盈点 700 毫点时 止损点修改为初设止盈点, 止盈点修改为第一个止盈点 . 2 . 当行情盈利大于或等于第一个止盈点 700 毫点, 且小于第二个止盈点 800 毫点时 止损点修改为 第一个止盈点 , 止盈点修改为第二个止盈点 . 3 . 当行情盈利大于或等于第二个止盈点 800 毫点,
iClose(string symbol, int timeframe, int shift) 这个函数的最后一个参数值为0时就代表当前K线,为1时代表上一根K线,为2时代表上两根K线,对吗?
接下来我有一个 风控EA,仓位不足30%的时候停止下单。 写法和思路是否正确?欢迎有人来评论交流。
如题,请教大家如何定义变量保留平台各种交易品种默认位数小数点?譬如美日2位, 欧美5位。
EA 在下单时,同时设置系统自带的追踪止损,用什么指令? 这是为了防止突然网络中断,或意外令电脑关机,作出的一重保护。
请问在switch函数里面,让函数停下来是不是有两种情况,一种是碰到了break;,还有一种是碰到了default? 如果是的话,是不是下面这段代码,在default后面那个break,加不加效果都是一样的?谢谢! int x = 56; switch(x) { case 1: Print("x is 1"); break; case 2: Print("x is 2"); break; default: Print("x is not 1 or 2"); break; }
尾随移动止损是风险控制的一个重要方法,不同的尾随显示了不同的风险偏好。
我看到MT5可以将指定的指标加载到指定的品种和周期的图表,请教大家MT4/5有函数可以自动将指定的EA加载到自动打开的图表窗口吗?因为需要交易十多个用不同策略的货币对,虽然已经整合在一个EA,但每次修改都要重新加载到不同图表有点太麻烦了!谢谢
是这样的,我做多的时候移动止损是当卖价大于开仓价250点就把止损价格提到开单价+200点,卖单同样道理,但打到移动止损后(就是100/200点的整数,附有图片),买单和卖单的利润为什么不是整数呢?应该不是点差问题吧?因为买进去用Ask已经考虑了点差,卖出去同样道理。我想知道是什么原因呢? 这是MT4,但MT5也出现一样情况,而且MT4板块好似不太活跃所以只能发这里了,请版主谅解。希望大家解答一下,谢谢啦 bool DR1= OrderSend ( Symbol (),OP_BUY,Lots,Ask, 10 ,L41- MathMax ((H41-L41)* 40 , 500 )* Point
. K线、均线是自动交易或交易系统趋势分析的最核心的依据,是量化的最最基本数据依据,这一说法,我想没人反对吧。 H1以及H1以下周期的K线、均线,抛开点差和滑点因素外,无论哪个经纪商平台,同一品种,数据 基本是 一致的,也就是说,与交易经历的 实际 时间和实际波动过程是一致的。若你的自动交易EA或你的交易系统,用到的最大图表周期仅为H1,那么可以肯定地说,除开策略有好有坏有对有错之外,所有的量化依据基本都是一致的,也都是说与实际交易过程的数据是相吻合的。 但若用到的最大周期不只是H1,用到H4或用到D1甚至W1,那么问题就来了,究竟哪个平台的K线时间划分是可信的呢?
想把交易控件放置于GUI窗口里面,不用时缩小,不影响观看行情数据,需要用时再弄出来。应该怎么弄
大家好,我是一名开发者,我的EA在运行中经常遇到滑点问题,尤其是手数较大的情况下。 我在IC Markets平台尝试通过设置FILLING_IOC去解决滑点问题,但实际上好像并没有作用。 我想问一下 1. 否有人可以有效地应用IOC、FOK和RETURN类型的填充类型? 2. FILLING的设置是否需要在ECN上才能实现效果? 3. 理论上是否可以解决滑点问题?
调试onnx模型时,发现mt5的ontick函数失效, 做过以下尝试: 1、在ontick函数里添加Print(1111)语句,加载EA后,该EA只打印了一遍“1111”,后面价格跳动时,没有再继续执行 2、关闭客户端后重启,ontick函数依旧失效 请问该如何解决
我想在vps上同步我的EA,但是vps提示老版本EX4无法迁移,重启了好几次,还是一样的提示。这是什么原因,怎么解决呀?
各位好,我最近为自己设计了一个自动交易软件,在进行实际交易时遇到了一个问题,希望能与大家分享并寻求解决方案。当我使用MQL5平台提供的虚拟专用伺服器(VPS)时,我的交易头寸会自动关闭,但当我不使用VPS时,则没有这个问题。我想知道是否有办法查阅我租用的VPS的交易记录和日志,以了解问题的原因,并找到解决方案。
出现在手动平仓,或触发止损平仓后,EA 就僵了。 一直不明白,后来想到,是不是 EA 正在向服务器请求持仓信息时,这张单正好被平仓了。程序出现了异常。 手工开一张单,EA 又恢复正常。
具体代码如下: // 定义参数 input double lot_size = 0.1; // 交易量 input double slippage = 3.0; // 滑点 input double stop_loss = 50; // 止损 input double take_profit = 100; // 止盈 input int magic_number = 123456; // 魔术数字 // 初始化全局变量 int total_positions = 0; // 持仓总数量 int position_direction = 0; // 持仓方向 // 定义均线指标参数 input
即使在设置中添加了手续费设置,在图表中查看成交依然没有每单扣除手续费,就算EA的表现是盈利的,扣除手续费后也就是亏损的了。尤其是剥头皮的EA
EventSetTimer() 这里只能设置执行的间隔, 不能指定什么时候执行。 有没有办法设置可以让onTimer()函数整点或者半点 执行。 谢谢
打开运行EA的时候,去拿了下手机,发现不正常平仓,难道是我误操作,不到止损止盈的地方。不知道为什么就平仓了,日志历史如下图所示,注释后面也没写原因,请高手帮忙解答一下,谢谢!
[删除]
高手来说说,如何实现平仓后就触发另一个函数的执行? OnTradeTransaction()这函数我用的不太明白
我的要求是这的:9日均线上穿25日均线,全部平仓然后做多;下穿,全部平仓然后做空. 但是gpt写出来的mt5代码有很多是mt4里的内容. 可是我把这些代码放到mt4里面,结果报错更多了. 我把报错标出来,大神帮帮忙这个要怎么改,拜托拜托 //+------------------------------------------------------------------+ //| SimpleEA.mq5 | //| Copyright 2020, MetaQuotes Software Corp. | //|
MT5的EA报错:cannot load indicator 'Bollinger Bands' [4302],但是在MT5的交易软件上可以找到这个指标。这是什么原因呢?
最近写程序的时候遇到一个困难,希望可以有人帮助解答一下,谢谢 核心问题是:我想获取当前成交订单的订单数量 但是我的疑问是,下面这个函数 OrderSend (request,result) 这个函数在帮助文档说,返回true的时候,并不是交易操作成功执行的标志,这个我已经明白。 当我在一次Ontick()函数里面发送多次正确设置的 OrderSend()后,而交易界面也显示出已成交的订单(这时候是不是可以说是交易成功了?还是说在客户端交易框显示了已经成交,也不能代表OrderSend已经成功?), 此刻我用 PositionsTotal ()
目前使用BuildYourGrid EA 这个ea加上手工介入,基本上可以做到盈利。因此想加大手数,原来用的是0.01手,一点问题都没有,现在准备加到5手,不知道处理修改手数以外,还有什么地方是需要修改的,才能够做到和0.01手一样的运行效果,求赐教! 下图是这个EA的参数,画红框的是我修改过的参数,从原来的0.01改成了5.求高手赐教,谢谢!
写法是这样的 //+------------------------------------------------------------------+ int OnumberB() { double PRICE = 0; int number = 0; for(int i=0; i<OrdersTotal(); i++) if(OrderSelect(i,SELECT_BY_POS)) if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == 0){
历史订单有亏损的,有盈利的,请问一下如何判断是连续亏损的?
请各位大佬解答!! 图1:是我在用交易商的MT5策略测试器,0.2手黄金亏损5美元,收益显示-1000,是错误的 图2:是官方,MT5的策略测试器,0.2手黄金亏损5美元,收益-100,是正确的 是否跟我的交易商报价是小数点后三位有关系?或者是交易商的策略测试器设置有关系? 如果是EA问题,我应该如何修改EA
代码如下: #include <Trade\Trade.mqh> CTrade m_trade; void OnStart () { double ask = SymbolInfoDouble ( _Symbol , SYMBOL_ASK ); m_trade.PositionOpen( _Symbol , ORDER_TYPE_BUY , 0.01 , ask , 0 , 0 ); Print ( "开仓完毕 仓位数量" , PositionsTotal ()); //Sleep(1000); //Print("开仓完毕
哪会大神能否解释一下,为什么我的这段代码在模拟盘上能正确返回交易单号,而在实盘上返回的是0值 ? //+------------------------------------------------------------------+ //| Test1.mq5 | //| Copyright 2023, MetaQuotes Ltd. | //|