错误、漏洞、问题 - 页 619

 
-Alexey-:

我目前正在为MT4 409 bild编写最低止损点功能。对于买入订单,测试者认为来自Bid的最小值是正确的,而对于买入限价订单,测试者认为来自Ask的最小值是正确的。 从逻辑上讲,操作被执行--类似于买入。 问题--这是否是我们的意图,或者我们是否需要写信给董事会?

过去、现在和将来都会有一个从Ask买的。

除了文字之外,还有什么证据吗?

 
-Alexey-:

现在为MT4 409 bild编写了核算最低止损水平的功能。对于一个买入订单,测试者认为来自Bid的最小值是正确的,对于一个买入订单,测试者认为来自Ask的最小值是正确的。 从逻辑上讲,操作被执行--与买入类似。 问题--这是它应该有的方式,还是我应该把它写在BOD里?

这在原则上是有道理的)止损将在买入价触发,挂单在卖出价打开。

sergeev:

过去、现在和将来都会从Ask购买。

对于购买来说,与sl的最小距离是从出价中提取的,在我的记忆中一直如此)
 
sergeev:

过去、现在和将来都会有一个来自Ask的购买。

除了文字之外,还有其他证据吗?


这两种情况下的交易操作 都是从ASK开始的,但据我所知,止损位应该从BID开始计算,因为它指的是平仓卖出操作,这就是在测试器中发生的买入订单。但由于某些原因,LIMIT是由买入订单的ASK计算出来的。例子。

bool first_run=true;
int init()
{
   return(0);
}
int deinit()
{
   return(0);
}
int start()
{
   if (first_run==true)
   {
      string _Symbol=Symbol();
      int _Digits=MarketInfo(_Symbol, MODE_DIGITS);
      double Point_size=MarketInfo(_Symbol, MODE_POINT);
      double Min_stop_distanse=MarketInfo(_Symbol, MODE_STOPLEVEL)*Point_size;
      double Min_freeze_distanse=MarketInfo(_Symbol, MODE_FREEZELEVEL)*Point_size;
      double Spread=MarketInfo(_Symbol, MODE_SPREAD)*Point_size;
      Print("Spread="+Spread);
      double _Order_price;
      double _Order_sl;
      double _Order_tp;
      double _Order_lot;
      _Order_lot=MarketInfo(_Symbol, MODE_MINLOT);
      /* highest accepted level for buy limit order */
      double _Upper_bound_for_buy_limit=NormalizeDouble(MarketInfo(_Symbol, MODE_ASK)-Min_stop_distanse, _Digits);
      /* defining orders price */
      _Order_price=_Upper_bound_for_buy_limit; /* ASK */
      _Order_sl=NormalizeDouble(_Order_price-Min_stop_distanse, _Digits); /* ASK-STOPLEVEL */
      _Order_tp=NormalizeDouble(_Order_price+Min_stop_distanse, _Digits); /* ASK+STOPLEVEL */
      /* sending buy limit order */
      OrderSend(_Symbol, OP_BUYLIMIT, _Order_lot, _Order_price, 0, _Order_sl, _Order_tp, NULL, 0, 0, Green);
      first_run=false;
   }
   return(0);
}

结果。

2012.01.08 14:39:04 2011.06.03 01:43 测试 EURUSD,M1: Spread=0.00020000

2012.01.08 14:39:04 2011.06.03 01:43 test EURUSD,M1: open #1 buy limit 0.01 EURUSD at 1.4478 sl: 1.4474 tp: 1.4482 ok

 
代码没有正确插入。
 
Swan:
对于购买来说,与sl的最小距离是从出价中提取的,在我的记忆中一直是这样)

先澄清一下。

我们谈论的是买入订单中的止损点还是待定买入订单?

 
sergeev:

代码没有正确插入。
我们现在该怎么做?:)我已经强调并按下了 "代码",但它就在那里......
 
-Alexey-:
我们现在该怎么做?:)我想我突出显示并按下了 "代码",但它就在那里......。

你可以删除这个帖子,然后正常地再试一次。你想谈谈这个问题吗?还是你的停止水平问题?

 
sergeev:

你可以删除帖子,然后以正常的方式再试一次。你想谈谈吗?或者谈谈你的秒表问题?

我得到了它的代码。关于停止水平。我是否应该把它写在BOD中,或者它的设计是这样的:BID订单的止损水平是根据订单价格的ASK计算的。如果是这样,为什么在物价局的命令中被认为是相反的?
 
-Alexey-:
在买入限价订单中,BID停止/水平是根据订单的ASK价格计算的。如果是这样,为什么在BUY秩序中被认为是反过来的呢?


让我们从顺序开始。二年级的学校。

А.在订单中,人们 开盘价 计算止损和止盈。很明显,如果你想要100点,你必须在开盘价的基础上收盘盈利100点。

Б.SL/TP/STOP的设置受所谓的停止水平影响。也就是说,你不能在离执行价格更近的地方设置止损/止盈/位置。

由此,我们得出以下结论。

1.当你开立市场 订单时,你应该从触发止损的当前价格考虑设置SL/TP的止损水平。对于海湾,止损点是在买入价触发的,所以我们考虑到了来自当前买入价的止损水平。这就是你通常从订单开盘起就投入的SL/TP(因为你需要100点),但一定 要考虑到Bid的位置和停止水平的大小。

2.当你打开一个交易报价 时,它不应该比 从触发价格的停止水平更接近。也就是说,对于买入止损/保释,我们用止损水平来衡量问价。也就是说,你在你想要的价格上放置一个止损单,但总是考虑到止损水平与Ask的距离。

但要注意!要注意 如果您在订单 中设置了止损和止盈,那么它将从订单的开盘价 开始衡量 不是从Ask开始,而是从订单的开盘价 开始目前的价格并不干扰这两个挂单(SL/TP)。他们只是受阻于与未来触发秩序的距离。 也就是说,你在订单中设置SL/TP,考虑到停止水平与该订单开盘价的距离。出价/询问与此无关。

记得吗?

 
sergeev:

但要注意!要注意挂单 中的止损和止盈是从订单的开盘价 平静地测量的!!不是从Asc开始,而是从订单的开盘价开始!!。 目前的价格并不干扰这两个挂单(SL/TP)。他们只是受阻于与未来触发秩序的距离。 也就是说,你在订单中设置SL/TP,考虑到停止水平与该订单的开盘价的距离。出价/询问与此无关。

明白了吗?

是的,我记得,但我不明白。很明显,当一个挂起的买入限价单的水平达到卖出价时,它就被打开了。因此,在那一刻,当前的买入价与先前测量的行权价(即执行时的卖出价)--止损价之间的距离是不可接受的(同样以买入价执行)。唯一可以尝试解释的是,事先不知道执行时竞价的执行价格会是多少。如果这是意图--好的,很清楚,谢谢你的详细帖子。