关于MQL5向导和标准交易类库的问题 - 页 14

 
例如,让我们看一下MACD信号。共描述了5个买入信号和5个卖出信号(反转,与信号线交叉,等等)。有什么办法可以得到这些信号在任何时候的价值吗?也就是说,为每个条形图形成一个由10个元素组成的向量,其中每个元素对应于信号,1表示存在,0-不存在?哪个CSignalMACD 类方法可以用来获得相应的数值?
 
IvanSD:

例如,让我们看一下MACD信号。共描述了5个买入信号和5个卖出信号(反转,与信号线交叉,等等)。有什么办法可以得到这些信号在任何时候的价值吗?也就是说,为每个条形图形成一个由10个元素组成的向量,其中每个元素对应于信号,1表示存在,0-不存在?可以用 什么CSignalMACD 类方法来获得相应的值?
不幸的是,在标准交付中没有这种功能。
 
uncleVic:
不幸的是,这一功能并没有作为标准功能提供。
谢谢你的答复
 

你好,请帮我一下。我已经创造了一个机器人(我的第一个机器人)。启动后,它立即关闭,并显示专家初始化机器人(EURUSD,H1)失败。我找不到关于它的更多信息。

以下是他的代码。

--------------------------------------

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

//| robot.mq5 |

//| Copyright 2012, MetaQuotes Software Corp.

//| http://www.mql5.com |

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

#property copyright"Copyright 2012, MetaQuotes Software Corp.

#属性链接 "http://www.mql5.com"

#财产版本 "1.00"

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

//| 包括 |

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

#include <Expert\Expert.mqh>。

//--- 可用的信号

#include <Expert\robot\robot.mqh>。

//------可用的尾部

#include <Expert\Trailing\TrailingNone.mqh>。

//---- 可用的资金管理

#include <Expert\Money\MoneyFixedLot.mqh>。

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

//| 输入 |

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

//----对专家的输入

输入字符串 Expert_Title ="机器人"; // 文档名称

ulong Expert_MagicNumber =24553; //

bool Expert_EveryTick =false; //--- 主信号的输入。

//---主信号的输入

输入 int Signal_ThresholdOpen =10; // 打开的信号阈值 [0...100] 。

输入 int Signal_ThresholdClose =10; // 关闭 [0...100] 的信号阈值

输入 double Signal_PriceLevel =0.0; // 执行交易的价格水平

Input double Signal_StopLevel =50.0; // Stop Loss level (in points)

输入 double Signal_TakeLevel =50.0; // Take Profit level (in points)

输入 int Signal_Expiration =4; // 挂单的到期时间(以条为单位)。

输入 int Signal_MaCross_FastPeriod=13; // My_MA_Cross(13,MODE_SMA,21,..) 快速MA的周期

输入 ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) 快速MA的方法。

输入 int Signal_MaCross_SlowPeriod=21; // My_MA_Cross(13,MODE_SMA,21,..) 慢速MA的周期

输入 ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) 慢速MA的方法

输入 double Signal_MaCross_Weight =1.0; // My_MA_Cross(13,MODE_SMA,21,...) Weight [0...1.0] 。

//--------为钱而投入

输入 double Money_FixLot_Percent =10.0; // Percent

输入 double Money_FixLot_Lots =0.1; // 固定数量

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

//| 全球专家对象 |

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

CExpert ExtExpert。

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

//|专家的初始化功能 ||

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

int OnInit()

{

//----初始化专家

if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))

{

//----失败

printf(__FUNCTION__+": 错误初始化专家")。

ExtExpert.Deinit()。

返回(-1)。

}

//---创建信号

CExpertSignal *signal=new CExpertSignal。

如果(signal==NULL)

{

//----失败

printf(__FUNCTION__+": 错误创建信号")。

ExtExpert.Deinit()。

返回(-2)。

}

//---

ExtExpert.InitSignal(signal)。

signal.ThresholdOpen(Signal_ThresholdOpen)。

signal.ThresholdClose(Signal_ThresholdClose)。

signal.PriceLevel(Signal_PriceLevel)。

signal.StopLevel(Signal_StopLevel)。

signal.TakeLevel(Signal_TakeLevel)。

signal.Expiration(Signal_Expiration)。

//--- 创建过滤器MA_Cross

MA_Cross *filter0=new MA_Cross;

如果(filter0==NULL)

{

//----失败

printf(__FUNCTION__+": 错误创建过滤器0")。

ExtExpert.Deinit()。

返回(-3)。

}

signal.AddFilter(filter0)。

//---- 设置过滤器参数

filter0.FastPeriod(Signal_MaCross_FastPeriod)。

filter0.FastMethod(Signal_MaCross_FastMethod)。

filter0.SlowPeriod(Signal_MaCross_SlowPeriod)。

filter0.SlowMethod(Signal_MaCross_SlowMethod)。

filter0.Weight(Signal_MaCross_Weight)。

//---- 创建尾随对象

CTrailingNone *trailing=new CTrailingNone。

如果(trailing==NULL)

{

//----失败

printf(__FUNCTION__+": 错误创建尾部")。

ExtExpert.Deinit()。

返回(-4)。

}

//------给专家添加尾音(将自动删除)

if(!ExtExpert.InitTrailing(trailing))

