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

 
hoz:

在函数本身的参数中,我们看到。

fi_Ticket = 0

通常这样的函数是在订单被选中后调用的,这意味着它们会有一张票。那为什么要把默认值指定为零

如果我们 在没有这个参数的情况下调用函数,将不会执行任何一个if,函数将以字符串开始

RefreshRates();

下一步甚至更有趣。

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
{
   if (fi_Ticket > 0)
   {
      bs_Symbol = OrderSymbol();
   }
   else
   {
     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }

变量fs_Symbol 会立即与bs_Symbol 进行比较。

上面bs_symbol 还没有被初始化,其中fGet_MarketInfo()函数本身 被调用。这个bs_symbol 到底是干什么用的? 如果库的编译没有错误。

如果库的编译没有错误,那么bs_symbol 变量必须在全局层面的某个地方声明。在那里(或在其他函数中),人们应该搜索其初始化...

也是在这种情况下。
if (fs_Symbol != bs_Symbol || fi_Ticket < 0)

如果fi_Ticket<0,接下来要做的事情是...

if (fi_Ticket > 0)
{
   bs_Symbol = OrderSymbol();
}

而这已经与条件相矛盾了。在代码的开头,fi_Ticket< 0 的条件必须成立,然后在这个条件下,ticket>0。逻辑在哪里?

注意:要使代码工作,条件fi_Ticket < 0 OR fs_Symbol != bs_Symbol 必须成立 这意味着如果在代码的末尾还有进一步的if (fi_Ticket > 0),这意味着只是替代的进入条件必须成立。
 

大家好!你们能帮助我吗,我似乎无法理解这个问题))))。

 
kera8383:

大家好!你们能帮助我吗,我似乎无法理解这个问题))))。

常见问题 开始。
 
tara:

你可能使用了小得无法接受的止损和止盈值,但这只是一种猜测。没有足够的信息。


不,我的止损点很大,我有下面的数值。

         SL=Ask + StopLoss*Point;     // значение StopLoss = 375
         TP=Ask - TakeProfit*Point;   // значение TakeProfit = 550
 
paladin80:

不要在OrderSend中对止损点进行标准化。在RefreshRates之前做这个,然后替代。打印这些数值以确保它们是正确的。顺便说一下,要学会不设止损开仓,因为有些经纪公司不接受带止损的订单。设置一个后,修改停止 - 它将通过。

非常小的滑移=2。这个例子 给出了3,这是在4位数的报价上。如果你在5位数的报价上设置这样一个EA,滑点将是0.2点。肯定会有错误。

谢谢你的明智建议,我已经考虑到了这些建议。我已经修正了这个错误。原因很简单:Alpari经纪公司和ECN 模拟账户类型。我必须打开一个订单,然后修改它。
 
欢快的一天,每个人...先生们请帮助,有这样一个问题....我正在阿尔帕里测试我的外汇机器人,它在另一家经纪公司工作,我已经用外汇机器人工作了三个星期,结果是不同的。我做了一些调查(当然我也很紧张..... piii),我意识到在计算中使用的指标 RSI 指数与在Alpari显示的相同指标略有不同。麻烦.....,差别在 "微米:)",但哦,这足以改变EA。伙计们,请告诉我如何解决这种事情,非常感谢你们!"。
 
laveosa:
愉快的一天......。请各位先生帮忙,问题是这样的 ....我在Alpari上测试我的外汇专家顾问,但我使用的是另一家经纪公司,我已经在演示中使用了3周,结果是不同的。我做了一些调查(当然我也很紧张..... piii),我意识到在计算中使用的指标RSI的指数与在Alpari显示的相同指标略有不同。麻烦.....,差别在 "微米:)",但哦,这足以改变EA。伙计们,请告诉我如何解决这种事情,非常感谢你们!"。


不同特区的报价是不同的。演示--来自真实--也。指示器读数 - 也是。

有必要在你要玩的经纪公司的历史上测试和检查博览会和指标参数...

而且博览会必须进行真正的调整(错误处理 和所有其他的......)。

 
StringSetChar在代码中不起作用。 你需要用". "替换":"。

                        string    Object_Date_Secnd = TimeToStr(Object_Time,TIME_SECONDS);

                        for(int s1=0; s1<StringLen(Object_Date_Secnd); s1++) {
                           if(StringGetChar(Object_Date_Secnd,s1)==':' ) {
                              StringSetChar(Object_Date_Secnd,s1, '.');
                           }
                        }


- 为什么替代物不能使用?

谢谢你!

 
所以,如果TS在Alpari是不同的,并不能保证在另一家经纪公司会带来同样的结果?而且,如果另一家经纪公司的历史记录不像Alpari那样完整,我们怎么能在该公司上进行调整呢?靠近身体,是否有可能调整另一家经纪公司的指数,使其与Alpari等的指数相同?
 
laveosa:
所以,如果TS在Alpari是不同的,并不能保证在另一家经纪公司会带来同样的结果?而且,如果另一家经纪公司的历史记录不像Alpari那样完整,我们怎么能在该公司上进行调整呢?靠近身体,我们是否可以在另一家经纪公司上调整指标,使其带来与Alpari等相同的结果?

你可以 - 就是这样...做这样的设置会很有帮助。看看MetaQuotes的故事。