文章 "6 步创建您自己的交易机器人!" - 页 7

 

我试着用这篇文章来制作我自己的程序,但它太复杂了,不适合我的简单目的。在这里,我试着编写一个简单的程序,但编译器发现(只有)一个错误:无类型 "的类。而且,无论我输入什么作为类的 "类型 "或 "名称",都没有任何变化。

开头是这样的。我到底做错了什么?


//|KaufVerkauf.mq5

//|Copyright ....2012 |
//|http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright"Copyright ....2012"
#property link"http://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| 包含|
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>


//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| 专家对象初始化|
//+------------------------------------------------------------------


//---- 指标句柄
int RSI_handle = 0;// 指标 iRSI 的句柄
intADX_handle = 0; // 指标 iADX 的句柄
intForce_handle = 0;// 指标 iForce 的句柄
int AD_handle = 0;// 指标 iAD 的句柄
int Close_handle = 0;
int
int Low_handle = 0;
int VTick_handle = 0;
intVReal_handle = 0;
int sig = 0;


double MqlParams[]; // 用于存储指标参数的数组

//+------------------------------------------------------------------+
//| 专家初始化函数 RSI|
//+------------------------------------------------------------------+

Class CExpertSignal

{
private:

int OnInit()

//--- 创建指标 iRSI。..........
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 

非常感谢。

我试着测试了一下:

- 下载您的代码,复制到 MQL5 并编译:成功,无错误。

- 但 EA 无法运行,它会产生如下错误:

TestMA_Cross (EURUSD,H1) MA_Cross::CreateFastMA: 初始化快速 MA 对象时出错

请告诉我这个参数出了什么问题:

//--- 设置快速 MA 的参数
   MqlParam parameters[4];
//---
   parameters[0].type=TYPE_STRING;
   parameters[0].string_value="Examples\\Custom Moving Average.ex5";
   parameters[1].type=TYPE_INT;
   parameters[1].integer_value=m_period_fast;      // 期间
   parameters[2].type=TYPE_INT;
   parameters[2].integer_value=0;                  // 移位
   parameters[3].type=TYPE_INT;
   parameters[3].integer_value=m_method_fast;      // 求平均值的方法
//--- 对象初始化
   if(!m_fast_ma.Create(m_symbol.Name(),m_period,IND_CUSTOM,4,parameters))
     {
      printf(__FUNCTION__+": Error initializing the object of the fast MA");
      return(false);
     }

再次感谢您。

 


我是 MetaTrader、MQL5 和外汇交易的新手,所以这些文章非常有用!


为什么它不仅 关闭我的多头头寸,而且在同一信号下直接进入空头头寸?
作为了解所有编程的第一个测试,我只想做多,因此只打开和关闭多头头寸
,而不在关闭/卖出信号下进入空头头寸。

在此先表示感谢。

Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Symbol Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Environment State / Symbol Properties - Documentation on MQL5
 

下午好、

请教我如何在 Expert Advisor 中增加(充值)仓位,该系统是基于 MQL5 向导编写的,仓位通过以下方式打开

virtual int LongCondition();
virtual int ShortCondition();

我是根据文章中的建议编写机器人的

https://www.mql5.com/zh/articles/367"用 6 个步骤创建一个交易机器人 "一文中的建议编写的,它运行良好,但试图影响头寸大小(无论增减)

(无论增加还是减少),例如在

LongCondition();

不会导致任何结果,已经打开的仓位不会改变,只能通过执行平仓条件或触发 sl , tp 将其删除。

我喜欢 MQL5 向导,它可以方便快捷地 "建立 "一个多指标智能交易系统,更改 sl 跟踪模块,更改资金管理模块。

但我试图编写一个 Expert Advisor,当一个指标形成条件时打开最小仓位,当另一个指标确认趋势时增加(填充)仓位。

我遇到了上述问题--当通过 LongCondition() 发出再次开仓信号时,已经开仓的头寸不会改变;

谢谢。

Создай торговый робот за 6 шагов!
Создай торговый робот за 6 шагов!
  • 2012.06.01
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы не знаете, как устроены торговые классы, и пугаетесь слов "Объектно-ориентированное программирование"? На самом деле вовсе не обязательно всё это знать, чтобы написать свой собственный модуль торговых сигналов - достаточно следовать простым правилам. Всё остальное сделает Мастер MQL5, и вы получите готовый торговый робот!
 

如果我在 mt5 策略测试器中运行这个示例,并选择资产为 pex。Vale5, genetic algorithm, d1, ohlc 1 minute, max balance,会出现错误!

如果我在一个外汇对上运行,同样的优化似乎完成了(我没想到会完成,因为在本地代理上花费的时间太长了)。

在测试者日记中出现的错误,在本例中是针对 Vale5 的,与 OnInit 有关。有人发现过同样的问题吗?如果有,是否有任何解决方案和/或结论?

如果有人能提供帮助,非常感谢!

 
fspyna:

如果我在 mt5 策略测试器中运行这个示例,并选择资产为 pex。Vale5, genetic algorithm, d1, ohlc 1 minute, max balance,会出现错误!

如果我在一个外汇对上运行,同样的优化似乎完成了(我没想到会完成,因为在本地代理上花费的时间太长了)。

在测试者日记中出现的错误,在本例中是针对 Vale5 的,与 OnInit 有关。有人发现过同样的问题吗?如果有,是否有任何解决方案和/或结论?

如果有人能提供帮助,非常感谢!

你好,请提供更多信息,如错误日志或截图,以便我们更好地分析问题。

像您上面这样的简单描述对确定 问题没有太大帮助。

致以最崇高的敬意,
Malacarne

 

我还没有用 MQL 编程的经验,但我有一些用其他语言编程的经验。 编程中最容易犯的错误之一(我的具体课程是 Java,它的风格与 C++ 非常相似,显然也与 MQL 相似)就是没有正确地关闭大括号。 这是最容易犯的错误之一,相反,也是最难发现的错误之一。KJG,就关闭多头并直接进入空头而言,这可能就是这种 EA 风格的设计初衷,我见过很多采用这种设置的交易风格,我相信它们的设计初衷是为了应对波动性大、价格波动幅度大的市场,比如在分钟时间框架图上可能会出现的情况。

这篇文章也写得很好,我一定会好好利用这篇文章,我相信这里还有很多其他文章。

 
我按照步骤 1 和 2 中的说明进行了操作,但信号没有出现在向导的可用信号列表中。我还尝试了其他信号,但都不起作用。也许向导中显示的信号数量有限制。谁能帮帮我?
 

晚上好

您在尝试测试机器人时遇到了以下错误。

2017.07.04 18:20:27.404 测试仪停止,因为 OnInit 失败

是我做错了什么,还是机器人有什么设置

谢谢

Carlos F.

 

对不同的制造阶段都做了很好的解释。特别是对于那些从未开发过机器人的人来说,这是一份清晰而有用的工作。 谢谢