{

//----失败

printf(__FUNCTION__+": 初始化尾部的错误")。

ExtExpert.Deinit()。

返回(-5)。

}

//---- 设置尾部参数

//---- 创建货币对象

CMoneyFixedLot *money=new CMoneyFixedLot。

如果(money==NULL)

{

//----失败

printf(__FUNCTION__+": 错误创建货币")。

ExtExpert.Deinit()。

返回(-6)。

}

//---给专家加钱(会自动删除))

if(!ExtExpert.InitMoney(money))

{

//----失败

printf(__FUNCTION__+": 错误初始化货币")。

ExtExpert.Deinit()。

返回(-7)。

}

//--- 设置货币参数

money.Percent(Money_FixLot_Percent)。

money.Lots(Money_FixLot_Lots)。

//---- 检查所有交易对象的参数

if(!ExtExpert.ValidationSettings())

{

//----失败

ExtExpert.Deinit()。

返回(-8)。

}

//---调整所有必要的指标

if(!ExtExpert.InitIndicators())

{

//----失败

printf(__FUNCTION__+": 错误初始化指标")。

ExtExpert.Deinit()。

返回(-9)。

}

//-- 确定

return(0);

}

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

//|专家的去初始化功能。

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

空白的OnDeinit(const int reason)。

{

ExtExpert.Deinit()。

}

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

//| "Tick "事件处理函数|

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

空白的OnTick()

{

ExtExpert.OnTick()。

}

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

//| "交易 "事件处理函数|

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

空白的OnTrade()

{

ExtExpert.OnTrade()。

}

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

//| "定时器 "事件处理函数 | |

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

空白的OnTimer()

{

ExtExpert.OnTimer()。

}

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

可能是什么问题。我甚至不知道该先看哪里。

提前感谢。

Automated Trading and Strategy Testing
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
 
pasha191:

你好,请帮我一下。我创造了一个机器人(我的第一个机器人)。启动后,它立即关闭,并显示专家初始化机器人(EURUSD,H1)失败。我找不到关于它的更多信息。


我没有足够的信息。

需要

#include <Expert\robot\robot.mqh>

我需要启动参数(测试器/终端、服务器、配对、时间框架等)。

PS 源代码最好作为一个文件附上

 

关于MQL5 Wizard的问题。

1) //------投入资金
输入 double Money_FixLot_Percent =10.0; // 百分比
输入 double Money_FixLot_Lots =0.1; // 固定音量
这些参数是什么意思?它们之间又有什么关系呢?

2) 我能否生成一个 可以下挂单的EA?如果是这样,怎么做?

3) Signal_Expiration变量是什么意思?我如何使用它?

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
evrika:

关于MQL5 Wizard的问题。

1) //------投入资金
输入 double Money_FixLot_Percent =10.0; // 百分比
输入 double Money_FixLot_Lots =0.1; // 固定音量
这些参数是什么意思?它们之间又有什么关系呢?

2) 我能否生成一个 可以下挂单的EA?如果是这样,怎么做?

3) Signal_Expiration变量是什么意思?如何使用它?

1) Money_FixLot_Percent参数用于设置 "强制停止 "水平。请勿触摸它。

Money_FixLot_Lots参数设置了一个固定的数量(手数),您的专家顾问将以这个数量进入市场。

这些参数没有任何相互关联。

2)任何Wizard生成的专家顾问都可以交易挂单。为此目的,使用了..._PriceLevel参数。根据这个参数的值,专家顾问将有如下表现。

0--市场进入将以当前价格进行。

>0 - 市场进入将使用挂起的限价订单(通过该参数的值优于当前价格)。

<0 - 市场进入将使用待定的止损订单(比参数值的当前价格差)。

3) Signal_Expiration参数设置挂单的有效期(以当前时间段的条数计算)。

 

如果我在MQL5向导中 生成一个EA,这样的EA可以同时开多少个订单?这方面是如何监管的?

Собери свой торговый советник в Мастере MQL5
Собери свой торговый советник в Мастере MQL5
  • 2011.01.14
  • MetaQuotes Software Corp.
  • www.mql5.com
Знание языков программирования теперь не является обязательным условием для создания торговых роботов. Если раньше это действительно служило непроходимым препятствием для реализации своих торговых стратегий, то появление Мастера MQL5 в корне изменило ситуацию. Начинающие трейдеры могут перестать тревожиться из-за отсутствия опыта программирования - с новым визардом, позволяющим быстро генерировать код советника, он не понадобится.
 
evrika:

如果我在MQL5向导中 生成一个EA,这样的EA可以同时开多少个订单?这一点是如何控制的?

1个订单。它不受监管。

该向导是为策略测试而设计的。如果你想要更多,你需要 "存档"(用手写)。

 
uncleVic:

2)由向导 生成的任何EA 都可以交易挂单。为此目的,使用了..._PriceLevel参数。根据这个参数的值,专家顾问将有如下表现。

0--市场进入将以当前价格进行。

>0 - 市场进入将使用挂起的限价单(通过该参数的值优于当前价格)。

<0 - 市场进入将使用挂起的止损单(比参数值的当前价格差)。

PriceLevel参数的测量单位是什么?在点?例如,如果我想设置一个比当前价格高20点的挂单止损。

我应该设置这个参数PriceLevel =-0.0020吗?