int CSignalMA::LongCondition()
{
int result=0;
int idx =StartIndex();
//--- 分析收盘价和指标在第一个分析柱的位置关系if(DiffCloseMA(idx)<0.0)
{
//--- 收盘价低于指标if(IS_PATTERN_USAGE(1) && DiffOpenMA(idx)>0.0 && DiffMA(idx)>0.0)
{
//----开盘价高于指标(即存在交叉点),但指标指向上方
result=m_pattern_1;
//--- consider that this is an unformed "piercing" and suggest to enter the market at the current price
m_base_price=0.0;
}
}
else
{
//----收盘价高于指标(指标不反对买入)if(IS_PATTERN_USAGE(0))
result=m_pattern_0;
//--- 如果使用模型 2if(IS_PATTERN_USAGE(2) && DiffMA(idx)>0.0)
{
//----指示器朝上if(DiffOpenMA(idx)<0.0)
{
//----开盘价低于指标(即存在交叉点)
result=m_pattern_2;
//--- 建议在 "回滚 "时入市
m_base_price=m_symbol.NormalizePrice(MA(idx));
}
else
{
//----开盘价高于指标if(DiffLowMA(idx)<0.0)
{
//----低价低于指标
result=m_pattern_2;
//--- consider that this is a formed "piercing" and suggest to enter the market at the current price
m_base_price=0.0;
}
}
}
}
//--- 返回结果return(result);
}
1.您能告诉我如何反转信号吗?
例如:要确认英镑/美元买入信号,我们需要一个 MACD 欧元/英镑卖出信号。
还是在库代码中挖掘,将 "加号 "改为 "减号",然后以不同的名称将其保存为库,这样会更容易些?
附注:在创建智能交易系统 时,最好能选择采用哪种信号:正向信号还是反向信号。
2.如何取出缝入库中的模式权重,以优化这些权重?
1.你能告诉我如何反转信号吗?
例如:要确认英镑/美元买入信号,我们需要一个 MACD 欧元/英镑卖出信号。
或者,是否更容易挖掘库代码,将 "加 "改为 "减",并以不同名称保存为库。
附注:如果能在创建智能交易系统 时选择采用哪种信号:正向信号还是反向信号,那就更好了。
2.如何取出缝入库中的模式权重,以优化这些权重?
1.反转(和忽略)信号的机制已内置在 CExpertSignal 基类中,但遗憾的是,向导尚未提供。
2 模式权重也是如此。
请附上 "向导 "后获得的智能交易系统的源代码,并作简要说明。我将尝试解释如何 "手工 "操作。
PS.将开发 "向导",稍后将提供这些设置。
1.如何在主信号列表中添加我的信号库(例如:更改当前 MACD 并保存而不删除主信号库)?
2.关于使用库的问题:
让我们来看看在向导的帮助下制作的基于 MAKD 的智能交易系统:我们创建并编译了它,进行了测试并得到了一些结果
库中的 MAKD 信号如下:
我将只 编译库(不编译 EA 代码本身)。测试结果与第一次 测试完全相同。
如果我也编译 EA 代码,则会得到不同的结果,在本例中仅针对模式 2。
我有一个问题:为什么在更改库中的某些参数后,我必须重新编译 EA 代码?(并没有改变)。
1.如何将我的库添加到主信号列表中(例如:更改当前 MACD 并保存而不删除主信号)?
您是指包含信号模块代码的 include 文件?根据需要更改当前模块并保存在同一目录下,但使用不同的名称。更多详情,请参阅文章:
在新的 MQL5 向导中创建交易机器人
使用 MetaEditor 的MQL5 向导 创建 EA 代码。
交易策略的基本类位于terminal_data_folder\MQL5\Include\Expert\.交易信号 类、未平仓头寸维护 类以及资本和风险管理 类的就绪算法位于信号、跟踪和资金子目录中。MQL5 向导分析这些目录中的文件,并使用它们生成 EA 代码。
由于某些原因,新 版本的终端 不再包含自定义版本的信号发生器模块。在/MQL5/Include/Expert/Signal/ 文件夹中有 30 个模块,但根据帮助,向导只看到 20 个模块作为标准提供。
是我的问题,还是 MT5 编辑器不再扫描包含信号模块的文件夹以查找新模块?即使是 Metaquotes 开发的基于蜡烛图形态的信号模块也没有连接。
由于某些原因,新 版本的终端 不再包含自定义版本的信号发生器模块。在/MQL5/Include/Expert/Signal/ 文件夹中有 30 个模块,但根据帮助,向导只看到 20 个模块作为标准提供。
是我的问题,还是 MT5 编辑器不再扫描信号模块文件夹以查找新模块?即使是 Metaquotes 开发的基于蜡烛图形态的旧信号模块也无法连接。
新信号模块必须有不同的模块描述,其类型必须是 SignalAdvanced(高级信号)。
新信号模块应有不同的模块描述,其类型应为 SignalAdvanced。
新信号模块必须有不同的模块描述,其类型必须是 SignalAdvanced。
如果在以前编写的信号模块中用 SignalAdvanced 代替 Signal,它们仍然不能工作。现在不使用函数 CheckOpenShort/CheckOpenLong 并用 ShortCondition/LongCondition 代替?
这些函数中没有参数,因此不清楚如何设置止盈和止损。
现在信号模块中到处都使用IS_PATTERN_USAGE(),不清楚为什么。
总之,我们正在等待有关如何自己制作信号模块的信息。
旧的向导模式 Type=Signal 是否可用?
每个市场模型都有一个重要性值,从 1 到 100 不等。数值越大,模型越强。
MA 权重为 0.4,随机 权重为 0.8 - 这是外部变量设定的,也是 MA 的来源 - 其重要性为 100。该模型 的随机重要性等于 80。每个模型的显著性在哪里设定或如何确定?