对参加锦标赛的人的有用提示 - 页 11

 
VNIK писал (а):

对不起,我向锦标赛组织者提出了不慎重的问题。

如何处理奖金的征税问题(因为每个奖项的金额都非常大)。

每个获奖者都要自己交税吗?(以及以什么样的速度?)还是会被集中起来?(即已经考虑到了税收?)。

如果为了纳税而放弃一半的奖金,那就太可惜了!

我同意你的观点,我也会为把你的一半奖金给我交税而感到遗憾......
实际上,最好是根本不赢,这样你就不会感到遗憾......。
 
VNIK:

对不起,我向锦标赛组织者提出了不慎重的问题。

如何处理奖金的征税问题(因为每个奖项的金额都非常大)。

每个获奖者都要自己交税吗?(以及以什么样的速度?)还是会被集中起来?(即已经考虑到了税收?)。

如果为了纳税而放弃一半的奖金,那就太可惜了!


是的,获奖者要自己缴税--这是世界各地的奖项的标准做法。
 
没有办法测试这种关闭订单的 方式是否总能正确工作。
while (OrdersTotal()>0)
   {
      OrderSelect(0,SELECT_BY_POS);
      if (OrderType()==OP_BUY)       OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
      else if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
      
      err=GetLastError();
      if (err==135 || err==138) RefreshRates();
   }
问题是:如果错误代码不是135或138,是否会出现循环?如果是这样,如何避免这种情况,并保证订单的关闭?
 
MAEstro:
没有办法测试这种关闭订单的 方式是否总能正确工作。
这里有一个又一个的错误。我数了一下有4个错误,它们都是灾难性的。
请再次阅读建议文章。
 
我把这个建议记在心里,但它似乎没有什么用处 :(

严重忽视了循环的错误控制
(我有错误控制,挂单不被使用,或者我应该也做一个循环退出条件?那么,如何处理订单关闭的保证?或者是我没有处理所有的错误代码?

缺乏对OrderSelect的控制--异步流程在发挥作用
(是的,我不检查Order_Select返回的内容!)好吧,让我们说,如果在这个特定的情况下,它返回的是假的,那么在循环内部会有什么变化,或者说什么会不正确?我不是在修改订单,我是在关闭订单!)

通过RefreshRates()跳过市场环境刷新功能
(我想我刷新了它,这里一切都应该是好的)

也许有一段现成的代码可以关闭所有的订单? 如果你能公布出来,我会很感激的。

P.S. Rosh所建议的http://www.alpari-idc.ru/ru/experts/articles/9.html , 并不能保证收盘!
 
甚至有5个错误。
  1. 没有检查OrderSelect的 结果
  2. 没有明确检查OrderClose()的结果。
  3. GetLastError()可以在没有任何交易操作的情况下被调用(例如,如果你遇到了一个挂单)。
  4. RefreshRates()并不总是被调用,而只是在出现故障时被调用--这是一个严重的错误
  5. 如果列表中存在未决订单,这是一个100%的循环。
结果是:9行中有5个错误--代码只能被扔掉。
 
Renat:
甚至5个错误。
  1. 没有检查OrderSelect的 结果
  2. 没有明确检查OrderClose()的结果。
  3. GetLastError()可以在没有任何交易操作的情况下被调用(例如,如果你遇到了一个挂单)。
  4. ...
结果是:9行中有5个错误--代码只能被扔掉。
而且,为什么要把这一切都塞进一个专家的竞争中?要阅读日志?
OrderSelect应该选择,OrderClose应该关闭必要的订单。
而且不应该有任何错误 :-)
或者由客户承担费用 :-)
 
Renat писал (а):
甚至有5个错误。
  1. OrderSelect
  2. 明确
  3. 检查结果
  4. OrderClose()
  5. GetLastError()可能在没有任何交易操作的情况下被调用(例如,如果遇到挂单)
  6. RefreshRates()并不总是被调用,而只是在失败时被调用--
  7. 如果列表中包含挂单,则100%循环
  8. 这是一个严重的错误
结果是:9行中有5个错误--代码只能被扔掉。

目标:以100%的保证完成所有订单
限制:不使用挂单

1.如果我们需要关闭一个订单,为什么要检查结果?如果它返回错误,它将在下一次返回,因为使用了一个while循环。
2.见第1点。
3.为此,有一个检查错误代码的功能。
4.如果总是更新,那么检查错误就没有意义了 :(
5.没有待处理的订单

我在搜索中发现的所有关闭订单的例子都是单通道的,而且只有在服务器一切正常、没有重新报价等情况下才有效。他们都导致了这样一个事实:有一天,一个订单不会关闭,而我们将获得丰厚的利润......。如果我错了,请纠正我,或者给我一个链接,让我相信我错了。

当然,我很清楚我的代码可能会导致循环,但在我看来,这比不关闭订单的风险要好,这可能会导致严重的经济损失。
尽管如果所有的订单都能100%保证关闭,并且没有订单闲置的机会,那就更好了,这就是我希望你能给我的代码=)。

下面是一个稍加修改的代码,它甚至应该考虑到挂单。
while (OrdersTotal()>0)
   {
      OrderSelect(0,SELECT_BY_POS);
      if (OrderType()==OP_BUY)       OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
      else if (OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
      else OrderDelete(OrderTicket());
      
      RefreshRates();
      err=GetLastError();
      if (err!=135 && err!=138 && err!=0) break;
   }

它不像前一个那样 "鲁莽"?
我还是不明白,为什么在这种情况下检查OrderSelect和OrderClose?
 
不幸的是,没有人会对交易操作给予任何保证。上面的代码比之前的代码好得多。

OrderSelect必须始终被选中,这在《实用提示》中明确指出。
  • 缺乏对OrderSelect的控制--异步流程在发挥作用


    通常情况下,交易员认为他的方案是单一任务的,而且是唯一的。但实际上,在专家顾问的操作过程中,交易账户中存在大量的异步变化。 仓位被修改、添加和删除。如果每个OrderSelect()调用的结果不受控制,那么可能会发生在某一时刻,专家会用错误的(零)数据进行操作,做出错误的动作。

 
Renat:
不幸的是,在交易操作上没有任何保证。上面的代码比之前的代码好得多。

OrderSelect必须始终被选中,这在《实用提示》中明确指出。
  • 没有对OrderSelect的控制--异步流程在发挥作用

    ...职位被修改、增加和删除。

假设一个职位被修改。有一个按某种条件选择订单的请求。发生了一个错误。什么可能被改变了? 初始条件可能在下一个tick时就不存在了,那么为什么我又要犯同样的错误?
没有关于 "添加和删除 "的评论 :-(
请给我一个使用OrderSelect获取OrderCloseTime的代码实例。