初学者的问题 MQL5 MT5 MetaTrader 5 - 页 830

 
Artyom Trishkin:

在这种情况下,它不是'更好',它正是你所需要的--它是标准交易函数的封装类。它不存储多个魔法师。因此,它需要在每次需要用新的魔力开仓前和开仓时设置一个魔力。

一般来说,顺序如下。

  • 仓位应以magic 1开仓--我们设置magic 1,随后的仓位将有magic 1。
  • 有必要用 "魔术师2 "开仓--我们设置了 "魔术师2",所有后续仓位都会有 "魔术师2"。
  • 有必要用魔力3开仓--我们将设置魔力3,每一个下一个位置都会有魔力3。

等...

我这样说的原因是,有些人可能有不同的看法,而且这也很有效。

 
Artyom Trishkin:

在这种情况下,它不是'更好',它正是你所需要的--它是标准交易函数的封装类。它不存储多个魔法师。因此,它需要在每次需要用新的魔力开仓前和开仓时设置一个魔力。

一般来说,顺序如下。

  • 仓位应以magic 1开仓--我们设置magic 1,随后的仓位将有magic 1。
  • 有必要用 "魔术师2 "开仓--我们设置了 "魔术师2",所有后续仓位都会有 "魔术师2"。
  • 有必要用魔力3开仓--我们将设置魔力3,每一个下一个位置都会有魔力3。

等...

它是这样的。

if(BuyCount()>0)
        {
         Print("Уже есть позиция на покупку !!!");
         return; // не добавлять к открытой позиции на покупку
        }
         SL=NormalizeDouble(latest_price.ask - STP*_Point,_Digits);
         TP=NormalizeDouble(latest_price.ask + TKP*_Point,_Digits);
         m_trade.SetExpertMagicNumber(Magic);
         m_trade.Buy(lots1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2");
         m_position.Select(_Symbol);
           {
            ulong myMagic=m_position.Magic();
            Print(" Открыта поза Бай с магиком № ",myMagic,", И спредом ",SymbolInfoInteger(_Symbol,SYMBOL_SPREAD));
           }

m_trade.SetExpertMagicNumber(Magic); 在开仓 之前或之后,m_trade.Buy(lot1,_Symbol,0,SL,TP,"Lag-MA_IAMA(conversely)_2.5.6.7 + 2")。

 
Vladimir Karputov:

由于CTrade类中没有GetExpertMagicNumber 方法,在交易操作 后打印出此代码。

这样,你可以检查两个EA是否有不同的魔力。

谢谢你,这样更方便。我不需要CPositionInfo类,我不需要选择位置。它在测试器中工作,但你必须等待账户上的发展。

 

请告诉我SymbolInfoSessionQuote SymbolInfoSessionTrade 之间的区别
或者,同样的事情,报价环节和交易环节之间有什么区别?
的妈呀!那什么是session_index//session number
我们有编号的session吗?用什么原则给它们编号,写在哪里?

 

请告知在MQL5编程时,如何在自定义的Trailing类中使用标准CExpertSignal类的void Ignore(long value) { m_ignore=value; }方法?我怎样才能访问它?

我有一个自定义信号类,给我提供了开仓和平仓的方法。但在 "追踪 "中,我想通过另一种方法来保持位置。如果分别编写自定义类MySignal和MyTrailing,则通过首先触发的条件关闭头寸。如果尾随条件提前被触发,则一切正常。但有时从MySignal传来一个新的(反转)信号,头寸被反转,我需要它在开仓后伴有追踪,而不是平仓,也不是开新仓。我看了看基类,感觉是基类信号中的m_ignore负责这个问题。如果它在适当的过滤器中被赋值为1,似乎可以正常工作。我在OnInit中把filter0.Ignore(0)添加到Expert Advisor类中。但是我是OOP的新手,不明白如何在MyTrailing类中改变这个值,这个类不是继承自CExpertSignal类,而是它的 "表亲"(比方说filter0.Ignore(1) )。请告知如何做到这一点。

实际上,更普遍的问题是:如何在两个不是后代的类之间传递信息?如何将信息从尾随类转移到信号类?也许,你可以创建一个全局变量并通过它进行通信。但相对于OOP中受保护成员的逻辑,这看起来很不正常。


 
User_mt5:

请告诉我SymbolInfoSessionQuote SymbolInfoSessionTrade 之间的区别
或者,同样的事情,报价环节和交易环节之间有什么区别?
的妈呀!那什么是session_index//session number
我们有编号的session吗?他们是根据什么原则来编号的,哪里写的?

简单地说。

报价时段--报价正在进行(但可能有交易禁令)。

交易时段(在报价时段内或与报价时段相吻合)--你可以交易。

会话索引 - 从服务器时间00:00:00-23:59:59的会话索引号(如果有任何中断,那么会话大于1)。

见市场概览中每个符号的规格。

 
Kirill Belousov:

简单来说

报价时段--报价正在进行中(但可能有交易禁令)。

交易时段(内部或与报价时段重合)--你可以进行交易。

会话索引 - 从服务器时间00:00:00-23:59:59的会话索引号(如果有空隙,会话大于1)。

见市场概览中每个符号的规格。

谢谢你的澄清。你已经帮助我了。

 
Vladimir Karputov:

美分信号现在只能是免费的。

为什么我不能编辑我的个人资料中的名字?

 
tsd Tsepkov:

为什么不能编辑资料中的名字?

刚刚检查过:信号名称完全可以编辑。

 
Vladimir Karputov:

我刚刚检查了一下:信号名称是完全可以编辑的。

我的意思是第一个名字,它说你必须把它改成一个真实的名字,但它不起作用。