[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 129

 

大家好,我下载了猫头鹰,在测试器中一切正常,卖出和买入,我把它放在Alpari的演示中,只买了.....。

也许那里缺少什么?我不知道它将如何运作....

/* 反编译后删除 */

 

我希望我的专家顾问在价格接近掩码+缩进i_thresholdFromMa的 价格时买入。我这样写是为了一个长期的立场。

bool OpenBuy(double fastMa)
{
   int ticket = -1;
   
   //if (Bid > fastMa)
   if (High[0] == fastMa || Low[0] == fastMa)
       ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(fastMa + i_thresholdFromMa * pt), 3, 0, 0, NULL, i_magic, 0);
   
      if (ticket > 0 && OrderSelect(ticket, SELECT_BY_TICKET == true))
 
   return (true);
}

fastMa 的值是通过函数参数传递的。然后我将当前的高点和低点的值与fastMa 快速冲程的值进行比较。

如果high或low的值等于fastMa 快速阀的值,那么从逻辑上讲,应该以价格(fastMa 快速阀的值+与其相抵的i_thresholdFromMa)开出订单。

该功能不起作用。原因是什么呢?专家顾问不会向期刊发送任何错误。

 
hoz:

我希望我的专家顾问在价格接近掩码+缩进i_thresholdFromMa的 价格时买入。我这样写是为了一个长期的立场。

fastMa 的值是通过函数参数传递的。然后我将当前的高点和低点的值与fastMa 快速冲程的值进行比较。

如果high或low的值等于fastMa 快速阀的值,那么从逻辑上讲,应该以价格(fastMa 快速阀的值+与其相抵的i_thresholdFromMa)开出订单。

该功能不起作用。原因是什么呢?专家顾问不会向期刊发送任何错误。

晚上好,你在半夜里!

分数之间的相等关系将永远不会被固定下来!虱子会滑落,而且没有信号。这就是为什么这样做会更好。

   if (High[0] >= fastMa && Low[0] <= fastMa)
 

我同意鲍里斯的观点,但我还想补充一点,任何价格比较最好按以下方式进行

不是Bid>fastMA而是Bid-fastMA>Zero

不是High[0]>=fastMA ,而是High[0]-fastMA>-Zero ,以此类推:)

在全球部分。

#define Zero 0.00000001 , 或类似的东西。

 
tara:

我同意鲍里斯的观点,但我要补充的是,任何价格比较最好按以下方式进行

不是Bid>fastMA而是Bid-fastMA>Zero

不是High[0]>=fastMA ,而是High[0]-fastMA>-Zero ,以此类推:)

在全球部分。

#define Zero 0.00000001 , 或类似的东西。

而且我同意阿列克谢的观点,但我没有细说,只是纠正了明显的不正确之处!"。其余的都可以通过检查发现,根据自己的口味进行品尝。
 

AlexeyBoris 感谢你们的宝贵意见。

#define Zero 0.00000001 , 我想这将是非常小的:)我想你可以安全地把半个点放在这里,或者一个传播点......

 
hoz:

AlexeyBoris 感谢你们的宝贵意见。

#define Zero 0.00000001 , 我想这将是非常小的:)我想你可以安全地把半个点放在这里,或者一个传播点......

试着放一个变量,而不是零,这就是你确定必要的间距的方法!。而且很可能你将不得不离开它,因为它的价值将根据市场状况而变化。
 
borilunad:
试着放一个变量,而不是零,这就是你定义必要的间隙!而最有可能的是,你应该离开它,因为它的价值会根据市场的状况而改变。


是的,如果有一个变量,我们应该测试它并观察市场结果。同时,我正在写它,以便在测试器中运行它,并确定我的TS的优势和劣势。

这是我的逻辑。

bool OpenBuy(double fastMa, double slowMa)
{
   int ticket = -1;
   
   //if (Bid > fastMa)
   //if (High[0] == fastMa || Low[0] == fastMa)
   if ( (MathAbs(High[0] - fastMa) <= 1 * pt ) || ( MathAbs(Low[0] - fastMa) <= 0.1 * pt) )
       ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(fastMa + i_thresholdFromMa * pt), 3, 0, 0, NULL, i_magic, 0);
   
      if (ticket > 0 && OrderSelect(ticket, SELECT_BY_TICKET == true))
 
   return (true);
}

我现在把1个 放在可变间隙 的地方进行测试,然后再把它移到外部的那个地方。

根据我的理解,这将是最正确的变体。如果价格触及柱状物或不触及柱状物,得到一个信号将是很重要的。烛台有两个端点(高点和低点)。这意味着我们通过它的两个极值来检查。这就是为什么我把差距 写得比1 短。

但我想知道它是否在i_thresholdFromMa(缩进)的距离上打开,即不是从手腕,而是从蜡烛的极点。

我将要求你不要注意开放功能中的进入条件,当然我将把它纳入信号功能中

