증권 거래소 지정가 주문에 대한 슬리피지 통계 - 페이지 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 ]

교환 기호에서 제한 기호 슬라이딩 - BUG!

아래는 대화내용
Support Team   2017.04.10 18:04

fxsaber

교환 기호에서 제한 기호 슬라이딩 - BUG!

이러한 결론은 무엇을 기반으로 합니까?

현재 시장을 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/en/terminal/help/general_concept#order_type

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

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

저것들. 이 경우 매도 한도는 114200보다 나쁘게 실행되지 않고 모든 매수 한도를 더 높게 수집하지만 시장 주문으로 바뀌는데 매수 한도에 영향을 미치는 이유는 무엇입니까? 하나는 매도 한도에서 지정가 주문의 정의( 지정된 가격보다 나쁘지 않은 가격 )에 맞는 매도 한도에 대한 최상의 가격이며 실행됩니다.

 
아래는 대화내용
Support Team  2017.04.10 18:04

fxsaber

교환 기호에서 제한 기호 슬라이딩 - BUG!

이러한 결론은 무엇을 기반으로 합니까?

현재 시장을 114300 / 114280으로 둡니다.

매수 제한도 114250 주문을 하면 시장의 누군가가 보장된 가격으로 매도하기로 결정하고 매도 제한도 114200 을 설정한 결과 시장에서 114200까지의 범위에 있는 모든 매수 제한 주문을 수집했습니다.

이것은 주식 시장에서 아주 정상적인 상황입니다.

교환 지정가 주문은 플러스 또는 마이너스로 미끄러질 수 없습니다. 위의 예에는 논리적 오류가 있습니다. 거래상대방이 114200(시장보다 나쁨)의 가격에 지정가 매도 주문을 했다는 사실이 매수 지정가가 114250이 아닌 114240에 체결될 수 있다는 것을 의미하지 않습니다. 이 경우 상대방은 당사로부터 더 나은 가격을 받게 됩니다. 114250에서 주문 장부를 더 아래로 이동하여 필요한 양을 얻고 평균 가격을 악화시킵니다. 그러나 우리의 주문은 미끄러지지 않고 채워질 것입니다.
 
Vasiliy Sokolov :
아래는 대화내용
교환 지정가 주문은 플러스 또는 마이너스로 미끄러질 수 없습니다. 위의 예에는 논리적 오류가 있습니다. 거래상대방이 114200(시장보다 나쁨)의 가격에 지정가 매도 주문을 했다는 사실이 매수 지정가가 114250이 아닌 114240에 체결될 수 있다는 것을 의미하지 않습니다. 이 경우 상대방은 당사로부터 더 나은 가격을 받게 됩니다. 114250에서 주문 장부를 더 아래로 이동하여 필요한 양을 얻고 평균 가격을 악화시킵니다. 그러나 우리의 주문은 미끄러지지 않고 채워질 것입니다.
나는 이전 스피커에 동의합니다. 내가 "악마"라는 단어에 동의하지 않는 유일한 것)
 

@kaus_bonus , @Vasiliy Sokolov , @Dmitriy Skub , 감사합니다!


 
Vasiliy Sokolov :
아래는 대화내용
교환 지정가 주문은 플러스 또는 마이너스로 미끄러질 수 없습니다. 위의 예에는 논리적 오류가 있습니다. 거래상대방이 114200(시장보다 나쁨)의 가격에 지정가 매도 주문을 했다는 사실이 매수 지정가가 114250이 아닌 114240에 체결될 수 있다는 것을 의미하지 않습니다. 이 경우 상대방은 당사로부터 더 나은 가격을 받게 됩니다. 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

제한에는 인용과 실행의 두 가지 "유형"이 있습니다. 인용 - 현재 가격보다 나쁘지 않고 동일하지 않습니다. 나머지는 실행입니다.

견적된 제한은 테스터에 명시된 가격으로 정확하게 실행되어야 합니다.

실행 제한 - 마치 제한이 아니라 시장인 것처럼 (SellLimit - Bid, BuyLimit - Ask)가 배치된 틱의 가격입니다.


그런 논리가 있을까요?

 
fxsaber :

견적된 제한은 테스터에 명시된 가격으로 정확하게 실행되어야 합니다.

실행 제한 - 마치 제한이 아니라 시장인 것처럼 (SellLimit - Bid, BuyLimit - Ask)가 배치된 틱의 가격입니다.
보다 정확하게는 지정가 교환 상품의 경우 시장보다 좋은 가격(BuyLimit에 대한 입찰보다 높고 SellLimit에 대한 입찰보다 낮은)에 주문한 주문이 해당 가격에 배치된 직후(다음 가격을 기다리지 않고) 실행(활성화)됩니다. 현재 시장(BuyLimit 요청, SellLimit 입찰) .