EA: N 秒 N 点

 

N 秒 N 点:

智能交易系统跟踪所有品种的所有魔幻数字的持仓。如果开仓时间已达 "Waiting for seconds (等待秒数)", 且其获利已达止盈点数, 则 EA 平仓。如果利润未达到止盈点数, 则 EA 移动止盈价位。

作者: Vladimir Karputov

 

谢谢,这正是我需要的。

但我不明白 "如果利润没有达到'止盈'点 - 则转移止盈水平"这一点。它到底会将止盈转移到哪里?

是否有 MT4 版本?

 
Valeriy Belozertsev:

谢谢,这正是我需要的。

但我不明白 "如果利润没有达到'止盈'点 - 则转移止盈水平"这一点。它到底会将止盈转移到哪里?

是否有 MT4 版本?


旧终端的支持被剥夺了。作为对懒惰的惩罚。

 
Valeriy Belozertsev:

只是我不明白 "如果利润未达到'止盈'点 - 则转移止盈水平"这一点。它到底会将 TP 移动到哪里?

这是一个谜。
 
Vladimir Karputov:

旧终端的拥护者被剥夺了支持。作为对懒惰的惩罚。

这就够了。

 
Vladimir Karputov:

旧终端的拥护者被剥夺了支持。作为对懒惰的惩罚


"我们对张伯伦的回应"。

没有 "MT4 专家 "的支持,您的代码仍将是 "如何做得更好 "的最佳范例。

void OnTimer()
  {
//---
   for(int i=PositionsTotal()-1;i>=0;i--)
      if(m_position.SelectByIndex(i)) // 通过索引选择位置,以便进一步访问其属性
         if(TimeCurrent()-m_position.Time()>InpSeconds)
           {
            double ExtTakeProfit=0;
            double m_adjusted_point;               // 点值调整为 3 点或 5 点
            if(!InitTrade(m_position.Symbol(),m_position.Magic(),m_adjusted_point,ExtTakeProfit))
               continue;
...
  }
//+------------------------------------------------------------------+
//| 启动交易对象|
//+------------------------------------------------------------------+
bool InitTrade(const string symbol,const ulong magic,double &adjusted_point,double &ext_take_profit)
  {
...
//--- 调整 3 或 5 位数
   int digits_adjust=1;
   if(m_symbol.Digits()==3 || m_symbol.Digits()==5)
      digits_adjust=10;
   adjusted_point=m_symbol.Point()*digits_adjust;

   ext_take_profit=InpTakeProfit*adjusted_point;
//---
   return(true);
  }


在 OnInit() 阶段已经知道报价(5 位数)的重要性,因此无需在分析每个仓位时执行报价。

 
Andrey F. Zelinsky:

"我们对张伯伦的回答"。

如果没有 "MT4 专家 "的支持,您的代码仍将是 "最好不要这样做 "的最佳范例


在 OnInit() 阶段已经知道报价(5 位数)的重要性,因此没有必要在分析每个仓位时执行报价。


通常我是这样做的:在 OnInit() 中定义一次数字,但在此 Expert Advisor 中,当在终端中打开 完全不同符号的位置 时,可能会出现变体。因此,为了安全起见,我必须为每个仓位定义数字容量。

 
Vladimir Karputov:

...但在此 Expert Advisor 中,有可能在终端中为完全不同的符号开仓。这就是为什么我们必须对 每个仓位进行对冲 并确定数字化。


您是否遇到过不同符号的报价数字(5 位数和 4 位数)不同的交易账户?

 
Andrey F. Zelinsky:

在 OnInit() 阶段已经知道报价(5 位数)的意义,因此不需要在分析每个位置时执行报价。

我不明白为什么很多人使用这种结构(我遇到过很多次)--他们查看点/位数,然后对其进行额外处理。

这肯定是有道理的,但我不明白他们为什么要这样写。毕竟,这是从某人那里学来的。

 
Andrey F. Zelinsky:

您是否遇到过单个交易账户中不同符号的报价值(5 位数和 4 位数)不同的情况?


这样的例子比比皆是(您只需睁大眼睛,多看几眼)。我会等到你意识到为止:)

 
fxsaber:

我一直不明白为什么很多人使用这样的结构(我不止一次遇到过)--他们看点/数字是为了做一些额外的事情。

肯定是有道理的,但我不明白他们为什么要这样写。毕竟,这是从某人那里得来的。


其中的逻辑很简单--1)使相同的设置适用于不同的数字;2)许多人只是更习惯于使用 4 位数字。

只是有些人使用起来正确而不显眼,而有些人使用起来却很难看。