EA和自动交易 - 页 10

我想在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. | //|
为甚现在Point函数获取到的价格跳动点无法直接使用?怎么解决这个问题
各路大神,小弟最近在学习,练习MQL5编程,遇到困难请求帮助! 尝试做了一个最简单的双均线交叉开多单或空单,成功开单,但是会反复开单。 如何能控制双均线交叉仅开一次单而不重复开单?不平仓的情形下,下一次交叉还能继续开单并保证仍是仅开一次单? 比如,4小时K线图,某时间点maFast5与maSlow20金叉仅下一次多单,一直不平仓多单(可手动平仓),下一个时间点5与20均线再次金叉又仅下一次多单,如此反复。 int int OnInit() { } void OnTick() { //--- MqlTradeRequest request={}; MqlTradeResult
想詢問各位,我在選取右上角的EA選取移除EA時,如何同時把所有掛單移除,這串代碼怎麼寫呢
我有一个代码块,功能是实行开仓并返回此单的deal ticket 在模拟盘可以正确的返回 deal ticket, 但在实盘中返回的是0,这是为什么? 试过很多方法,都行不通,希望懂的高手,请帮我分析分析,谢谢! //+------------------------------------------------------------------+ //| Test1.mq5 | //| Copyright
请问各位高手,MT5平台历史回测时,模式选项中的:每次报价、每个点基于实时点、1分钟OHLC、仅使用开价、数学计算这几个选项回测结果不同。这几个选项回测时究竟有什么区别?那个最接近实盘?
回测完成后,软件给出的报告中没有收益率,自己计算则只能算出总收益率,如下: double OnTester () { return 100 * TesterStatistics ( STAT_PROFIT ) / TesterStatistics ( STAT_INITIAL_DEPOSIT ); } 但是想要计算“年化收益率”,看帮助文件ENUM_STATISTICS里并没用关于回测起止时间的信息。 求助高手: 怎么获取 回测起止时间的信息?或是有没有别的什么方法得到年化收益率?
我想跟好朋友们请教一下,如何提高MT5 EA的回测速度? 我的电脑是I 7 8核。但是每次回测之启动一个核心。 虽然我关闭了,显示图标与可视化 。 但是回测的速度都是按天作为单位来计算. 我想请问如何开启。另外的7个核心来加速回测. 还有购买MQL云代理 ,是否有用? 好像云代理只是针对优化有用,并不能提高单策略回测速度 如果找一台性能很强劲的电脑是不是能加快回测? 非常感谢大家
在MetaTrader中的错误信息为2023.05.10 14:19:30.151 Trades '--------': failed instant buy 0.01 GBPUSD at 0.00000 sl: 1.24469 tp: 0.00000 [Invalid price] 看起来似乎是获取市价失败,试了很多次了还是没有用;我也不是在非交易日运行的 且last_error返回的结果居然是(1, 'Success')
我写了代码,要使程序在检测到市场价格到达我预设的价格时检测是否持仓,如果已有持仓就不开单,并作出提示。如果没有持仓就开多单。现在执行出现这样的问题——价格到达预设价格后,连续两次开仓,两次开仓离得很近,2、3秒钟,应该是价格先后两次到达预设价格后开仓。为什么第二次开仓代码执行过程没有检测到第一次的持仓呢?难道那时候第一次持仓还没有来得及被记录吗? void OnTick() { MqlTradeRequest request={}; MqlTradeResult result={}; //int long_orderquantity=0; //int
  开单疑问  (2)
我编写了一个开多单的代码,市场到我预设价格后,先检查有没有持仓,如果有就不开多单,如果没有就按照预设价格开多单。但执行之后问题出现——市场波动到预设价格后,程序就会开两次单,之后才打印出已经有持仓的提示。两次开单先后差几秒钟,应该是市场价格先后两次到达预设价格导致短时间内开两单。为什么第二次开单没有检测出有持仓了呢?难道是第二次价格出现得太快,导致第一次程序还没有把positiontotal()函数写进去? void OnTick() { MqlTradeRequest request={}; MqlTradeResult result={}; //int
[删除]
有没有出入金的查询函数???
程序代码我已经添加到下面的附件里了。这个小程序就是找到顶分形和底分形,然后连接起来,每个顶分形和底分形之间至少有一根K线。注:如果右侧K线被左侧相邻K线全包含的,右侧K线无效,从数组中剔除。 问题: 主程序中的底分形处理代码不被执行,即主程序中的92-117行。我检验过,头文件中的top_bottom()函数能够正常工作,函数中的四个if语句都能应对图表中出现的四种情况。但当主程序调用这个函数时,主程序中对 底分形的两种情况的 处理代码块( 92-117行 )没有工作,没有被读取,不知道为什么。