例如,这里有一张截图。

此刻的屏幕截图

红球是fastMAi_thresholdFromMa(从挥手中缩进)在外部变量中是5所有其他条件都是买的。在这里,我们看到在红色fastMa 下方有两个蓝色的止损单。我看不出这里有什么逻辑。订单是以ND(fastMa + i_thresholdFromMa * pt)价格精确发送的,我可以在给定的函数中看到它。

 
hoz:


是的,如果是可变的,应该在市场上测试和观察,它显示出什么样的结果。同时,我写这篇文章是为了在测试器中运行它,并确定TS的优势和劣势。

这是我的逻辑。

我暂时把1个 放在可变间隙 的地方进行测试,然后再把它移到外部的那个地方。

根据我的理解,这将是最正确的变体。如果价格触及条形图或不触及条形图,得到一个信号将是很重要的。烛台有两个端点(高点和低点)。这意味着我们通过它的两个极值来检查。这就是为什么我把差距 写得比1 短。

但我想知道它是否在i_thresholdFromMa(缩进)的距离上打开,即不是从手腕,而是从蜡烛的极点。

我将要求你不要注意开放功能中的进入条件,当然我将把它纳入信号功能中

例如,这里有一张截图。

红色复选标记是fastMAi_thresholdFromMa(从挥手中缩进)在外部变量中是5根据所有的条件,其余的都是买的。在这里,我们看到在红色fastMa 下方有两个蓝色的止损单。我看不出这里有什么逻辑。订单是以ND(fastMa + i_thresholdFromMa * pt)价格准确发送的,我可以在给定的函数中看到它。

如果你想提前开仓,在一个柱子的中间,你必须为Bai指定Low bar,为Sall指定High bar。

   if ( MathAbs(fastMa - Low[0]) <= 1 * pt )//для бая

   if ( MathAbs(High[0] - fastMa) <= 1 * pt )// для сэлла
   
 
borilunad:

如果你想提前开仓,在一个柱子的中间,你必须为Bai指定Low bar,为Sall指定High bar。

if ( MathAbs(fastMa - Low[0]) <= 1 * pt )//для бая

   if ( MathAbs(High[0] - fastMa) <= 1 * pt )// для сэлла


好吧,你不需要提前做。我不知道蜡烛是从哪一边接近面具的。顶部或底部。这就是问题所在。这就是为什么它是不合适的。不是吗?

总之,我的函数OrderSend() 中的开盘价 是不同的,无论如何它都比面具高。

这里我打印了函数中的数值。

//+-------------------------------------------------------------------------------------+
//| Открытие длинной позиции                                                            |
//+-------------------------------------------------------------------------------------+
bool OpenBuy(double fastMa, double slowMa)
{
   int ticket = -1;
   
   if ( (MathAbs(High[0] - fastMa) <= 1 * pt ) || ( MathAbs(Low[0] - fastMa) <= 0.1 * pt) )
   {
       if ((fastMa + i_thresholdFromMa * pt) > Ask)            // Проверка что цена открытия выше Ask, т.к. у нас вход отложенником
      Print("fastMa = ", DoubleToStr(fastMa,Digits));
      Print("i_thresholdFromMa = ", DoubleToStr(i_thresholdFromMa * pt,Digits));
       ticket = OrderSend(Symbol(), OP_BUYSTOP, 0.1, ND(fastMa + i_thresholdFromMa * pt), 3, 0, 0, NULL, i_magic, 0);
      Print("OrderOpenPrice() = ", DoubleToStr(OrderOpenPrice(),Digits));
   }
      if (ticket > 0 && OrderSelect(ticket, SELECT_BY_TICKET == true))
 
   return (true);
}

这就是日志显示的情况。

2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: delete #110 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: modify #110 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: OrderOpenPrice() = 1.29820
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: open #110 buy stop 0.10 EURUSD at 1.29820 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: i_thresholdFromMa = 0.00050
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: fastMa = 1.29770
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: delete #109 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: modify #109 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: OrderOpenPrice() = 1.29820
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: open #109 buy stop 0.10 EURUSD at 1.29820 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: i_thresholdFromMa = 0.00050
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: fastMa = 1.29770
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: delete #108 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: modify #108 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: OrderOpenPrice() = 1.29820
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: open #108 buy stop 0.10 EURUSD at 1.29820 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: i_thresholdFromMa = 0.00050
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: fastMa = 1.29770
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: delete #107 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: modify #107 buy stop 0.10 EURUSD at 1.29820 sl: 1.29520 tp: 1.30520 ok
2013.02.01 15:37:18     2011.01.12 14:02  D_Aleks_first_pattern EURUSD,H1: OrderOpenPrice() = 1.29820
2013.02.01 15:37:14     D_Aleks_first_pattern EURUSD,H1: loaded successfully

很明显,开盘价应该由我来定。你正在被计算。在机器值上加一个缺口。你可以从印刷品中看到它...