[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 547

 

Alp:

我为这个愚蠢的问题道歉,但仍然。

我无法理解。假设我买入(即进行买入交易)100万美元或任何其他金额的欧元兑美元,使图表明显跳动。

而问题是,在这样的交易之后,它将走向何方--向上还是向下(从我的交易中一跃而过)?我认为它将会上升。我的想法正确吗?

Dimka-novitsek:

是的,我是这样看的。因为假设你买了欧元,而市场上的欧元较少,因为有些欧元留在你的储物柜里。这意味着它们的市场价格将上升!这意味着它们的市场价格将上升。

然后就变得更加不清楚了。比方说,我以1 000 000(1k)美元买入欧元(经纪人将其乘以100,因此交易价格为100k),图表跳升100点,并立即卖出,我以10 000美元的价格加价,以及经纪人的佣金和价差,结果6000美元净收入我口袋。(那么很明显,在销售之后,它将再次下跌100点。)这是胡说八道!!!!。也许它终究会跌到谷底?否则,非常大的玩家将赚取数十亿美元,基本上什么都不做。

 
Roman.:

伙计们,你们能就这个问题提供建议吗?

这里有一个脚本,可以从crenfx找到之字形反冲的最大尺寸--见这里

我把它扔在M5的仪器图表上--它在默认的时间框架下工作正常。

这是Alpari办公室中用F2加载符号时的最大历史深度--我检查过了,即它看起来像客户终端的 "专家 "标签的内容--似乎是真的。

当在我的EA中使用相同的脚本设计,在同一个M5图表周期的相同时间间隔中,它不能正确计数,即

它计算出的数字或0相当不同(比脚本中的小)。可能是什么错误或可能是某种历史的不一致?谢谢你。

也就是说,我在找到故障安全装置的预计时间后开始使用猫头鹰的测试器,理论上一切正常,脚本和猫头鹰结尾的数字应该是一样的......可能的错误是什么?


检查测试器中的条数。在开始时,它应该是1000,如果它是存在的,当然。
 
Vinin:

检查测试器中的条数。在开始时,它应该是1000,当然如果它存在的话。

如何检查这个问题?
 
Print("Bars=", Bars);
 
Vinin:
Print("Bars=", Bars);

明白了,谢谢你。我会检查的。
 
先生们,你们能不能给我一个将未结头寸 移至盈亏平衡点的函数的例子(在tick上工作),我的专家顾问有一个拖网,这个拖网的开始只是在翻转买入的函数之后。我想在我的文章中使用这个函数作为一个例子,并验证我的结果。
 

请告诉我,为什么在这段代码中,外部变量Lots111的值不断增加,与一个未知数相乘,变成了43543546644500000000。

除了这个代码片段,Lots111变量没有在其他地方使用。Lots111等于0.01,而变量dcou等于2-3。更确切地说,我注意到它随着每一个新的酒吧 而增加;我不明白为什么。一个不在其他地方使用的外部变量,怎么可能保留它的值,并在每个柱子上增加,很可能乘以2。

double fGetLots(int a_cmd_0) {
   int dcou;
   dcou = AccountBalance()/2000;
   Lots111 = Lots111*dcou;
   int i11;
   int orders;
   
   for(i11=0;i11<OrdersTotal();i11++)
     {
     if(OrderSelect(i11,SELECT_BY_POS,MODE_TRADES) == true)
       {
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
         orders++;
         }
       }
     }
   static double Lots2;
   
   if(orders == 0)
     {
     Lots2 = Lots111;
     }
   Comment(Lots111,"\n",Lots2,"\n",orders,"\n",dcou);
   double l_lots_4;
   int l_datetime_12;
   switch (gi_256) {
   case 0:
      l_lots_4 = Lots2;
      break;
   case 1:
      l_lots_4 = NormalizeDouble(Lots2 * MathPow(MultiLotsFactor, gi_360), gd_240);
      break;
   case 2:
      l_datetime_12 = 0;
      l_lots_4 = Lots2;
      for (int l_pos_20 = OrdersHistoryTotal() - 1; l_pos_20 >= 0; l_pos_20--) {
         if (OrderSelect(l_pos_20, SELECT_BY_POS, MODE_HISTORY)) {
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
               if (l_datetime_12 < OrderCloseTime()) {
                  l_datetime_12 = OrderCloseTime();
                  if (OrderProfit() < 0.0) l_lots_4 = NormalizeDouble(OrderLots() * MultiLotsFactor, gd_240);
                  else l_lots_4 = Lots2;
               }
            }
         } else return (-3);
      }
   }
   if (AccountFreeMarginCheck(Symbol(), a_cmd_0, l_lots_4) <= 0.0) return (-1);
   if (GetLastError() == 134/* NOT_ENOUGH_MONEY */) return (-2);
   return (l_lots_4);
}
 
sss2019:

请告诉我,为什么在这段代码中,外部变量Lots111的值不断增加,与一个未知数相乘,变成了43543546644500000000。

除了这个代码片段,Lots111变量没有在其他地方使用。我有Lots111等于0.01,变量dcou等于2-3。

有时试着初始化变量。有时会有帮助。特别是当它们被默认使用时。也就是说,价值没有确切的定义,它们被乘以,除以它们。你也可以用同样的方法获得除以0 的收益
 
Vinin:
有时尝试初始化变量。有时会有帮助。特别是当它们被默认使用时。也就是说,价值没有确切定义,它们被乘以,除以它们。你也可以用同样的方法获得除以0的收益


你能更详细地解释这个问题吗?哦,好吧,我想我明白了,我把所有的变量都设置为原来的值,但问题仍然存在。
 
sss2019:

这是要做的,请详细解释。我想我已经明白了,我已经把所有的变量都设置为原来的值,但问题仍然存在。

你从一些EA中扯出了代码(以前黑过它),但这并不重要(至少你试图理解它)。但你应该在其基础上创建自己的,你会很容易地浏览。然后你就不会有任何问题了。用你的头脑工作。
原因: