交易所的限价单滑点统计 - 页 5

 

我没有创建一个不必要的主题,因为讨论的主题与次类型有关。然而,我将画一条红线,使其立即清楚地表明没有必要在它之前阅读。

到此为止的讨论与之后的讨论毫无关系。

 
提交给SD的申请再现了一个错误--在股票限价单的测试器中滑落。

关于交易、自动交易系统和交易策略测试的论坛

虫子、虫子、问题

fxsaber, 2017.04.07 17:21

测试者的专家顾问(Metaquotes-Demo)。
#include <MT4Orders.mqh>

// Скольжение лимитника на RTS-6.17
void OnTick()
{
  MqlTick Tick;    
  SymbolInfoTick(_Symbol, Tick);

// 2017.04.06 10:00:00                [time]   [bid]   [ask]  [last] [volume]    [time_msc] [flags]  
// 2017.04.06 10:00:00   2017.04.06 10:00:00  114200  114260  114200        2 1491472800335      56  
  if (Tick.time_msc == 1491472800335)
    OrderSend(_Symbol, OP_BUYLIMIT, 1, 114250, 0, 0, 0);
}

结果

2017.04.07 18:18:45.366 RTS-6.17 : real ticks begin from 2017.04.06 00:00:00
2017.04.07 18:18:45.778 2017.04.06 10:00:00   buy limit 1.00 RTS-6.17 at 114250 (114200 / 114260 / 114200)
2017.04.07 18:18:46.051 2017.04.06 10:00:00   order [#2  buy limit 1.00 RTS-6.17 at 114250] triggered
2017.04.07 18:18:46.051 2017.04.06 10:00:00   deal #2  buy 1.00 RTS-6.17 at 114240 done (based on order #2)
2017.04.07 18:18:46.051 2017.04.06 10:00:00   deal performed [#2  buy 1.00 RTS-6.17 at 114240]
2017.04.07 18:18:46.051 2017.04.06 10:00:00   order performed buy 1.00 at 114240 [#2  buy limit 1.00 RTS-6.17 at 114250]

限制滑动的股票代码 - BAG!

下面是一段对话
Support Team 2017.04.10 18:04

fxsaber

在股票符号上的极限滑动是一个BAG!

这些结论的依据是什么?

我们假设目前的市场是114300/114280。

你设置了一个限价单,买入限价114250。市场上有人决定以保证价格卖出,并设置了114200的卖出限价,结果他收集了市场范围内到114200的所有买入限价单。

这在股票市场上是很正常的情况。

支持团队2017.04.11 09:58

fxsaber

  1. 这是关于测试员的问题。
  2. 在这种情况下,积极的滑点只会出现在那些设定了比市场更差的卖出限额的人身上。而相应的买入限额将被执行,不会出现滑点。

1.它是明确的。

2.你说 "只有 "是什么意思?对于那些在交易所交易的人来说,可以说是不同意。顺便说一下,他们已经有了异议。

支持团队2017.04.11 11:00

fxsaber

我建议将这一讨论推向公众。由于你有一些知识和经验,我也有其他的。他们与其他人的关系如何,只能在公开场合看到。你支持我吗?

在这种情况下,"把它带到公众面前 "不会有任何作用--有一个客观现实--股票市场的工作,它不取决于对大多数人的吸引力。这个决定不是白做的,而是基于那些在交易所实际交易的人的要求。

至于子,在测试器中不应该有极限滑移。我想你会同意我的观点。
我不同意--见之前的回复。

下面是谈话内容。


开发者声称,如果你在交易所以比当前价格更差的价格发送卖出限价,最佳买入限价将以正滑点执行。我不同意这种说法。

不清楚开发者是根据什么逻辑得出结论,在测试器中滑出限价单(和市场一样好)是可以的。


很明显,有一种观点是错误的。如果人们能对这个话题进行建设性的评论,我将不胜感激。

 

这里?https://www.metatrader5.com/ru/terminal/help/general_concept#order_type

В режиме биржевого исполнения цена, указываемая при выставлении лимитных ордеров, не проверяется. Ее можно указать выше текущей цены Ask

(для ордеров на покупку) и ниже цены Sell (для ордеров на продажу). При выставлении ордера с такой ценой он практически сразу срабатывает и превращается в рыночный. Однако в отличие от рыночных ордеров, где трейдер фактически соглашается на сделку по неуказанной текущей рыночной цене, лимитный ордер будет исполнен по цене не худшей, чем указанная.

即在这种情况下,卖出限价不会执行得比114200,并将收取上面所有的买入限价,但它变成了市场订单,为什么会影响到买入限价呢?它是在卖出限价的最佳价格,这是限价订单的定义内(不比指定的价格差),卖出限价将在这个价格上执行

 
以下是谈话内容
Support Team 2017.04.10 18:04

fxsaber

股票代码上的极限滑动是BAG!

这种结论的依据是什么?

假设目前的市场是114300/114280。

你下了一个限价单,买入限价114250。市场上有人决定以保证价格卖出,并设置了114200的卖出限价,结果他收集了市场范围内到114200的所有买入限价单

这在外汇市场上是很正常的情况。

交易所限价单不能在正负方向滑动。上述例子中存在一个逻辑错误。事实上,对手方在114200设置限价单(比市场差)并不意味着买入限价将在114240而不是114250执行。在这种情况下,交易方将在114250从我们这里得到一个更好的价格,并将在订单簿上更进一步,获得所需的数量,并使其平均价格恶化。但我们的订单将被执行,不会出现滑点。
 
Vasiliy Sokolov:
以下是一段对话
交易所限价单不能在正负中滑动。上述例子中存在一个逻辑错误。仅仅因为对手方在114200(低于市场)下了一个限价卖单,并不意味着买入限价能够在114240而不是114250成交。在这种情况下,交易方将在114250从我们这里得到一个更好的价格,并将在订单簿上更进一步,获得所需的数量,并使其平均价格恶化。但我们的订单将被执行,不会出现滑点。
我同意前一位发言者的意见。我唯一不同意的是 "不滑坡")。
 
 
Vasiliy Sokolov:
下面是一段对话
市场限价订单不能向上或向下滑动。在这个例子中,有一个逻辑上的错误。事实上,对手方在114200(比市场价格差)下了一个限价卖单,并不意味着买入限价将在114240而不是114250执行。在这种情况下,交易方将在114250从我们这里得到一个更好的价格,并将在订单簿上更进一步,获得所需的数量,并使其平均价格恶化。但我们的订单将被执行,不会出现滑点。

我同意。我的例子太草率了。

考虑一下这样一个案例。

这里有这样一个专家顾问。

//+------------------------------------------------------------------+
//|                                               MarketBuyLimit.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Trade\Trade.mqh>

int ExtLastHour=0;
int ExtOverMarket=1000;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlDateTime dt;
   TimeTradeServer(dt);
//---
   if(dt.hour!=ExtLastHour)
     {
      CTrade  trade;
      MqlTick tick;
      double  point=SymbolInfoDouble(Symbol(),SYMBOL_POINT);
      //--- получим тик
      SymbolInfoTick(Symbol(),tick);
      //--- есть позиции?
      if(!PositionsTotal())
        {
         if(!trade.BuyLimit(1.0,tick.ask+ExtOverMarket*point,Symbol()))
           Print("BuyLimit setup failed");
        }
      else
        {
         if(!trade.SellLimit(1.0,tick.bid-ExtOverMarket*point,Symbol()))
           Print("BuyLimit setup failed");
        }
      ExtLastHour=dt.hour;
     }
  }

也就是说,我们用比市场好1000点的限价单开仓和平仓(价格高于买入限价,价格低于买入限价)。

下面是在没有滑点的情况下执行的交易图。

而这是在执行滑移时的样子。


让我们试着思考如何结合这两个选项的正确操作。

 

我们已经做了必要的修改,以正确处理交易所模式下限价订单的两种情况--好于市场和差于市场。

将在未来几天MetaQuotes-Demo的更新后提供。

 
MQ Alexander:

我们已经做了必要的修改,以正确处理交易所模式下限价订单的两种情况--好于市场和差于市场。

它将在未来几天的MetaQuotes-Demo更新后提供。

关于交易、自动交易系统和测试交易策略的论坛

堡垒。关于执行的问题

fxsaber, 2017.02.22 23:32

有两种 "类型 "的限制器--报价和执行。报价与目前的价格一样好(而且不相等)。其他的是执行。

报价的限制必须在测试器中准确地按规定的价格执行。

执行限制 - 在设置的tick的价格上(SellLimit - Bid, BuyLimit - Ask),好像它们不是限制,而是侯爵。


会有这种逻辑吗?

 
fxsaber:

报价的限价器必须在测试器中完全按照报价执行。

执行限制 - 在刻度的价格,在其上设置(SellLimit - Bid,BuyLimit - Ask),就像他们不是限制,而是市场。
更准确地说--对于交易所来说,在较好的市场价格(较高的买入价和较低的卖出价)下达的限价单将在下达后立即以当前的市场价格(买入价,卖出价)执行(激活)(无需等待下一个价格)。
原因: